Revision: v2.2.17 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 13 Oct 2010 14:23:59 +0300
branchRCL_3
changeset 83 26b2b12093af
parent 77 7cee158cb8cd
child 84 0553e2305d00
Revision: v2.2.17 Kit: 201041
bld.inf
build/Makefile.comp
build/Makefile.defs
build/Makefile.project
build/Makefile.subsystem
build/bld.inf
build/buildutils/checkfilenames.py
build/buildutils/checkjavapackages.py
build/buildutils/checkwarnings.py
build/buildutils/distribution.policy.s60.configuration.txt
build/buildutils/svnchangeids.py
build/buildutils/ver2binver.py
build/codescanner_high.xml
build/exports.inf
build/loc/resources_qt.jar
build/makefile
build/makefile.javaversion
build/nativejava.flm
build/omj.pri
build/properties.xml
build/sis/incompatible_openc.txt
build/sis/incompatible_platform.txt
build/sis/java_2_0.pkg
build/sis/java_3_1.pkg
build/sis/java_rnd_tools.pkg
build/symbian_uids.pri
build/templates/10.1.layers.sysdef.xml
build/templates/9.2.layers.sysdef.xml
build/templates/nokia_pkgdef_template.xml
build/templates/pkgdef_template.xml
build/templates/pkgmap_template.xml
build/unittest.properties
build/utilities.xml
inc/build_defines.hrh
inc/build_defines.pri
inc/java.txt
inc/java_s60_release.hrh
inc/project_defines.hrh
javacommons/comms/build/bld.inf
javacommons/comms/build/comms.pro
javacommons/comms/build/comms_0x2002DCA6.mmp
javacommons/comms/build/javacomms.pro
javacommons/comms/build/javacomms_0x2002DCA6.mmp
javacommons/comms/comms.pro
javacommons/comms/ipclib/clientserver/build/ipc_0x2002DCB7.mmp
javacommons/comms/ipclib/clientserver/src.s60/commssession.cpp
javacommons/comms/ipclib/clientserver/src.s60/creceiver.cpp
javacommons/comms/ipclib/clientserver/src.s60/creceiver.h
javacommons/comms/ipclib/clientserver/src.s60/ipcclient.cpp
javacommons/comms/tsrc/Makefile
javacommons/comms/tsrc/javaapi/Makefile
javacommons/comms/tsrc/javaapi/build/build.xml
javacommons/comms/tsrc/javaapi/build/javacaptain_ext_ondemand_101.pro
javacommons/comms/tsrc/javaapi/subsystem.mk
javacommons/comms/tsrc/subsystem.mk
javacommons/connectionmanager/build/javaconnectionmanager_0x2002DCA7.mmp
javacommons/connectionmanager/inc.s60/connectionmanager.h
javacommons/connectionmanager/legacysupport/apnsettings/tsrc.s60/build/testapnsettings.mmp
javacommons/connectionmanager/legacysupport/apnsettings/tsrc.s60/src/AllTests.h
javacommons/connectionmanager/legacysupport/apnsettings/tsrc.s60/src/testapnsettings.cpp
javacommons/connectionmanager/src.s60/connectionmanager.cpp
javacommons/fileutils/build/bld.inf
javacommons/fileutils/build/fileutils.pro
javacommons/fileutils/build/fileutils_0x2002DCAD.mmp
javacommons/fileutils/build/javafileutils.pro
javacommons/fileutils/build/javafileutils_0x2002DCAD.mmp
javacommons/fileutils/javasrc/com/nokia/mj/impl/fileutils/FileOutputStream.java
javacommons/fileutils/javasrc/com/nokia/mj/impl/fileutils/FileStreamHandler.java
javacommons/fileutils/javasrc/com/nokia/mj/impl/fileutils/FileURL.java
javacommons/fileutils/src.s60/filesystemutils.cpp
javacommons/fileutils/src/filestreamhandlerjni.cpp
javacommons/fileutils/src/fileutilities.cpp
javacommons/fileutils/src/nativefileiohandler.cpp
javacommons/fileutils/src/nativefileiohandler.h
javacommons/fileutils/tsrc/fileutilstestinit/build/javafileutilstestinit.pro
javacommons/gcfbase/build/javagcf_0x2002DCAE.mmp
javacommons/gcfprotocols/file/build/javafile.pro
javacommons/gcfprotocols/file/build/javafile_0x2002DCAC.mmp
javacommons/gcfprotocols/file/tsrc/mt/filetestinit/build/javafiletestinit.pro
javacommons/gcfprotocols/http/build/javahttp.pro
javacommons/gcfprotocols/http/build/javahttp_0x2002DCB1.mmp
javacommons/gcfprotocols/http/src.s60/nativehttptraansaction.cpp
javacommons/gcfprotocols/http/src.s60/nativetransaction.cpp
javacommons/gcfprotocols/https/build/javahttps_0x2002DCB2.mmp
javacommons/gcfprotocols/secureconnection/build/javassl_0x2002DCD7.mmp
javacommons/gcfprotocols/secureconnection/javasrc/com/nokia/mj/impl/ssl/SecureConnectionImpl.java
javacommons/gcfprotocols/socket/serverconnection/build/javasocketscplugin_0x2002DCD5.mmp
javacommons/gcfprotocols/socket/socket/build/build.xml
javacommons/gcfprotocols/socket/socket/build/javasocket_0x2002DCD4.mmp
javacommons/gcfprotocols/socket/socket/inc/socketlocalhostinfo.h
javacommons/gcfprotocols/socket/socket/javasrc.s60/com/nokia/mj/impl/gcf/protocol/socket/Protocol.java
javacommons/gcfprotocols/socket/socket/javasrc/com/nokia/mj/impl/gcf/protocol/socket/PushValidatorImpl.java
javacommons/gcfprotocols/socket/socket/javasrc/com/nokia/mj/impl/gcf/protocol/socket/SocketPermissionImpl.java
javacommons/gcfprotocols/socket/socket/javasrc/com/nokia/mj/impl/properties/socket/SocketDynamicPropertyHandler.java
javacommons/gcfprotocols/socket/socket/src.s60/socketlocalhostinfo.cpp
javacommons/gcfprotocols/socket/socket/src/socketconnectionjni.cpp
javacommons/javacommons.pro
javacommons/javaenv/build/javaenv.pro
javacommons/javaenv/build/javaenv_0x2001B2A5.mmp
javacommons/javaenv/src.s60/javaenvinfo.cpp
javacommons/javaenv/tsrc/build/alltests.mmp
javacommons/javastorage/build/javastorage_0x2002DCD8.mmp
javacommons/javastorage/javasrc/com/nokia/mj/impl/storage/StorageSessionImpl.java
javacommons/javastorage/tsrc/java_api/javasrc/com/nokia/mj/impl/storage/TestStorageAttribute.java
javacommons/javastorage/tsrc/storageclient/build/alltests.mmp
javacommons/jvms/j9utils/threaddump/build/javathreaddumper_0x2002DCD9.mmp
javacommons/jvms/nativeportlayer/build/jvmnativeport_0x2002DCDE.mmp
javacommons/security/build/build.xml
javacommons/security/build/exports.inf
javacommons/security/build/javasecurity_0x2002DCCF.mmp
javacommons/security/conf/CI_javasecurity.confml
javacommons/security/data/msa_manufacturer.txt
javacommons/security/data/msa_operator.txt
javacommons/security/data/msa_trustedthirdparty.txt
javacommons/security/data/msa_untrusted.txt
javacommons/security/data/s60_manufacturer.txt
javacommons/security/data/s60_operator.txt
javacommons/security/data/s60_trustedthirdparty.txt
javacommons/security/data/s60_untrusted.txt
javacommons/security/javasrc.cdc/com/nokia/mj/impl/security/midp/authorization/PermissionGranter.java
javacommons/security/javasrc/com/nokia/mj/impl/security/midp/authentication/AuthenticationException.java
javacommons/security/javasrc/com/nokia/mj/impl/security/midp/authentication/AuthenticationModule.java
javacommons/security/javasrc/com/nokia/mj/impl/security/midp/authorization/PermissionResolver.java
javacommons/security/javasrc/com/nokia/mj/impl/security/midp/common/PermissionMappingTable.java
javacommons/security/javasrc/com/nokia/mj/impl/security/midp/common/UserSecuritySettingsImpl.java
javacommons/security/javasrc/com/nokia/mj/impl/security/midp/storage/SecurityStorage.java
javacommons/security/javasrc/com/nokia/mj/impl/security/utils/SecurityDetailedErrorMessage.java
javacommons/security/javasrc/com/nokia/mj/impl/security/utils/SecurityErrorMessage.java
javacommons/security/javasrc/com/nokia/mj/impl/security/utils/SecurityPermissionTexts.java
javacommons/security/javasrc/com/nokia/mj/impl/security/utils/SecurityPromptMessage.java
javacommons/security/javaunicertstoreplugin/build/bld.inf
javacommons/security/javaunicertstoreplugin/build/javaunicertstoreplugin.mmp
javacommons/security/javaunicertstoreplugin/build/javaunicertstoreplugin.pro
javacommons/security/javaunicertstoreplugin/build/javaunicertstoreplugin_0x200213A3.mmp
javacommons/security/javaunicertstoreplugin/src.s60/200213A3.rss
javacommons/security/javaunicertstoreplugin/src.s60/200213A3_iad.rss
javacommons/security/javaunicertstoreplugin/src.s60/confirmquery.cpp
javacommons/security/javaunicertstoreplugin/src.s60/confirmquery.h
javacommons/security/javaunicertstoreplugin/src.s60/javacertstoreimpl.cpp
javacommons/security/javaunicertstoreplugin/src.s60/javacertstoreimpl.h
javacommons/security/legacysupport/midp2securitypolicyv2/plugins/securitypolicyV2/build/MIDP2SecurityPolicyV2Dll.mmp
javacommons/security/legacysupport/midp2securitypolicyv2/plugins/securitypolicyV2/src/BlanketPermissionPolicy.cpp
javacommons/security/legacysupport/midp2securitypolicyv2/plugins/securitypolicyV2/src/BlanketPermissionPolicy.h
javacommons/security/legacysupport/midp2securitypolicyv2/plugins/securitypolicyV2/src/SimpleMapping.cpp
javacommons/security/legacysupport/midp2securitypolicyv2/plugins/securitypolicyV2/src/XPFParser.cpp
javacommons/security/legacysupport/midp2userpreferences/build/midp2userpreferences.pro
javacommons/security/legacysupport/midp2userpreferences/src/MIDP2UserPreferences.cpp
javacommons/security/legacysupport/tsrc/build/securitylegacysupportunittests.mmp
javacommons/security/legacysupport/tsrc/src/testpermissiondb.cpp
javacommons/security/legacysupport/tsrc/src/testsecuritypolicy.cpp
javacommons/security/legacysupport/tsrc/src/testuserpreferences.cpp
javacommons/security/security.pro
javacommons/security/src.s60/fileutils.cpp
javacommons/security/src.s60/telutils.cpp
javacommons/security/src.s60/telutils.h
javacommons/security/src/midpauthenticationmoduleimpl.cpp
javacommons/security/src/utils/securityutils.cpp
javacommons/security/src/utils/securityutils.h
javacommons/security/src/utils/storagehandler.cpp
javacommons/security/subsystem.mk
javacommons/security/tsrc/data/ext1/ext1.odc
javacommons/security/tsrc/data/ext2/ext2.odc
javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/OMJSecurityTests.java
javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/authentication/AuthenticationModuleTests.java
javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/authorization/AccessControllerTests.java
javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/authorization/InteractiveAccessControllerTests.java
javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/authorization/PermissionGranterTests.java
javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/authorization/TestPermissionMappingTable.java
javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/common/SecurityDescriptorAttributesTests.java
javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/common/SecurityExtensionsTests.java
javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/storage/SecurityStorageTests.java
javacommons/utils/build/build.xml
javacommons/utils/build/bwins/javautilsu.def
javacommons/utils/build/eabi/javautilsu.def
javacommons/utils/build/javautils.pro
javacommons/utils/build/javautils_0x2002DCDA.mmp
javacommons/utils/inc.s60/java_stdcpp_support_for_dll.hrh
javacommons/utils/inc.s60/java_stdcpp_support_for_exe.hrh
javacommons/utils/inc.s60/java_stdcpp_support_for_stddll.hrh
javacommons/utils/inc.s60/java_stdcpp_support_for_stdexe.hrh
javacommons/utils/inc/javacommonutils.h
javacommons/utils/inc/javaoslayer.h
javacommons/utils/inc/logger.h
javacommons/utils/javasrc/com/nokia/mj/impl/coreui/CoreUi.java
javacommons/utils/javasrc/com/nokia/mj/impl/rt/SystemPropertyUtils.java
javacommons/utils/javasrc/com/nokia/mj/impl/rt/support/ApplicationUtils.java
javacommons/utils/javasrc/com/nokia/mj/impl/utils/DebugUtils.java
javacommons/utils/javasrc/com/nokia/mj/impl/utils/ErrorMessageBase.java
javacommons/utils/javasrc/com/nokia/mj/impl/utils/Formatter.java
javacommons/utils/javasrc/com/nokia/mj/impl/utils/Id.java
javacommons/utils/javasrc/com/nokia/mj/impl/utils/InstallerDetailedErrorMessage.java
javacommons/utils/javasrc/com/nokia/mj/impl/utils/InstallerErrorMessage.java
javacommons/utils/javasrc/com/nokia/mj/impl/utils/LocalizedTextProvider.java
javacommons/utils/javasrc/com/nokia/mj/impl/utils/Logger.java
javacommons/utils/javasrc/com/nokia/mj/impl/utils/ResourceLoader.java
javacommons/utils/javasrc/com/nokia/mj/impl/utils/Version.java
javacommons/utils/src.s60/formatternative.cpp
javacommons/utils/src.s60/javaoslayer.cpp
javacommons/utils/src/debugutils.cpp
javacommons/utils/src/javacommonutils.cpp
javacommons/utils/src/javainifileutils.cpp
javacommons/utils/src/logger.cpp
javacommons/utils/tsrc/build/java/build.xml
javacommons/utils/tsrc/build/java/dummy.pro
javacommons/utils/tsrc/build/native/exports.inf
javacommons/utils/tsrc/build/native/testjavautils.pro
javacommons/utils/tsrc/javasrc/com/nokia/mj/impl/rt/SystemPropertyTests.java
javacommons/utils/tsrc/javasrc/com/nokia/mj/impl/utils/BufferedReaderTests.java
javacommons/utils/tsrc/javasrc/com/nokia/mj/impl/utils/DebugUtilsTests.java
javacommons/utils/tsrc/javasrc/com/nokia/mj/impl/utils/concurrent/ConcurrentTests.java
javacommons/utils/tsrc/localisation/build/build.xml
javacommons/utils/tsrc/localisation/javasrc/com/nokia/mj/impl/utils/LocalisationTest.java
javacommons/utils/tsrc/localisation/javasrc/com/nokia/mj/test/utils/LocalisationTest.java
javacommons/utils/tsrc/src/testoslayer.cpp
javacommons/utils/tsrc/subsystem.mk
javacommons/utils/tsrc/tst.bat
javacommons/utils/tsrc/unittestrunner/runner/build/build.xml
javacommons/utils/tsrc/unittestrunner/runner/build/bwins/javaunittestrunneru.def
javacommons/utils/tsrc/unittestrunner/runner/build/eabi/javaunittestrunneru.def
javacommons/utils/tsrc/unittestrunner/runner/build/javaunittestrunner.pro
javacommons/utils/tsrc/unittestrunner/runner/javasrc/com/nokia/mj/impl/rt/test/UnitTestRunner.java
javacommons/utils/tsrc/unittestrunner/runner/javasrc/com/nokia/mj/impl/rt/unittestrunner/ApplicationInfoImpl.java
javacommons/utils/tsrc/unittestrunner/runner/javasrc/com/nokia/mj/impl/rt/unittestrunner/ApplicationUtilsImpl.java
javacommons/utils/tsrc/unittestrunner/starter/build/javauntitester.pro
javacommons/utils/tsrc/unittestrunner/starter/src/main.cpp
javacommons/utils/tsrc/unittestrunner/subsystem.mk
javaextensions/bld.inf
javaextensions/bluetooth/bluecove/build/javabluecove_0x2002DC97.mmp
javaextensions/bluetooth/bluetoothcommons/bluetoothplatformcontrol/src.s60/s60bluetoothplatformcontrol.cpp
javaextensions/bluetooth/bluetoothcommons/bluetoothplatformcontrol/src.s60/s60btdialog.cpp
javaextensions/bluetooth/bluetoothcommons/bluetoothplatformcontrol/src.s60/s60btdialog.h
javaextensions/bluetooth/bluetoothcommons/build/javabluetoothcommons.pro
javaextensions/bluetooth/bluetoothcommons/build/javabluetoothcommons_0x2002DC99.mmp
javaextensions/bluetooth/bluetoothcommons/src.s60/bluetoothclientconnection.cpp
javaextensions/bluetooth/bluetoothcommons/src.s60/servicerecord.cpp
javaextensions/bluetooth/bluetoothplugins/btgoeppushplugin/build/javabtgoepscplugin_0x2002DC9A.mmp
javaextensions/bluetooth/bluetoothplugins/btjavacaptainplugin/build/javacaptain_ext_btdeviceclassmanager_0x2002DC9D.mmp
javaextensions/bluetooth/bluetoothplugins/btl2cappushplugin/build/javabtl2capscplugin_0x2002DC9B.mmp
javaextensions/bluetooth/bluetoothplugins/btl2cappushplugin/src.s60/btl2capserverconnection.cpp
javaextensions/bluetooth/bluetoothplugins/btl2cappushplugin/src/btl2cappushserverconnection.cpp
javaextensions/bluetooth/bluetoothplugins/btspppushplugin/build/javabtsppscplugin_0x2002DC9C.mmp
javaextensions/bluetooth/bluetoothplugins/btspppushplugin/src.s60/btrfcommserverconnection.cpp
javaextensions/bluetooth/bluetoothplugins/btspppushplugin/src/rfcommpushserverconnection.cpp
javaextensions/bluetooth/omjbluetooth/build/javabluetooth_0x2002DC98.mmp
javaextensions/broadcast_stub/build/javabroadcast_0x2002DCE0.mmp
javaextensions/centralrepository/build/bld.inf
javaextensions/centralrepository/build/build.xml
javaextensions/centralrepository/build/bwins/javacentrepu.def
javaextensions/centralrepository/build/eabi/javacentrepu.def
javaextensions/centralrepository/build/javacentrep.pro
javaextensions/centralrepository/build/javacentrep_0x2002DCE1.mmp
javaextensions/centralrepository/inc/centrepfunctionserver.h
javaextensions/centralrepository/inc/cjavacentralrepository.h
javaextensions/centralrepository/javasrc/com/nokia/mid/cenrep/CentralRepository.java
javaextensions/centralrepository/javasrc/com/nokia/mid/cenrep/CentralRepositoryException.java
javaextensions/centralrepository/javasrc/com/nokia/mj/impl/cenrep/CentralRepositoryImpl.java
javaextensions/centralrepository/javasrc/com/nokia/mj/impl/cenrep/CentralRepositoryKey.java
javaextensions/centralrepository/javasrc/com/nokia/mj/impl/cenrep/CentralRepositoryUid.java
javaextensions/centralrepository/src/cjavacentralrepository.cpp
javaextensions/centralrepository/src/javacentralrepositoryjni.cpp
javaextensions/comm/build/javacomm_0x2002DCA5.mmp
javaextensions/datagram/datagram/build/javadatagram_0x2002DCA9.mmp
javaextensions/datagram/datagram/javasrc/com/nokia/mj/impl/datagram/UDPDatagramConnectionImpl.java
javaextensions/datagram/datagram/javasrc/com/nokia/mj/impl/gcf/protocol/datagram/DatagramPermissionImpl.java
javaextensions/datagram/datagram/javasrc/com/nokia/mj/impl/gcf/protocol/datagram/PushValidatorImpl.java
javaextensions/datagram/datagram/src.s60/apnsettings.cpp
javaextensions/datagram/datagram/src/nativedatagramconnection.cpp
javaextensions/datagram/serverconnection/build/javadatagramscplugin_0x2002DCAA.mmp
javaextensions/globalindicators/build/javaglobalindicators_0x2002DCAF.mmp
javaextensions/iapinfo/build/javaiapinfo_0x2002DCB3.mmp
javaextensions/javaextensions.pro
javaextensions/location/build/javalocation_0x2002DCBC.mmp
javaextensions/location/position/src/cpositioner.cpp
javaextensions/midppush/build/javapushregistry_0x2002DCC9.mmp
javaextensions/midppush/pushcontroller/build/javapushcontroller_0x2002DCC8.mmp
javaextensions/midppush/pushregistryplugin/build/javacaptain_ext_pushregistryplugin_0x2002DCA2.mmp
javaextensions/midprms_db/build/javarms_0x2002DCCB.mmp
javaextensions/midprms_db/javasrc/com/nokia/mj/impl/rms/RecordIdCache.java
javaextensions/midprms_db/javasrc/com/nokia/mj/impl/rms/RmsFileInfo.java
javaextensions/midprms_db/rmsplugin/build/javacaptain_ext_ondemand_2_0x2002DD01.mmp
javaextensions/midprms_db/tsrc/build/rmsintersuite.jad
javaextensions/midprms_db/tsrc/build/rmssharedtests.jad
javaextensions/midprms_db/tsrc/build/rmstests.jad
javaextensions/midprms_db/tsrc/javasrc/com/nokia/mj/test/rms/TestRecordEnumeration.java
javaextensions/mobinfo/build/bld.inf
javaextensions/mobinfo/build/javamobinfo.pro
javaextensions/mobinfo/build/javamobinfo_0x2002DCC3.mmp
javaextensions/mobinfo/build/mobinfo.pro
javaextensions/mobinfo/build/mobinfo_0x2002DCC3.mmp
javaextensions/pim/agnadapter/inc.s60/cpimagnlistadapter.h
javaextensions/pim/agnadapter/inc.s60/cpimeventadapteraccess.h
javaextensions/pim/agnadapter/inc.s60/cpimeventlistadapter.h
javaextensions/pim/agnadapter/inc.s60/cpimtodoadapteraccess.h
javaextensions/pim/agnadapter/inc.s60/cpimtodolistadapter.h
javaextensions/pim/agnadapter/src.s60/cpimagnapptadapter.cpp
javaextensions/pim/agnadapter/src.s60/cpimagnlistadapter.cpp
javaextensions/pim/agnadapter/src.s60/cpimeventadapteraccess.cpp
javaextensions/pim/agnadapter/src.s60/cpimeventlistadapter.cpp
javaextensions/pim/agnadapter/src.s60/cpimtodoadapteraccess.cpp
javaextensions/pim/agnadapter/src.s60/cpimtodolistadapter.cpp
javaextensions/pim/build/build.xml
javaextensions/pim/build/javapim.pro
javaextensions/pim/build/javapim_0x2002DCC5.mmp
javaextensions/pim/cntadapter/inc.s60/cpimcmadapteraccess.h
javaextensions/pim/cntadapter/inc.s60/cpimcontactlistadapter.h
javaextensions/pim/cntadapter/src.s60/cpimcmadapteraccess.cpp
javaextensions/pim/cntadapter/src.s60/cpimcontactlistadapter.cpp
javaextensions/pim/common/inc.s60/mpimadapteraccess.h
javaextensions/pim/framework/inc.s60/cleanupresetanddestroy.h
javaextensions/pim/framework/inc.s60/cpimmanager.h
javaextensions/pim/framework/inc/pimbasemanager.h
javaextensions/pim/framework/src.s60/cpimeventlist.cpp
javaextensions/pim/framework/src.s60/cpimlist.cpp
javaextensions/pim/framework/src.s60/cpimmanager.cpp
javaextensions/pim/framework/src.s60/cpimtodolist.cpp
javaextensions/pim/framework/src.s60/pimjnitools.cpp
javaextensions/pim/inc.s60/dummy.txt
javaextensions/pim/inc.s60/mpimlocalizationdata.h
javaextensions/pim/inc.s60/mpimlocalizationmanager.h
javaextensions/pim/inc.s60/pimlocalizationids.h
javaextensions/pim/javasrc.s60/com/nokia/mj/impl/pim/utils/NativeError.java
javaextensions/pim/javasrc/com/nokia/mj/impl/pim/Calendar.java
javaextensions/pim/javasrc/com/nokia/mj/impl/pim/ErrorString.java
javaextensions/pim/javasrc/com/nokia/mj/impl/pim/PIMListImpl.java
javaextensions/pim/javasrc/com/nokia/mj/impl/pim/PIMManager.java
javaextensions/pim/javasrc/com/nokia/mj/impl/pim/PIMPermissionImpl.java
javaextensions/pim/javasrc/com/nokia/mj/impl/properties/pim/DynamicPropertyHandler.java
javaextensions/pim/javasrc/javax/microedition/pim/PIM.java
javaextensions/pim/jni/src/pimmanager.cpp
javaextensions/pim/versit/src.s60/cpimcalendarconverter.cpp
javaextensions/pim/versit/src.s60/cpimcardconverter.cpp
javaextensions/pim/versit/src.s60/cpimeventpropertyconverter.cpp
javaextensions/pim/versit/src.s60/cpimversit.cpp
javaextensions/satsa/build/javasatsa.pro
javaextensions/satsa/build/javasatsa_0x2002DCCE.mmp
javaextensions/satsa/pki/src.s60/cstscredentialmanager.cpp
javaextensions/satsa/pki/src.s60/cstscredentialmanager.h
javaextensions/satsa/pki/src.s60/cstsseprompt.cpp
javaextensions/satsa/pki/src.s60/cstsseprompt.h
javaextensions/satsa/pki/src.s60/cstssignatureservice.cpp
javaextensions/satsa/pki/src.s60/cstssignatureservice.h
javaextensions/sensor/build/javasensor_0x2002DCD0.mmp
javaextensions/sensor/src.s60/cacceleratorsensor.cpp
javaextensions/sensor/src.s60/cnetworkfieldintensitysensor.cpp
javaextensions/sensor/src.s60/csensorbase.cpp
javaextensions/subsystem.mk
javaextensions/webservices/build/javawebservices_0x2002DCDB.mmp
javaextensions/wma/mms/build/javawmamms.pro
javaextensions/wma/mms/build/javawmamms_0x2002DCDD.mmp
javaextensions/wma/mms/javasrc/com/nokia/mj/impl/gcf/protocol/mms/PushValidatorImpl.java
javaextensions/wma/mms/javasrc/com/nokia/mj/impl/mms/MMSConnectionImpl.java
javaextensions/wma/mms/pushplugin/build/eabi/javammsscpluginu.def
javaextensions/wma/mms/pushplugin/build/javammsscplugin_0x2002DCC1.mmp
javaextensions/wma/mms/pushplugin/src.s60/s60mmsserverconnection.cpp
javaextensions/wma/mms/src.s60/cjavammsmessagehandler.cpp
javaextensions/wma/sms_cbs/build/javawma_0x2002DCDC.mmp
javaextensions/wma/sms_cbs/javasrc/com/nokia/mj/impl/sms/SMSConnectionImpl.java
javaextensions/wma/sms_cbs/pushplugin/cbs/build/eabi/javacbsscpluginu.def
javaextensions/wma/sms_cbs/pushplugin/cbs/build/javacbsscplugin_0x2002DCA4.mmp
javaextensions/wma/sms_cbs/pushplugin/cbs/src.s60/cbsserverconnection.cpp
javaextensions/wma/sms_cbs/pushplugin/inc/serverconnectionbase.h
javaextensions/wma/sms_cbs/pushplugin/sms/build/eabi/javasmsscpluginu.def
javaextensions/wma/sms_cbs/pushplugin/sms/build/javasmsscplugin_0x2002DCD3.mmp
javaextensions/wma/sms_cbs/pushplugin/sms/src.s60/smsserverconnection.cpp
javaextensions/wma/sms_cbs/pushplugin/src/serverconnectionbase.cpp
javaextensions/wma/sms_cbs/src.s60/csmsplatformservices60impl.cpp
javamanager/bld.inf
javamanager/debugapi/build/debugapi_0x2002DCAB.mmp
javamanager/javaappschemeplugin/build/javaappschemeplugin.mmp
javamanager/javaappschemeplugin/data/2002875F.rss
javamanager/javaappschemeplugin/data/2002875F_iad.rss
javamanager/javabackup/javabackupcore/build/javabackup.mmp
javamanager/javabackup/javabackupcore/src.s60/jsbcdataowner.h
javamanager/javabackup/midp2backup/build/midp2backupplugin.mmp
javamanager/javabackup/midp2backup/data/10282474.rss
javamanager/javabackup/midp2backup/data/10282474_iad.rss
javamanager/javabackup/midp2backup/src.s60/javastoragebackuputil.cpp
javamanager/javabackup/midp2backup/src.s60/mediaidupdater.h
javamanager/javabackup/midp2backup/src.s60/midp2backupplugin.cpp
javamanager/javabackup/midp2backup_usif/build/bld.inf
javamanager/javabackup/midp2backup_usif/build/bwins/backupu.def
javamanager/javabackup/midp2backup_usif/build/eabi/backupu.def
javamanager/javabackup/midp2backup_usif/build/midp2backupplugin.mmp
javamanager/javabackup/midp2backup_usif/data/10282474.rss
javamanager/javabackup/midp2backup_usif/data/10282474_iad.rss
javamanager/javabackup/midp2backup_usif/src.s60/apparcbackuputil.cpp
javamanager/javabackup/midp2backup_usif/src.s60/apparcbackuputil.h
javamanager/javabackup/midp2backup_usif/src.s60/javaapparcutil.h
javamanager/javabackup/midp2backup_usif/src.s60/javaapparcutil.inl
javamanager/javabackup/midp2backup_usif/src.s60/javascrbackuputil.cpp
javamanager/javabackup/midp2backup_usif/src.s60/javascrbackuputil.h
javamanager/javabackup/midp2backup_usif/src.s60/javastoragebackuputil.cpp
javamanager/javabackup/midp2backup_usif/src.s60/javastoragebackuputil.h
javamanager/javabackup/midp2backup_usif/src.s60/javaversionbackuputil.cpp
javamanager/javabackup/midp2backup_usif/src.s60/javaversionbackuputil.h
javamanager/javabackup/midp2backup_usif/src.s60/midp2backupdataids.h
javamanager/javabackup/midp2backup_usif/src.s60/midp2backupplugin.cpp
javamanager/javabackup/midp2backup_usif/src.s60/midp2backupplugin.h
javamanager/javabackup/midp2backup_usif/src.s60/midp2backuppluginusif.cpp
javamanager/javabackup/midp2backup_usif/src.s60/midp2backuppluginusif.h
javamanager/javabackup/midp2backup_usif/src.s60/proxy.cpp
javamanager/javacaptain/bld.inf
javamanager/javacaptain/build/javacaptain.pro
javamanager/javacaptain/build/javacaptain_0x200211DC.mmp
javamanager/javacaptain/extensionplugins/autostarter/build/bld.inf
javamanager/javacaptain/extensionplugins/autostarter/build/bwins/javacaptain_ext_autostarteru.def
javamanager/javacaptain/extensionplugins/autostarter/build/eabi/javacaptain_ext_autostarteru.def
javamanager/javacaptain/extensionplugins/autostarter/build/javacaptain_ext_autostarter.pro
javamanager/javacaptain/extensionplugins/autostarter/build/javacaptain_ext_autostarter_0x2002EA7E.mmp
javamanager/javacaptain/extensionplugins/autostarter/inc/autostarter.h
javamanager/javacaptain/extensionplugins/autostarter/src.s60/autostarter.cpp
javamanager/javacaptain/extensionplugins/autostarter/src.s60/lookup.cpp
javamanager/javacaptain/extensionplugins/boot/src/booteventprovider.cpp
javamanager/javacaptain/extensionplugins/config/build/javacaptain_ext_config_0x2002DC9E.mmp
javamanager/javacaptain/extensionplugins/config/src/configextensionplugin.cpp
javamanager/javacaptain/extensionplugins/javacertstore/build/javacaptain_ext_javacertstore_0x2002DC9F.mmp
javamanager/javacaptain/extensionplugins/javacertstore/inc/javacertstore.h
javamanager/javacaptain/extensionplugins/javacertstore/src.s60/smartcardcryptotokenreader.cpp
javamanager/javacaptain/extensionplugins/javacertstore/src.s60/smartcardcryptotokenreader.h
javamanager/javacaptain/extensionplugins/javacertstore/src/javacertstore.cpp
javamanager/javacaptain/extensionplugins/javacertstore/tsrc.s60/build/javasmartcardcertsunittests.mmp
javamanager/javacaptain/extensionplugins/javacertstore/tsrc.s60/build/testsmartcardtokenplugin.mmp
javamanager/javacaptain/extensionplugins/javacertstore/tsrc.s60/src/101F5B72.rss
javamanager/javacaptain/extensionplugins/preinstallerstarter/build/bld.inf
javamanager/javacaptain/extensionplugins/preinstallerstarter/build/exports.inf
javamanager/javacaptain/extensionplugins/preinstallerstarter/build/javacaptain_ext_preinstallerstarter_0x2002DCA0.mmp
javamanager/javacaptain/extensionplugins/preinstallerstarter/inc/preinstallerstarter.h
javamanager/javacaptain/extensionplugins/preinstallerstarter/inc/preinstallerstartermessages.h
javamanager/javacaptain/extensionplugins/preinstallerstarter/src.s60/preinstallerstarter.cpp
javamanager/javacaptain/extensionplugins/scrupdater/inc/scrupdater.h
javamanager/javacaptain/extensionplugins/scrupdater/src.s60/lookup.cpp
javamanager/javacaptain/extensionplugins/scrupdater/src.s60/scrupdater.cpp
javamanager/javacaptain/extensionplugins/scrupdater/src/lookup.cpp
javamanager/javacaptain/extensionplugins/scrupdater/src/scrupdater.cpp
javamanager/javacaptain/extensionplugins/scrupdater/src/scrupdater.h
javamanager/javacaptain/extensionplugins/settingslistener/build/javacaptain_ext_settingslistener.pro
javamanager/javacaptain/extensionplugins/settingslistener/build/javacaptain_ext_settingslistener_0x200315D8.mmp
javamanager/javacaptain/extensionplugins/storageserver/build/javacaptain_ext_storageserverplugin_0x2002DCA3.mmp
javamanager/javacaptain/inc.s60/pmc.h
javamanager/javacaptain/javacaptain.pro
javamanager/javacaptain/subsystem.mk
javamanager/javacaptain/systemams/build/systemams.mmp
javamanager/javacaptain/systemams/src/certificatesmanager.cpp
javamanager/javainstaller/appinstuiplugin/build/javainstalllauncher.mmp
javamanager/javainstaller/appinstuiplugin/data/101F875F.rss
javamanager/javainstaller/appinstuiplugin/data/101F875F_iad.rss
javamanager/javainstaller/appinstuiplugin/src/javainstalllauncher.cpp
javamanager/javainstaller/iconsizenotifplugin/build/javaiconsizenotifplugin.mmp
javamanager/javainstaller/iconsizenotifplugin/data/javaiconsizenotifplugin.rss
javamanager/javainstaller/iconsizenotifplugin/data/javaiconsizenotifplugin_iad.rss
javamanager/javainstaller/installcopier/build/javainstallcopier.pro
javamanager/javainstaller/installcopier/src/javainstallcopier.cpp
javamanager/javainstaller/installer/build/build.xml
javamanager/javainstaller/installer/build/exports.inf
javamanager/javainstaller/installer/build/javainstaller.pro
javamanager/javainstaller/installer/build/javainstaller_0x2002DCB4.mmp
javamanager/javainstaller/installer/conf/CI_javainstaller.confml
javamanager/javainstaller/installer/javasrc.s60/com/nokia/mj/impl/installer/applicationregistrator/ApplicationRegistrator.java
javamanager/javainstaller/installer/javasrc.s60/com/nokia/mj/impl/installer/applicationregistrator/SifNotifier.java
javamanager/javainstaller/installer/javasrc.s60/com/nokia/mj/impl/installer/applicationregistrator/SifRegistrator.java
javamanager/javainstaller/installer/javasrc.s60/com/nokia/mj/impl/installer/utils/FileRoots.java
javamanager/javainstaller/installer/javasrc.s60/com/nokia/mj/impl/installer/utils/PropertyProvider.java
javamanager/javainstaller/installer/javasrc.s60/com/nokia/mj/impl/installer/utils/SysUtil.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/GetComponentInfo.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/InstallationNotifier.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/Installer.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/InstallerResultMessage.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/applicationregistrator/AppRegInfo.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/jsrpluginnotifier/InstallerExtensionInfo.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/AddSecurityData.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/AuthenticateJar.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/CheckDiskSpace.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/CheckJarPackages.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/ConfirmInstallation.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/ConvertIcons.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/DlListener.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/FinalizeInstallation.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/GrantJarPermissions.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/HandleCustomAttributes.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/InstallBall.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/NotifyJsrPlugins.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/OcspListener.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/PrepareInstallation.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/PrepareSplashScreen.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/RegisterApplicationToSif.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/StartProgressNotifications.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/uninstall/steps/FinalizeUninstallation.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/uninstall/steps/GetFromStorage.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/uninstall/steps/NotifyJsrPlugins.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/uninstall/steps/StartProgressNotifications.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/uninstall/steps/UninstallBall.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/storagehandler/StorageHandler.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/storagehandler/SuiteInfo.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/utils/Args.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/utils/AutoStartPermission.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/utils/PropertyListener.java
javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/rt/installer/ApplicationUtilsImpl.java
javamanager/javainstaller/installer/src.s60/applicationregistrator/applicationregistrator.cpp
javamanager/javainstaller/installer/src.s60/applicationregistrator/sifnotifier.cpp
javamanager/javainstaller/installer/src.s60/applicationregistrator/sifregistrator.cpp
javamanager/javainstaller/installer/src.s60/iconconverter/iconconverter.cpp
javamanager/javainstaller/installer/src.s60/jadjarmatcher/jadjarmatcher.cpp
javamanager/javainstaller/installer/src.s60/jadjarmatcher/jadjarmatcherscanfrominbox.cpp
javamanager/javainstaller/installer/src.s60/utils/filewriter.cpp
javamanager/javainstaller/installer/src.s60/utils/propertylistener.cpp
javamanager/javainstaller/installer/src.s60/utils/propertylistener.h
javamanager/javainstaller/installer/src.s60/utils/propertyprovider.cpp
javamanager/javainstaller/installer/src.s60/utils/sysutil.cpp
javamanager/javainstaller/installer/tsrc/build/build.xml
javamanager/javainstaller/installer/tsrc/build/jiut.bat
javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/GetComponentInfoTest.java
javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/InstallerEngineTest.java
javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/applicationregistrator/ApplicationRegistratorTest.java
javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/applicationregistrator/SifRegistratorTest.java
javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/customisationproperties/CustomisationPropertiesTest.java
javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/downloader/DownloaderTest.java
javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/downloader/NotificationPosterTest.java
javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/storagehandler/StorageHandlerTest.java
javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/utils/AttributeValidatorTest.java
javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/utils/SysUtilTest.java
javamanager/javainstaller/installer/tsrc/testdata/installerengine/HelloWorld_3_midlets.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/00000019.jar
javamanager/javainstaller/installer/tsrc/testdata/utils/00000046.jar
javamanager/javainstaller/installer/tsrc/testdata/utils/00000058.jar
javamanager/javainstaller/installer/tsrc/testdata/utils/00000070.jar
javamanager/javainstaller/installer/tsrc/testdata/utils/00000090.jar
javamanager/javainstaller/installer/tsrc/testdata/utils/00000150.jar
javamanager/javainstaller/installer/tsrc/testdata/utils/00000172.jar
javamanager/javainstaller/installer/tsrc/testdata/utils/00000175.jar
javamanager/javainstaller/installer/tsrc/testdata/utils/00000182.jar
javamanager/javainstaller/installer/tsrc/testdata/utils/00000189.jar
javamanager/javainstaller/installer/tsrc/testdata/utils/00000250.jar
javamanager/javainstaller/installer/tsrc/testdata/utils/00000305.jar
javamanager/javainstaller/installer/tsrc/testdata/utils/00000390.jar
javamanager/javainstaller/installer/tsrc/testdata/utils/00000500.jar
javamanager/javainstaller/installer/tsrc/testdata/utils/00000582.jar
javamanager/javainstaller/installer/tsrc/testdata/utils/00000618.jar
javamanager/javainstaller/installer/tsrc/testdata/utils/00000703.jar
javamanager/javainstaller/installer/tsrc/testdata/utils/3DSpaceShooter.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/800_x_N97_64GB_fr_speed_v5_32_01.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/BCExchanger.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/BCExchanger.jar
javamanager/javainstaller/installer/tsrc/testdata/utils/BCExchanger.zip
javamanager/javainstaller/installer/tsrc/testdata/utils/DevCertTestMIDlet.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/Empty.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/EmptyLines.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/FL_Rocks.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/NDRM.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/PlatformReqHTTP.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/SimpleRMS8.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/SimpleRMS8.jar
javamanager/javainstaller/installer/tsrc/testdata/utils/SunShines3D_DEMO_nokia_N900_EN_IGP_ATandT_901.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/SunShines3D_DEMO_nokia_N900_EN_IGP_ATandT_901.zip
javamanager/javainstaller/installer/tsrc/testdata/utils/TestMidlet.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/TestMidlet2.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/TestMidlet3.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/calc2_en_de_es_ES_fr_it_tr_TR_nl_NL_pt_PT.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/calc2_en_de_es_ES_fr_it_tr_TR_nl_NL_pt_PT.zip
javamanager/javainstaller/installer/tsrc/testdata/utils/ceac00.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/cecn02.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/cecn06.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/ceis00.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/ceis09.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/ceis14.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/cejp04.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/ceko01.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/cems01.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/cems11.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/ceut03.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/ceut04.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/ceut08.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/ceut09.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/einstein_EN_FR_IT_DE_ES_N97_v2942.jar
javamanager/javainstaller/installer/tsrc/testdata/utils/javahelper.mif
javamanager/javainstaller/installer/tsrc/testdata/utils/mine_en_fr_de_it_es_ES_pt_PT.jad
javamanager/javainstaller/installer/tsrc/testdata/utils/utf8bom.jad
javamanager/javainstaller/installer/tsrc/testserver/build/build.xml
javamanager/javainstaller/installer/tsrc/testserver/build/readme.txt
javamanager/javainstaller/installer/tsrc/testserver/content/HelloWorld.jad
javamanager/javainstaller/installer/tsrc/testserver/content/HelloWorld.jar
javamanager/javainstaller/installer/tsrc/testserver/content/HelloWorld_8mb.jad
javamanager/javainstaller/installer/tsrc/testserver/content/HelloWorld_8mb.jar
javamanager/javainstaller/installer/tsrc/testserver/content/HelloWorld_ota.jad
javamanager/javainstaller/installer/tsrc/testserver/content/HelloWorld_redirect.jad
javamanager/javainstaller/installer/tsrc/testserver/content/HelloWorld_redirect.jar
javamanager/javainstaller/installer/tsrc/testserver/content/META-INF/MANIFEST.MF
javamanager/javainstaller/installer/tsrc/testserver/content/META-INF/context.xml
javamanager/javainstaller/installer/tsrc/testserver/content/WEB-INF/web.xml
javamanager/javainstaller/installer/tsrc/testserver/content/httpauth/HelloWorld_http_auth.jad
javamanager/javainstaller/installer/tsrc/testserver/content/httpauth/HelloWorld_http_auth.jar
javamanager/javainstaller/installer/tsrc/testserver/javasrc/com/nokia/mj/impl/installer/testserver/JadServlet.java
javamanager/javainstaller/installer/tsrc/testserver/javasrc/com/nokia/mj/impl/installer/testserver/NotifyServlet.java
javamanager/javainstaller/installer/tsrc/testserver/javasrc/com/nokia/mj/impl/installer/testserver/RedirectServlet.java
javamanager/javainstaller/installerui/build/build.xml
javamanager/javainstaller/installerui/build/javainstallerui_0x2002DCB6.mmp
javamanager/javainstaller/installerui/data/java_3_trusted.png
javamanager/javainstaller/installerui/data/java_3_untrusted.png
javamanager/javainstaller/installerui/data/javaapplicationinstaller.css
javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/InstallerUi.java
javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/InstallerUiFactory.java
javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt/InstallerUiEswt.java
javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/CertificateDetailsView.java
javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ConfirmationViewBase.java
javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ErrorDetailsView.java
javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ErrorView.java
javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/InstallConfirmationView.java
javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/InstallerUiEswt.java
javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/InstallerUiTexts.java
javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/LaunchAppQueryView.java
javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/PermissionConfirmationView.java
javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/PermissionDetailsView.java
javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ProgressView.java
javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/RuntimeConfirmationView.java
javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/UsernamePasswordView.java
javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ViewBase.java
javamanager/javainstaller/javasifplugin/build/javasifplugin.mmp
javamanager/javainstaller/javasifplugin/data/2002BC6F.rss
javamanager/javainstaller/javasifplugin/data/2002BC6F_iad.rss
javamanager/javainstaller/javasifplugin/inc/asyncwaitcallback.h
javamanager/javainstaller/javasifplugin/inc/javasifplugin.h
javamanager/javainstaller/javasifplugin/inc/resultsserver.h
javamanager/javainstaller/javasifplugin/src/asyncwaitcallback.cpp
javamanager/javainstaller/javasifplugin/src/javasifplugin.cpp
javamanager/javainstaller/javasifplugin/src/proxy.cpp
javamanager/javainstaller/javasifplugin/src/resultsserver.cpp
javamanager/javainstaller/javasifplugin/tsrc/build/testsifapi.pro
javamanager/javainstaller/javasifplugin/tsrc/src.s60/main.cpp
javamanager/javainstaller/subsystem.mk
javamanager/javalauncher/build/javalauncher_0x2001E262.mmp
javamanager/javalauncher/src.s60/javalauncher.cpp
javamanager/javamanager.pro
javamanager/javarecognizer/build/recjar.mmp
javamanager/javarecognizer/data/102031FB.rss
javamanager/javarecognizer/data/102031FB_iad.rss
javamanager/javarecognizer/src/recjar.cpp
javamanager/javaregistry/build/eabi/javaregistryclientu.def
javamanager/javaregistry/build/javaregistryclient_0x10282476.mmp
javamanager/javaregistry/client/src/javaattribute.cpp
javamanager/javaregistry/client/src/javaregistryentry.cpp
javamanager/javaregistry/client/src/writeablejavaregistry.cpp
javamanager/javaregistry/client/src/writeablejavaregistryentry.cpp
javamanager/javaregistry/javasizehelper/client/build/javasizehelperclient_0x2002DCD1.mmp
javamanager/javaregistry/javasizehelper/server/build/javasizehelperserver_0x2002DCD2.mmp
javamanager/javaregistry/legacy/server/src/javaregstore.cpp
javamanager/javaregistry/legacy/tsrc/build/testlegacyregistry.mmp
javamanager/javaregistry/legacy/tsrc/src/AllTests.cpp
javamanager/javaregistry/legacy/tsrc/src/testinstalledappsregistry.cpp
javamanager/javaregistry/legacy/tsrc/src/testinstalledappsregistryentry.cpp
javamanager/javaregistry/legacy/tsrc/src/testlegacyregistry.cpp
javamanager/javaregistry/legacy/tsrc/src/testmidletentry.cpp
javamanager/javaregistry/legacy/tsrc/src/testsuiteentry.cpp
javamanager/javaregistry/tsrc/build/alltests.mmp
javamanager/javaregistry/tsrc/src/AllTests.cpp
javamanager/javaregistry/tsrc/src/AllTests.h
javamanager/javaregistry/tsrc/src/testregistry.cpp
javamanager/javaregistry/tsrc/src/testregistryapplicationentry.cpp
javamanager/javaregistry/tsrc/src/testregistryentry.cpp
javamanager/javaregistry/tsrc/src/testregistrypackageentry.cpp
javamanager/javasettings/appmngrplugin/build/appmngr2midletruntime.mmp
javamanager/javasettings/appmngrplugin/data/20016bf7.rss
javamanager/javasettings/appmngrplugin/data/20016bf7_iad.rss
javamanager/javasettings/appmngrplugin/inc/appmngr2midletsettingshandler.h
javamanager/javasettings/appmngrplugin/inc/appmngr2midletsettingsutil.h
javamanager/javasettings/appmngrplugin/src/appmngr2midletappinfo.cpp
javamanager/javasettings/appmngrplugin/src/appmngr2midletinfoiterator.cpp
javamanager/javasettings/appmngrplugin/src/appmngr2midletmanifestreader.cpp
javamanager/javasettings/appmngrplugin/src/appmngr2midletsettingshandler.cpp
javamanager/javasettings/appmngrplugin/src/appmngr2midletsettingsutil.cpp
javamanager/javasettings/subsystem.mk
javamanager/javasidchecker/build/javasidchecker.mmp
javamanager/javasidchecker/data/10281FBE.rss
javamanager/javasidchecker/data/10281FBE_iad.rss
javamanager/javasidchecker/src/javasidchecker.cpp
javamanager/javaupgradeapp/build/bld.inf
javamanager/javaupgradeapp/build/javaupgradeapp.pro
javamanager/javaupgradeapp/build/javaupgradeapp_0x2002FF64.mmp
javamanager/javaupgradeapp/sis/java_upgradeapp.pkg
javamanager/javaupgradeapp/src.s60/javaupgradeapp.cpp
javamanager/preinstaller/build/javapreinstaller.pro
javamanager/preinstaller/build/javapreinstaller_0x2002DCC6.mmp
javamanager/preinstaller/src.s60/main.cpp
javamanager/preinstaller/src.s60/silentmidletinstall.cpp
javamanager/preinstaller/src.s60/silentmidletinstall.h
javamanager/subsystem.mk
javaruntimes/bld.inf
javaruntimes/installer/starterdll/build/javainstallerstarter_0x2002DCB5.mmp
javaruntimes/installer/starterdll/src/main.cpp
javaruntimes/installer/starterexe/build/javainstaller_0x2001843A.mmp
javaruntimes/javaruntimes.pro
javaruntimes/jvmargmodifier/default/build/javajvmargsmodifier_0x2002DCB8.mmp
javaruntimes/jvmargmodifier/file/build/javajvmargsmodifierfile.pro
javaruntimes/jvmargmodifier/file/build/javajvmargsmodifierfile_0x2002DCB9.mmp
javaruntimes/jvmargmodifier/file/src/jvmargsmodifier.cpp
javaruntimes/midp/runtime/build/build.xml
javaruntimes/midp/runtime/build/javamidpruntime.pro
javaruntimes/midp/runtime/build/javamidpruntime_0x2002DCBF.mmp
javaruntimes/midp/runtime/javasrc/com/nokia/mj/impl/rt/midp/Main.java
javaruntimes/midp/runtime/javasrc/com/nokia/mj/impl/rt/midp/SchemeHandlerBase.java
javaruntimes/midp/runtime/javasrc/com/nokia/mj/impl/rt/taskmanager/SchemeHandler.java
javaruntimes/midp/runtime/javasrc/com/nokia/mj/impl/rt/utils/CmdLineArgsPermission.java
javaruntimes/midp/runtime/javasrc/javax/microedition/midlet/MIDlet.java
javaruntimes/midp/runtime/src.s60/platformrequesthandler.cpp
javaruntimes/midp/runtimestarter/build/javamidpstarter_0x2002DCC0.mmp
javaruntimes/midp/runtimestarter/src/midpruntimestarter.cpp
javaruntimes/standalone/build/bld.inf
javaruntimes/standalone/build/javastarter_0x2002E6A7.mmp
javaruntimes/standalone/src/javastarterimpl.cpp
javaruntimes/starter/build/bld.inf
javaruntimes/starter/build/java.pro
javaruntimes/starter/build/java_0x102033E6.mmp
javaruntimes/starter/build/javamidp.pro
javaruntimes/starter/build/javamidp_0x102033E6.mmp
javaruntimes/starter/build/javamidp_installer.pkg
javaruntimes/starter/build/javamidp_template.pkg
javaruntimes/starterutils/build/exports.inf
javaruntimes/starterutils/build/javaruntimestarterutils_0x2002DCCC.mmp
javaruntimes/starterutils/src.s60/j9starters60.cpp
javaruntimes/subsystem.mk
javatools/bld.inf
javatools/javacaptain_app/build/bld.inf
javatools/javacaptain_app/build/javacaptainapp.mmp
javatools/javacaptain_app/src.s60/javacap.cpp
javatools/javacaptain_app/src.s60/javacap.h
javatools/javacaptain_app/src.s60/javacap.hrh
javatools/javacaptain_app/src.s60/javacap.rss
javatools/javacaptain_app/src.s60/javacap_reg.rss
javatools/javacontrolpanel/controlpanel/build/bld.inf
javatools/javacontrolpanel/controlpanel/build/build.xml
javatools/javacontrolpanel/controlpanel/build/bwins/javacontrolpanelu.def
javatools/javacontrolpanel/controlpanel/build/eabi/javacontrolpanelu.def
javatools/javacontrolpanel/controlpanel/build/javacontrolpanel.pro
javatools/javacontrolpanel/controlpanel/build/javacontrolpanel_0x2002FF62.mmp
javatools/javacontrolpanel/controlpanel/javasrc/com/nokia/mj/impl/javacontrolpanel/JavaCaptain.java
javatools/javacontrolpanel/controlpanel/javasrc/com/nokia/mj/impl/javacontrolpanel/JavaControlPanel.java
javatools/javacontrolpanel/controlpanel/javasrc/com/nokia/mj/impl/javacontrolpanel/JavaControlPanelUi.java
javatools/javacontrolpanel/controlpanel/javasrc/com/nokia/mj/impl/javacontrolpanel/Redirector.java
javatools/javacontrolpanel/controlpanel/javasrc/com/nokia/mj/impl/javacontrolpanel/SecurityConfig.java
javatools/javacontrolpanel/controlpanel/javasrc/com/nokia/mj/impl/rt/javacontrolpanel/ApplicationInfoImpl.java
javatools/javacontrolpanel/controlpanel/javasrc/com/nokia/mj/impl/rt/javacontrolpanel/ApplicationUtilsImpl.java
javatools/javacontrolpanel/controlpanel/src.s60/logredirector.cpp
javatools/javacontrolpanel/controlpanel/src.s60/logredirector.h
javatools/javacontrolpanel/controlpanel/src.s60/security.cpp
javatools/javacontrolpanel/controlpanel/src.s60/security.h
javatools/javacontrolpanel/controlpanel/src/javacaptain.cpp
javatools/javacontrolpanel/controlpanel/src/redirector.cpp
javatools/javacontrolpanel/controlpanel/src/securityconfig.cpp
javatools/javacontrolpanel/starter/build/bld.inf
javatools/javacontrolpanel/starter/build/javacontrolpanel.pro
javatools/javacontrolpanel/starter/build/javacontrolpanel_0x2002FF61.mmp
javatools/javacontrolpanel/starter/data/javacontrolpanel_reg.rss
javatools/javacontrolpanel/starter/src/main.cpp
javatools/javafinishjrtinstall/build/bld.inf
javatools/javafinishjrtinstall/build/javafinishjrtinstall.pro
javatools/javafinishjrtinstall/build/javafinishjrtinstall_0x20031E4D.mmp
javatools/javafinishjrtinstall/src.s60/main.cpp
javatools/javasecuritycustomization/build/javasecuritycustomization_0x20028786.mmp
javatools/javatools.pro
javatools/subsystem.mk
javatools/tckrunner/runner/build/tckrunner_0x2002DCE3.mmp
javatools/tckrunner/runner/javasrc/com/nokia/mj/impl/rt/tckrunner/ApplicationUtilsImpl.java
javatools/tckrunner/runner/src/tckrunnernative.cpp
javatools/tckrunner/starter/build/tckrunner_0x2002121E.mmp
javauis/amms_akn/build/build.xml
javauis/amms_akn/build/javaamms.pro
javauis/amms_akn/build/javaamms_0x2002DC96.mmp
javauis/amms_akn/mmacontrol/inc.emc/cammspancontrol.h
javauis/amms_akn/mmacontrol/inc.mmf/cammspancontrol.h
javauis/amms_akn/mmacontrol/inc/cammscustomcommandutility.h
javauis/amms_akn/mmacontrol/src.emc/cammsprioritycontrol.cpp
javauis/amms_akn/mmacontrol/src.mmf/cammsprioritycontrol.cpp
javauis/amms_akn/mmacontrol/src/cammsaudiooutputcontrol.cpp
javauis/amms_akn/src_tuner/javasrc/com/nokia/amms/control/tuner/TunerControlImpl.java
javauis/amms_akn/src_tuner/javasrc/com/nokia/microedition/media/protocol/capture/radio/Protocol.java
javauis/amms_akn/src_tuner/native/external_include/fmradioenginecrkeys.h
javauis/amms_akn/src_tuner/native/external_include/tuner.h
javauis/amms_akn/src_tuner/native/external_include/tuner.inl
javauis/amms_akn/src_tuner/native/inc/ammstunerfactory.h
javauis/amms_akn/src_tuner/native/inc/cammstunercontrol.h
javauis/amms_akn/src_tuner/native/inc/cammstunerplayer.h
javauis/amms_akn/src_tuner/native/inc/cammstunerpresetshandler.h
javauis/amms_akn/src_tuner/native/inc/cammstunervolumecontrol.h
javauis/amms_akn/src_tuner/native/inc/tammstunerpreset.h
javauis/amms_akn/src_tuner/native/src/ammstunerfactory.cpp
javauis/amms_akn/src_tuner/native/src/cammstunercontrol.cpp
javauis/amms_akn/src_tuner/native/src/cammstunerplayer.cpp
javauis/amms_akn/src_tuner/native/src/cammstunerpresetshandler.cpp
javauis/amms_akn/src_tuner/native/src/cammstunervolumecontrol.cpp
javauis/amms_akn/src_tuner/native/src/protocol.cpp
javauis/amms_akn/src_tuner/native/src/tammstunerpreset.cpp
javauis/amms_akn/src_tuner/native/src/tunercontrol.cpp
javauis/bld.inf
javauis/coreui/inc/javacoreui.h
javauis/coreui/tsrc/build/exports.inf
javauis/coreui/tsrc/build/testcoreui.pro
javauis/coreui/tsrc/readme.txt
javauis/coreui/tsrc/src/alltests.cpp
javauis/coreui/tsrc/src/testcoreui.cpp
javauis/coreui/tsrc/src/testutils.h
javauis/coreui/tsrc/subsystem.mk
javauis/coreui/tsrc/testcoreui/build/build.xml
javauis/coreui/tsrc/testcoreui/build/bwins/javacoreuiu.def
javauis/coreui/tsrc/testcoreui/build/eabi/javacoreuiu.def
javauis/coreui/tsrc/testcoreui/build/javacoreui.pro
javauis/coreui/tsrc/testcoreui/javasrc/com/nokia/mj/impl/coreuitest/CoreUiImpl.java
javauis/coreui/tsrc/testcoreui/javasrc/com/nokia/mj/impl/coreuitest/CoreUiTests.java
javauis/coreui/tsrc/testcoreui/src/coreuitestimpl.cpp
javauis/coreui/tsrc/testcoreui/src/coreuitestimpl.h
javauis/coreui/tsrc/tst.bat
javauis/coreui/tsrc/tst2.bat
javauis/coreui_akn/build/build.xml
javauis/coreui_akn/build/javacoreui.pro
javauis/coreui_akn/build/javacoreui_0x2002DCA8.mmp
javauis/coreui_akn/javasrc/com/nokia/mj/impl/coreuiavkon/CoreUiImpl.java
javauis/coreui_akn/src/coreuiavkonimpl.cpp
javauis/coreui_akn/src/coreuijni.cpp
javauis/eswt_akn/eswtapifacade/group/eswtapifacade.mmp
javauis/eswt_akn/eswtdirectcontent/build/build.xml
javauis/eswt_akn/eswtdirectcontent/build/eswtdirectcontent_0x2002DC94.mmp
javauis/eswt_akn/eswtphysics/group/eswtphysics.mmp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/build/bwins/eswtu.def
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/build/eabi/eswtu.def
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/build/eswt.pro
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/build/eswt_0x2002DC93.mmp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/eswtgraphics.h
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/eswtwidgetscore.h
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/mifconverter.h
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtcommandmenu.h
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtcontrolbase.h
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtdisplaybase.h
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtimagedataloader.h
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtinput.h
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtlistbase.h
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtlistbox.h
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtlistboxlists.h
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtlistview.h
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtmobiledevice.h
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtrotateimage.h
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtsortedlist.h
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swttable.h
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtuiutils.h
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/utils.h
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/imagescaler.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/mifconverter.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/org_eclipse_ercp_swt_mobile_internal_OS.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/org_eclipse_swt_internal_symbian_OS.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtcommandarranger.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtcommandmenu.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtcontrolbase.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtcontrolhelper.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtdisplay.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtdisplaybase.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtevents.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtimage.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtimagedataloader.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtinput.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtlistbase.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtlistbox.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtlistboxlists.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtlistview.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtmenuitem.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtmobiledevice.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtmultipagedialog.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtprogressbar.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtrotateimage.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtshell.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtslider.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtsortedlist.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swttable.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swttext.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swttextbase.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swttextextension.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtuiutils.cpp
javauis/eswt_akn/org.eclipse.ercp.swt.s60/src/org/eclipse/swt/graphics/Image.java
javauis/eswt_akn/org.eclipse.ercp.swt.s60/src/org/eclipse/swt/internal/extension/ImageUtil.java
javauis/eswt_akn/org.eclipse.ercp.swt.s60/src/org/eclipse/swt/internal/symbian/OS.java
javauis/javalegacyutils/build/javalegacyutils.pro
javauis/javalegacyutils/build/javalegacyutils_0x2002DCBB.mmp
javauis/javauis.pro
javauis/lcdui_akn/conf/lcdui.confml
javauis/lcdui_akn/conf/lcdui_102072C2.crml
javauis/lcdui_akn/javalcdui/build/build.xml
javauis/lcdui_akn/javalcdui/build/javalcdui.pro
javauis/lcdui_akn/javalcdui/build/javalcdui_0x2002DCBA.mmp
javauis/lcdui_akn/javalcdui/inc/CMIDEnv.h
javauis/lcdui_akn/javalcdui/inc/lcdui.h
javauis/lcdui_akn/javalcdui/inc/reflcdui.h
javauis/lcdui_akn/javalcdui/javasrc.nokialcdui/com/nokia/mid/ui/Clipboard.java
javauis/lcdui_akn/javalcdui/javasrc.nokialcdui/com/nokia/mid/ui/S40TextEditor.java
javauis/lcdui_akn/javalcdui/javasrc.nokialcdui/com/nokia/mid/ui/TextEditor.java
javauis/lcdui_akn/javalcdui/javasrc.nokialcdui/com/nokia/mid/ui/TextEditorExtensionAccess.java
javauis/lcdui_akn/javalcdui/javasrc.nokialcdui/com/nokia/mid/ui/TextEditorListener.java
javauis/lcdui_akn/javalcdui/javasrc.nokialcdui/com/nokia/mid/ui/TextEditorTouchControl.java
javauis/lcdui_akn/javalcdui/javasrc/javax/microedition/lcdui/Canvas.java
javauis/lcdui_akn/javalcdui/javasrc/javax/microedition/lcdui/Image.java
javauis/lcdui_akn/javalcdui/javasrc/javax/microedition/lcdui/Toolkit.java
javauis/lcdui_akn/javalcdui/javasrc/javax/microedition/lcdui/game/LayerManager.java
javauis/lcdui_akn/javalcdui/src/CMIDEnv.cpp
javauis/lcdui_akn/javalcdui/src/CMIDToolkit.cpp
javauis/lcdui_akn/javalcdui/src/Canvas.cpp
javauis/lcdui_akn/lcdgd/build/lcdc16ma.mmp
javauis/lcdui_akn/lcdgd/build/lcdc16mu.mmp
javauis/lcdui_akn/lcdgd/build/lcdc4k.mmp
javauis/lcdui_akn/lcdgd/build/lcdc64k.mmp
javauis/lcdui_akn/lcdgd/build/lcdgdrv.mmp
javauis/lcdui_akn/lcdgd/build/lcdgdrvi.mmp
javauis/lcdui_akn/lcdgd/resource/10208162.RSS
javauis/lcdui_akn/lcdgd/resource/10208162_iad.RSS
javauis/lcdui_akn/lcdgd/resource/10208164.RSS
javauis/lcdui_akn/lcdgd/resource/10208164_iad.RSS
javauis/lcdui_akn/lcdgd/resource/10208166.RSS
javauis/lcdui_akn/lcdgd/resource/10208166_iad.RSS
javauis/lcdui_akn/lcdgd/resource/10208168.RSS
javauis/lcdui_akn/lcdgd/resource/10208168_iad.RSS
javauis/lcdui_akn/lcdgd/src/lcdc16ma.cpp
javauis/lcdui_akn/lcdgd/src/lcdc16mu.cpp
javauis/lcdui_akn/lcdgd/src/lcdc4k.cpp
javauis/lcdui_akn/lcdgd/src/lcdc64k.cpp
javauis/lcdui_akn/lcdgr/build/lcdgr.mmp
javauis/lcdui_akn/lcdgr/src/CMIDGraphics.cpp
javauis/lcdui_akn/lcdui/build/lcdui.mmp
javauis/lcdui_akn/lcdui/inc/CMIDAppUi.h
javauis/lcdui_akn/lcdui/inc/CMIDCanvas.h
javauis/lcdui_akn/lcdui/inc/CMIDCanvasKeypad.h
javauis/lcdui_akn/lcdui/inc/CMIDChoiceGroupControl.h
javauis/lcdui_akn/lcdui/inc/CMIDChoiceGroupItem.h
javauis/lcdui_akn/lcdui/inc/CMIDChoiceGroupListBox.h
javauis/lcdui_akn/lcdui/inc/CMIDChoiceGroupModel.h
javauis/lcdui_akn/lcdui/inc/CMIDCustomItem.h
javauis/lcdui_akn/lcdui/inc/CMIDDisplayable.h
javauis/lcdui_akn/lcdui/inc/CMIDForm.h
javauis/lcdui_akn/lcdui/inc/CMIDFormRow.h
javauis/lcdui_akn/lcdui/inc/CMIDGaugeItem.h
javauis/lcdui_akn/lcdui/inc/CMIDItemLabel.h
javauis/lcdui_akn/lcdui/inc/CMIDKeyDecoder.h
javauis/lcdui_akn/lcdui/src/CMIDAppUi.cpp
javauis/lcdui_akn/lcdui/src/CMIDCanvas.cpp
javauis/lcdui_akn/lcdui/src/CMIDCanvasKeypad.cpp
javauis/lcdui_akn/lcdui/src/CMIDChoiceGroupControl.cpp
javauis/lcdui_akn/lcdui/src/CMIDChoiceGroupItem.cpp
javauis/lcdui_akn/lcdui/src/CMIDChoiceGroupListBox.cpp
javauis/lcdui_akn/lcdui/src/CMIDChoiceGroupModel.cpp
javauis/lcdui_akn/lcdui/src/CMIDCustomItem.cpp
javauis/lcdui_akn/lcdui/src/CMIDDateFieldItem.cpp
javauis/lcdui_akn/lcdui/src/CMIDDisplayable.cpp
javauis/lcdui_akn/lcdui/src/CMIDEdwin.cpp
javauis/lcdui_akn/lcdui/src/CMIDEdwinUtils.cpp
javauis/lcdui_akn/lcdui/src/CMIDForm.cpp
javauis/lcdui_akn/lcdui/src/CMIDGaugeItem.cpp
javauis/lcdui_akn/lcdui/src/CMIDItemLabel.cpp
javauis/lcdui_akn/lcdui/src/CMIDKeyDecoder.cpp
javauis/lcdui_akn/lcdui/src/CMIDTactileFeedbackExtension.cpp
javauis/lcdui_akn/lcdui/src/CMIDTextBoxDialogControl.cpp
javauis/lcdui_akn/lcdui/src/CMIDTextBoxQueryDialog.cpp
javauis/lcdui_akn/lcdui/src/CMIDTextEditor.cpp
javauis/lcdui_akn/lcdui/src/CMIDTextEditorEdwin.cpp
javauis/lcdui_akn/lcdui/src/CMIDTextFieldEdwin.cpp
javauis/lcdui_akn/lcdui/src/CMIDTextFieldItem.cpp
javauis/lcdui_akn/lcdui/src/CMIDTicker.cpp
javauis/lcdui_akn/lcdui/src/Cmidformrow.cpp
javauis/lcdui_akn/lcduiphysicswrapper/build/lcduiphysicswrapper.mmp
javauis/m2g_akn/build/javam2g_0x2002DCBD.mmp
javauis/m2g_akn/javasrc/com/nokia/microedition/m2g/M2GSVGElement.java
javauis/m3g_akn/build/javam3g_0x2002DCBE.mmp
javauis/mmapi_akn/audiostreaming/inc.emc/cmmaaudiostreammetadatacontrol.h
javauis/mmapi_akn/baseline/inc.emc/cmmaemcaudioplayer.h
javauis/mmapi_akn/baseline/inc.nga/cmmavideoplayer.h
javauis/mmapi_akn/baseline/inc/cmmaaudiometadatacontrol.h
javauis/mmapi_akn/baseline/inc/cmmadisplay.h
javauis/mmapi_akn/baseline/inc/cmmaframepositioningcontrol.h
javauis/mmapi_akn/baseline/inc/cmmamidimetadatacontrol.h
javauis/mmapi_akn/baseline/inc/mmmadisplay.h
javauis/mmapi_akn/baseline/inc/tmmaparametervalidator.h
javauis/mmapi_akn/baseline/javasrc.emc/com/nokia/microedition/media/ManagerImpl.java
javauis/mmapi_akn/baseline/src.dsa/cmmacameraplayer.cpp
javauis/mmapi_akn/baseline/src.nga/cmmacameraplayer.cpp
javauis/mmapi_akn/baseline/src.nga/cmmavideoplayer.cpp
javauis/mmapi_akn/baseline/src/cmmaaudiorecorder.cpp
javauis/mmapi_akn/baseline/src/cmmacanvasdisplay.cpp
javauis/mmapi_akn/baseline/src/cmmadisplay.cpp
javauis/mmapi_akn/baseline/src/cmmaplayer.cpp
javauis/mmapi_akn/baseline/src/cmmasnapshotevent.cpp
javauis/mmapi_akn/baseline/src/cmmavideourlplayerclipstreamdelegate.cpp
javauis/mmapi_akn/baseline/src/cmmavideourlplayerlivestreamdelegate.cpp
javauis/mmapi_akn/baseline/src/tmmaparametervalidator.cpp
javauis/mmapi_akn/build/exports.inf
javauis/mmapi_akn/build/javamobilemedia.pro
javauis/mmapi_akn/build/javamobilemedia_0x2002DCC2.mmp
javauis/mmapi_akn/src_drmv2/inc/cmmadrmmetadatacontrol.h
javauis/mmapi_akn/src_drmv2/src/cmmadrmplayerfactory.cpp
javauis/nokiasound/build/bld.inf
javauis/nokiasound/build/build.xml
javauis/nokiasound/build/bwins/javanokiasoundu.def
javauis/nokiasound/build/eabi/javanokiasoundu.def
javauis/nokiasound/build/javanokiasound.pro
javauis/nokiasound/build/javanokiasound_0x2002DCC4.mmp
javauis/nokiasound/inc/CMIDClip.h
javauis/nokiasound/inc/CMIDSound.h
javauis/nokiasound/inc/CMIDSoundEvent.h
javauis/nokiasound/inc/CMIDSoundImpl.h
javauis/nokiasound/inc/CMIDTone.h
javauis/nokiasound/inc/MMIDEventSender.h
javauis/nokiasound/javasrc/com/nokia/mid/sound/Sound.java
javauis/nokiasound/javasrc/com/nokia/mid/sound/SoundListener.java
javauis/nokiasound/src/CMIDSoundImpl.cpp
javauis/nokiasound/src/cmidclip.cpp
javauis/nokiasound/src/cmidsound.cpp
javauis/nokiasound/src/cmidtone.cpp
javauis/nokiasound/src/sound.cpp
javauis/nokiasound_akn/build/bld.inf
javauis/nokiasound_akn/build/build.xml
javauis/nokiasound_akn/build/bwins/javanokiasoundu.def
javauis/nokiasound_akn/build/eabi/javanokiasoundu.def
javauis/nokiasound_akn/build/javanokiasound.pro
javauis/nokiasound_akn/build/javanokiasound_0x2002DCC4.mmp
javauis/nokiasound_akn/inc/CMIDClip.h
javauis/nokiasound_akn/inc/CMIDSound.h
javauis/nokiasound_akn/inc/CMIDSoundEvent.h
javauis/nokiasound_akn/inc/CMIDSoundImpl.h
javauis/nokiasound_akn/inc/CMIDTone.h
javauis/nokiasound_akn/inc/MMIDEventSender.h
javauis/nokiasound_akn/javasrc/com/nokia/mid/sound/Sound.java
javauis/nokiasound_akn/javasrc/com/nokia/mid/sound/SoundListener.java
javauis/nokiasound_akn/src/CMIDSoundImpl.cpp
javauis/nokiasound_akn/src/cmidclip.cpp
javauis/nokiasound_akn/src/cmidsound.cpp
javauis/nokiasound_akn/src/cmidtone.cpp
javauis/nokiasound_akn/src/sound.cpp
javauis/remconobserver_akn/build/javaremconobserver_0x2002DCCA.mmp
javauis/runtimeui_akn/build/javaruntimeui_0x2002DCCD.mmp
javauis/runtimeui_akn/loc/javausermessages.loc
javauis/softnotification_akn/build/javasoftnotification_0x2002DCD6.mmp
javauis/subsystem.mk
javauis/subsystem_akn.mk
javauis/subsystem_qt.mk
javauis/tsrc/fute/lcdui/Midp_Alert_01/build.xml
javauis/tsrc/fute/lcdui/Midp_Alert_01/src/AlertTests.java
javauis/tsrc/fute/lcdui/Midp_Form_01/build.xml
javauis/tsrc/fute/lcdui/Midp_Form_01/src/FormMethodsTests.java
javauis/tsrc/fute/lcdui/Midp_General/build.xml
javauis/tsrc/fute/lcdui/Midp_General/res/small.png
javauis/tsrc/fute/lcdui/Midp_General/src/EmptyForm.java
javauis/tsrc/fute/lcdui/Midp_General/src/Midp_General_01.java
javauis/tsrc/fute/lcdui/Midp_General/src/Midp_General_02.java
javauis/tsrc/fute/lcdui/Midp_General/src/Midp_General_03.java
javauis/tsrc/fute/lcdui/Midp_General/src/Midp_General_04.java
javauis/tsrc/fute/lcdui/Midp_General/src/Midp_General_05.java
javauis/tsrc/fute/lcdui/Midp_General_02/build.xml
javauis/tsrc/fute/lcdui/Midp_General_02/src/Midp_General_02.java
javauis/tsrc/fute/lcdui/Midp_General_04/build.xml
javauis/tsrc/fute/lcdui/Midp_General_04/src/Midp_General_04.java
javauis/tsrc/fute/lcdui/Midp_General_05/build.xml
javauis/tsrc/fute/lcdui/Midp_General_05/src/Midp_General_05.java
javauis/tsrc/fute/lcdui/Midp_StringItem_01/build.xml
javauis/tsrc/fute/lcdui/Midp_StringItem_01/src/FormStringItemTests.java
layers.sysdef.xml
rom/installerodclist30
rom/java_2_1.iby
rom/java_2_2.iby
rom/java_3_1.iby
rom/javacontrolpanelodclist
rom/javacontrolpanelodclist30
rom/javatest.iby
rom/midpodclist
rom/midpodclist30
--- a/bld.inf	Wed Sep 15 12:05:25 2010 +0300
+++ b/bld.inf	Wed Oct 13 14:23:59 2010 +0300
@@ -18,11 +18,11 @@
 PRJ_PLATFORMS
 default
 
-#include "build/bld.inf"    
-#include "jrt_plat/group/bld.inf"    
 #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 "javaextensions/bld.inf"    
+#include "build/bld.inf"    
+#include "jrt_plat/group/bld.inf"  
--- a/build/Makefile.comp	Wed Sep 15 12:05:25 2010 +0300
+++ b/build/Makefile.comp	Wed Oct 13 14:23:59 2010 +0300
@@ -151,11 +151,11 @@
 	echo #include "exports.inf" >> bld.inf
 endif
 
-# Quick java releasables target
-RELEASABLE_PATH = $(EPOCROOT)epoc32/release/$(PLATFORM)/$(CFG)/z/resource/java/jvm/lib/jrt
 javareleasables:
 ifneq ($(ANT_FILE),)
-	echo $(RELEASABLE_PATH)/$(BASENAME).odc
+	$(ANT) -q -Dtarget.platform=$(PLATFORM) -Dtarget.cfg=$(VARIANT) $(ANT_PROJECT_DEFINES) releasables > $(DEVNULL)
+	$(call CATCOMMAND,java_releasables_$(PLATFORM)_$(VARIANT).tmp)
+	$(call RMFILE,java_releasables_$(PLATFORM)_$(VARIANT).tmp)
 endif
 
 # Remove all generated build files
@@ -185,11 +185,11 @@
 
 build_native:
 	$(PHASEINFO)
-	$(SBS) -c $(PLATFORM)_$(CFG)
+	$(SBS) -c $(PLATFORM)_$(CFG) BUILD
 
-fastbuild: java
+fastbuild: export java
 	$(PHASEINFO)
-	$(SBS) -c $(PLATFORM)_$(CFG)
+	$(SBS) -c $(PLATFORM)_$(CFG) TARGET
 
 build_clean_native:
 	$(PHASEINFO)
--- a/build/Makefile.defs	Wed Sep 15 12:05:25 2010 +0300
+++ b/build/Makefile.defs	Wed Oct 13 14:23:59 2010 +0300
@@ -42,17 +42,13 @@
   export JAVA_HOME=$(JAVA_6_HOME)
 
   ifeq ($(notdir $(basename $(SHELL))),sh)
-    # Cygwin & Linux definitions
+    # Cygwin definitions
     BATPREFIX =
     RMFILE = rm $(call PATHFIX, $(1))
     RMFILES = $(RMFILE)
     CATCOMMAND = cat $(call PATHFIX, $(1))
     PATHFIX = $(subst \,/,$(1))
-    ifeq ($(OS),Windows_NT)
-      ANT := sh ant
-    else
-      ANT := ant
-    endif
+    ANT := sh ant
     SBS = MAKELEVEL=&&MAKEFLAGS=&&MFLAGS=&&sbs
     CPPCMD = gcc -E -x assembler-with-cpp -P -undef -w -traditional-cpp
     IFNOTEXIST = if [ ! -f $(1) ]; then $(2); fi
@@ -249,12 +245,10 @@
 generateconffiles:
 	@echo Writing $(BUILDDEFINEFILE) ... \
 	$(shell $(call CATCOMMAND,$(JAVA_SRC_ROOT)/build/templates/generated_header.txt) > $(BUILDDEFINEFILE)) \
-	$(shell echo #define RD_JAVA_VERSION $(JAVA_VERSION_)>> $(BUILDDEFINEFILE)) \
-	$(shell echo #define RD_JAVA_BIN_VERSION_NONQT $(shell python $(JAVA_SRC_ROOT)/build/buildutils/ver2binver.py mmp $(JAVA_VERSION))>> $(BUILDDEFINEFILE)) \
+	$(shell echo #define RD_JAVA_VERSION $(JAVA_VERSION_) >> $(BUILDDEFINEFILE)) \
 	$(foreach d, $(PROJECT_DEFINES), $(shell echo #define $d >> $(BUILDDEFINEFILE)))
 	@echo Writing $(QBUILDDEFINEFILE) ... \
 	$(shell $(call CATCOMMAND,$(JAVA_SRC_ROOT)/build/templates/generated_header_hash.txt) > $(QBUILDDEFINEFILE)) \
-	$(shell echo RD_JAVA_BIN_VERSION = $(shell python $(JAVA_SRC_ROOT)/build/buildutils/ver2binver.py qmake $(JAVA_VERSION))>> $(QBUILDDEFINEFILE)) \
 	$(shell echo PROJECT_DEFINES *= $(PROJECT_DEFINES) >> $(QBUILDDEFINEFILE))
 	@echo Writing $(JAVAVERSIONFILE) \
 	$(shell echo $(JAVA_VERSION)>$(JAVAVERSIONFILE))
@@ -268,9 +262,10 @@
 endif
 
 generatereleasefile:
+ifeq ($(origin RD_JAVA_S60_RELEASE),command line)
 	@echo Writing $(RD_JAVA_S60_RELEASE_FILE) ... \
-	$(shell $(call CATCOMMAND,$(JAVA_SRC_ROOT)/build/templates/generated_header_hash.txt) > $(RD_JAVA_S60_RELEASE_FILE)) \
 	$(shell echo RD_JAVA_S60_RELEASE=$(RD_JAVA_S60_RELEASE)>$(RD_JAVA_S60_RELEASE_FILE))
+endif
 
 # Clean file on clean_generated
 clean_configure: clean_conffiles
--- a/build/Makefile.project	Wed Sep 15 12:05:25 2010 +0300
+++ b/build/Makefile.project	Wed Oct 13 14:23:59 2010 +0300
@@ -49,9 +49,6 @@
       # Use release written in file
       include $(RD_JAVA_S60_RELEASE_FILE)
     else
-    ifneq ($(wildcard $(addsuffix Symbianv4.sis,$(S60_STUBSIS_DIRS))),)
-      RD_JAVA_S60_RELEASE = 10.1
-    else
     ifneq ($(wildcard $(addsuffix Series60v5.2.sis,$(S60_STUBSIS_DIRS))),)
       RD_JAVA_S60_RELEASE = 9.2
     else
@@ -66,7 +63,6 @@
     endif
     endif
     endif
-    endif
     # Export the release info, so that no autodetermination is needed after this
     export RD_JAVA_S60_RELEASE
   endif
@@ -178,6 +174,13 @@
 ifdef RD_JAVA_USIF_ENABLED
   SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK = 1
   PROJECT_DEFINES += SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+  # Following flag enables application registrations to USIF
+  # and disables application registrations to AppArc.
+  PROJECT_DEFINES += RD_JAVA_USIF_APP_REG
+  # Following flag enables application notifications to AppArc.
+  #PROJECT_DEFINES += RD_JAVA_USIF_NOTIFY_APP_ARC
+  # Following flag enables installation progress notifications through USIF.
+  #PROJECT_DEFINES += RD_JAVA_USIF_NOTIFY_PROGRESS
 endif
 
 # Java proximity Listener support exsist in 9.2 only(can not be used if 5.0 untill IAD dependecy mentioned)
@@ -188,14 +191,6 @@
   PROJECT_DEFINES += RD_JAVA_PROXIMITY_LISTENER_ENABLED
 endif
 
-# Java PIM Multiple Calendar exsist in 9.2 only(can not be used if 5.0 and for 10.1 as native support doesn't exsist)
-ifdef RD_JAVA_S60_RELEASE_9_2
-  RD_JAVA_PIM_MULTICAL_ENABLED = 1
-endif
-ifdef RD_JAVA_PIM_MULTICAL_ENABLED
-  PROJECT_DEFINES += RD_JAVA_PIM_MULTICAL_ENABLED
-endif
-
 ifeq ($(OPENC_BETA_PATCH),1)
   PROJECT_DEFINES += RD_JAVA_OPENC_BETA_PATCH
 endif
--- a/build/Makefile.subsystem	Wed Sep 15 12:05:25 2010 +0300
+++ b/build/Makefile.subsystem	Wed Oct 13 14:23:59 2010 +0300
@@ -211,7 +211,7 @@
 	$(SBS) -c $(PLATFORM)_$(CFG)
 
 fastbuild: export java
-	$(SBS) -c $(PLATFORM)_$(CFG)
+	$(SBS) -c $(PLATFORM)_$(CFG) TARGET
 
 clean_native:
 	$(PHASEINFO)
--- a/build/bld.inf	Wed Sep 15 12:05:25 2010 +0300
+++ b/build/bld.inf	Wed Oct 13 14:23:59 2010 +0300
@@ -42,15 +42,11 @@
 ../rom/tckrunnerodclist30 /epoc32/release/winscw/urel/z/resource/java/tckrunnerodclist
 ../rom/tckrunnerodclist30 /epoc32/data/z/resource/java/tckrunnerodclist
 
-../rom/javacontrolpanelodclist30 /epoc32/release/winscw/udeb/z/resource/java/javacontrolpanelodclist
-../rom/javacontrolpanelodclist30 /epoc32/release/winscw/urel/z/resource/java/javacontrolpanelodclist
-../rom/javacontrolpanelodclist30 /epoc32/data/z/resource/java/javacontrolpanelodclist
-
 ../rom/javalocalization_3_1.iby        LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(javalocalization.iby)
 
 #else // RD_JAVA_UI_QT
 
-../rom/java_2_2.iby                CORE_APP_LAYER_IBY_EXPORT_PATH(java.iby)
+../rom/java_2_1.iby                CORE_APP_LAYER_IBY_EXPORT_PATH(java.iby)
 
 // Export ODC list files
 ../rom/midpodclist	     /epoc32/release/winscw/udeb/z/resource/java/midpodclist
@@ -65,10 +61,6 @@
 ../rom/tckrunnerodclist /epoc32/release/winscw/urel/z/resource/java/tckrunnerodclist
 ../rom/tckrunnerodclist /epoc32/data/z/resource/java/tckrunnerodclist
 
-../rom/javacontrolpanelodclist /epoc32/release/winscw/udeb/z/resource/java/javacontrolpanelodclist
-../rom/javacontrolpanelodclist /epoc32/release/winscw/urel/z/resource/java/javacontrolpanelodclist
-../rom/javacontrolpanelodclist /epoc32/data/z/resource/java/javacontrolpanelodclist
-
 ../rom/javalocalization_2_1.iby        LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(javalocalization.iby)
 
 #endif // RD_JAVA_UI_QT
--- a/build/buildutils/checkfilenames.py	Wed Sep 15 12:05:25 2010 +0300
+++ b/build/buildutils/checkfilenames.py	Wed Oct 13 14:23:59 2010 +0300
@@ -64,7 +64,6 @@
 # Other peculiar filenames:
     "installerodclist", "installerodclist30", "midpodclist", "midpodclist30",
     "notice", "package-list", "tckrunnerodclist", "tckrunnerodclist30", "unknowncert","midprootslist",
-    "javacontrolpanelodclist", "javacontrolpanelodclist30",
 ]
 
 # Command line options.
--- a/build/buildutils/checkjavapackages.py	Wed Sep 15 12:05:25 2010 +0300
+++ b/build/buildutils/checkjavapackages.py	Wed Oct 13 14:23:59 2010 +0300
@@ -16,17 +16,13 @@
 #   Checks that all the java source files declare a package and that 
 #   the directory within a java source file is located corresponds
 #   properly to the package.
-#
-#   Ignores tsrc directories unless the option -all is given.
 
 import sys, os, re
 
 
 def main():
 
-    root = sys.argv[1]
-    all = len(sys.argv) > 2 and sys.argv[2] == '-all'
-    
+    files = []
     
     # Create a reg exp matching to "package x.y.z;" with whitespace ignored
     regex = re.compile("\\s*package\\s*([\\w.]*);.*", re.IGNORECASE)
@@ -35,12 +31,8 @@
 
         # Skip SVN directories
         if dirname.find("\\.svn") != -1:
-            return
+            return names
             
-        # Skip tsrc
-        if not all and dirname.find("\\tsrc") != -1:
-            return
-                    
         for f in names:
             if not f.endswith(".java"):
                 continue
@@ -71,7 +63,7 @@
             except IOError:
                 print "Error reading the file " + fname
                 
-    os.path.walk(sys.argv[1], visitFun, None)
+    os.path.walk(sys.argv[1], visitFun, files)
 
 
 if __name__ == "__main__":
--- a/build/buildutils/checkwarnings.py	Wed Sep 15 12:05:25 2010 +0300
+++ b/build/buildutils/checkwarnings.py	Wed Oct 13 14:23:59 2010 +0300
@@ -25,15 +25,17 @@
     # Counters for various warnings
     totalWarnings = 0
     badOnes = 0
-    pragmaWarnings = 0
+    deprecatedWarnings = 0
     compilerWarnings = 0
     linkerWarnings = 0
     postlinkerWarnings = 0
     flmWarnings = 0
 
-    # Constants for matching pragma generated warnings
-    pragmaStart = "warning: preprocessor #warning directive"
-    pragmaOptionalRest = "warning: "
+    # Constants for matching warnings related to deprecation
+    deprecatedStart = "warning: preprocessor #warning directive"
+    deprecatedSecondLine = "warning: #warning This header file"
+    deprecatedOptionalThirdLine = "warning: (included from:"
+    deprecatedOptionalRest = "warning:  "
 
     # This list includes strings from which the BAD warnings can be recognized.
     # Note that these must be in lower case!
@@ -59,7 +61,7 @@
         print ""
         print "Details:"
         print "  FLM warnings:            ", self.flmWarnings
-        print "  Pragma warnings:         ", self.pragmaWarnings
+        print "  Use of deprecated api:   ", self.deprecatedWarnings
         print "  Other compiler warnings: ", self.compilerWarnings
         print "  Linker warnings:         ", self.linkerWarnings
         print "  Post-linker warnings:    ", self.postlinkerWarnings
@@ -69,7 +71,7 @@
 class PrintSettings:
     """Class parsing and maintaining the printing settings related to warnings"""
   
-    printPragmaWarnings = False
+    printDeprecatedWarnings = False
     printCompilerWarnings = False
     printLinkerWarnings = False
     printFlmWarnings = False
@@ -85,8 +87,8 @@
             default=False, help="Prints compiler warnings")
         parser.add_option("--pl", dest="printlinkerwarnings", action="store_true", 
             default=False, help="Prints linker warnings")
-        parser.add_option("--pp", dest="printpragmawarnings", action="store_true", 
-            default=False, help="Prints pragma warnings")
+        parser.add_option("--pd", dest="printdeprecatedwarnings", action="store_true", 
+            default=False, help="Prints deprecation warnings")
         parser.add_option("--pf", dest="printflmwarnings", action="store_true", 
             default=False, help="Prints FLM warnings")
         (opts, args) = parser.parse_args()
@@ -96,12 +98,12 @@
             sys.exit(-1)
             
         if opts.printall:
-            self.printPragmaWarnings = True
+            self.printDeprecatedWarnings = True
             self.printCompilerWarnings = True
             self.printLinkerWarnings = True
             self.printFlmWarnings = True
         else:
-            self.printPragmaWarnings = opts.printpragmawarnings
+            self.printDeprecatedWarnings = opts.printdeprecatedwarnings
             self.printCompilerWarnings = opts.printcompilerwarnings
             self.printLinkerWarnings = opts.printlinkerwarnings
             self.printFlmWarnings = opts.printflmwarnings
@@ -117,7 +119,7 @@
 # should have always zero of them. The related log message strings are defined
 # in the variable badWarnings above.
 #
-# The warnings are further categorized as pragma warnings, compiler
+# The warnings are further categorized as deprecated API warnings, compiler
 # warnings, linker, and post-linker warnings.
 #
 def main():
@@ -166,12 +168,12 @@
     # Looking for any warning related to the current target
     if state == 1:
     
-        # Check first for the start of a multiline pragma warning
-        if wh.pragmaStart in line:
-            if settings.printPragmaWarnings:
+        # Check first for the start of a multiline deprecation warning
+        if wh.deprecatedStart in line:
+            if settings.printDeprecatedWarnings:
                 print underCompilation,
                 print line,
-            wh.pragmaWarnings += 1
+            wh.deprecatedWarnings += 1
             wh.totalWarnings += 1
             return 2
             
@@ -218,17 +220,37 @@
                     
             return 1
     
-    # Looking for the optional trailing lines of the multiline pragma warning
+    # Looking for the second line of the multiline deprecation warning
     if state == 2:
-        if wh.pragmaOptionalRest in line:
-            if settings.printPragmaWarnings:
+        if wh.deprecatedSecondLine in line:
+            if settings.printDeprecatedWarnings:
+                print line,
+            return 3
+        else:
+            print "Missing second line"
+            return 1           
+    
+    # Looking for the optional third line of the multiline deprecation warning
+    if state == 3:
+        if wh.deprecatedOptionalThirdLine in line:
+            if settings.printDeprecatedWarnings:
                 print line,
-            return 2
+            return 4
+        else:
+            # Hmm... went one line too far -> need to check the current line again
+            # but now in the state 1
+            return stateMachine(1, line, underCompilation, settings, wh)            
+
+    # Looking for the optional trailing lines of the multiline deprecation warning
+    if state == 4:
+        if wh.deprecatedOptionalRest in line:
+            if settings.printDeprecatedWarnings:
+                print line,
+            return 4
         else:
             # Hmm... went one line too far -> need to check the current line again
             # but now in the state 1           
             return stateMachine(1, line, underCompilation, settings, wh)
-
                     
     # Looking for MAKEDEF detailed information lines
     if state == 5:
--- a/build/buildutils/distribution.policy.s60.configuration.txt	Wed Sep 15 12:05:25 2010 +0300
+++ b/build/buildutils/distribution.policy.s60.configuration.txt	Wed Oct 13 14:23:59 2010 +0300
@@ -16,11 +16,9 @@
 /swt/internal                      : 7
 /swt/expanded/internal             : 7
 /swt/mobile/internal               : 7
-/nokiauiapi_qt/src/com/nokia/mid/ui/internal    : 7
 /internal                          : 1
 /releng                            : 1
 ROOT/tools                         : 1
-ROOT/jrt_info			   : 1
 ROOT/javacommons/jvms/j9/s60       : 810
 /midprms                           : 102
 /webservices/javasrc               : 102
--- a/build/buildutils/svnchangeids.py	Wed Sep 15 12:05:25 2010 +0300
+++ b/build/buildutils/svnchangeids.py	Wed Oct 13 14:23:59 2010 +0300
@@ -59,7 +59,6 @@
     re_change_id = re.compile("(\w+\#\d+)\s*,?", re.I | re.M)
     re_change_id_keyword = re.compile(change_id_keyword + "[:=]?\s*(\w+\#\d+)",
                                       re.I | re.M)
-    re_change_id_keyword_only = re.compile(change_id_keyword, re.I | re.M)
     svn_change_ids = {}
     cmd = "svn log -r " + rev_2 + ":" + rev_1 + " " + url
     #print cmd
@@ -68,11 +67,6 @@
         if rev:
             current_rev = rev[0]
         change_ids = re_change_id_keyword.findall(line)
-        change_id_keywords = re_change_id_keyword_only.findall(line)
-        if len(change_id_keywords) > len(change_ids):
-            print "WARNING: Rev " + current_rev + \
-                " has more matching changeid keywords" + \
-                " than matching change ids."
         while change_ids:
             for change_id in change_ids:
                 if change_id in svn_change_ids:
--- a/build/buildutils/ver2binver.py	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-#
-# 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:
-#
-# This script changes a JRT version to a binary version usable as 
-# Symbian mmp-file version or qmake's version.
-# - each version part is cut to three digits, and then to 8 bits
-# - qmake's version is taken as is, mmp's version is mangled as by qmake (the
-#   resulting version is the same in binaries).
-# - major version is always 10
-
-import sys, re 
-
-
-USAGE = "usage: %s [qmake|mmp] 1.2.3\n" % sys.argv[0]
-
-def main():
-    try:
-        if len(sys.argv) != 3:
-            raise Exception(USAGE)
-
-        mode, javaversion = sys.argv[1:]
-
-        if mode != "qmake" and mode != "mmp":
-            raise Exception(USAGE)
-
-        # Match version
-        parts = re.match(r"^(\d+)\.(\d+)\.(\d+)$", javaversion)
-        if not parts:
-            raise Exception(USAGE)
-
-        # Change to integer
-        parts = [int(p) for p in parts.groups()]
-
-        # Modulo 1000, 256
-        parts = [(p % 1000) % 256 for p in parts]
-
-        # Print according to type
-        if mode == "qmake":
-            print "%d.%d.%d" % (10, parts[1], parts[2])
-        else:
-            print "%d.%d" % (10, (parts[1] << 8) + parts[2])
-
-    
-    except Exception, e:
-        sys.stderr.write(e.__str__())
-        sys.exit(1)
-
-
-if __name__ == "__main__":
-    main()
-
-
--- a/build/codescanner_high.xml	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-<!--
-#
-# Copyright (c) 2010 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: Configuration file for the Carbine CodeScanner, to
-#              scan only high-priority issues.
-#
--->
-<codescannerConfig>
-	<sources>
-		<!-- source files matching any of the exclude patterns below will not be scanned -->
-
-		<!-- binary files -->
-		<exclude>.*\.au</exclude>
-		<exclude>.*\.avi</exclude>
-		<exclude>.*\.bmp</exclude>
-		<exclude>.*\.dll</exclude>
-		<exclude>.*\.doc</exclude>
-		<exclude>.*\.exe</exclude>
-		<exclude>.*\.gif</exclude>
-		<exclude>.*\.jpg</exclude>
-		<exclude>.*\.mbm</exclude>
-		<exclude>.*\.mp3</exclude>
-		<exclude>.*\.mpg</exclude>
-		<exclude>.*\.png</exclude>
-		<exclude>.*\.raw</exclude>
-		<exclude>.*\.rtf</exclude>
-		<exclude>.*\.tif</exclude>
-		<exclude>.*\.wav</exclude>
-		<exclude>.*\.wbmp</exclude>
-		<exclude>.*\.wmf</exclude>
-		<exclude>.*\.xls</exclude>
-		<!-- typical test directory names -->
-		<exclude>.*\\ts_.*</exclude>
-		<exclude>.*\\tsrc\\.*</exclude>
-		<exclude>.*\\tsrc.s60\\.*</exclude>
-		<exclude>.*\\test\\.*</exclude>
-		<exclude>.*\\internal\\.*</exclude>
-		<exclude>.*\\Internal\\.*</exclude>
-		<exclude>.*\\.svn\\.*</exclude>
-		<exclude>\\tools\\.*</exclude>
-	</sources>
-	<severities>
-		<!-- Group scripts based on severity level: -->
-		<!--    enable="true" or "false" -->
-
-		<high enable="true"/>
-		<medium enable="false"/>
-		<low enable="false"/>
-	</severities>
-</codescannerConfig>
--- a/build/exports.inf	Wed Sep 15 12:05:25 2010 +0300
+++ b/build/exports.inf	Wed Oct 13 14:23:59 2010 +0300
@@ -40,15 +40,11 @@
 ../rom/tckrunnerodclist30 /epoc32/release/winscw/urel/z/resource/java/tckrunnerodclist
 ../rom/tckrunnerodclist30 /epoc32/data/z/resource/java/tckrunnerodclist
 
-../rom/javacontrolpanelodclist30 /epoc32/release/winscw/udeb/z/resource/java/javacontrolpanelodclist
-../rom/javacontrolpanelodclist30 /epoc32/release/winscw/urel/z/resource/java/javacontrolpanelodclist
-../rom/javacontrolpanelodclist30 /epoc32/data/z/resource/java/javacontrolpanelodclist
-
 ../rom/javalocalization_3_1.iby        LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(javalocalization.iby)
 
 #else // RD_JAVA_UI_QT
 
-../rom/java_2_2.iby                CORE_APP_LAYER_IBY_EXPORT_PATH(java.iby)
+../rom/java_2_1.iby                CORE_APP_LAYER_IBY_EXPORT_PATH(java.iby)
 
 // Export ODC list files
 ../rom/midpodclist	     /epoc32/release/winscw/udeb/z/resource/java/midpodclist
@@ -63,10 +59,6 @@
 ../rom/tckrunnerodclist /epoc32/release/winscw/urel/z/resource/java/tckrunnerodclist
 ../rom/tckrunnerodclist /epoc32/data/z/resource/java/tckrunnerodclist
 
-../rom/javacontrolpanelodclist /epoc32/release/winscw/udeb/z/resource/java/javacontrolpanelodclist
-../rom/javacontrolpanelodclist /epoc32/release/winscw/urel/z/resource/java/javacontrolpanelodclist
-../rom/javacontrolpanelodclist /epoc32/data/z/resource/java/javacontrolpanelodclist
-
 ../rom/javalocalization_2_1.iby        LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(javalocalization.iby)
 
 #endif // RD_JAVA_UI_QT
Binary file build/loc/resources_qt.jar has changed
--- a/build/makefile	Wed Sep 15 12:05:25 2010 +0300
+++ b/build/makefile	Wed Oct 13 14:23:59 2010 +0300
@@ -61,9 +61,6 @@
 	javatools \
 	javaextensions
 
-# Set order explicitly to get Java building as first
-SUBTARGETS = $(COMPONENTS) $(NONQTSUBSYSTEMS) $(SUBSYSTEMS)
-
 # -------------------------------------------------------
 
 include ${JAVA_SRC_ROOT}/build/Makefile.subsystem
@@ -73,21 +70,11 @@
 ifdef RD_JAVA_S60_RELEASE_9_2
 prep: configure qmake
 endif
-ifdef RD_JAVA_S60_RELEASE_10_1_ONWARDS
-prep: pkgdefsetup
-endif
 
 SYSDEF_TEMPLATE = $(JAVA_SRC_ROOT)/build/templates/$(RD_JAVA_S60_RELEASE).layers.sysdef.xml
 sysdefsetup:
 	$(call CATCOMMAND,$(wildcard $(SYSDEF_TEMPLATE)))>$(JAVA_SRC_ROOT)/layers.sysdef.xml
 
-pkgdefsetup:
-	$(call MKDIR, $(call PATHFIX, $(JAVA_SRC_ROOT)/jrt_info))
-	$(call MKDIR, $(call PATHFIX, $(JAVA_SRC_ROOT)/jrt_info/nokia_jrt_metadata))
-	$(call CATCOMMAND,$(JAVA_SRC_ROOT)/build/templates/pkgmap_template.xml)>$(JAVA_SRC_ROOT)/package_map.xml
-	$(call CATCOMMAND,$(JAVA_SRC_ROOT)/build/templates/pkgdef_template.xml)>$(JAVA_SRC_ROOT)/package_definition.xml
-	$(call CATCOMMAND,$(JAVA_SRC_ROOT)/build/templates/nokia_pkgdef_template.xml)>$(JAVA_SRC_ROOT)/jrt_info/nokia_jrt_metadata/package_definition.xml
-
 # Cleaning java from top level cleans also the API jars
 clean_java: cleanapijars
 cleanapijars:
--- a/build/makefile.javaversion	Wed Sep 15 12:05:25 2010 +0300
+++ b/build/makefile.javaversion	Wed Oct 13 14:23:59 2010 +0300
@@ -1,2 +1,6 @@
 # Set Java version (must be dot separated, without spaces)
-JAVA_VERSION = 2.2.13
+ifdef RD_JAVA_S60_RELEASE_5_0_IAD
+  JAVA_VERSION = 2.1.44
+else 
+  JAVA_VERSION = 2.1.44
+endif
--- a/build/nativejava.flm	Wed Sep 15 12:05:25 2010 +0300
+++ b/build/nativejava.flm	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+# 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"
@@ -23,67 +23,23 @@
 #  therefore the jrt-directory is found from finding first directory having
 #  subsystem.mk, going up to max. three directory levels)
 
-JAVABUILDDIR:= $(dir $(firstword $(wildcard $(TO_BLDINF)/subsystem.mk $(TO_BLDINF)/../subsystem.mk $(TO_BLDINF)/../../subsystem.mk)))
+JAVABUILDDIR = $(dir $(firstword $(wildcard $(TO_BLDINF)/subsystem.mk $(TO_BLDINF)/../subsystem.mk $(TO_BLDINF)/../../subsystem.mk)))
 
-# General Java makefile command
-JAVACMD:= make -C $(JAVABUILDDIR) -f subsystem.mk EPOCROOT=$(EPOCROOT)/ \
+JAVABUILDCMD = make -C $(JAVABUILDDIR) -f subsystem.mk EPOCROOT=$(EPOCROOT)/ \
                PLATFORM=$(PLATFORM) CFG=$(CFG) BLD_INF_JAVA=1
 
-# General build command, targetting armv5 urel files
-JAVABUILDCMD:= make -C $(JAVABUILDDIR) -f subsystem.mk EPOCROOT=$(EPOCROOT)/ \
-               PLATFORM=armv5 CFG=urel BLD_INF_JAVA=1 java finalactions
-
-# Marker file to prevent multiple Java compilations of the
-# same platform/cfg, when building e.g. device variants.
-NATIVEJAVAMARKER := $(EPOCBLD)/nativejavamarker_$(PLATFORM)_$(CFG).done
-
-# Java build artifact file source and target
-JAVABUILD_ARTIFACT_SRC := $(EPOCROOT)/epoc32/release/armv5/urel
-JAVABUILD_ARTIFACT_DST := $(EPOCROOT)/epoc32/release/$(PLATFORM)/$(CFG)
-
-define compilenativejava
-
-# This is the general Java compilation, done once for the component
-ifeq ($(GUARD_nativejavatarget),)
-GUARD_nativejavatarget:=1
-.PHONY:: nativejavatarget
-nativejavatarget:
+define java_build
+RESOURCE::
 	$(call startrule,compilenativejava,,javasources) \
-	$(JAVABUILDCMD) \
+	$(JAVABUILDCMD) java finalactions\
 	$(call endrule,compilenativejava)
-endif 
-
-# Actual resource target, one for each platform/cfg variant
-ifeq ($(GUARD_$(call sanitise,$(NATIVEJAVAMARKER))),)
-GUARD_$(call sanitise,$(NATIVEJAVAMARKER)):=1
-
-RESOURCE:: $(NATIVEJAVAMARKER)
-
-# Copy the build artifacts to target
-$(NATIVEJAVAMARKER): nativejavatarget
-ifeq ($(filter armv5_urel ARMV5_urel ARMV5_UREL,$(PLATFORM)_$(CFG)),)
-	$(call makepath,$(JAVABUILD_ARTIFACT_DST)/z/resource/java/jvm/lib/jrt)
-	$(call makepath,$(JAVABUILD_ARTIFACT_DST)/z/resource/java/security)
-	$(call startrule,copynativejavaresults) \
-	$(foreach f,java_impl_cdc.jar java_impl_cldc.jar java_platform_api.jar java_public_api.jar java_signature_test.jar, $(GNUCP) -v $(JAVABUILD_ARTIFACT_SRC)/$f $(JAVABUILD_ARTIFACT_DST) &&) \
-	$(GNUCP) -Rv $(JAVABUILD_ARTIFACT_SRC)/z/resource/java/jvm/lib/jrt $(JAVABUILD_ARTIFACT_DST)/z/resource/java/jvm/lib && \
-	$(GNUCP) -Rv $(JAVABUILD_ARTIFACT_SRC)/z/resource/java/security $(JAVABUILD_ARTIFACT_DST)/z/resource/java \
-	$(call endrule,copynativejavaresults)
-endif
-endif
-
-# Use normal clean for all variants
 CLEAN::
 	$(call startrule,cleannativejava,,javasources) \
-	$(JAVACMD) clean_java \
+	$(JAVABUILDCMD) clean_java \
 	$(call endrule,cleannativejava)
 endef
 
-$(eval $(compilenativejava))
+$(eval $(java_build))
 
-RELEASABLES:= $(shell $(JAVACMD) -s javareleasables)
+RELEASABLES = $(shell $(JAVABUILDCMD) -s javareleasables)
 $(eval $(call whatmacro,$(RELEASABLES),WHATRESOURCES))
-
-$(eval $(call GenerateStandardCleanTarget,$(NATIVEJAVAMARKER)))
-
-
--- a/build/omj.pri	Wed Sep 15 12:05:25 2010 +0300
+++ b/build/omj.pri	Wed Oct 13 14:23:59 2010 +0300
@@ -73,7 +73,7 @@
       include(symbian_uids.pri)
 
       DEFINES += __SYMBIAN32__
-      DEFINES += J9EPOC32
+      DEFINES += J9EPOC32 RD_JAVA_OMJ_FSERVER
 
       LIBS += -llibpthread
 
@@ -132,12 +132,8 @@
           MMP_RULES += " OS_LAYER_STDCPP_SYSTEMINCLUDE"
         }
       }
-
   }
 
-  # Set version if not defined
-  isEmpty(VERSION):!isEmpty(RD_JAVA_BIN_VERSION): VERSION = $${RD_JAVA_BIN_VERSION}
-
   # Define generated paths
   JXE_SOURCE_PATH    = $${JAVA_ARTIFACTS}
   LOOKUP_SOURCE_PATH = $${JAVA_ARTIFACTS}
--- a/build/properties.xml	Wed Sep 15 12:05:25 2010 +0300
+++ b/build/properties.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -12,7 +12,7 @@
 #
 # Contributors:
 #
-# Description:
+# Description: 
 #
 -->
 
@@ -41,24 +41,13 @@
       for reason why this property is defined"/> -->
   <property name="platform.utilities.xml.file" value="utilities.fake.xml"/>
 
-  <!-- Set internal epoc root -->
-  <condition property="epocroot" value="${env.EPOCROOT}" else="">
-    <isset property="env.EPOCROOT"/>
-  </condition>
-
-  <!--The cldc/cdc class file locations, within the sources -->
-  <available file="${java.src.root}/inc/classes.cldc.zip" property="bootclasspath.cldc"
-             value="${java.src.root}/inc/classes.cldc.zip" />
-  <available file="${java.src.root}/inc/classes.cdc.zip" property="bootclasspath.cdc"
-             value="${java.src.root}/inc/classes.cdc.zip" />
-  <available file="${java.src.root}/inc/classes.fp.zip" property="bootclasspath.fp"
-             value="${java.src.root}/inc/classes.fp.zip" />
-
-  <!--The cldc/cdc class file locations, external if not found in default places -->
-  <property name="bootclasspath.cldc" location="${epocroot}epoc32/jrt/classes.cldc.zip"/>
-  <property name="bootclasspath.cdc"  location="${epocroot}epoc32/jrt/classes.cdc.zip"/>
-  <property name="bootclasspath.fp"   location="${epocroot}epoc32/jrt/classes.fp.zip"/>
-
+  <!--The cldc/cdc class file locations -->
+  <property name="bootclasspath.cldc" location="${java.src.root}/inc/classes.cldc.zip"/>
+  <property name="bootclasspath.cdc"  location="${java.src.root}/inc/classes.cdc.zip"/>
+  <property name="bootclasspath.fp"   location="${java.src.root}/inc/classes.fp.zip"/>
+  
+  
+  
   <!--NOTE!!! Properties defined below can be used only inside a target-->
 
 
@@ -71,33 +60,36 @@
       <equals arg1="${target.cfg}" arg2="debug"/>
 	</condition>
 
-    <!--Location of eswt.jar. This is not needed in S60 Avkon,
+    <!-- Set internal epoc root -->
+	<condition property="epocroot"
+               value="${env.EPOCROOT}"
+               else="">
+      <isset property="env.EPOCROOT"/>
+	</condition>
+
+    <!--Location of eswt.jar. This is not needed in S60 Avkon, 
         but needed in S60 Qt. -->
     <property name="eswt.jar" value=":${java.src.root}/javauis/bin/eswt.jar"/>
 
     <!--The root for the java compile time outputs-->
-    <property name="compile.result.root"
+    <property name="compile.result.root" 
               location="${epocroot}epoc32/build/jrt/javabuild"/>
-
+    
     <!--The root file where the jarfiles are put that are used to build against-->
-    <property name="jar.destination.root"
+    <property name="jar.destination.root" 
               location="${epocroot}epoc32/release/${target.platform}/${real.cfg.name}"/>
-
+    
     <!--JAVA_HOME for JAPT & JAR2JXE -->
 
     <!-- Set executable ending for Java platform tools -->
-	<condition property="j9.java.home"
+	<condition property="j9.java.home" 
                value="${epocroot}epoc32/tools/java/japtjxe.windows"
                else="${epocroot}epoc32/tools/java/japtjxe.linux">
       <os family="windows"/>
     </condition>
-
+    
     <!--The utility file containing platform specific fetures-->
-    <condition property="dyn.platform.utilities.xml.file"
-               value="utilities.linux.xml"
-               else="utilities.s60.xml">
-      <isset property="no.rommizing" />
-    </condition>
+    <property name="dyn.platform.utilities.xml.file" value="utilities.s60.xml"/>
 
     <!--The default directory for cldc based s60 java code-->
     <property name="javasrc.platform.specific" value="../javasrc.s60"/>
@@ -106,20 +98,20 @@
     <property name="javasrc.platform.specific.cdc" value="../javasrc.s60.cdc"/>
 
     <!--The java resource root -->
-    <property name="java.res.root"
+    <property name="java.res.root" 
       location="${epocroot}epoc32/release/${target.platform}/${real.cfg.name}/z/resource/java"/>
 
     <!--The java captain datacage -->
-    <property name="java.captain.datacage"
+    <property name="java.captain.datacage" 
       location="${epocroot}epoc32/release/${target.platform}/${real.cfg.name}/z/private/200211dc"/>
 
     <!--The extension directory of the VM. -->
-    <property name="vm.extension.directory"
+    <property name="vm.extension.directory" 
       location="${java.res.root}/jvm/lib/common"/>
 
-    <!--The directory for entitys to be set to bootclass path. This is the location
+    <!--The directory for entitys to be set to bootclass path. This is the location 
         where the jar and/or odc files goes to -->
-    <property name="bcp.dest.directory"
+    <property name="bcp.dest.directory" 
       location="${java.res.root}/jvm/lib/jrt"/>
 
   </target>
@@ -128,14 +120,14 @@
   <!--Set the properties with linux specific values-->
   <target name="set.linux.properties" if="target.linux">
     <!--The root for the java compile time outputs-->
-    <property name="compile.result.root"
+    <property name="compile.result.root" 
               location="${env.JAVA_BIN_ROOT}/javabuild"/>
-
+    
     <!--Location of eswt.jar. This is needed in compile time in Linux-->
     <property name="eswt.jar" value=":${java.src.root}/javauis/bin/eswt.jar"/>
 
     <!--The root file where the interface jarfiles are put -->
-    <property name="jar.destination.root"
+    <property name="jar.destination.root" 
               location="${compile.result.root}/jars/${target.platform}/${target.cfg}"/>
 
     <!--The utility file containing platform specific fetures-->
@@ -148,19 +140,19 @@
     <property name="javasrc.platform.specific.cdc" value="../javasrc.linux.cdc"/>
 
     <!--The java resource root -->
-    <property name="java.res.root"
+    <property name="java.res.root" 
       location="${env.JAVA_BIN_ROOT}"/>
 
     <!--The java captain datacage -->
-    <property name="java.captain.datacage"
+    <property name="java.captain.datacage" 
       location="${env.JAVA_BIN_ROOT}"/>
 
     <!--The extension directory of the VM. -->
     <property name="vm.extension.directory" location="${env.JAVA_BIN_ROOT}/jsr/classes/common"/>
 
-    <!--The directory for entitys to be set to bootclass path. This is the location
+    <!--The directory for entitys to be set to bootclass path. This is the location 
         where the jar and/or odc files goes to -->
-    <property name="bcp.dest.directory"
+    <property name="bcp.dest.directory" 
       location="${vm.extension.directory}"/>
 
   </target>
@@ -170,7 +162,7 @@
 	<condition property="target.s60">
       <equals arg1="${target.type}" arg2="s60"/>
 	</condition>
-	<condition property="target.linux">
+	<condition property="target.linux">	
       <equals arg1="${target.type}" arg2="linux"/>
     </condition>
   </target>
@@ -187,10 +179,10 @@
 
   <!-- Get explicit target type from variable "target.buildenv" -->
   <target name="explicit.target.type" if="env.BUILDENV">
-	<condition property="target.type" value="s60">
+	<condition property="target.type" value="s60">  
 	  <equals arg1="${env.BUILDENV}" arg2="symbian"/>
 	</condition>
-	<condition property="target.type" value="linux">
+	<condition property="target.type" value="linux">  
 	  <equals arg1="${env.BUILDENV}" arg2="linux"/>
 	</condition>
 
@@ -247,7 +239,7 @@
 
   <!--Target for making component specific initalizations depending on
       the values of dynamic properties (e.g. Target platform).
-      The default implementation of this target is empty and the component
+      The default implementation of this target is empty and the component 
       should override this if it provides public APIs -->
   <target name="init.component.properties">
   </target>
@@ -259,7 +251,7 @@
                                           define.target.cfg,
                                           set.s60.properties,
                                           set.linux.properties,
-                                          define.bootclasspath,
+                                          define.bootclasspath, 
                                           init.component.properties,
                                           define.javasrc.path,
                                           define.jar.filename,
@@ -279,7 +271,7 @@
 
     <!--The directory where the component specific classes (2) are put to -->
     <property name="classes.second.dir" location="${classes.dir}/second"/>
-
+    
     <!--The directory where the component specific classes are collected to -->
     <property name="classes.collection.dir" location="${classes.dir}/collection"/>
 
@@ -308,14 +300,14 @@
     <!--The jar file containing all the cldc based class files and cldc classes itself
         This is for signature testing -->
     <property name="signature.jar" location="${jar.destination.root}/java_signature_test.jar"/>
-
+    
     <!--Property for setting the javadebug for java compilation-->
 	<condition property="javac.debug.on"
                value="true"
                else="false">
       <equals arg1="${target.cfg}" arg2="debug"/>
 	</condition>
-
+    
     <!--Does the directory containing platform specific cldc based code exist -->
     <available file="${javasrc.platform.specific}" property="javasrc.platform.specific.present"/>
 
--- a/build/sis/incompatible_openc.txt	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-OpenC version 1.5 or later is not found. Some Java applications may not work properly. Make sure that latest device firmware is used.
-
-Continue installation?
\ No newline at end of file
--- a/build/sis/incompatible_platform.txt	Wed Sep 15 12:05:25 2010 +0300
+++ b/build/sis/incompatible_platform.txt	Wed Oct 13 14:23:59 2010 +0300
@@ -1,1 +1,1 @@
-Java Runtime is not compatible with your device. Java Runtime requires S60 5th Edition device.
\ No newline at end of file
+Unfortunately Java Runtime 2.0 Alpha is not compatible with your device. Java Runtime 2.0 Alpha works only on S60 5.0 devices.
--- a/build/sis/java_2_0.pkg	Wed Sep 15 12:05:25 2010 +0300
+++ b/build/sis/java_2_0.pkg	Wed Oct 13 14:23:59 2010 +0300
@@ -43,17 +43,6 @@
   ; Popup error on Non-S60 v 5.0 platforms. Do not allow continuing.
   "incompatible_platform.txt"-"", FILETEXT, FORCEABORT
 ENDIF
-
-; Check OpenC versions
-; 0x10282872 = Standard C++ library
-; 0x10281F34 = Open C LIBSSL
-; 0x20009a80 = Symbian OS PIPS
-IF( version(0x10282872, <, 1, 5, 0) ) OR
-  ( version(0x10281F34, <, 1, 5, 0) ) OR
-  ( version(0x20009a80, <, 1, 5, 0) )
-    "incompatible_openc.txt"-"", FT, TA
-ENDIF
-
 #endif // RD_JAVA_S60_RELEASE_5_0_IAD
 
 
@@ -106,7 +95,6 @@
 
 "\epoc32\release\armv5\urel\javacaptain.exe"-"c:\sys\bin\javacaptain.exe"
 "\epoc32\release\armv5\urel\javalauncher.exe"-"c:\sys\bin\javalauncher.exe"
-"\epoc32\release\armv5\urel\javaupgradeapp.exe"-"c:\sys\bin\javaupgradeapp.exe"
 
 
 
@@ -114,7 +102,6 @@
 "\epoc32\data\z\resource\java\midpodclist"-"c:\resource\java\midpodclist"
 "\epoc32\data\z\resource\java\tckrunnerodclist"-"c:\resource\java\tckrunnerodclist"
 "\epoc32\data\z\resource\java\installerodclist"-"c:\resource\java\installerodclist"
-"\epoc32\data\z\resource\java\javacontrolpanelodclist"-"c:\resource\java\javacontrolpanelodclist"
 
 
 
@@ -391,10 +378,8 @@
 "\epoc32\release\armv5\urel\z\resource\java\jvm\lib\jrt\javawmamms.odc"-"c:\resource\java\jvm\lib\jrt\javawmamms.odc"
 
 "\epoc32\release\armv5\urel\z\resource\java\jvm\lib\jrt\tckrunner.odc"-"c:\resource\java\jvm\lib\jrt\tckrunner.odc"
-"\epoc32\release\armv5\urel\z\resource\java\jvm\lib\jrt\javacontrolpanel.odc"-"c:\resource\java\jvm\lib\jrt\javacontrolpanel.odc"
 
-"\epoc32\release\armv5\urel\javacentrep.dll"-"c:\sys\bin\javacentrep.dll"
-"\epoc32\release\armv5\urel\z\resource\java\jvm\lib\jrt\javacentrep.odc"-"c:\resource\java\jvm\lib\jrt\javacentrep.odc"
+
 
 ; Misc dlls
 #ifdef RD_JAVA_S60_RELEASE_5_0_IAD
@@ -405,7 +390,7 @@
 ; Application Manager 2 plugin
 #ifndef RD_JAVA_S60_RELEASE_5_0_IAD
 "\epoc32\release\armv5\urel\appmngr2midletplugin.dll"-"c:\sys\bin\appmngr2midletplugin.dll"
-"\epoc32\data\z\resource\java\iad\appmngr2midletplugin.rsc"-"c:\resource\plugins\appmngr2midletplugin.rsc"
+"\epoc32\data\z\resource\plugins\appmngr2midletplugin.rsc"-"c:\resource\plugins\appmngr2midletplugin.rsc"
 "\epoc32\data\z\resource\java\javaapplicationsettings.r01"-"c:\resource\java\javaapplicationsettings.r01"
 "\epoc32\data\z\resource\java\javaapplicationsettings.r02"-"c:\resource\java\javaapplicationsettings.r02"
 "\epoc32\data\z\resource\java\javaapplicationsettings.r03"-"c:\resource\java\javaapplicationsettings.r03"
@@ -490,7 +475,6 @@
 "\epoc32\release\armv5\urel\jvmnativeport.dll"-"c:\sys\bin\jvmnativeport.dll"
 "\epoc32\release\armv5\urel\midp2backupplugin.dll"-"c:\sys\bin\midp2backupplugin.dll"
 "\epoc32\release\armv5\urel\javadebugapi.dll"-"c:\sys\bin\javadebugapi.dll"
-"\epoc32\release\armv5\urel\javastarter.dll"-"c:\sys\bin\javastarter.dll"
 
 #ifdef RD_JAVA_S60_RELEASE_5_0_IAD
 "\epoc32\release\armv5\urel\midp2cenrep.dll"-"c:\sys\bin\midp2cenrep.dll"
@@ -507,7 +491,6 @@
 "\epoc32\release\armv5\urel\javacaptain_ext_pushregistryplugin.dll"     -"c:\sys\bin\javacaptain_ext_pushregistryplugin.dll"
 "\epoc32\release\armv5\urel\javacaptain_ext_storageserverplugin.dll"    -"c:\sys\bin\javacaptain_ext_storageserverplugin.dll"
 "\epoc32\release\armv5\urel\javacaptain_ext_btdeviceclassmanager.dll"   -"c:\sys\bin\javacaptain_ext_btdeviceclassmanager.dll"
-"\epoc32\release\armv5\urel\javacaptain_ext_autostarter.dll"            -"c:\sys\bin\javacaptain_ext_autostarter.dll"
 "\epoc32\release\armv5\urel\javacaptain_ext_settingslistener.dll"       -"c:\sys\bin\javacaptain_ext_settingslistener.dll"
 ; PLUGIN_ID_JAVA_CERT_STORE_EXTENSION_C = 7
 "\epoc32\release\armv5\urel\javacaptain_ext_ondemand_7.dll"             -"c:\sys\bin\javacaptain_ext_ondemand_7.dll"
@@ -519,8 +502,8 @@
 
 
 ; resources
-"\epoc32\data\z\resource\java\iad\ifeui.rsc"                   -"c:\resource\plugins\ifeui.rsc"
-"\epoc32\data\z\resource\java\iad\javaappschemeplugin.rsc"     -"c:\resource\plugins\javaappschemeplugin.rsc"
+"\epoc32\data\z\resource\plugins\ifeui.rsc"                   -"c:\resource\plugins\ifeui.rsc"
+"\epoc32\data\z\resource\plugins\javaappschemeplugin.rsc"     -"c:\resource\plugins\javaappschemeplugin.rsc"
 "\epoc32\winscw\c\private\102033E6\installer\inst_plugins.cfg"-"c:\private\102033E6\installer\inst_plugins.cfg"
 "\epoc32\data\Z\Resource\versions\java.txt"-"c:\resource\versions\java.txt"
 #ifdef RD_JAVA_S60_RELEASE_5_0_IAD
@@ -534,9 +517,9 @@
 "\epoc32\data\z\resource\apps\javainstaller_icon.mif"-"c:\resource\apps\javainstaller_icon.mif"
 "\epoc32\data\z\resource\java\java_trusted.png"-"c:\resource\java\java_trusted.png"
 "\epoc32\data\z\resource\java\java_untrusted.png"-"c:\resource\java\java_untrusted.png"
-"\epoc32\data\z\resource\java\iad\javasidchecker.rsc"   -"c:\resource\plugins\javasidchecker.rsc"
-"\epoc32\data\z\resource\java\iad\javaunicertstoreplugin.rsc" -"c:\resource\plugins\javaunicertstoreplugin.rsc"
-"\epoc32\data\z\resource\java\iad\midp2backupplugin.rsc"-"c:\resource\plugins\midp2backupplugin.rsc"
+"\epoc32\data\z\resource\plugins\javasidchecker.rsc"   -"c:\resource\plugins\javasidchecker.rsc"
+"\epoc32\data\z\resource\plugins\javaunicertstoreplugin.rsc" -"c:\resource\plugins\javaunicertstoreplugin.rsc"
+"\epoc32\data\z\resource\plugins\midp2backupplugin.rsc"-"c:\resource\plugins\midp2backupplugin.rsc"
 #ifndef RD_JAVA_S60_RELEASE_5_0_IAD
 "\epoc32\data\z\resource\java\javausermessages.r01"-"c:\resource\java\javausermessages.r01"
 "\epoc32\data\z\resource\java\javausermessages.r02"-"c:\resource\java\javausermessages.r02"
@@ -672,13 +655,13 @@
 "\epoc32\release\armv5\urel\lcdgr.dll"-"c:\sys\bin\lcdgr.dll"
 "\epoc32\release\armv5\urel\lcdui.dll"-"c:\sys\bin\lcdui.dll"
 "\epoc32\release\armv5\urel\LCDC16MA.dll"-"c:\sys\bin\LCDC16MA.dll"
-"\epoc32\data\z\resource\java\iad\LCDC16MA.rsc"-"c:\resource\plugins\LCDC16MA.rsc"
+"\epoc32\data\z\resource\plugins\LCDC16MA.rsc"-"c:\resource\plugins\LCDC16MA.rsc"
 "\epoc32\release\armv5\urel\LCDC16MU.dll"-"c:\sys\bin\LCDC16MU.dll"
-"\epoc32\data\z\resource\java\iad\LCDC16MU.rsc"-"c:\resource\plugins\LCDC16MU.rsc"
+"\epoc32\data\z\resource\plugins\LCDC16MU.rsc"-"c:\resource\plugins\LCDC16MU.rsc"
 "\epoc32\release\armv5\urel\LCDC4K.dll"-"c:\sys\bin\LCDC4K.dll"
-"\epoc32\data\z\resource\java\iad\LCDC4K.rsc"-"c:\resource\plugins\LCDC4K.rsc"
+"\epoc32\data\z\resource\plugins\LCDC4K.rsc"-"c:\resource\plugins\LCDC4K.rsc"
 "\epoc32\release\armv5\urel\LCDC64K.dll"-"c:\sys\bin\LCDC64K.dll"
-"\epoc32\data\z\resource\java\iad\LCDC64K.rsc"-"c:\resource\plugins\LCDC64K.rsc"
+"\epoc32\data\z\resource\plugins\LCDC64K.rsc"-"c:\resource\plugins\LCDC64K.rsc"
 "\epoc32\release\armv5\urel\lcdgdrv.dll"-"c:\sys\bin\lcdgdrv.dll"
 "\epoc32\release\armv5\urel\lcdgdrvi.dll"-"c:\sys\bin\lcdgdrvi.dll"
 "\epoc32\release\armv5\urel\lcduiphysicswrap.dll"-"c:\sys\bin\lcduiphysicswrap.dll"
@@ -808,10 +791,6 @@
 "\epoc32\data\z\resource\java\eswtcore.rsc"-"c:\resource\java\eswtcore.rsc"
 
 
-#ifndef RD_JAVA_S60_RELEASE_5_0_IAD
-"\epoc32\release\armv5\urel\javaiconsizenotifplugin.dll"-"c:\sys\bin\javaiconsizenotifplugin.dll"
-"\epoc32\data\z\resource\java\iad\javaiconsizenotifplugin.rsc"-"c:\resource\plugins\javaiconsizenotifplugin.rsc"
-#endif // RD_JAVA_S60_RELEASE_5_0_IAD
 
 
 #ifdef RD_JAVA_S60_RELEASE_5_0_IAD
@@ -834,7 +813,8 @@
 "\epoc32\release\armv5\urel\javaappbackconverter.exe"-"c:\sys\bin\javaappbackconverter.exe", FR, RR, RW
 #endif // RD_JAVA_S60_RELEASE_5_0_IAD
 
+
 #ifndef RD_JAVA_S60_RELEASE_5_0_IAD
-; javafinishjrtinstall is ran after Jrt 2.2 installation
-"\epoc32\release\armv5\urel\javafinishjrtinstall.exe"-"c:\sys\bin\javafinishjrtinstall.exe", FR, RI, RW
+"\epoc32\release\armv5\urel\javaiconsizenotifplugin.dll"-"c:\sys\bin\javaiconsizenotifplugin.dll"
+"\epoc32\data\z\resource\plugins\javaiconsizenotifplugin.rsc"-"c:\resource\plugins\javaiconsizenotifplugin.rsc"
 #endif // RD_JAVA_S60_RELEASE_5_0_IAD
--- a/build/sis/java_3_1.pkg	Wed Sep 15 12:05:25 2010 +0300
+++ b/build/sis/java_3_1.pkg	Wed Oct 13 14:23:59 2010 +0300
@@ -50,15 +50,12 @@
 "\epoc32\release\armv5\urel\javabackup.exe"-"c:\sys\bin\javabackup.exe"
 "\epoc32\release\armv5\urel\javacaptain.exe"-"c:\sys\bin\javacaptain.exe"
 "\epoc32\release\armv5\urel\javalauncher.exe"-"c:\sys\bin\javalauncher.exe"
-"\epoc32\release\armv5\urel\javaappscheme.exe"-"c:\sys\bin\javaappscheme.exe"
-"\epoc32\release\armv5\urel\javaqtrequest.exe"-"c:\sys\bin\javaqtrequest.exe"
-"\epoc32\release\armv5\urel\javaupgradeapp.exe"-"c:\sys\bin\javaupgradeapp.exe"
 
 ;Odc file lists
 "\epoc32\data\z\resource\java\midpodclist"-"c:\resource\java\midpodclist"
 "\epoc32\data\z\resource\java\tckrunnerodclist"-"c:\resource\java\tckrunnerodclist"
 "\epoc32\data\z\resource\java\installerodclist"-"c:\resource\java\installerodclist"
-"\epoc32\data\z\resource\java\javacontrolpanelodclist"-"c:\resource\java\javacontrolpanelodclist"
+
 
 ; Dlls containing java byte code and their odc files
 "\epoc32\release\armv5\urel\javabluecove.dll"-"c:\sys\bin\javabluecove.dll"
@@ -161,13 +158,13 @@
 "\epoc32\release\armv5\urel\z\resource\java\jvm\lib\jrt\javawmamms.odc"-"c:\resource\java\jvm\lib\jrt\javawmamms.odc"
 
 "\epoc32\release\armv5\urel\z\resource\java\jvm\lib\jrt\tckrunner.odc"-"c:\resource\java\jvm\lib\jrt\tckrunner.odc"
-"\epoc32\release\armv5\urel\z\resource\java\jvm\lib\jrt\javacontrolpanel.odc"-"c:\resource\java\jvm\lib\jrt\javacontrolpanel.odc"
 
-"\epoc32\release\armv5\urel\javacentrep.dll"-"c:\sys\bin\javacentrep.dll"
-"\epoc32\release\armv5\urel\z\resource\java\jvm\lib\jrt\javacentrep.odc"-"c:\resource\java\jvm\lib\jrt\javacentrep.odc"
+
 
 ; Misc dlls
 
+"\epoc32\release\armv5\urel\ifeui.dll"-"c:\sys\bin\ifeui.dll"
+"\epoc32\release\armv5\urel\javaappschemeplugin.dll"-"c:\sys\bin\javaappschemeplugin.dll"
 "\epoc32\release\armv5\urel\javabtl2capscplugin.dll"-"c:\sys\bin\javabtl2capscplugin.dll"
 "\epoc32\release\armv5\urel\javabtsppscplugin.dll"-"c:\sys\bin\javabtsppscplugin.dll"
 "\epoc32\release\armv5\urel\javabtgoepscplugin.dll"-"c:\sys\bin\javabtgoepscplugin.dll"
@@ -183,6 +180,7 @@
 "\epoc32\release\armv5\urel\javapushcontroller.dll"-"c:\sys\bin\javapushcontroller.dll"
 "\epoc32\release\armv5\urel\javaregistryclient.dll"-"c:\sys\bin\javaregistryclient.dll"
 "\epoc32\release\armv5\urel\javaruntimestarterutils.dll"-"c:\sys\bin\javaruntimestarterutils.dll"
+"\epoc32\release\armv5\urel\javasidchecker.dll"-"c:\sys\bin\javasidchecker.dll"
 "\epoc32\release\armv5\urel\javasizehelperclient.dll"-"c:\sys\bin\javasizehelperclient.dll"
 "\epoc32\release\armv5\urel\javasizehelperserver.dll"-"c:\sys\bin\javasizehelperserver.dll"
 "\epoc32\release\armv5\urel\javasocketscplugin.dll"-"c:\sys\bin\javasocketscplugin.dll"
@@ -192,9 +190,7 @@
 "\epoc32\release\armv5\urel\javadebugapi.dll"-"c:\sys\bin\javadebugapi.dll"
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 "\epoc32\release\armv5\urel\javasifplugin.dll"-"c:\sys\bin\javasifplugin.dll"
-"\epoc32\release\armv5\urel\javainstallcopier.exe"-"c:\sys\bin\javainstallcopier.exe"
 #endif
-"\epoc32\release\armv5\urel\javastarter.dll"-"c:\sys\bin\javastarter.dll"
 
 ; to enable JVM argument modifier - comment 1st line below and uncomment 2nd line below
 "\epoc32\release\armv5\urel\javajvmargsmodifier.dll"-"c:\sys\bin\javajvmargsmodifier.dll"
@@ -207,7 +203,6 @@
 "\epoc32\release\armv5\urel\javacaptain_ext_pushregistryplugin.dll"     -"c:\sys\bin\javacaptain_ext_pushregistryplugin.dll"
 "\epoc32\release\armv5\urel\javacaptain_ext_storageserverplugin.dll"    -"c:\sys\bin\javacaptain_ext_storageserverplugin.dll"
 "\epoc32\release\armv5\urel\javacaptain_ext_btdeviceclassmanager.dll"   -"c:\sys\bin\javacaptain_ext_btdeviceclassmanager.dll"
-"\epoc32\release\armv5\urel\javacaptain_ext_autostarter.dll"            -"c:\sys\bin\javacaptain_ext_autostarter.dll"
 "\epoc32\release\armv5\urel\javacaptain_ext_settingslistener.dll"       -"c:\sys\bin\javacaptain_ext_settingslistener.dll"
 ; PLUGIN_ID_JAVA_CERT_STORE_EXTENSION_C = 7
 "\epoc32\release\armv5\urel\javacaptain_ext_ondemand_7.dll"             -"c:\sys\bin\javacaptain_ext_ondemand_7.dll"
@@ -219,19 +214,21 @@
 #endif
 
 ; resources
+"\epoc32\data\z\resource\plugins\ifeui.rsc"                   -"c:\resource\plugins\ifeui.rsc"
+"\epoc32\data\z\resource\plugins\javaappschemeplugin.rsc"     -"c:\resource\plugins\javaappschemeplugin.rsc"
 "\epoc32\winscw\c\private\102033E6\installer\inst_plugins.cfg"-"c:\private\102033E6\installer\inst_plugins.cfg"
 "\epoc32\data\Z\Resource\versions\java.txt"-"c:\resource\versions\java.txt"
 "\epoc32\data\z\resource\java\java_app_92.mif"-"c:\resource\java\java_app.mif"
 "\epoc32\data\z\private\10003a3f\apps\javainstaller_reg.rsc"-"c:\private\10003a3f\import\apps\javainstaller_reg.rsc"
 "\epoc32\data\z\resource\apps\javainstaller_loc.rsc"-"c:\resource\apps\javainstaller_loc.rsc"
 "\epoc32\data\z\resource\apps\javainstaller_icon.mif"-"c:\resource\apps\javainstaller_icon.mif"
-"\epoc32\data\z\resource\java\java_3_trusted.png"-"c:\resource\java\java_3_trusted.png"
-"\epoc32\data\z\resource\java\java_3_untrusted.png"-"c:\resource\java\java_3_untrusted.png"
-"\epoc32\data\z\resource\java\javaapplicationinstaller.css"-"c:\resource\java\javaapplicationinstaller.css"
-"\epoc32\data\z\resource\java\iad\javaunicertstoreplugin.rsc" -"c:\resource\plugins\javaunicertstoreplugin.rsc"
-"\epoc32\data\z\resource\java\iad\midp2backupplugin.rsc"-"c:\resource\plugins\midp2backupplugin.rsc"
+"\epoc32\data\z\resource\java\java_trusted.png"-"c:\resource\java\java_trusted.png"
+"\epoc32\data\z\resource\java\java_untrusted.png"-"c:\resource\java\java_untrusted.png"
+"\epoc32\data\z\resource\plugins\javasidchecker.rsc"   -"c:\resource\plugins\javasidchecker.rsc"
+"\epoc32\data\z\resource\plugins\javaunicertstoreplugin.rsc" -"c:\resource\plugins\javaunicertstoreplugin.rsc"
+"\epoc32\data\z\resource\plugins\midp2backupplugin.rsc"-"c:\resource\plugins\midp2backupplugin.rsc"
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-"\epoc32\data\z\resource\java\iad\javasifplugin.rsc"-"c:\resource\plugins\javasifplugin.rsc"
+"\epoc32\data\z\resource\plugins\javasifplugin.rsc"-"c:\resource\plugins\javasifplugin.rsc"
 #endif
 
 "\epoc32\data\z\resource\java\javausermessages.r01"-"c:\resource\java\javausermessages.r01"
@@ -321,13 +318,14 @@
 ;"\epoc32\release\armv5\urel\javacoreui.dll"-"c:\sys\bin\javacoreui.dll"
 ;"\epoc32\data\z\resource\apps\javastartscreen.mif"-"c:\resource\apps\javastartscreen.mif"
 
-"\epoc32\release\armv5\urel\javaamms.dll"-"c:\sys\bin\javaamms.dll"
-"\epoc32\release\armv5\urel\z\resource\java\jvm\lib\jrt\javaamms.odc"-"c:\resource\java\jvm\lib\jrt\javaamms.odc"
+;"\epoc32\release\armv5\urel\javaamms.dll"-"c:\sys\bin\javaamms.dll"
+;"\epoc32\release\armv5\urel\z\resource\java\jvm\lib\jrt\javaamms.odc"-"c:\resource\java\jvm\lib\jrt\javaamms.odc"
 
-"\epoc32\release\armv5\urel\javamobilemedia.dll"-"c:\sys\bin\javamobilemedia.dll"
-"\epoc32\release\armv5\urel\z\resource\java\jvm\lib\jrt\javamobilemedia.odc"-"c:\resource\java\jvm\lib\jrt\javamobilemedia.odc"
-"\epoc32\release\armv5\urel\z\system\sounds\digital\CamcorderJavaCapture.wav"-"c:\System\Sounds\Digital\CamcorderJavaCapture.wav"
-"\epoc32\release\armv5\urel\z\system\sounds\digital\CamcorderJavaStart.wav"-"c:\System\Sounds\Digital\CamcorderJavaStart.wav"
+;"\epoc32\release\armv5\urel\javalegacyutils.dll"-"c:\sys\bin\javalegacyutils.dll"
+;"\epoc32\release\armv5\urel\z\resource\java\jvm\lib\jrt\javalegacyutils.odc"-"c:\resource\java\jvm\lib\jrt\javalegacyutils.odc"
+
+;"\epoc32\release\armv5\urel\javamobilemedia.dll"-"c:\sys\bin\javamobilemedia.dll"
+;"\epoc32\release\armv5\urel\z\resource\java\jvm\lib\jrt\javamobilemedia.odc"-"c:\resource\java\jvm\lib\jrt\javamobilemedia.odc"
 
 ;"\epoc32\release\armv5\urel\javam2g.dll"-"c:\sys\bin\javam2g.dll"
 ;"\epoc32\release\armv5\urel\z\resource\java\jvm\lib\jrt\javam2g.odc"-"c:\resource\java\jvm\lib\jrt\javam2g.odc"
@@ -335,20 +333,16 @@
 ;"\epoc32\release\armv5\urel\javam3g.dll"-"c:\sys\bin\javam3g.dll"
 ;"\epoc32\release\armv5\urel\z\resource\java\jvm\lib\jrt\javam3g.odc"-"c:\resource\java\jvm\lib\jrt\javam3g.odc"
 
-"\epoc32\release\armv5\urel\javanokiasound.dll"-"c:\sys\bin\javanokiasound.dll"
-"\epoc32\release\armv5\urel\z\resource\java\jvm\lib\jrt\javanokiasound.odc"-"c:\resource\java\jvm\lib\jrt\javanokiasound.odc"
+;"\epoc32\release\armv5\urel\javanokiasound.dll"-"c:\sys\bin\javanokiasound.dll"
+;"\epoc32\release\armv5\urel\z\resource\java\jvm\lib\jrt\javanokiasound.odc"-"c:\resource\java\jvm\lib\jrt\javanokiasound.odc"
 
 ;"\epoc32\release\armv5\urel\javasoftnotification.dll"-"c:\sys\bin\javasoftnotification.dll"
 ;"\epoc32\release\armv5\urel\z\resource\java\jvm\lib\jrt\javasoftnotification.odc"-"c:\resource\java\jvm\lib\jrt\javasoftnotification.odc"
 
 "\epoc32\release\armv5\urel\eswtqt.dll"-"c:\sys\bin\eswtqt.dll"
-"\epoc32\release\armv5\urel\eswtqtwebkit.dll"-"c:\sys\bin\eswtqtwebkit.dll"
 "\epoc32\release\armv5\urel\openlcdui.dll"-"c:\sys\bin\openlcdui.dll"
 "\epoc32\release\armv5\urel\javanokiaui.dll"-"c:\sys\bin\javanokiaui.dll"
 "\epoc32\release\armv5\urel\z\resource\java\jvm\lib\jrt\eswtqt.odc"-"c:\resource\java\jvm\lib\jrt\eswtqt.odc"
-"\epoc32\release\armv5\urel\z\resource\java\jvm\lib\jrt\eswtqtwebkit.odc"-"c:\resource\java\jvm\lib\jrt\eswtqtwebkit.odc"
 "\epoc32\release\armv5\urel\z\resource\java\jvm\lib\jrt\openlcdui.odc"-"c:\resource\java\jvm\lib\jrt\openlcdui.odc"
 "\epoc32\release\armv5\urel\z\resource\java\jvm\lib\jrt\javanokiaui.odc"-"c:\resource\java\jvm\lib\jrt\javanokiaui.odc"
 
-"\epoc32\release\armv5\urel\javaapplicationsettingsview.dll"-"c:\sys\bin\javaapplicationsettingsview.dll"
-"\epoc32\data\z\resource\qt\plugins\appsettings\javaapplicationsettingsview.qtplugin"-"c:\resource\qt\plugins\appsettings\javaapplicationsettingsview.qtplugin"
--- a/build/sis/java_rnd_tools.pkg	Wed Sep 15 12:05:25 2010 +0300
+++ b/build/sis/java_rnd_tools.pkg	Wed Oct 13 14:23:59 2010 +0300
@@ -31,6 +31,10 @@
 ;to be installed on Series 60 v5.0 platforms
 [0x1028315F], 0, 0, 0, {"Series60ProductID"}
 
+"\epoc32\release\armv5\urel\JavaCap.exe"-"c:\sys\bin\JavaCap.exe"
+"\epoc32\data\z\private\10003a3f\apps\JavaCap_reg.rsc"-"c:\private\10003a3f\import\apps\JavaCap_reg.rsc"
+"\epoc32\data\z\resource\apps\JavaCap.rsc"            -"c:\resource\apps\JavaCap.rsc"
+
 ;j9dmp23.dll is a J9 VM plugin that provides the thread dump utility.
 "\epoc32\release\armv5\urel\j9dmp23.dll"-"c:\sys\bin\j9dmp23.dll"
 ;javathreaddumper.dll provides the thread dump agent.
@@ -42,8 +46,3 @@
 
 ; javainstaller.exe is a command line tool for starting javainstaller for RnD purposes only
 "\epoc32\release\armv5\urel\javainstaller.exe"-"c:\sys\bin\javainst.exe"
-
-
-"\epoc32\release\armv5\urel\javacontrolpanel.dll"-"c:\sys\bin\javacontrolpanel.dll"
-"\epoc32\release\armv5\urel\javacontrolpanel.exe"-"c:\sys\bin\javacontrolpanel.exe"
-"\epoc32\data\z\private\10003a3f\apps\javacontrolpanel_reg.rsc" -"c:\private\10003a3f\import\apps\javacontrolpanel_reg.rsc"
--- a/build/symbian_uids.pri	Wed Sep 15 12:05:25 2010 +0300
+++ b/build/symbian_uids.pri	Wed Oct 13 14:23:59 2010 +0300
@@ -120,12 +120,6 @@
 contains(TARGET, javacaptain_ext_scrupdater): TARGET.UID3 = 0x2002DD10
 contains(TARGET, javacaptain_ext_ondemand_2): TARGET.UID3 = 0x2002DD01
 contains(TARGET, javanokiaui): TARGET.UID3 = 0x2002E697
-contains(TARGET, javacaptain_ext_autostarter): TARGET.UID3 = 0x2002EA7E
-contains(TARGET, javacontrolpanel): TARGET.UID3 = 0x2002FF62
-contains(TARGET, eswtqtwebkit): TARGET.UID3 = 0x2002FFA9
-contains(TARGET, javaopengles): TARGET.UID3 = 0x20031DD1
-contains(TARGET, javacentrep): TARGET.UID3 = 0x2002DCE1
-contains(TARGET, javachapi): TARGET.UID3 = 0x2002DCE4
 
 isEmpty(TARGET.UID3): error($${TEMPLATE} $${TARGET} : UID3 not defined. Please allocate UID3 and configure it either on $${TARGET}.pro file or in command symbian_uids.pri)
 
--- a/build/templates/10.1.layers.sysdef.xml	Wed Sep 15 12:05:25 2010 +0300
+++ b/build/templates/10.1.layers.sysdef.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -12,12 +12,26 @@
               qmakeArgs="-r"
               filter="!sf_build" />
       </module>
+      
+<!--  When releasing to SF, change the sf_build to this.
       <module name="jrt_sf">
         <unit name="jrt_sf" unitID="jrt.jrt_sf" mrp=""
               bldFile="&layer_real_source_path;" proFile="jrt.pro"
               qmakeArgs="-r RD_JAVA_SF_BUILD=1"
               filter="sf_build" />
       </module>
+-->
+      <module name="jrt">
+        <unit name="jrt_jrt_plat" unitID="jrt.jrt.jrt_plat" mrp=""
+              bldFile="&layer_real_source_path;/jrt_plat/group"
+              filter="sf_build"  />
+      </module>
+      <module name="jrt">
+        <unit name="jrt_jrt_stubs" unitID="jrt.jrt.java_stubs" mrp=""
+              bldFile="&layer_real_source_path;/java_stubs/group"
+              filter="sf_build" />
+      </module>
+      
     </layer>
   </systemModel>
 </SystemDefinition>
--- a/build/templates/9.2.layers.sysdef.xml	Wed Sep 15 12:05:25 2010 +0300
+++ b/build/templates/9.2.layers.sysdef.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -10,10 +10,22 @@
         <unit unitID="jrt.jrt" mrp="" bldFile="&layer_real_source_path;/group"
         filter="!sf_build" name="jrt" />
       </module>      
+
+<!--  When releasing to SF, change the sf_build to this.      
       <module name="jrt_sf">
         <unit unitID="jrt.jrt_sf" mrp="" bldFile="&layer_real_source_path;/group/sf"
         filter="sf_build" name="jrt_sf" />
       </module>
+-->
+      <module name="jrt">
+        <unit unitID="jrt.jrt.jrt_plat" mrp="" bldFile="&layer_real_source_path;/jrt_plat/group"
+        filter="sf_build" name="jrt_jrt_plat" />
+      </module>
+      <module name="jrt">
+        <unit unitID="jrt.jrt.java_stubs" mrp="" bldFile="&layer_real_source_path;/java_stubs/group"
+        filter="sf_build" name="jrt_jrt_stubs" />
+      </module>
+      
     </layer>
   </systemModel>
 </SystemDefinition>
--- a/build/templates/nokia_pkgdef_template.xml	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<SystemDefinition xmlns:sf="http://www.symbian.org/system-definition" xmlns:qt="http://www.nokia.com/qt" schema="3.0.1" id-namespace="http://www.nokia.com/schema/drd/system-definition">
-  <package id="sf:jrt" name="Java Runtime" levels="util generic rt ui">
-  
-    <!-- Redefines some of the SF collections with Nokia versions. This file
-         can be removed after the jrt package has been split properly. -->
-    
-    <collection id="sf:javacommons" name="Java Commons" level="generic" replace="sf:javacommons">
-      <component id="javacommons_build" filter="s60" name="Java Commons Build">
-        <unit bldFile="../../javacommons" qt:proFile="javacommons.pro"/>
-      </component>
-    </collection>
-    <collection id="sf:javaruntimes" name="Java Runtimes" level="rt" replace="sf:javaruntimes">
-      <component id="javaruntimes_build" filter="s60" name="Java Runtimes Build">
-        <unit bldFile="../../javaruntimes" qt:proFile="javaruntimes.pro"/>
-      </component>
-    </collection>
-    <collection id="sf:javauis" name="Java UIs" level="ui" replace="sf:javauis">
-      <component id="javauis_build" filter="s60" name="Java UIs Build">
-        <unit bldFile="../../javauis" qt:proFile="javauis.pro"/>
-      </component>
-    </collection>
-    <collection id="sf:javamanager" name="Java Manager" level="generic" replace="sf:javamanager">
-      <component id="javamanager_build" filter="s60" name="Java Manager Build">
-        <unit bldFile="../../javamanager" qt:proFile="javamanager.pro"/>
-      </component>
-    </collection>
-    <collection id="sf:javatools" name="Java Tools" level="util" replace="sf:javatools">
-      <component id="javatools_build" filter="s60" name="Java Tools Build">
-        <unit bldFile="../../javatools" qt:proFile="javatools.pro"/>
-      </component>
-    </collection>
-    <collection id="sf:javaextensions" name="Java Extensions" level="generic" replace="sf:javaextensions">
-      <component id="javaextensions_build" filter="s60" name="Java Extensions Build">
-        <unit bldFile="../../javaextensions" qt:proFile="javaextensions.pro"/>
-      </component>
-    </collection>
-    
-  </package>
-</SystemDefinition>
--- a/build/templates/pkgdef_template.xml	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<SystemDefinition xmlns:qt="http://www.nokia.com/qt" schema="3.0.0">
-
-  <package id="jrt" name="Java Runtime" levels="util generic rt ui">
-  
-    <!-- Plaform API collection, building this just exports the platform APIs headers -->
-    
-    <collection id="jrt_plat" name="JRT Platform Interfaces" level="ui">
-      <component id="java_registry_api" name="Java Registry API" class="api" filter="s60">
-        <meta rel="Api" href="jrt_plat/java_registry_api/java_registry_api.metaxml"/>
-        <unit bldFile="jrt_plat/java_registry_api/build"/>
-      </component>
-      <component id="java_env_info_api" name="Java Environment Info API" class="api" filter="s60">
-        <meta rel="Api" href="jrt_plat/java_env_info_api/java_env_info_api.metaxml"/>
-        <unit bldFile="jrt_plat/java_env_info_api/build"/>
-      </component>
-      <component id="java_debug_api" name="Java Debug API" class="api" filter="s60">
-        <meta rel="Api" href="jrt_plat/java_debug_api/java_debug_api.metaxml"/>
-        <unit bldFile="jrt_plat/java_debug_api/build"/>
-      </component>
-    </collection>
-    
-    
-    <!-- A Pseudo collection, building this exports e.g. the ODC and IBY files, 
-         generates the stub sis file for the jrt package and builds the java 
-         sources (including the JNI headers needed in native compilation). -->
-         
-    <collection id="build_nativejava" name="Build Native Java">
-      <component id="nativejava" name="Build Native Java" filter="s60" introduced="^4">
-        <unit bldFile="build"/>
-      </component>      
-    </collection>
-
-    
-    <!-- Real collections, building these builds the native resources and native sources. -->
-    
-    <collection id="javacommons" name="Java Commons" level="generic">
-      <component id="javacommons_build" filter="s60" name="Java Commons Build">
-        <unit bldFile="javacommons" qt:proFile="javacommons.pro" qt:qmakeArgs="-r RD_JAVA_SF_BUILD=1"/>
-      </component>
-    </collection>
-    <collection id="javaruntimes" name="Java Runtimes" level="rt">
-      <component id="javaruntimes_build" filter="s60" name="Java Runtimes Build">
-        <unit bldFile="javaruntimes" qt:proFile="javaruntimes.pro" qt:qmakeArgs="-r RD_JAVA_SF_BUILD=1"/>
-      </component>
-    </collection>
-    <collection id="javauis" name="Java UIs" level="ui">
-      <component id="javauis_build" filter="s60" name="Java UIs Build">
-        <unit bldFile="javauis" qt:proFile="javauis.pro" qt:qmakeArgs="-r RD_JAVA_SF_BUILD=1"/>
-      </component>
-    </collection>
-    <collection id="javamanager" name="Java Manager" level="generic">
-      <component id="javamanager_build" filter="s60" name="Java Manager Build">
-        <unit bldFile="javamanager" qt:proFile="javamanager.pro" qt:qmakeArgs="-r RD_JAVA_SF_BUILD=1"/>
-      </component>
-    </collection>
-    <collection id="javatools" name="Java Tools" level="util">
-      <component id="javatools_build" filter="s60" name="Java Tools Build">
-        <unit bldFile="javatools" qt:proFile="javatools.pro" qt:qmakeArgs="-r RD_JAVA_SF_BUILD=1"/>
-      </component>
-    </collection>
-    <collection id="javaextensions" name="Java Extensions" level="generic">
-      <component id="javaextensions_build" filter="s60" name="Java Extensions Build">
-        <unit bldFile="javaextensions" qt:proFile="javaextensions.pro" qt:qmakeArgs="-r RD_JAVA_SF_BUILD=1"/>
-      </component>
-    </collection>
-    
-  </package>
-</SystemDefinition>
--- a/build/templates/pkgmap_template.xml	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-<PackageMap root="sf" layer="app"/>
--- a/build/unittest.properties	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-<!--
-#
-# Copyright (c) 2008-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 properties
--->
-no.rommizing         = true
-no.collection.update = true
--- a/build/utilities.xml	Wed Sep 15 12:05:25 2010 +0300
+++ b/build/utilities.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -12,7 +12,7 @@
 #
 # Contributors:
 #
-# Description:
+# Description: 
 #
 -->
 
@@ -24,27 +24,27 @@
   APIs can use default values, but if some property is not suitable, it can
   be overridden.
 
-    java.src.paths    The source path. If there are more than one source path
+    java.src.paths    The source path. If there are more than one source path 
                       concatenate the paths using ':' as separator. Default is
                       '../javasrc
 
-    java.src.second.paths    The source path for the second phase compilation.
-                      If there are more than one source path concatenate the
+    java.src.second.paths    The source path for the second phase compilation. 
+                      If there are more than one source path concatenate the 
                       paths using ':' as separator. Default is '../javasrc.cdc
 
     bootclasspath     The bootclasspath used for compile time. Default is CLDC
 
-    bootclasspath.second     The bootclasspath used for the second phase
+    bootclasspath.second     The bootclasspath used for the second phase 
                       compilation.. Default is CDC
 
-    native.dll.name   The name of the dll (without extension) which will
-                      contain the rommized byte code. The default value is the
+    native.dll.name   The name of the dll (without extension) which will 
+                      contain the rommized byte code. The default value is the 
                       name of the ant project.
-
-
+  
+  
   Following properties are optionals:
 
-    javah.classnames        A list of classes using ',' as separator to be
+    javah.classnames        A list of classes using ',' as separator to be 
                             "javah"ed.
 
 -->
@@ -52,12 +52,12 @@
 
   <import file="properties.xml"/>
 
-
+  
   <!--Importing platform specific utilities. This might seem quite complex,
       since we need to import a default one (utilities.fake.xml), because
       the property ${platform.utilities.xml.file} need to have some meaningful
-      value when the utilities.xml is used for the first time. The default one
-      isn't used at all, instead the platform dependent xml file is defined
+      value when the utilities.xml is used for the first time. The default one 
+      isn't used at all, instead the platform dependent xml file is defined 
       using additional antcall after the dynamic properties have been defined.
       See targets deploy and deploy.dual-->
   <import file="${platform.utilities.xml.file}"/>
@@ -78,30 +78,26 @@
 <!--STARTING POINTS START-->
 
   <!--The start point of the component's build when there are classes that can
-      be compiled against same configuration (cldc, cdc, etc). This is the
+      be compiled against same configuration (cldc, cdc, etc). This is the 
       normal case for the most of the components-->
-  <target name="deploy" depends="init.properties, make.target.dirs, component.init">
+  <target name="deploy" depends="init.properties, make.target.dirs">
     <antcall target="deploy.internal">
-      <param name="platform.utilities.xml.file"
+      <param name="platform.utilities.xml.file" 
              value="${dyn.platform.utilities.xml.file}"/>
     </antcall>
   </target>
 
   <!--The start point of the component's build when there are classes from two
       different configurations (cldc, cdc, etc). The default order is that cldc
-      is compiled in first phase and cdc in the second, but the component is
+      is compiled in first phase and cdc in the second, but the component is 
       able to variate the behavior.
   -->
-  <target name="deploy.dual" depends="init.properties, make.target.dirs, component.init">
+  <target name="deploy.dual" depends="init.properties, make.target.dirs">
     <antcall target="deploy.dual.internal">
       <param name="platform.utilities.xml.file" value="${dyn.platform.utilities.xml.file}"/>
     </antcall>
   </target>
 
-  <!--For overriding by the build.xml of the component-->
-  <target name="component.init">
-  </target>
-
 <!--STARTING POINTS END-->
 
 
@@ -118,10 +114,10 @@
 
 
   <!--An internal target to be called using antcall in order to import correct
-      platform specific helper xml file for the first phase compilation.
-      This targe assumes that the antcall to this target (or target that
+      platform specific helper xml file for the first phase compilation. 
+      This targe assumes that the antcall to this target (or target that 
       depends on this) defines following property:
-         * platform.utilities.xml.file   A file containg platform specific
+         * platform.utilities.xml.file   A file containg platform specific 
                                          implementations of certain common
                                          targets
   -->
@@ -130,12 +126,12 @@
 
 
   <!--Target that launches the first phase compilation. After this target
-      classes are compiled into classes/first directory, copied to
+      classes are compiled into classes/first directory, copied to 
       classes/collection directory, finetuned (platform specific) and
       copied into jar containig all the classes of the different components.-->
   <target name="deploy.first" depends="do.export">
 
-    <!--If the platform specific directory exists, it is added to the
+    <!--If the platform specific directory exists, it is added to the 
         source path -->
     <condition property="additional.java.src.path.first"
                value=";${javasrc.platform.specific}"
@@ -148,7 +144,7 @@
       <param name="compile.target" value="compile"/>
       <param name="int.bcp" value=""/>
       <param name="bcp" value="${bootclasspath}"/>
-      <param name="jsrc"
+      <param name="jsrc" 
              value="${java.src.paths}${additional.java.src.path.first}"/>
       <param name="dst.dir" value="${classes.first.dir}"/>
     </antcall>
@@ -172,12 +168,12 @@
   </target>
 
   <!--Target that launches the second phase compilation. After this target
-      classes are compiled into classes/second directory, copied to
+      classes are compiled into classes/second directory, copied to 
       classes/collection directory, finetuned (platform specific) and
       copied into jar containig all the classes of the different components.-->
   <target name="deploy.second" depends="deploy.first, init.second.phase">
 
-    <!--If the platform specific cdc directory exists, it is added to the
+    <!--If the platform specific cdc directory exists, it is added to the 
         source path -->
     <condition property="additional.java.src.path.second"
                value=";${javasrc.platform.specific.cdc}"
@@ -190,7 +186,7 @@
       <param name="compile.target" value="compile.second"/>
       <param name="int.bcp" value="${classes.first.dir}"/>
       <param name="bcp" value="${bootclasspath.second}"/>
-      <param name="jsrc"
+      <param name="jsrc" 
            value="${java.src.second.paths}${additional.java.src.path.second}"/>
       <param name="dst.dir" value="${classes.second.dir}"/>
     </antcall>
@@ -233,7 +229,7 @@
     <ant target="emma.instr"/>
     <ant target="add.classes.to.collection.jar"/>
     <ant target="collect.localisation.files"/>
-
+    
     <!--Copy only changed classes into collection dir -->
     <copy todir="${classes.collection.dir}">
       <fileset dir="${dst.dir}" includes="**/*.class">
@@ -245,7 +241,7 @@
 
   <!--Target that does the pre rpocessing of the java code. This is not done
       by default - it is done only if property java.cpp.defines has been
-      defined by the component. Java source files are pre processed into
+      defined by the component. Java source files are pre processed into 
       component's classes/firstjavacpp (or classes/secondjavacpp in case of
        second phase compilation) directory
   -->
@@ -257,12 +253,12 @@
       <arg value="${jsrc}"/>
       <arg value="${java.cpp.tmp.dir}"/>
     </exec>
-
+    
   </target>
 
   <!--Groups a set of functionalities that are done after java code has
       been compiled ad finetuned -->
-  <target name="finalize" depends="create.internal.api.jar,
+  <target name="finalize" depends="create.internal.api.jar, 
                                    create.public.api.jar, javah, generate.odc,
                                    rommize.classes, jni.utils">
   </target>
@@ -296,7 +292,7 @@
 
   <!--Target for making component specific initalizations depending on
       the values of dynamic properties (e.g. Target platform).
-      The default implementation of this target is empty and the component
+      The default implementation of this target is empty and the component 
       should override this if it provides public APIs -->
   <target name="init.target">
   </target>
@@ -308,20 +304,20 @@
 
 <!--JAVAC START-->
 
-  <!--Javac
+  <!--Javac 
        TODO: bootclasspath should look like this:
       bootclasspath="${bcp}:${int.bcp}:${platform.api.jar}:${public.api.jar}">
   -->
   <presetdef name="omj.javac">
-    <javac
-      source="${javac.source}"
+    <javac 
+      source="${javac.source}" 
       target="${javac.target}"
       destdir="${dst.dir}"
       debug="${javac.debug.on}"
       debuglevel="lines,vars,source"
       bootclasspath="${bcp}:${int.bcp}:${platform.api.jar}:${public.api.jar}${eswt.jar}">
-
-   <!-- Uncomment the following line if you want to see Javac warnings. -->
+      
+   <!-- Uncomment the following line if you want to see Javac warnings. -->      
    <!--   <compilerarg value="-Xlint"/> -->
 
       <src path="${jsrc.for.javac}"/>
@@ -374,7 +370,7 @@
 <!--ODC FILE START-->
 
   <!--Generate the odc files -->
-  <target name="generate.odc" depends="system.properties" unless="no.rommizing">
+  <target name="generate.odc" depends="system.properties">
     <exec executable="python" failonerror="true">
       <arg value="${java.src.root}/build/buildutils/generateOdcFile.py"/>
       <arg value="${component.root.dir}/${odc.file.name}.odc"/>
@@ -384,7 +380,7 @@
     </exec>
 
     <!--Copy the odc file into location where the VM can find it -->
-    <copy file="${component.root.dir}/${odc.file.name}.odc"
+    <copy file="${component.root.dir}/${odc.file.name}.odc" 
           todir="${bcp.dest.directory}"/>
   </target>
 
@@ -400,9 +396,9 @@
            update="true"/>
   </presetdef>
 
-  <!--Create an internal API jar file into directory containig all the
-      internal API jar files. The default implementation of this target is
-      empty and the component should override this if it provides internal
+  <!--Create an internal API jar file into directory containig all the 
+      internal API jar files. The default implementation of this target is 
+      empty and the component should override this if it provides internal 
       APIs -->
   <target name="create.internal.api.jar">
   </target>
@@ -415,9 +411,9 @@
       />
   </presetdef>
 
-  <!--Create a public API jar file into directory containig all the
-      public API jar files. The default implementation of this target is
-      empty and the component should override this if it provides public
+  <!--Create a public API jar file into directory containig all the 
+      public API jar files. The default implementation of this target is 
+      empty and the component should override this if it provides public 
       APIs -->
   <target name="create.public.api.jar">
   </target>
@@ -425,7 +421,7 @@
   <!--Updated the classes into the common jar file. If the Java code contains
       cldc compilable code it is put into jar file ${impl.cldc.jar} otherwise
       ${impl.cdc.jar} is updated.-->
-  <target name="add.classes.to.collection.jar" unless="no.collection.update">
+  <target name="add.classes.to.collection.jar">
       <condition property="collection.target.jar"
                value="${impl.cdc.jar}"
                else="${impl.cldc.jar}">
@@ -450,7 +446,7 @@
       if they have changed, then they are copied into a directory that
       is included to the component's makefile -->
   <target name="javah" if="javah.classnames">
-    <javah destdir="${temp.javah.dir}" force="yes"
+    <javah destdir="${temp.javah.dir}" force="yes" 
        classpath="${classes.collection.dir}:${platform.api.jar}:${public.api.jar}"
        class = "${javah.classnames}">
     </javah>
@@ -472,7 +468,7 @@
       in order to include platform specific utility xml file.-->
   <target name="export" depends="init.properties, make.target.dirs">
     <antcall target="do.export">
-      <param name="platform.utilities.xml.file"
+      <param name="platform.utilities.xml.file" 
              value="${dyn.platform.utilities.xml.file}"/>
     </antcall>
   </target>
@@ -522,17 +518,8 @@
 
 
 <!--CLEANING START-->
-
-  <target name="clean" depends="clean.impl, component.clean">
-  </target>
-
-  <!--For overriding by the build.xml of the component-->
-  <target name="component.clean">
-  </target>
-
   <!--Do the cleaning-->
-  <target name="clean.impl" depends="init.properties, clean.from.collection.jars,
-                                     emma.clean">
+  <target name="clean" depends="init.properties, emma.clean">
     <!--
     <echo message = "target.platform = ${target.platform}"/>
     <echo message = "target.cfg = ${target.cfg}"/>
@@ -552,51 +539,6 @@
     <delete file="${bcp.dest.directory}/${odc.file.name}.odc"/>
   </target>
 
-    <!--
-    This target will remove the classes of the component from
-    the collection jar files. It is quite time consuming so at the moment
-    this is not done by default unless the component specifies
-    collection.clean propert.
-    -->
-  <target name="clean.from.collection.jars" if="collection.clean">
-    <antcall target="clean.from.jar">
-      <param name="source.jar.file" value="${platform.api.jar}"/>
-      <param name="source.src.dir" value="${classes.collection.dir}"/>
-    </antcall>
-
-    <antcall target="clean.from.jar">
-      <param name="source.jar.file" value="${public.api.jar}"/>
-      <param name="source.src.dir" value="${classes.first.dir}"/>
-    </antcall>
-
-    <antcall target="clean.from.jar">
-      <param name="source.jar.file" value="${impl.cldc.jar}"/>
-      <param name="source.src.dir" value="${classes.first.dir}"/>
-    </antcall>
-
-    <antcall target="clean.from.jar">
-      <param name="source.jar.file" value="${impl.cdc.jar}"/>
-      <param name="source.src.dir" value="${classes.second.dir}"/>
-    </antcall>
-  </target>
-
-
-  <target name="existence.check">
-    <available file="${source.jar.file}" property="cleaning.jar.present"/>
-  </target>
-
-  <target name="clean.from.jar" depends="existence.check" if="cleaning.jar.present">
-    <property name="clean.tmp" location="${component.root.dir}/cleantmp"/>
-    <mkdir dir="${clean.tmp}"/>
-    <unzip src="${source.jar.file}" dest="${clean.tmp}/"/>
-    <delete file="${source.jar.file}"/>
-    <jar destfile="${source.jar.file}">
-      <fileset dir="${clean.tmp}">
-        <present present="srconly" targetdir="${source.src.dir}"/>
-      </fileset>
-    </jar>
-    <delete dir="${clean.tmp}"/>
-  </target>
 
   <!--Do the cleaning-->
   <target name="clean.api.jars" depends="init.properties">
@@ -613,10 +555,10 @@
 
   <!--Generate signature jar file-->
   <target name="generate.signature.jars" depends="init.properties">
-   <zip destfile="${signature.jar}">
-     <zipfileset src="${bootclasspath.cldc}"/>
-     <zipfileset src="${impl.cldc.jar}"/>
-   </zip>
+   <zip destfile="${signature.jar}">  
+     <zipfileset src="${bootclasspath.cldc}"/>  
+     <zipfileset src="${impl.cldc.jar}"/>  
+   </zip>  
   </target>
 
 
@@ -633,7 +575,6 @@
 	   <fileset dir="${java.src.root}/javacommons/" defaultexcludes="yes">
 		 <include name="utils/javasrc/com/nokia/mj/impl/rt/support/*.java"/>
 		 <include name="utils/javasrc/com/nokia/mj/impl/utils/**/*.java"/>
-		 <include name="utils/javasrc/com/nokia/mj/impl/rt/ui/**/*.java"/>
 		 <include name="fileutils/javasrc/**/*.java"/>
   	     <include name="comms/javasrc/**/*.java"/>
 		 <include name="javastorage/javasrc/**/*.java"/>
--- a/inc/build_defines.hrh	Wed Sep 15 12:05:25 2010 +0300
+++ b/inc/build_defines.hrh	Wed Oct 13 14:23:59 2010 +0300
@@ -15,8 +15,7 @@
 *
 */
 
-#define RD_JAVA_VERSION 2,2,13
-#define RD_JAVA_BIN_VERSION_NONQT 10.525
+#define RD_JAVA_VERSION 2,1,44 
 #define RD_JAVA_SYMBIAN_TARGET 
 #define RD_JAVA_S60_RELEASE_9_2 
 #define RD_JAVA_S60_RELEASE_9_2_ONWARDS 
@@ -26,7 +25,6 @@
 #define RD_JAVA_HTTP_EMC_ENABLED 
 #define RD_JAVA_NGA_ENABLED 
 #define RD_JAVA_PROXIMITY_LISTENER_ENABLED 
-#define RD_JAVA_PIM_MULTICAL_ENABLED 
 #define RD_JAVA_OPENC_BETA_PATCH 
 #define RD_JAVA_INSTALLERUI_ENABLED 
 #define RD_JAVA_PREWARM 
--- a/inc/build_defines.pri	Wed Sep 15 12:05:25 2010 +0300
+++ b/inc/build_defines.pri	Wed Oct 13 14:23:59 2010 +0300
@@ -13,5 +13,4 @@
 #
 # Description: Generated file - do not edit manually
 #
-RD_JAVA_BIN_VERSION = 10.2.13
-PROJECT_DEFINES *= RD_JAVA_SYMBIAN_TARGET RD_JAVA_S60_RELEASE_9_2 RD_JAVA_S60_RELEASE_9_2_ONWARDS RD_JAVA_S60_RELEASE_5_0_ONWARDS RD_JAVA_STDCPPV5 RD_JAVA_EPOCALLOWDLLDATA_FIX RD_JAVA_HTTP_EMC_ENABLED RD_JAVA_NGA_ENABLED RD_JAVA_PROXIMITY_LISTENER_ENABLED RD_JAVA_PIM_MULTICAL_ENABLED RD_JAVA_OPENC_BETA_PATCH RD_JAVA_INSTALLERUI_ENABLED RD_JAVA_PREWARM RD_JAVA_ADVANCED_TACTILE_FEEDBACK RD_JAVA_MIDPRMS_DB 
+PROJECT_DEFINES *= RD_JAVA_SYMBIAN_TARGET RD_JAVA_S60_RELEASE_9_2 RD_JAVA_S60_RELEASE_9_2_ONWARDS RD_JAVA_S60_RELEASE_5_0_ONWARDS RD_JAVA_STDCPPV5 RD_JAVA_EPOCALLOWDLLDATA_FIX RD_JAVA_HTTP_EMC_ENABLED RD_JAVA_NGA_ENABLED RD_JAVA_PROXIMITY_LISTENER_ENABLED RD_JAVA_OPENC_BETA_PATCH RD_JAVA_INSTALLERUI_ENABLED RD_JAVA_PREWARM RD_JAVA_ADVANCED_TACTILE_FEEDBACK RD_JAVA_MIDPRMS_DB 
--- a/inc/java.txt	Wed Sep 15 12:05:25 2010 +0300
+++ b/inc/java.txt	Wed Oct 13 14:23:59 2010 +0300
@@ -1,1 +1,1 @@
-2.2.13
+2.1.44
--- a/inc/java_s60_release.hrh	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-RD_JAVA_S60_RELEASE=9.2
--- a/inc/project_defines.hrh	Wed Sep 15 12:05:25 2010 +0300
+++ b/inc/project_defines.hrh	Wed Oct 13 14:23:59 2010 +0300
@@ -24,7 +24,6 @@
 MACRO RD_JAVA_HTTP_EMC_ENABLED 
 MACRO RD_JAVA_NGA_ENABLED 
 MACRO RD_JAVA_PROXIMITY_LISTENER_ENABLED 
-MACRO RD_JAVA_PIM_MULTICAL_ENABLED 
 MACRO RD_JAVA_OPENC_BETA_PATCH 
 MACRO RD_JAVA_INSTALLERUI_ENABLED 
 MACRO RD_JAVA_PREWARM 
--- a/javacommons/comms/build/bld.inf	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/comms/build/bld.inf	Wed Oct 13 14:23:59 2010 +0300
@@ -19,5 +19,5 @@
 default
 
 PRJ_MMPFILES  
-javacomms_0x2002DCA6.mmp 
+comms_0x2002DCA6.mmp 
 #include "exports.inf" 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/comms/build/comms.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -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: 
+#
+
+TEMPLATE=lib
+TARGET=javacomms
+CONFIG += omj java staticdata stl
+CONFIG -= qt
+LIBS += -ljavaipc
+
+
+include(../../../build/omj.pri)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/comms/build/comms_0x2002DCA6.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,151 @@
+/*
+* 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: Generated file - do not edit manually
+*
+*/
+
+// ==============================================================================
+// Generated by qmake (2.01a) (Qt 4.6.4) on: (date)
+// This file is generated by qmake and should not be modified by the
+// user.
+//  Name        : comms.mmp
+// ==============================================================================
+
+TARGET		javacomms.dll
+TARGETTYPE		DLL
+
+UID		0x1000008d 0x2002DCA6
+SECUREID		0x2002DCA6
+
+EPOCALLOWDLLDATA
+
+
+// Qt Macros
+MACRO		UNICODE
+MACRO		QT_KEYPAD_NAVIGATION
+MACRO		QT_SOFTKEYS_ENABLED
+MACRO		QT_USE_MATH_H_FLOATS
+MACRO		RD_JAVA_SYMBIAN_TARGET
+MACRO		RD_JAVA_S60_RELEASE_9_2
+MACRO		RD_JAVA_S60_RELEASE_9_2_ONWARDS
+MACRO		RD_JAVA_S60_RELEASE_5_0_ONWARDS
+MACRO		RD_JAVA_STDCPPV5
+MACRO		RD_JAVA_EPOCALLOWDLLDATA_FIX
+MACRO		RD_JAVA_HTTP_EMC_ENABLED
+MACRO		RD_JAVA_NGA_ENABLED
+MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
+MACRO		RD_JAVA_OPENC_BETA_PATCH
+MACRO		RD_JAVA_INSTALLERUI_ENABLED
+MACRO		RD_JAVA_PREWARM
+MACRO		RD_JAVA_ADVANCED_TACTILE_FEEDBACK
+MACRO		RD_JAVA_MIDPRMS_DB
+MACRO		__SYMBIAN32__
+MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
+
+SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
+SYSTEMINCLUDE		../inc
+SYSTEMINCLUDE		../../inc
+SYSTEMINCLUDE		../../../inc
+SYSTEMINCLUDE		../src
+SYSTEMINCLUDE		/epoc32/include/stdapis/stlportv5
+SYSTEMINCLUDE		/epoc32/include/mw
+SYSTEMINCLUDE		.
+
+SOURCEPATH 	../src
+SOURCE		commsclientendpoint.cpp
+SOURCE		commscontext.cpp
+SOURCE		commsendpoint.cpp
+SOURCE		commsendpointnative.cpp
+SOURCE		commsmessage.cpp
+SOURCE		commsserverendpoint.cpp
+SOURCE		listeners.cpp
+
+
+LIBRARY		javaipc.lib
+LIBRARY		javautils.lib
+LIBRARY		libpthread.lib
+LIBRARY		libstdcppv5.lib
+LIBRARY		libc.lib
+LIBRARY		libm.lib
+LIBRARY		euser.lib
+LIBRARY		libdl.lib
+LIBRARY		cone.lib
+LIBRARY		eikcore.lib
+LIBRARY		mediaclientaudio.lib
+LIBRARY		eikcoctl.lib
+LIBRARY		eiksrv.lib
+LIBRARY		apparc.lib
+LIBRARY		avkon.lib
+LIBRARY		efsrv.lib
+LIBRARY		charconv.lib
+LIBRARY		ws32.lib
+LIBRARY		hal.lib
+LIBRARY		gdi.lib
+LIBRARY		apgrfx.lib
+
+CAPABILITY		all -tcb 
+
+OPTION CW -wchar_t on
+OPTION ARMCC --visibility_inlines_hidden
+#if defined(ARMCC_4_0)
+OPTION ARMCC --import_all_vtbl
+#endif
+OPTION GCCE -fvisibility-inlines-hidden
+
+VERSION 10.0
+
+ARMFPU softvfp
+
+PAGED
+
+BYTEPAIRCOMPRESSTARGET
+
+USERINCLUDE .
+
+#include <platform_paths.hrh>
+
+ APP_LAYER_SYSTEMINCLUDE
+
+ OS_LAYER_LIBC_SYSTEMINCLUDE
+
+ OS_LAYER_SSL_SYSTEMINCLUDE
+
+deffile ./~/javacomms.def
+
+ SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlportv5)
+
+SYSTEMINCLUDE /epoc32/build/jrt/javabuild/inc.javah
+
+SOURCEPATH /epoc32/build/jrt/javabuild/javacomms
+
+SOURCE lookup.cpp
+
+SOURCEPATH /epoc32/build/jrt/javabuild/javacomms
+
+SOURCE jxe.c
+
+#ifdef WINSCW
+
+LIBRARY ewsd.lib
+
+#endif
+
+STDCPP
+
+#ifdef WINSCW
+DEFFILE ./bwins/javacomms.def
+#elif defined EABI
+DEFFILE ./eabi/javacomms.def
+#endif
--- a/javacommons/comms/build/javacomms.pro	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-#
-# 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: 
-#
-
-TEMPLATE=lib
-TARGET=javacomms
-CONFIG += omj java staticdata stl
-CONFIG -= qt
-LIBS += -ljavaipc
-
-
-include(../../../build/omj.pri)
--- a/javacommons/comms/build/javacomms_0x2002DCA6.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,151 +0,0 @@
-/*
-* 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: Generated file - do not edit manually
-*
-*/
-
-// ==============================================================================
-// Generated by qmake (2.01a) (Qt 4.6.4) on: (date)
-// This file is generated by qmake and should not be modified by the
-// user.
-//  Name        : javacomms.mmp
-// ==============================================================================
-
-TARGET		javacomms.dll
-TARGETTYPE		DLL
-
-UID		0x1000008d 0x2002DCA6
-SECUREID		0x2002DCA6
-
-EPOCALLOWDLLDATA
-
-
-// Qt Macros
-MACRO		UNICODE
-MACRO		QT_KEYPAD_NAVIGATION
-MACRO		QT_SOFTKEYS_ENABLED
-MACRO		QT_USE_MATH_H_FLOATS
-MACRO		RD_JAVA_SYMBIAN_TARGET
-MACRO		RD_JAVA_S60_RELEASE_9_2
-MACRO		RD_JAVA_S60_RELEASE_9_2_ONWARDS
-MACRO		RD_JAVA_S60_RELEASE_5_0_ONWARDS
-MACRO		RD_JAVA_STDCPPV5
-MACRO		RD_JAVA_EPOCALLOWDLLDATA_FIX
-MACRO		RD_JAVA_HTTP_EMC_ENABLED
-MACRO		RD_JAVA_NGA_ENABLED
-MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
-MACRO		RD_JAVA_OPENC_BETA_PATCH
-MACRO		RD_JAVA_INSTALLERUI_ENABLED
-MACRO		RD_JAVA_PREWARM
-MACRO		RD_JAVA_ADVANCED_TACTILE_FEEDBACK
-MACRO		RD_JAVA_MIDPRMS_DB
-MACRO		__SYMBIAN32__
-MACRO		J9EPOC32
-
-SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
-SYSTEMINCLUDE		../inc
-SYSTEMINCLUDE		../../inc
-SYSTEMINCLUDE		../../../inc
-SYSTEMINCLUDE		../src
-SYSTEMINCLUDE		/epoc32/include/stdapis/stlportv5
-SYSTEMINCLUDE		/epoc32/include/mw
-SYSTEMINCLUDE		.
-
-SOURCEPATH 	../src
-SOURCE		commsclientendpoint.cpp
-SOURCE		commscontext.cpp
-SOURCE		commsendpoint.cpp
-SOURCE		commsendpointnative.cpp
-SOURCE		commsmessage.cpp
-SOURCE		commsserverendpoint.cpp
-SOURCE		listeners.cpp
-
-
-LIBRARY		javaipc.lib
-LIBRARY		javautils.lib
-LIBRARY		libpthread.lib
-LIBRARY		libstdcppv5.lib
-LIBRARY		libc.lib
-LIBRARY		libm.lib
-LIBRARY		euser.lib
-LIBRARY		libdl.lib
-LIBRARY		cone.lib
-LIBRARY		eikcore.lib
-LIBRARY		mediaclientaudio.lib
-LIBRARY		eikcoctl.lib
-LIBRARY		eiksrv.lib
-LIBRARY		apparc.lib
-LIBRARY		avkon.lib
-LIBRARY		efsrv.lib
-LIBRARY		charconv.lib
-LIBRARY		ws32.lib
-LIBRARY		hal.lib
-LIBRARY		gdi.lib
-LIBRARY		apgrfx.lib
-
-CAPABILITY		all -tcb 
-
-OPTION CW -wchar_t on
-OPTION ARMCC --visibility_inlines_hidden
-#if defined(ARMCC_4_0)
-OPTION ARMCC --import_all_vtbl
-#endif
-OPTION GCCE -fvisibility-inlines-hidden
-
-VERSION 10.525
-
-ARMFPU softvfp
-
-PAGED
-
-BYTEPAIRCOMPRESSTARGET
-
-USERINCLUDE .
-
-#include <platform_paths.hrh>
-
- APP_LAYER_SYSTEMINCLUDE
-
- OS_LAYER_LIBC_SYSTEMINCLUDE
-
- OS_LAYER_SSL_SYSTEMINCLUDE
-
-deffile ./~/javacomms.def
-
- SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlportv5)
-
-SYSTEMINCLUDE /epoc32/build/jrt/javabuild/inc.javah
-
-SOURCEPATH /epoc32/build/jrt/javabuild/javacomms
-
-SOURCE lookup.cpp
-
-SOURCEPATH /epoc32/build/jrt/javabuild/javacomms
-
-SOURCE jxe.c
-
-#ifdef WINSCW
-
-LIBRARY ewsd.lib
-
-#endif
-
-STDCPP
-
-#ifdef WINSCW
-DEFFILE ./bwins/javacomms.def
-#elif defined EABI
-DEFFILE ./eabi/javacomms.def
-#endif
--- a/javacommons/comms/comms.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/comms/comms.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -15,6 +15,6 @@
 #
 TEMPLATE = subdirs
 SUBDIRS += ipclib/clientserver/build/ipc.pro 
-SUBDIRS += build/javacomms.pro 
+SUBDIRS += build/comms.pro 
 BLD_INF_RULES.prj_extensions += "$${LITERAL_HASH}include \"ipclib/build/bld.inf\""  
 BLD_INF_RULES.prj_extensions += "prj_extensions" 
--- a/javacommons/comms/ipclib/clientserver/build/ipc_0x2002DCB7.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/comms/ipclib/clientserver/build/ipc_0x2002DCB7.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../inc
@@ -105,7 +105,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javacommons/comms/ipclib/clientserver/src.s60/commssession.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/comms/ipclib/clientserver/src.s60/commssession.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -87,10 +87,7 @@
         }
         else
         {
-            if (rc != KErrOverflow)
-            {
-                WLOG2(EJavaComms, "%s failed, err = %d", __PRETTY_FUNCTION__, rc);
-            }
+            WLOG2(EJavaComms, "%s failed, err = %d", __PRETTY_FUNCTION__, rc);
         }
     }
     return 0;
@@ -154,10 +151,7 @@
         }
         else
         {
-            if (rc != KErrOverflow)
-            {
-                WLOG2(EJavaComms, "%s failed, err = %d", __PRETTY_FUNCTION__, rc);
-            }
+            WLOG2(EJavaComms, "%s failed, err = %d", __PRETTY_FUNCTION__, rc);
         }
     }
 }
@@ -199,7 +193,7 @@
     else
     {
         rc = KErrOverflow;
-        LOG3(EJavaComms, EInfo, "%s: allocated length for message is too small (required size=%d, allocated size=%d)",
+        WLOG3(EJavaComms, "%s: allocated length for message is too small (required size=%d, allocated size=%d)",
               __PRETTY_FUNCTION__, neededLength, allocatedLength);
     }
 
--- a/javacommons/comms/ipclib/clientserver/src.s60/creceiver.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/comms/ipclib/clientserver/src.s60/creceiver.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -33,20 +33,8 @@
 CReceiver::CReceiver(IpcClient& aParent, IpcListener& aListener, RComms& aSession)
         : CActive(EPriorityStandard), mParent(aParent), mListener(aListener), mSession(aSession)
 {
-}
-
-CReceiver* CReceiver::NewLC(IpcClient& aParent, IpcListener& aListener, RComms& aSession)
-{
-    CReceiver* self = new(ELeave) CReceiver(aParent, aListener, aSession);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    return self;
-}
-
-void CReceiver::ConstructL()
-{
     CActiveScheduler::Add(this);
-    mBuffer.CreateL(DEFAULT_BUFFER_SIZE);
+    mBuffer.Create(DEFAULT_BUFFER_SIZE);
 }
 
 CReceiver::~CReceiver()
@@ -78,7 +66,7 @@
         // buffer was not big enough for the message so reallocate buffer with correct size
         mBuffer.Close();
         mBuffer.ReAllocL(mRequiredLength());
-        LOG2(EJavaComms, EInfo, "%s: increasing buffer size to %d", __PRETTY_FUNCTION__, mRequiredLength());
+        WLOG2(EJavaComms, "%s: increasing buffer size to %d", __PRETTY_FUNCTION__, mRequiredLength());
         Receive();
     }
     break;
--- a/javacommons/comms/ipclib/clientserver/src.s60/creceiver.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/comms/ipclib/clientserver/src.s60/creceiver.h	Wed Oct 13 14:23:59 2010 +0300
@@ -31,16 +31,12 @@
 
 NONSHARABLE_CLASS(CReceiver): public CActive
 {
+public:
     CReceiver(IpcClient& aParent, IpcListener& aListener, RComms& aSession);
-public:
-    static CReceiver* NewLC(IpcClient& aParent, IpcListener& aListener, RComms& aSession);
-
     ~CReceiver();
     void Receive();
 
 private:
-    void ConstructL();
-
     virtual void RunL();
     virtual void DoCancel();
     virtual TInt RunError(TInt aError);
--- a/javacommons/comms/ipclib/clientserver/src.s60/ipcclient.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/comms/ipclib/clientserver/src.s60/ipcclient.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -176,7 +176,8 @@
     User::LeaveIfError(mComms.Connect(serverName->Des()));
     LOG1(EJavaComms, EInfo, "IpcClient connected to %s", address.str().c_str());
 
-    mReceiver = CReceiver::NewLC(*this, *mListener, mComms);
+    mReceiver = new(ELeave) CReceiver(*this, *mListener, mComms);
+    CleanupStack::PushL(mReceiver);
     mReceiver->Receive();
 
     CActiveScheduler::Add(this);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/comms/tsrc/Makefile	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,22 @@
+#
+# 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:
+#
+
+include $(JAVA_SRC_ROOT)/build/Makefile.defs
+
+COMPONENTS = build
+SUBSYSTEMS = javaapi
+
+include ${JAVA_SRC_ROOT}/build/Makefile.subsystem
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/comms/tsrc/javaapi/Makefile	Wed Oct 13 14:23:59 2010 +0300
@@ -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: 
+#
+
+include $(JAVA_SRC_ROOT)/build/Makefile.defs
+
+COMPONENTS = \
+    build
+
+include ${JAVA_SRC_ROOT}/build/Makefile.subsystem
+
+run: default_target
--- a/javacommons/comms/tsrc/javaapi/build/build.xml	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/comms/tsrc/javaapi/build/build.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -27,6 +27,7 @@
   <property name="src.dir" location="../javasrc"/>
   <property name="build.dir" location="../build"/>
   <property name="classes.dir" location="${build.dir}/javabuild"/>
+  <property name="dist" location="${java.bin.root}/jsr/classes"/>
 
   <property name="commstest.jar.filename" value="commstest.jar"/>
   <property name="junit.jar.dir" location="${java.src.root}/tools/junit"/>
@@ -40,9 +41,9 @@
 
   <target name="clean" depends="init.properties">
     <delete dir="${classes.dir}"/>
-    <delete file="${vm.extension.directory}/${commstest.jar.filename}"/>
-    <delete file="${vm.extension.directory}/${junit.jar.filename}"/>
-    <delete file="${vm.extension.directory}/${junit.omj.jar.filename}"/>
+    <delete file="${dist}/${commstest.jar.filename}"/>
+    <delete file="${dist}/${junit.jar.filename}"/>
+    <delete file="${dist}/${junit.omj.jar.filename}"/>
   </target>
 
   <target name="compile.ut" depends="init.properties">
@@ -63,7 +64,7 @@
   </target>
 
   <target name="deploy.ut" depends="compile.ut">
-      <mkdir dir="${vm.extension.directory}"/>
+      <mkdir dir="${dist}"/>
       <jar destfile="${vm.extension.directory}/${commstest.jar.filename}" basedir="${classes.dir}"/>
       <copy file="${junit.jar.dir}/${junit.jar.filename}"
             tofile="${vm.extension.directory}/${junit.jar.filename}"/>
--- a/javacommons/comms/tsrc/javaapi/build/javacaptain_ext_ondemand_101.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/comms/tsrc/javaapi/build/javacaptain_ext_ondemand_101.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -25,6 +25,5 @@
 
 symbian {
     SOURCES += ../src.s60/lookup.cpp
-    TARGET.UID3 = 0xE0000055
 }
 include(../../../../../build/omj.pri)
--- a/javacommons/comms/tsrc/javaapi/subsystem.mk	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-#
-# 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: 
-#
-
-include $(JAVA_SRC_ROOT)/build/Makefile.defs
-
-COMPONENTS = \
-    build
-
-include ${JAVA_SRC_ROOT}/build/Makefile.subsystem
-
-run: default_target
--- a/javacommons/comms/tsrc/subsystem.mk	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-#
-# 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:
-#
-
-include $(JAVA_SRC_ROOT)/build/Makefile.defs
-
-COMPONENTS = build
-SUBSYSTEMS = javaapi
-
-include ${JAVA_SRC_ROOT}/build/Makefile.subsystem
--- a/javacommons/connectionmanager/build/javaconnectionmanager_0x2002DCA7.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/connectionmanager/build/javaconnectionmanager_0x2002DCA7.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc.s60
@@ -102,7 +102,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javacommons/connectionmanager/inc.s60/connectionmanager.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/connectionmanager/inc.s60/connectionmanager.h	Wed Oct 13 14:23:59 2010 +0300
@@ -163,7 +163,6 @@
 
     static HBufC8 * PromptUserSelectNetworkAccessPointL();
     static HBufC8 * CreateDescriptorL(const int aType, const int id);
-    static bool checkIapDefaultL(TUint32 aMatchIapId, TUint32 aDestId, bool aDefault);
 
 
 
--- a/javacommons/connectionmanager/legacysupport/apnsettings/tsrc.s60/build/testapnsettings.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/connectionmanager/legacysupport/apnsettings/tsrc.s60/build/testapnsettings.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -22,9 +22,7 @@
 #include <../../../../../../inc/java_stdcpp_support_for_exe.hrh>
 #include <platform_paths.hrh>
 
-USERINCLUDE /epoc32/include/cpputest    // Due to TestHarness.h
-
-USERINCLUDE ../../inc.s60
+USERINCLUDE /epoc32/include/cpputest
 USERINCLUDE ../../../../../../inc
 
 // Using main() as entry point
--- a/javacommons/connectionmanager/legacysupport/apnsettings/tsrc.s60/src/AllTests.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/connectionmanager/legacysupport/apnsettings/tsrc.s60/src/AllTests.h	Wed Oct 13 14:23:59 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-#include "cpputest/Utest.h"
+#include "Utest.h"
 
 //Include this in the test main to execute these tests
 IMPORT_TEST_GROUP(TestAPNSettings);
--- a/javacommons/connectionmanager/legacysupport/apnsettings/tsrc.s60/src/testapnsettings.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/connectionmanager/legacysupport/apnsettings/tsrc.s60/src/testapnsettings.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -16,9 +16,11 @@
 */
 
 #include <memory>
-#include <cpputest/TestHarness.h>
+
+#include "TestHarness.h"
 
-#include "mapnsettings.h"
+#include "../../inc.s60/mapnsettings.h"
+
 #include "javastorage.h"
 #include "javastorageexception.h"
 #include "javastoragenames.h"
--- a/javacommons/connectionmanager/src.s60/connectionmanager.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/connectionmanager/src.s60/connectionmanager.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -65,21 +65,7 @@
 
 EXPORT_C bool ConnectionManager::isIapDefault(TUint32 aMatchIapId, TUint32 aDestId, bool aDefault)
 {
-	  LOG(ESOCKET,EInfo,"+ConnectionManager::isIapDefault");
-	  bool retVal = false;
-    TRAPD(err,retVal = checkIapDefaultL(aMatchIapId,aDestId,aDefault));
-    if(err!=KErrNone)
-    {
-        // error occured
-        return false;
-    }
-    return retVal;
-}
-
-bool ConnectionManager::checkIapDefaultL(TUint32 aMatchIapId, TUint32 aDestId, bool aDefault)
-{
-	
-    LOG(ESOCKET,EInfo,"+ConnectionManager::checkIapDefaultL");
+    LOG(ESOCKET,EInfo,"+ConnectionManager::getDefualtId");
     TUint32 id = aDestId;
     TUint32 tmpapId;
     TCmDefConnType type;
@@ -118,9 +104,8 @@
             return true;
         }
     }
-    return false;	
-	
-	
+    return false;
+
 }
 
 // ---------------------------------------------------------------------------
@@ -304,7 +289,7 @@
     {
         JavaStorageApplicationEntry_t::const_iterator findIterator = entries.find(attribute);
 
-        if (findIterator != entries.end())
+        if (findIterator != entries.end() && findIterator->entryValue().length()>0 )
         {
             JavaStorageEntry sourceEntry = (*findIterator);
             temp.append(sourceEntry.entryValue().c_str());
--- a/javacommons/fileutils/build/bld.inf	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/fileutils/build/bld.inf	Wed Oct 13 14:23:59 2010 +0300
@@ -19,5 +19,5 @@
 default
 
 PRJ_MMPFILES  
-javafileutils_0x2002DCAD.mmp 
+fileutils_0x2002DCAD.mmp 
 #include "exports.inf" 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/fileutils/build/fileutils.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -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: 
+#
+
+TARGET=javafileutils
+TEMPLATE=lib
+CONFIG += omj java staticdata stl
+CONFIG -= qt
+
+symbian : LIBS += -lefsrv -lPlatformEnv -lcaf
+
+LIBS+= -ljavautils -ljavacomms
+
+include(../../../build/omj.pri)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/fileutils/build/fileutils_0x2002DCAD.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,166 @@
+/*
+* 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: Generated file - do not edit manually
+*
+*/
+
+// ==============================================================================
+// Generated by qmake (2.01a) (Qt 4.6.4) on: (date)
+// This file is generated by qmake and should not be modified by the
+// user.
+//  Name        : fileutils.mmp
+// ==============================================================================
+
+TARGET		javafileutils.dll
+TARGETTYPE		DLL
+
+UID		0x1000008d 0x2002DCAD
+SECUREID		0x2002DCAD
+
+EPOCALLOWDLLDATA
+
+
+// Qt Macros
+MACRO		UNICODE
+MACRO		QT_KEYPAD_NAVIGATION
+MACRO		QT_SOFTKEYS_ENABLED
+MACRO		QT_USE_MATH_H_FLOATS
+MACRO		RD_JAVA_SYMBIAN_TARGET
+MACRO		RD_JAVA_S60_RELEASE_9_2
+MACRO		RD_JAVA_S60_RELEASE_9_2_ONWARDS
+MACRO		RD_JAVA_S60_RELEASE_5_0_ONWARDS
+MACRO		RD_JAVA_STDCPPV5
+MACRO		RD_JAVA_EPOCALLOWDLLDATA_FIX
+MACRO		RD_JAVA_HTTP_EMC_ENABLED
+MACRO		RD_JAVA_NGA_ENABLED
+MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
+MACRO		RD_JAVA_OPENC_BETA_PATCH
+MACRO		RD_JAVA_INSTALLERUI_ENABLED
+MACRO		RD_JAVA_PREWARM
+MACRO		RD_JAVA_ADVANCED_TACTILE_FEEDBACK
+MACRO		RD_JAVA_MIDPRMS_DB
+MACRO		__SYMBIAN32__
+MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
+
+SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
+SYSTEMINCLUDE		../inc.s60
+SYSTEMINCLUDE		../inc
+SYSTEMINCLUDE		../../inc
+SYSTEMINCLUDE		../../../inc
+SYSTEMINCLUDE		../src
+SYSTEMINCLUDE		../src.s60
+SYSTEMINCLUDE		/epoc32/include/stdapis/stlportv5
+SYSTEMINCLUDE		/epoc32/include/mw
+SYSTEMINCLUDE		.
+
+SOURCEPATH 	../src
+SOURCE		driveobserverclient.cpp
+SOURCE		driveobserverserver.cpp
+SOURCE		driveutilities.cpp
+SOURCE		fileextendedcommon.cpp
+SOURCE		filestreamhandlerjni.cpp
+SOURCE		fileutilities.cpp
+SOURCE		fileutilityjni.cpp
+SOURCE		nativefileiohandler.cpp
+
+SOURCEPATH 	../src.s60
+SOURCE		drivechangedeventgenerator.cpp
+SOURCE		filedrmcontenthandler.cpp
+SOURCE		filedrmhandlerjni.cpp
+SOURCE		filemanager.cpp
+SOURCE		fileplatformspecificsjni.cpp
+SOURCE		filesystemutils.cpp
+SOURCE		s60driveutilities.cpp
+SOURCE		s60filesystemutilities.cpp
+
+
+LIBRARY		efsrv.lib
+LIBRARY		PlatformEnv.lib
+LIBRARY		caf.lib
+LIBRARY		javautils.lib
+LIBRARY		javacomms.lib
+LIBRARY		libpthread.lib
+LIBRARY		libstdcppv5.lib
+LIBRARY		libc.lib
+LIBRARY		libm.lib
+LIBRARY		euser.lib
+LIBRARY		libdl.lib
+LIBRARY		cone.lib
+LIBRARY		eikcore.lib
+LIBRARY		mediaclientaudio.lib
+LIBRARY		eikcoctl.lib
+LIBRARY		eiksrv.lib
+LIBRARY		apparc.lib
+LIBRARY		avkon.lib
+LIBRARY		charconv.lib
+LIBRARY		ws32.lib
+LIBRARY		hal.lib
+LIBRARY		gdi.lib
+LIBRARY		apgrfx.lib
+
+CAPABILITY		all -tcb 
+
+OPTION CW -wchar_t on
+OPTION ARMCC --visibility_inlines_hidden
+#if defined(ARMCC_4_0)
+OPTION ARMCC --import_all_vtbl
+#endif
+OPTION GCCE -fvisibility-inlines-hidden
+
+VERSION 10.0
+
+ARMFPU softvfp
+
+PAGED
+
+BYTEPAIRCOMPRESSTARGET
+
+USERINCLUDE .
+
+#include <platform_paths.hrh>
+
+ APP_LAYER_SYSTEMINCLUDE
+
+ OS_LAYER_LIBC_SYSTEMINCLUDE
+
+ OS_LAYER_SSL_SYSTEMINCLUDE
+
+deffile ./~/javafileutils.def
+
+ SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlportv5)
+
+SYSTEMINCLUDE /epoc32/build/jrt/javabuild/inc.javah
+
+SOURCEPATH /epoc32/build/jrt/javabuild/javafileutils
+
+SOURCE lookup.cpp
+
+SOURCEPATH /epoc32/build/jrt/javabuild/javafileutils
+
+SOURCE jxe.c
+
+#ifdef WINSCW
+
+LIBRARY ewsd.lib
+
+#endif
+
+STDCPP
+
+#ifdef WINSCW
+DEFFILE ./bwins/javafileutils.def
+#elif defined EABI
+DEFFILE ./eabi/javafileutils.def
+#endif
--- a/javacommons/fileutils/build/javafileutils.pro	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-#
-# 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: 
-#
-
-TARGET=javafileutils
-TEMPLATE=lib
-CONFIG += omj java staticdata stl
-CONFIG -= qt
-
-symbian : LIBS += -lefsrv -lplatformenv -lcaf
-
-LIBS+= -ljavautils -ljavacomms
-
-include(../../../build/omj.pri)
--- a/javacommons/fileutils/build/javafileutils_0x2002DCAD.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,166 +0,0 @@
-/*
-* 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: Generated file - do not edit manually
-*
-*/
-
-// ==============================================================================
-// Generated by qmake (2.01a) (Qt 4.6.4) on: (date)
-// This file is generated by qmake and should not be modified by the
-// user.
-//  Name        : javafileutils.mmp
-// ==============================================================================
-
-TARGET		javafileutils.dll
-TARGETTYPE		DLL
-
-UID		0x1000008d 0x2002DCAD
-SECUREID		0x2002DCAD
-
-EPOCALLOWDLLDATA
-
-
-// Qt Macros
-MACRO		UNICODE
-MACRO		QT_KEYPAD_NAVIGATION
-MACRO		QT_SOFTKEYS_ENABLED
-MACRO		QT_USE_MATH_H_FLOATS
-MACRO		RD_JAVA_SYMBIAN_TARGET
-MACRO		RD_JAVA_S60_RELEASE_9_2
-MACRO		RD_JAVA_S60_RELEASE_9_2_ONWARDS
-MACRO		RD_JAVA_S60_RELEASE_5_0_ONWARDS
-MACRO		RD_JAVA_STDCPPV5
-MACRO		RD_JAVA_EPOCALLOWDLLDATA_FIX
-MACRO		RD_JAVA_HTTP_EMC_ENABLED
-MACRO		RD_JAVA_NGA_ENABLED
-MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
-MACRO		RD_JAVA_OPENC_BETA_PATCH
-MACRO		RD_JAVA_INSTALLERUI_ENABLED
-MACRO		RD_JAVA_PREWARM
-MACRO		RD_JAVA_ADVANCED_TACTILE_FEEDBACK
-MACRO		RD_JAVA_MIDPRMS_DB
-MACRO		__SYMBIAN32__
-MACRO		J9EPOC32
-
-SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
-SYSTEMINCLUDE		../inc.s60
-SYSTEMINCLUDE		../inc
-SYSTEMINCLUDE		../../inc
-SYSTEMINCLUDE		../../../inc
-SYSTEMINCLUDE		../src
-SYSTEMINCLUDE		../src.s60
-SYSTEMINCLUDE		/epoc32/include/stdapis/stlportv5
-SYSTEMINCLUDE		/epoc32/include/mw
-SYSTEMINCLUDE		.
-
-SOURCEPATH 	../src
-SOURCE		driveobserverclient.cpp
-SOURCE		driveobserverserver.cpp
-SOURCE		driveutilities.cpp
-SOURCE		fileextendedcommon.cpp
-SOURCE		filestreamhandlerjni.cpp
-SOURCE		fileutilities.cpp
-SOURCE		fileutilityjni.cpp
-SOURCE		nativefileiohandler.cpp
-
-SOURCEPATH 	../src.s60
-SOURCE		drivechangedeventgenerator.cpp
-SOURCE		filedrmcontenthandler.cpp
-SOURCE		filedrmhandlerjni.cpp
-SOURCE		filemanager.cpp
-SOURCE		fileplatformspecificsjni.cpp
-SOURCE		filesystemutils.cpp
-SOURCE		s60driveutilities.cpp
-SOURCE		s60filesystemutilities.cpp
-
-
-LIBRARY		efsrv.lib
-LIBRARY		platformenv.lib
-LIBRARY		caf.lib
-LIBRARY		javautils.lib
-LIBRARY		javacomms.lib
-LIBRARY		libpthread.lib
-LIBRARY		libstdcppv5.lib
-LIBRARY		libc.lib
-LIBRARY		libm.lib
-LIBRARY		euser.lib
-LIBRARY		libdl.lib
-LIBRARY		cone.lib
-LIBRARY		eikcore.lib
-LIBRARY		mediaclientaudio.lib
-LIBRARY		eikcoctl.lib
-LIBRARY		eiksrv.lib
-LIBRARY		apparc.lib
-LIBRARY		avkon.lib
-LIBRARY		charconv.lib
-LIBRARY		ws32.lib
-LIBRARY		hal.lib
-LIBRARY		gdi.lib
-LIBRARY		apgrfx.lib
-
-CAPABILITY		all -tcb 
-
-OPTION CW -wchar_t on
-OPTION ARMCC --visibility_inlines_hidden
-#if defined(ARMCC_4_0)
-OPTION ARMCC --import_all_vtbl
-#endif
-OPTION GCCE -fvisibility-inlines-hidden
-
-VERSION 10.525
-
-ARMFPU softvfp
-
-PAGED
-
-BYTEPAIRCOMPRESSTARGET
-
-USERINCLUDE .
-
-#include <platform_paths.hrh>
-
- APP_LAYER_SYSTEMINCLUDE
-
- OS_LAYER_LIBC_SYSTEMINCLUDE
-
- OS_LAYER_SSL_SYSTEMINCLUDE
-
-deffile ./~/javafileutils.def
-
- SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlportv5)
-
-SYSTEMINCLUDE /epoc32/build/jrt/javabuild/inc.javah
-
-SOURCEPATH /epoc32/build/jrt/javabuild/javafileutils
-
-SOURCE lookup.cpp
-
-SOURCEPATH /epoc32/build/jrt/javabuild/javafileutils
-
-SOURCE jxe.c
-
-#ifdef WINSCW
-
-LIBRARY ewsd.lib
-
-#endif
-
-STDCPP
-
-#ifdef WINSCW
-DEFFILE ./bwins/javafileutils.def
-#elif defined EABI
-DEFFILE ./eabi/javafileutils.def
-#endif
--- a/javacommons/fileutils/javasrc/com/nokia/mj/impl/fileutils/FileOutputStream.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/fileutils/javasrc/com/nokia/mj/impl/fileutils/FileOutputStream.java	Wed Oct 13 14:23:59 2010 +0300
@@ -64,7 +64,10 @@
 
     public synchronized void flush() throws IOException
     {
-        // Data written to native side immediately. Nothing to flush.
+        if (iDataSink != null)
+        {
+            iDataSink.flush();
+        }
     }
 
     public void close() throws IOException
--- a/javacommons/fileutils/javasrc/com/nokia/mj/impl/fileutils/FileStreamHandler.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/fileutils/javasrc/com/nokia/mj/impl/fileutils/FileStreamHandler.java	Wed Oct 13 14:23:59 2010 +0300
@@ -240,6 +240,11 @@
         _writeData(iNativeHandle, aBytes, aOffset, aLength);
     }
 
+    protected void flush()
+    {
+        _flush(iNativeHandle);
+    }
+    
     /**
      * Closes all output streams.
      *
@@ -331,6 +336,8 @@
 
     private native void _writeData(int aNativePeer, byte[] aBytes, int aOffset,
                                    int aLength);
+                                   
+    private native void _flush(int aNativePeer);                                   
 
     private native void _closeFileStream(int aHandle);
 
--- a/javacommons/fileutils/javasrc/com/nokia/mj/impl/fileutils/FileURL.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/fileutils/javasrc/com/nokia/mj/impl/fileutils/FileURL.java	Wed Oct 13 14:23:59 2010 +0300
@@ -23,7 +23,7 @@
  * differences between URL and Absolute path and make it transparent to use
  * from.
  */
-public final class FileURL
+final class FileURL
 {
     private static String FILE_PREFIX = "file://";
 
--- a/javacommons/fileutils/src.s60/filesystemutils.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/fileutils/src.s60/filesystemutils.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -25,7 +25,6 @@
 #include "s60filesystemutilities.h"
 #include "javasymbianoslayer.h"
 
-#define BUF_LEN 255
 using namespace std;
 using namespace java::util;
 using namespace java::fileutils;
@@ -95,9 +94,8 @@
 OS_EXPORT std::wstring FileUtilities::listRoots()
 {
     JELOG2(EJavaFile);
-    TBuf<BUF_LEN> buf;
-    buf.Copy(S60FileSystemUtilities::GetSupportedDrives());    
-    std::wstring retString((wchar_t*)buf.Ptr());
+    TDesC16 aDes(S60FileSystemUtilities::GetSupportedDrives());
+    std::wstring retString((wchar_t*)aDes.Ptr());
     return retString;
 }
 
--- a/javacommons/fileutils/src/filestreamhandlerjni.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/fileutils/src/filestreamhandlerjni.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -187,6 +187,35 @@
 
 /*
  * Class:     com_nokia_mj_impl_fileutils_FileStreamHandler
+* Method:    _flush
+* Signature: (I)V
+*/
+JNIEXPORT void JNICALL Java_com_nokia_mj_impl_fileutils_FileStreamHandler__1flush
+(JNIEnv *aJni, jobject, jint aHandle)
+{
+    try
+    {
+        NativeFileIOHandler* handler =
+            reinterpret_cast<NativeFileIOHandler*>(aHandle);
+        handler->flush();
+    }
+    catch (int error)
+    {
+        WLOG1(EJavaFile, "FileStreamHandler: JNI: flush error : Error: %d",
+              error);
+        JniUtils::throwNewException(aJni, "java/io/IOException",
+                                    "Flush failed.");
+    }
+    catch (...)
+    {
+        ELOG(EJavaFile, "FileStreamHandler: JNI: flush: Unknown error.");
+        JniUtils::throwNewException(aJni, "java/io/IOException",
+                                    "Flush failed.");
+    }
+}
+
+/*
+ * Class:     com_nokia_mj_impl_fileutils_FileStreamHandler
  * Method:    _closeFileStream
  * Signature: (I)V
  */
--- a/javacommons/fileutils/src/fileutilities.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/fileutils/src/fileutilities.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -18,7 +18,6 @@
 
 #include <dirent.h>
 #include <errno.h>
-#include <sys/types.h>
 #include <sys/stat.h>
 #include <unistd.h>
 #include <stack>
@@ -323,8 +322,7 @@
         char *dirName = JavaCommonUtils::wstringToUtf8(path);
         if (ableToOpen)
         {
-            DIR* wDirHandle = opendir(dirName);
-            if (!wDirHandle)
+            if (!opendir(dirName))
             {
                 ableToOpen = false;
                 if (mkdir(dirName,0666)<0)
@@ -335,7 +333,6 @@
                     return -1;
                 }
             }
-            closedir(wDirHandle); 
         }
         else
         {
--- a/javacommons/fileutils/src/nativefileiohandler.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/fileutils/src/nativefileiohandler.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -18,8 +18,6 @@
 #include <errno.h>
 #include <fcntl.h>
 #include <locale.h>
-#include <sys/types.h>
-#include <sys/stat.h>
 #include <unistd.h>
 #include <string>
 
@@ -179,6 +177,19 @@
     closeStream();
 }
 
+void NativeFileIOHandler::flush()
+{
+    JELOG2(EJavaFile);
+    int ret = fsync(mFileDescriptor);
+    if (ret < 0)
+    {
+        ELOG1(EJavaFile, "NativeFileIOHandler::flush() error %d", ret);
+        int error = errno;
+        throw error;
+    }
+
+}
+
 void NativeFileIOHandler::closeStream()
 {
     JELOG2(EJavaFile);
--- a/javacommons/fileutils/src/nativefileiohandler.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/fileutils/src/nativefileiohandler.h	Wed Oct 13 14:23:59 2010 +0300
@@ -94,6 +94,11 @@
      * Returns the amount of data available in the file from current read offset.
      */
     virtual long available();
+    
+    /**
+     * Flush the contents to the permanent storage.
+     */
+    virtual void flush();
 
 protected:
     virtual void handleReopenCase();
--- a/javacommons/fileutils/tsrc/fileutilstestinit/build/javafileutilstestinit.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/fileutils/tsrc/fileutilstestinit/build/javafileutilstestinit.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -21,6 +21,7 @@
 
 symbian {
     TARGET.CAPABILITY = all -tcb
+    INCLUDEPATH += /epoc32/include/caf
     LIBS += -lcaf -lcafutils -lefsrv -lDrmParsers -lDRMServerInterfaces
 }
 
--- a/javacommons/gcfbase/build/javagcf_0x2002DCAE.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/gcfbase/build/javagcf_0x2002DCAE.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc.s60
@@ -107,7 +107,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javacommons/gcfprotocols/file/build/javafile.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/gcfprotocols/file/build/javafile.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -20,7 +20,7 @@
 CONFIG -= qt
 
 symbian {
-    LIBS+= -leuser -lefsrv -lplatformenv
+    LIBS+= -leuser -lefsrv -lPlatformEnv
 }
 
 include(../../../../build/omj.pri)
--- a/javacommons/gcfprotocols/file/build/javafile_0x2002DCAC.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/gcfprotocols/file/build/javafile_0x2002DCAC.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../../inc
@@ -69,7 +69,7 @@
 
 LIBRARY		euser.lib
 LIBRARY		efsrv.lib
-LIBRARY		platformenv.lib
+LIBRARY		PlatformEnv.lib
 LIBRARY		javautils.lib
 LIBRARY		libpthread.lib
 LIBRARY		libstdcppv5.lib
@@ -98,7 +98,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javacommons/gcfprotocols/file/tsrc/mt/filetestinit/build/javafiletestinit.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/gcfprotocols/file/tsrc/mt/filetestinit/build/javafiletestinit.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -21,6 +21,7 @@
 
 symbian {
     TARGET.CAPABILITY = all -tcb
+    INCLUDEPATH += /epoc32/include/caf
     LIBS += -lcaf -lcafutils -lefsrv -lDrmParsers -lDRMServerInterfaces
 }
 
--- a/javacommons/gcfprotocols/http/build/javahttp.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/gcfprotocols/http/build/javahttp.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -21,9 +21,7 @@
 CONFIG -= qt
 
 symbian {
-
-    LIBS += -leuser -lhttp -lecom -lbafl -linetprotutil -lhttpfiltercommon -lx509 -lx500 -lcrypto -lesock -lcommdb -lcentralrepository -lwebutils
-
+    LIBS += -leuser -lhttp -lecom -lbafl -linetprotutil -lhttpfiltercommon -lx509 -lx500 -lcrypto -lesock -lcentralrepository -lwebutils 
     contains(PROJECT_DEFINES,RD_JAVA_S60_RELEASE_5_0) {
         LIBS += -lcommdb
     }
@@ -32,4 +30,6 @@
     }
 }
 
+
+
 include(../../../../build/omj.pri)
--- a/javacommons/gcfprotocols/http/build/javahttp_0x2002DCB1.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/gcfprotocols/http/build/javahttp_0x2002DCB1.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc.s60
@@ -83,7 +83,6 @@
 LIBRARY		x500.lib
 LIBRARY		crypto.lib
 LIBRARY		esock.lib
-LIBRARY		commdb.lib
 LIBRARY		centralrepository.lib
 LIBRARY		webutils.lib
 LIBRARY		extendedconnpref.lib
@@ -117,7 +116,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javacommons/gcfprotocols/http/src.s60/nativehttptraansaction.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/gcfprotocols/http/src.s60/nativehttptraansaction.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -135,7 +135,7 @@
                     narrowBuffer = HBufC8::NewLC(length);
                     TPtr8 narrowPtr = narrowBuffer->Des();
                     narrowPtr.Copy(rawHeader);
-                    rawHeaderArray.AppendL(narrowBuffer);
+                    rawHeaderArray.Append(narrowBuffer);
                     CleanupStack::Pop(narrowBuffer);
                 }
                 aJni->DeleteLocalRef(jniString);
--- a/javacommons/gcfprotocols/http/src.s60/nativetransaction.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/gcfprotocols/http/src.s60/nativetransaction.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -220,6 +220,7 @@
 
 jstring GetUserAgentL(JNIEnv *aJni, jboolean aMidpRuntime)
 {
+
     jstring header = NULL;
 
     if (aMidpRuntime == false)
@@ -290,6 +291,6 @@
 
         CleanupStack::PopAndDestroy(repository);
     }
-    LOG(ESOCKET,EInfo,"GetUserAgentL() -");
+
     return header;
 }
--- a/javacommons/gcfprotocols/https/build/javahttps_0x2002DCB2.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/gcfprotocols/https/build/javahttps_0x2002DCB2.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../http/inc.s60
@@ -108,7 +108,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javacommons/gcfprotocols/secureconnection/build/javassl_0x2002DCD7.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/gcfprotocols/secureconnection/build/javassl_0x2002DCD7.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../socket/socket/inc
@@ -110,7 +110,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javacommons/gcfprotocols/secureconnection/javasrc/com/nokia/mj/impl/ssl/SecureConnectionImpl.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/gcfprotocols/secureconnection/javasrc/com/nokia/mj/impl/ssl/SecureConnectionImpl.java	Wed Oct 13 14:23:59 2010 +0300
@@ -35,7 +35,6 @@
 import com.nokia.mj.impl.rt.ui.ConfirmData;
 import com.nokia.mj.impl.connectionmanager.ConnectionManager;
 import com.nokia.mj.impl.connectionmanager.AccessPoint;
-import com.nokia.mj.impl.utils.Id;
 import com.nokia.mj.impl.utils.ResourceLoader;
 
 /**
@@ -75,7 +74,7 @@
 
     private static final String LOCALISED_STRING_ID = "qtn_ssl_prompt_";
 
-    private static final Id UNTRUSTED_CERTIFICATE_WARNING = new Id("untrusted_certificate", "N/A");
+    private static final String UNTRUSTED_CERTIFICATE_WARNING = "untrusted_certificate";
 
     /**
      * Constructs the SecureConnectionImpl.
--- a/javacommons/gcfprotocols/socket/serverconnection/build/javasocketscplugin_0x2002DCD5.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/gcfprotocols/socket/serverconnection/build/javasocketscplugin_0x2002DCD5.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc
@@ -104,7 +104,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javacommons/gcfprotocols/socket/socket/build/build.xml	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/gcfprotocols/socket/socket/build/build.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -41,8 +41,7 @@
 
   <property name="javah.classnames" 
             value="com.nokia.mj.impl.socket.SocketConnectionImpl,
-                   com.nokia.mj.impl.socket.ServerSocketConnectionImpl,
-                   com.nokia.mj.impl.properties.socket.SocketDynamicPropertyHandler"/>
+                   com.nokia.mj.impl.socket.ServerSocketConnectionImpl"/>
 
   <target name="create.internal.api.jar">
   	<omj.internal.apis includes="com/nokia/mj/impl/gcf/protocol/socket/Protocol.class,
@@ -55,12 +54,6 @@
   	<omj.public.apis includes="javax/microedition/io/SocketConnection.class,
   														 javax/microedition/io/ServerSocketConnection.class"/>
   </target>
-  <target name="system.properties">
-    <properties>
-    		java.src.paths=${java.src.paths}
-        microedition.hostname=:socket.SocketDynamicPropertyHandler
-    </properties>
-  </target>
   
 </project>
 
--- a/javacommons/gcfprotocols/socket/socket/build/javasocket_0x2002DCD4.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/gcfprotocols/socket/socket/build/javasocket_0x2002DCD4.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../inc
@@ -111,7 +111,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javacommons/gcfprotocols/socket/socket/inc/socketlocalhostinfo.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/gcfprotocols/socket/socket/inc/socketlocalhostinfo.h	Wed Oct 13 14:23:59 2010 +0300
@@ -27,7 +27,7 @@
 public:
 
     OS_IMPORT static int getLocalAddress(int aSd, char *aLocalAddr, int aMidletIapId, int aApType);
-    static char* getLocalHostName();
+
 
 };
 
--- a/javacommons/gcfprotocols/socket/socket/javasrc.s60/com/nokia/mj/impl/gcf/protocol/socket/Protocol.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/gcfprotocols/socket/socket/javasrc.s60/com/nokia/mj/impl/gcf/protocol/socket/Protocol.java	Wed Oct 13 14:23:59 2010 +0300
@@ -151,7 +151,7 @@
             Logger.LOG(Logger.ESOCKET, Logger.EInfo,
                        "socket - protocol class : server connection");
             ApplicationUtils appUtils = ApplicationUtils.getInstance();
-            SocketPermissionImpl per = new SocketPermissionImpl(SocketPermissionImpl.SERVER_TARGET);
+            SocketPermissionImpl per = new SocketPermissionImpl("socket://");
             appUtils.checkPermission(per);
             /* security related stuff */
             Logger.LOG(Logger.ESOCKET, Logger.EInfo,
@@ -168,7 +168,7 @@
                 throw new IllegalArgumentException("Invalid URL: " + fullurl);
             }
             ApplicationUtils appUtils = ApplicationUtils.getInstance();
-            SocketPermissionImpl per = new SocketPermissionImpl(SocketPermissionImpl.CLIENT_TARGET);
+            SocketPermissionImpl per = new SocketPermissionImpl("socket://*");
             appUtils.checkPermission(per);
             /* security related stuff */
             Logger.LOG(Logger.ESOCKET, Logger.EInfo,
--- a/javacommons/gcfprotocols/socket/socket/javasrc/com/nokia/mj/impl/gcf/protocol/socket/PushValidatorImpl.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/gcfprotocols/socket/socket/javasrc/com/nokia/mj/impl/gcf/protocol/socket/PushValidatorImpl.java	Wed Oct 13 14:23:59 2010 +0300
@@ -127,7 +127,7 @@
         Logger.LOG(Logger.ESOCKET, Logger.EInfo,
                    "socket - push validator : before security check");
         ApplicationUtils appUtils = ApplicationUtils.getInstance();
-        SocketPermissionImpl per = new SocketPermissionImpl(SocketPermissionImpl.SERVER_TARGET);
+        SocketPermissionImpl per = new SocketPermissionImpl("socket://");
         appUtils.checkPermission(per);
         /* security check */
         Logger.LOG(Logger.ESOCKET, Logger.EInfo,
--- a/javacommons/gcfprotocols/socket/socket/javasrc/com/nokia/mj/impl/gcf/protocol/socket/SocketPermissionImpl.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/gcfprotocols/socket/socket/javasrc/com/nokia/mj/impl/gcf/protocol/socket/SocketPermissionImpl.java	Wed Oct 13 14:23:59 2010 +0300
@@ -25,13 +25,6 @@
 
 public class SocketPermissionImpl extends PermissionBase
 {
-    /**
-     * Constants for identifying the target/uri of connection: client or server
-     */
-     static String CLIENT_TARGET = "socket://*";
-     static String SERVER_TARGET = "socket://";
-
-     private String iTarget;
 
     /**
      * Returns the question (as localized text) associated with the security
@@ -43,7 +36,6 @@
     public SocketPermissionImpl(String uri)
     {
         super(uri);
-        iTarget = uri;
     }
 
     public String getSecurityPromptQuestion(int aInteractionMode)
@@ -63,10 +55,6 @@
 
     public String toString()
     {
-        if (SERVER_TARGET.equals(iTarget))
-        {
-            return "javax.microedition.io.Connector.serversocket";
-        }
         return "javax.microedition.io.Connector.socket";
     }
 
@@ -74,12 +62,7 @@
     {
         if (p instanceof SocketPermissionImpl)
         {
-            SocketPermissionImpl o = (SocketPermissionImpl)p;
-            if ((iTarget != null && iTarget.equals(o.getTarget()))
-                || (iTarget == null && o.getTarget() == null))
-            {
-                return true;
-            }
+            return true;
         }
         return false;
     }
@@ -104,8 +87,4 @@
         return null;
     }
 
-    String getTarget()
-    {
-        return iTarget;
-    }
 }
\ No newline at end of file
--- a/javacommons/gcfprotocols/socket/socket/javasrc/com/nokia/mj/impl/properties/socket/SocketDynamicPropertyHandler.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-package com.nokia.mj.impl.properties.socket;
-
-import java.util.Hashtable;
-import java.io.IOException;
-import com.nokia.mj.impl.rt.support.Jvm;
-import com.nokia.mj.impl.rt.support.SystemPropertyProvider;
-import com.nokia.mj.impl.utils.Logger;
-
-public final class SocketDynamicPropertyHandler implements SystemPropertyProvider
-{
-    static
-    {
-        try
-        {
-            Jvm.loadSystemLibrary("javasocket");
-        }
-        catch (Exception e)
-        {
-            Logger.ELOG(Logger.ESOCKET, e.toString());
-        }
-    }
-
-    private static String SOCKET_LOCALHOST_NAME = "microedition.hostname";
-
-    private static final int LOCALHOST_NAME = 1;
-
-    private static Hashtable iPropertyKeys;
-
-    static
-    {
-        iPropertyKeys = new Hashtable();
-        iPropertyKeys.put(SOCKET_LOCALHOST_NAME, new Integer(
-                              LOCALHOST_NAME));
-
-    }
-
-    /**
-     * Retrieves socket localhost system property.
-     *
-     * @param aKey
-     *            The property to retrieve as defined in this class.
-     * @return The value of the property specified; null if the property is not
-     *         defined
-     */
-    public String getProperty(String aKey)
-    {
-        String propertyValue = null;
-        String propertyName = aKey;
-
-        Object property = iPropertyKeys.get(propertyName);
-        if (null == property)
-        {
-            return "localhost";
-        }
-        propertyValue = _getLocalhostname();
-
-        return propertyValue;
-    }
-
-    public boolean isStatic(String aKey)
-    {
-        return true;
-    }
-
-    private static native String _getLocalhostname();
-}
--- a/javacommons/gcfprotocols/socket/socket/src.s60/socketlocalhostinfo.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/gcfprotocols/socket/socket/src.s60/socketlocalhostinfo.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -22,24 +22,7 @@
 #include "logger.h"
 #include "connectionmanager.h"
 
-#define localhost_len   20
 int GetlocalIPAdressL(char *localaddr, int aMidletIapId, int aApType);
-char* GetlocalHostNameL();
-
-char* SocketLocalHostInfo::getLocalHostName()
-{
-    char* localhostname =NULL;
-    TRAPD(err,localhostname = GetlocalHostNameL());
-    ILOG1(ESOCKET, "err %d ", err);
-    if (err != KErrNone)
-    {
-        localhostname = new char[localhost_len];
-        strcpy(localhostname,"localhost");
-        return localhostname;
-    }
-    else
-        return localhostname;
-}
 
 OS_EXPORT int SocketLocalHostInfo::getLocalAddress(int /* aSd */, char *aLocalAddr,
         int aMidletIapId, int aApType)
@@ -207,41 +190,3 @@
 
 
 }
-
-char* GetlocalHostNameL()
-{
-    TUint32 activeIapId = 0;
-
-    TConnectionInfoBuf connectionInfo;
-    TUint count = 0;
-    RSocketServ socketServ;
-    RSocket sock;
-    RConnection conn;
-
-    User::LeaveIfError(socketServ.Connect());
-    User::LeaveIfError(sock.Open(socketServ, KAfInet, KSockStream,
-                                 KProtocolInetTcp));
-    User::LeaveIfError(conn.Open(socketServ));
-    User::LeaveIfError(conn.EnumerateConnections(count));
-
-    char* localhost = new char[localhost_len];
-
-    if (count <= 0)
-    {
-        strcpy(localhost,"localhost");
-    }
-    else
-    {
-
-        User::LeaveIfError(conn.GetConnectionInfo(1, connectionInfo));
-        activeIapId = connectionInfo().iIapId;
-        getIPAddressL(activeIapId,localhost);
-    }
-
-    conn.Close();
-    sock.Close();
-    socketServ.Close();
-
-    return localhost;
-}
-
--- a/javacommons/gcfprotocols/socket/socket/src/socketconnectionjni.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/gcfprotocols/socket/socket/src/socketconnectionjni.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -17,10 +17,8 @@
 
 
 #include "com_nokia_mj_impl_socket_SocketConnectionImpl.h"
-#include "com_nokia_mj_impl_properties_socket_SocketDynamicPropertyHandler.h"
 #include "nativesocketconnection.h"
-#include "socketlocalhostinfo.h"
-#include "logger.h"
+
 
 using namespace java;
 
@@ -143,13 +141,3 @@
     NativeSocketConnection* nativeConn = reinterpret_cast<NativeSocketConnection* >(aNativePeerHandle);
     delete nativeConn;
 }
-
-JNIEXPORT jstring JNICALL Java_com_nokia_mj_impl_properties_socket_SocketDynamicPropertyHandler__1getLocalhostname
-(JNIEnv *aJni, jclass)
-{
-    char* addr;
-    addr = SocketLocalHostInfo::getLocalHostName();
-    jstring jnistring = aJni->NewStringUTF(addr);
-    delete[] addr;
-    return jnistring;
-}
--- a/javacommons/javacommons.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/javacommons.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -18,7 +18,7 @@
 SUBDIRS += utils/build/javautils.pro 
 SUBDIRS += comms 
 SUBDIRS += javastorage 
-SUBDIRS += fileutils/build/javafileutils.pro 
+SUBDIRS += fileutils/build/fileutils.pro 
 SUBDIRS += security 
 SUBDIRS += gcfbase/build/javagcf.pro 
 SUBDIRS += connectionmanager/build/javaconnectionmanager.pro 
--- a/javacommons/javaenv/build/javaenv.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/javaenv/build/javaenv.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -23,7 +23,7 @@
     TARGET.UID2 = 0x1000008d
     TARGET.UID3 = 0x2001B2A5
     SOURCES += ../src.s60/*.cpp
-    LIBS += -lplatformenv -lefsrv
+    LIBS += -lplatformEnv -lefsrv
 }
 
 include(../../../build/omj.pri)
--- a/javacommons/javaenv/build/javaenv_0x2001B2A5.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/javaenv/build/javaenv_0x2001B2A5.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../inc
@@ -66,7 +66,7 @@
 SOURCE		javaenvinfo.cpp
 
 
-LIBRARY		platformenv.lib
+LIBRARY		platformEnv.lib
 LIBRARY		efsrv.lib
 LIBRARY		javautils.lib
 LIBRARY		libpthread.lib
@@ -97,7 +97,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javacommons/javaenv/src.s60/javaenvinfo.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/javaenv/src.s60/javaenvinfo.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -113,7 +113,7 @@
 {
     JELOG2(EUtils);
 
-    TInt size = 0;
+    TInt size;
 
     RFs rfs;
     User::LeaveIfError(rfs.Connect());
--- a/javacommons/javaenv/tsrc/build/alltests.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/javaenv/tsrc/build/alltests.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -20,12 +20,14 @@
 CAPABILITY all -tcb -allfiles -drm
 
 #include <../../../../inc/java_stdcpp_support_for_exe.hrh>
-#include <platform_paths.hrh>
+#include <domain/osextensions/platform_paths.hrh>
+
+//SYSTEMINCLUDE /epoc32/include 
 
 USERINCLUDE ../../../inc
-USERINCLUDE ../../../../inc
 USERINCLUDE ../../../../tools/cpputest/include/cpputest
 USERINCLUDE ../../../../tools/cpputest/include/platforms/symbian
+USERINCLUDE ../../../../inc
 
 STATICLIBRARY cpputest.lib
 
--- a/javacommons/javastorage/build/javastorage_0x2002DCD8.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/javastorage/build/javastorage_0x2002DCD8.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc.s60
@@ -114,7 +114,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javacommons/javastorage/javasrc/com/nokia/mj/impl/storage/StorageSessionImpl.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/javastorage/javasrc/com/nokia/mj/impl/storage/StorageSessionImpl.java	Wed Oct 13 14:23:59 2010 +0300
@@ -297,7 +297,7 @@
      */
     private void ensureNonEmpty(Uid aUid) throws StorageException
     {
-        if (aUid == null || aUid.toString().equals(""))
+        if (aUid == null || aUid.equals(""))
         {
             Logger.ELOG(Logger.EJavaStorage, "Invalid argument");
             throw new StorageException("Invalid argument");
--- a/javacommons/javastorage/tsrc/java_api/javasrc/com/nokia/mj/impl/storage/TestStorageAttribute.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/javastorage/tsrc/java_api/javasrc/com/nokia/mj/impl/storage/TestStorageAttribute.java	Wed Oct 13 14:23:59 2010 +0300
@@ -136,10 +136,10 @@
      * 2. Test with Name and Value.
      * 3. Test Name null throws StorageException
      * 4. Test Name "" throws StorageException
-     * 5. Test value null. It is allowed value.
+     * 5. Test value null. Type is not set SE thrown.
      * 6. Test value "".
      * 7. Test one len name and value.
-     * 8. Test value null, type STRING is allowed.
+     * 8. Test value null, type STRING throws StorageException.
      */
     public void testNameValueConstructor()
     {
@@ -195,10 +195,11 @@
             String name = "AttrName";
             String value = null;
             sa = new StorageAttribute(name, value);
+            assertTrue("No exp when value Null", false);
         }
         catch (StorageException se)
         {
-            assertTrue("SE thrown when null value: " + se.toString(), false);
+            // PASSED
         }
         catch (Throwable t)
         {
@@ -245,10 +246,11 @@
             String name = "A";
             String value = null;
             sa = new StorageAttribute(name, value);
+            assertTrue("No exp thrown when null value, string type", false);
         }
         catch (StorageException se)
         {
-            assertTrue("SE thrown when null value: " + se.toString(), false);
+            // PASSED
         }
         catch (Throwable t)
         {
--- a/javacommons/javastorage/tsrc/storageclient/build/alltests.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/javastorage/tsrc/storageclient/build/alltests.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -22,7 +22,7 @@
 #include <../../../../../inc/java_stdcpp_support_for_exe.hrh>
 #include <platform_paths.hrh>
 
-APP_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE /epoc32/include 
 
 USERINCLUDE ../../../inc
 USERINCLUDE ../../../../../tools/cpputest/include/cpputest
--- a/javacommons/jvms/j9utils/threaddump/build/javathreaddumper_0x2002DCD9.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/jvms/j9utils/threaddump/build/javathreaddumper_0x2002DCD9.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../../../../../javaruntimes/inc
@@ -99,7 +99,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javacommons/jvms/nativeportlayer/build/jvmnativeport_0x2002DCDE.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/jvms/nativeportlayer/build/jvmnativeport_0x2002DCDE.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc.s60
@@ -100,7 +100,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javacommons/security/build/build.xml	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/build/build.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 <!--
-    Copyright (c) 2008-2010 Nokia.  All rights reserved.
+    Copyright (c) 2008 Nokia.  All rights reserved.
 
     This material, including documentation and any related computer programs,
     is protected by copyright controlled by Nokia. All rights are reserved.
@@ -9,9 +9,9 @@
     disclosed to others without the prior written consent of Nokia.
 -->
 
-<project name="javasecurity" default="deploy.generate.policies" basedir=".">
+<project name="javasecurity" default="deploy.generate.policies.and.certs" basedir=".">
   <description>
-        Builds OMJ security and generates the policy files in their internal format
+        Builds OMJ security, generates the policy files in their internal format and copies the certificates and the metadata into right locations
   </description>
 
   <import file="../../../build/utilities.xml"/>
@@ -32,6 +32,7 @@
   <target name="init" depends="init.properties">
     <property name="internal.policies.dir" location="${java.res.root}/security/policies"/>
     <mkdir dir="${internal.policies.dir}"/>
+    <property name="security_res_dir" location="${java.captain.datacage}/security/trustroots/device/certificates"/>
   </target>
   
   <target name="deliver.classes.to.external.tool">
@@ -47,7 +48,7 @@
     </jar>
   </target>
   
-  <target name="deploy.generate.policies" depends="init, deploy.dual, deliver.classes.to.external.tool">
+  <target name="deploy.generate.policies.and.certs" depends="init, deploy.dual, deliver.classes.to.external.tool, set.linux.certs">
     <java classname="com.nokia.mj.tools.security.midp.PolicyEditor"
          failonerror="true">
          <sysproperty key="emma.properties" value="${emma.properties}"/>
@@ -61,10 +62,20 @@
     </java>
   </target>
 
+  <target name="set.linux.certs" if="target.linux">
+    <copy todir="${security_res_dir}/">
+        <fileset dir="../../../javatools/testcerts/" includes="*.der"/>
+    </copy>
+    <copy todir="${security_res_dir}/">
+        <fileset dir="../../../javatools/testcerts/" includes="*.metadata"/>
+    </copy>
+  </target>
+
   <target name="clean" depends="init">
     <ant antfile="../../../build/utilities.xml" target="clean"/>  
     <delete dir="${internal.policies.dir}"/>
     <delete file="${external.policy.editor.tool.lib}"/>
+    <delete dir="${security_res_dir}"/>
   </target>
   
   
--- a/javacommons/security/build/exports.inf	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/build/exports.inf	Wed Oct 13 14:23:59 2010 +0300
@@ -27,12 +27,9 @@
 
 #include <platform_paths.hrh>
 
-// Configuration interface for javasecurity
 #ifdef RD_JAVA_S60_RELEASE_10_1_ONWARDS 
-// Public configuration interface is named as CI_javasecurity.confml
-// and it is located outside of jrt package. The name of private
-// configuration interface is javasecurity2.confml.
 ../conf/javasecurity2.confml        APP_LAYER_CONFML(javasecurity.confml)
+../conf/CI_javasecurity.confml      APP_LAYER_CONFML(CI_javasecurity.confml)
 #else
 ../conf/javasecurity.confml         APP_LAYER_CONFML(javasecurity.confml)
 #endif /* RD_JAVA_S60_RELEASE_10_1_ONWARDS */
--- a/javacommons/security/build/javasecurity_0x2002DCCF.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/build/javasecurity_0x2002DCCF.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc
@@ -129,7 +129,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
Binary file javacommons/security/conf/CI_javasecurity.confml has changed
--- a/javacommons/security/data/msa_manufacturer.txt	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/data/msa_manufacturer.txt	Wed Oct 13 14:23:59 2010 +0300
@@ -31,12 +31,6 @@
     permission javax.microedition.io.Connector.rtsp "*";
     permission javax.microedition.PropertyPermission "mobinfo.imsi" "read";
     permission javax.microedition.midlet.CmdLineArgsPermission;
-    permission javax.microedition.contactless.ndef.NDEFTagConnection.write "ndef://*" "write";
-    permission javax.microedition.contactless.DiscoveryManager "DiscoveryManager" "get_instance";
-    permission javax.microedition.io.Connector.ndef "ndef://*" "open";
-    permission javax.microedition.io.Connector.rf "rf://*" "open";
-    permission javax.microedition.io.Connector.sc "sc://*" "open";
-    permission javax.microedition.io.Connector.vtag "vtag://*" "open";
 }
 
 grant assigned {
--- a/javacommons/security/data/msa_operator.txt	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/data/msa_operator.txt	Wed Oct 13 14:23:59 2010 +0300
@@ -31,12 +31,6 @@
     permission javax.microedition.io.Connector.rtsp "*";
     permission javax.microedition.PropertyPermission "mobinfo.imsi" "read";
     permission javax.microedition.midlet.CmdLineArgsPermission;
-    permission javax.microedition.contactless.ndef.NDEFTagConnection.write "ndef://*" "write";
-    permission javax.microedition.contactless.DiscoveryManager "DiscoveryManager" "get_instance";
-    permission javax.microedition.io.Connector.ndef "ndef://*" "open";
-    permission javax.microedition.io.Connector.rf "rf://*" "open";
-    permission javax.microedition.io.Connector.sc "sc://*" "open";
-    permission javax.microedition.io.Connector.vtag "vtag://*" "open";
 }
 
 grant assigned {
--- a/javacommons/security/data/msa_trustedthirdparty.txt	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/data/msa_trustedthirdparty.txt	Wed Oct 13 14:23:59 2010 +0300
@@ -66,21 +66,11 @@
     permission javax.microedition.midlet.CmdLineArgsPermission;
 }
 
-grant user "NFC Write Access" session,blanket,oneshot,no {
-    permission javax.microedition.contactless.ndef.NDEFTagConnection.write "ndef://*" "write";
-}
-
 grant allowed {
     permission javax.microedition.io.Connector.sms "sms://*" "open,receive";
     permission javax.microedition.io.Connector.mms "mms://*" "open,receive";
     permission javax.microedition.io.Connector.cbs "cbs://*" "open,receive";
-    permission javax.microedition.contactless.DiscoveryManager "DiscoveryManager" "get_instance";
-    permission javax.microedition.io.Connector.ndef "ndef://*" "open";
-    permission javax.microedition.io.Connector.rf "rf://*" "open";
-    permission javax.microedition.io.Connector.sc "sc://*" "open";
-    permission javax.microedition.io.Connector.vtag "vtag://*" "open";
 }
-
 grant assigned "Location" {
     permission javax.microedition.PropertyPermission "mobinfo.cellid" "read";
     permission javax.microedition.PropertyPermission "mobinfo.countrycode" "read";
--- a/javacommons/security/data/msa_untrusted.txt	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/data/msa_untrusted.txt	Wed Oct 13 14:23:59 2010 +0300
@@ -55,21 +55,11 @@
     permission javax.microedition.location.LocationPermission "landmarks://*" "read,write,category,management";
 }
 
-grant user "NFC Write Access" oneshot,session,no {
-    permission javax.microedition.contactless.ndef.NDEFTagConnection.write "ndef://*" "write";
-}
-
 grant allowed {
     permission javax.microedition.io.Connector.sms "sms://*" "open,receive";
     permission javax.microedition.io.Connector.mms "mms://*" "open,receive";
     permission javax.microedition.io.Connector.cbs "cbs://*" "open,receive";
-    permission javax.microedition.contactless.DiscoveryManager "DiscoveryManager" "get_instance";
-    permission javax.microedition.io.Connector.ndef "ndef://*" "open";
-    permission javax.microedition.io.Connector.rf "rf://*" "open";
-    permission javax.microedition.io.Connector.sc "sc://*" "open";
-    permission javax.microedition.io.Connector.vtag "vtag://*" "open";
 }
-
 grant assigned "Location" {
     permission javax.microedition.PropertyPermission "mobinfo.cellid" "read";
     permission javax.microedition.PropertyPermission "mobinfo.countrycode" "read";
--- a/javacommons/security/data/s60_manufacturer.txt	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/data/s60_manufacturer.txt	Wed Oct 13 14:23:59 2010 +0300
@@ -31,12 +31,6 @@
     permission javax.microedition.io.Connector.rtsp "*";
     permission javax.microedition.PropertyPermission "mobinfo.imsi" "read";
     permission javax.microedition.midlet.CmdLineArgsPermission;
-    permission javax.microedition.contactless.ndef.NDEFTagConnection.write "ndef://*" "write";
-    permission javax.microedition.contactless.DiscoveryManager "DiscoveryManager" "get_instance";
-    permission javax.microedition.io.Connector.ndef "ndef://*" "open";
-    permission javax.microedition.io.Connector.rf "rf://*" "open";
-    permission javax.microedition.io.Connector.sc "sc://*" "open";
-    permission javax.microedition.io.Connector.vtag "vtag://*" "open";
 }
 
 grant assigned {
--- a/javacommons/security/data/s60_operator.txt	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/data/s60_operator.txt	Wed Oct 13 14:23:59 2010 +0300
@@ -31,12 +31,6 @@
     permission javax.microedition.io.Connector.rtsp "*";
     permission javax.microedition.PropertyPermission "mobinfo.imsi" "read";
     permission javax.microedition.midlet.CmdLineArgsPermission;
-    permission javax.microedition.contactless.ndef.NDEFTagConnection.write "ndef://*" "write";
-    permission javax.microedition.contactless.DiscoveryManager "DiscoveryManager" "get_instance";
-    permission javax.microedition.io.Connector.ndef "ndef://*" "open";
-    permission javax.microedition.io.Connector.rf "rf://*" "open";
-    permission javax.microedition.io.Connector.sc "sc://*" "open";
-    permission javax.microedition.io.Connector.vtag "vtag://*" "open";    
 }
 
 grant assigned {
--- a/javacommons/security/data/s60_trustedthirdparty.txt	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/data/s60_trustedthirdparty.txt	Wed Oct 13 14:23:59 2010 +0300
@@ -67,19 +67,10 @@
     permission javax.microedition.midlet.CmdLineArgsPermission;
 }
 
-grant user "NFC Write Access" session,blanket,oneshot,no {
-    permission javax.microedition.contactless.ndef.NDEFTagConnection.write "ndef://*" "write";
-}
-
 grant allowed {
     permission javax.microedition.io.Connector.sms "sms://*" "open,receive";
     permission javax.microedition.io.Connector.mms "mms://*" "open,receive";
     permission javax.microedition.io.Connector.cbs "cbs://*" "open,receive";
-    permission javax.microedition.contactless.DiscoveryManager "DiscoveryManager" "get_instance";
-    permission javax.microedition.io.Connector.ndef "ndef://*" "open";
-    permission javax.microedition.io.Connector.rf "rf://*" "open";
-    permission javax.microedition.io.Connector.sc "sc://*" "open";
-    permission javax.microedition.io.Connector.vtag "vtag://*" "open";
 }
 
 grant assigned "Location" {
--- a/javacommons/security/data/s60_untrusted.txt	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/data/s60_untrusted.txt	Wed Oct 13 14:23:59 2010 +0300
@@ -55,19 +55,10 @@
     permission javax.microedition.location.LocationPermission "landmarks://*" "read,write,category,management";
 }
 
-grant user "NFC Write Access" oneshot,session,no {
-    permission javax.microedition.contactless.ndef.NDEFTagConnection.write "ndef://*" "write";
-}
-
 grant allowed {
     permission javax.microedition.io.Connector.sms "sms://*" "open,receive";
     permission javax.microedition.io.Connector.mms "mms://*" "open,receive";
     permission javax.microedition.io.Connector.cbs "cbs://*" "open,receive";
-    permission javax.microedition.contactless.DiscoveryManager "DiscoveryManager" "get_instance";
-    permission javax.microedition.io.Connector.ndef "ndef://*" "open";
-    permission javax.microedition.io.Connector.rf "rf://*" "open";
-    permission javax.microedition.io.Connector.sc "sc://*" "open";
-    permission javax.microedition.io.Connector.vtag "vtag://*" "open";
 }
 
 grant assigned "Location" {
--- a/javacommons/security/javasrc.cdc/com/nokia/mj/impl/security/midp/authorization/PermissionGranter.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/javasrc.cdc/com/nokia/mj/impl/security/midp/authorization/PermissionGranter.java	Wed Oct 13 14:23:59 2010 +0300
@@ -17,7 +17,6 @@
 
 package com.nokia.mj.impl.security.midp.authorization;
 
-import com.nokia.mj.impl.utils.Id;
 import com.nokia.mj.impl.utils.Uid;
 import com.nokia.mj.impl.utils.exception.InvalidAttributeException;
 import com.nokia.mj.impl.security.midp.common.MIDPPermission;
@@ -58,9 +57,6 @@
      * different aplications being installed
      */
     private Hashtable iBlanketPermissionsDetails = new Hashtable();
-    
-    private static final int NOT_FOUND = -2;
-    private static final int REMOVED = -1;
 
     /**
      * Creates an instance of the PermissionGranter
@@ -174,22 +170,23 @@
      *                             SecurityAttributes.addManifestAttributes())
      */
     public void grantJarPermissions(
+        StorageSession storageSession,
         Uid msUID,
         Uid oldMSUID,
-        PermissionAttribute[] requestedPermissions,
-        AuthenticationCredentials[] authCredentials)
+        PermissionAttribute[] requestedPermissions)
     {
-        if (msUID == null)
+        if (storageSession == null
+                || msUID == null)
         {
             return;
         }
 
+        // take the domain from storage
+        SecurityStorage storage = new SecurityStorage(storageSession);
+        String protectionDomainName = storage.readProtectionDomain(msUID);
         // filter the already granted permissions
-        String protectionDomainName = authCredentials[0].getProtectionDomainName();
         Object o = iGrantedPermissions.remove(
-            msUID.getStringValue()
-            + protectionDomainName);
-
+                       msUID.getStringValue() + protectionDomainName);
         Vector preGrantedPermissions = null;
         if (o != null)
         {
@@ -217,15 +214,10 @@
                 }
             }
         }
-        // in case of update preserve the settings of the "old" suite
-        if (oldMSUID != null)
-        {
-            updateGrantedPermissions(
-                msUID,
-                oldMSUID,
-                resolvedPermissions);
-        }
-        
+        storage.writeGrantedPermissions(
+            msUID,
+            oldMSUID,
+            resolvedPermissions);
         // update the cache with the full set of permissions
         iGrantedPermissions.put(msUID.getStringValue() + protectionDomainName,
                                 resolvedPermissions);
@@ -247,6 +239,7 @@
      *                             the MIDlet suite.
      */
     public void grantJarPermissions(
+        StorageSession storageSession,
         Uid uid,
         Uid oldUid,
         ProtectionDomain protectionDomain)
@@ -271,17 +264,15 @@
                                          protectionDomain.getName(),
                                          securityAttributes.getPermissionAttributes(),
                                          true /* add the assigned permissions */);
-        // in case of update preserve the settings
-        if (oldUid != null)
-        {
-            updateGrantedPermissions(
-                uid,
-                oldUid,
-                resolvedPermissions);
-        }
-        
+
+        // store the permissions
+        SecurityStorage storage = new SecurityStorage(storageSession);
+        storage.writeGrantedPermissions(
+            uid,
+            oldUid,
+            resolvedPermissions);
         // update the cache with the full set of permissions
-        iGrantedPermissions.put(uid.getStringValue() + protectionDomain.getName(),
+        iGrantedPermissions.put(uid.getStringValue() + protectionDomain,
                                 resolvedPermissions);
         Logger.logGrantedPermissions(resolvedPermissions);
     }
@@ -323,7 +314,7 @@
             String key = (String)e.nextElement();
             if (key.startsWith(msUidKey))
             {
-                grantedPermissions = (Vector)iGrantedPermissions.get(key);
+                grantedPermissions = (Vector)iGrantedPermissions.remove(key);
                 if (key.endsWith("UnidentifiedThirdParty"))
                 {
                     // if the suite is not signed, there is no blanket
@@ -368,7 +359,7 @@
                     ((PolicyBasedPermission)grantedPermissions.elementAt(i));
                 UserSecuritySettings settings =
                     permission.getUserSecuritySettings();
-                if (permission.getType() != PolicyBasedPermission.USER_TYPE
+                if (permission.getType() != PolicyBasedPermission.USER_TYPE 
                     || settings == null)
                 {
                     // not a user permission -> move on to the next permission
@@ -466,26 +457,15 @@
             if (permissions_from_sensitive_combination_list_1
                     && permissions_from_sensitive_combination_list_2)
             {
-                /*String blanketPermissionsDetails = (
+                String blanketPermissionsDetails = ( 
                     ((call_control == true && multimedia == true)
-                    || (call_control == true && read_user_data == true)
+                    || (call_control == true && read_user_data == true) 
                     || (net_access == true && multimedia == true)
                     || (net_access == true && read_user_data == true)
                     || (messaging == true && multimedia == true)
-                    || (messaging == true && read_user_data == true)) ?
-                    "settings_inst_query_perm_net" :
-                    "settings_inst_query_perm_sec");*/
-
-                Id blanketPermissionsDetails = (
-                    ((call_control == true && multimedia == true)
-                    || (call_control == true && read_user_data == true)
-                    || (net_access == true && multimedia == true)
-                    || (net_access == true && read_user_data == true)
-                    || (messaging == true && multimedia == true)
-                    || (messaging == true && read_user_data == true)) ?
-                    new Id("settings_inst_query_perm_net", "N/A") :
-                    new Id("settings_inst_query_perm_sec", "N/A"));
-
+                    || (messaging == true && read_user_data == true)) ? 
+                    "settings_inst_query_perm_net" : 
+                    "settings_inst_query_perm_sec");
                 iBlanketPermissionsDetails.put(msUidKey,
                                                UserSecuritySettingsImpl.getLocalizedString(
                                                    blanketPermissionsDetails));
@@ -540,8 +520,6 @@
         storage.writeUserSecuritySettings(msUID,
                                           UserSecuritySettings.BLANKET_INTERACTION_MODE,
                                           true /* blanket prompt shown */);
-        // cleanup the cache as well
-        cleanup(msUID);
     }
 
     /**
@@ -554,7 +532,7 @@
         iGrantedPermissions.clear();
         iBlanketPermissionsDetails.clear();
     }
-    
+
     /**
      * Removes all the security data related to a certain MIDlet suite
      *
@@ -569,25 +547,6 @@
         SecurityStorage storage = new SecurityStorage(storageSession);
         storage.removeGrantedPermissions(msUID);
         // clear the cache
-        cleanup(msUID);
-    }
-
-    /**
-     * Writes to storage all the security data related to a certain MIDlet suite
-     *
-     * @param sessionID the JavaStorage session to be used when
-     *                  writing the security data into storage
-     * @param msUID     the UID if the MIDlet suite whose security data is
-     *                  being written
-     */
-    public void addSecurityData(StorageSession storageSession, Uid msUID, Uid oldMsUID)
-    {
-        Logger.log("Write granted permissions to storage");
-        if (storageSession == null || msUID == null)
-        {
-            return;
-        }
-        SecurityStorage storage = new SecurityStorage(storageSession);
         String msUidKey = msUID.getStringValue();
         for (Enumeration e = iGrantedPermissions.keys() ;
                 e.hasMoreElements() ;)
@@ -595,13 +554,11 @@
             String key = (String)e.nextElement();
             if (key.startsWith(msUidKey))
             {
-                storage.writeGrantedPermissions(
-                    msUID,
-                    oldMsUID,
-                    (Vector)iGrantedPermissions.remove(key));
-                return;
+                iGrantedPermissions.remove(key);
+                break;
             }
         }
+        iBlanketPermissionsDetails.remove(msUidKey);
     }
 
     private Vector resolvePermissions(Uid msUID,
@@ -630,8 +587,8 @@
                 for (int i=0; i<policyPermissions.length; i++)
                 {
                     if (policyPermissions[i].getType()
-                            == PolicyBasedPermission.ASSIGNED_TYPE
-                            || policyPermissions[i].getType()
+                            == PolicyBasedPermission.ASSIGNED_TYPE 
+                            || policyPermissions[i].getType() 
                             == PolicyBasedPermission.USER_ASSIGNED_TYPE)
                     {
                         PolicyBasedPermissionImpl p1 = new PolicyBasedPermissionImpl(
@@ -672,130 +629,4 @@
         return resolvePermissions(msUID, protectionDomainName,
                                   requestedPermissions, true /* add assigned permissions */);
     }
-    
-    private void cleanup(Uid msUID)
-    {
-        // clear the cache
-        String msUidKey = msUID.getStringValue();
-        for (Enumeration e = iGrantedPermissions.keys() ;
-                e.hasMoreElements() ;)
-        {
-            String key = (String)e.nextElement();
-            if (key.startsWith(msUidKey))
-            {
-                iGrantedPermissions.remove(key);
-                break;
-            }
-        }
-        iBlanketPermissionsDetails.remove(msUidKey);
-    }
-    
-    private void updateGrantedPermissions(Uid newAppUID, Uid oldAppUID, Vector grantedPermissions)
-    {
-        // the vector containing the newGrantedPermissions
-        Vector newGrantedPermissions = new Vector();
-
-        // get the old permissions & settings
-        SecurityStorage storage = new SecurityStorage();
-        Vector oldPermissions = storage.readGrantedPermissions(oldAppUID);
-        storage.close();
-
-        // filter out the the brand new permissions
-        // (permissions which are not found among the old permissions)
-        if (oldPermissions != null)
-        {
-            int index=0;
-            while (index < grantedPermissions.size())
-            {
-                // instead of calling Vector.removeElement(p) we will do the
-                // remove manually, since the search is to be based on
-                // the permission without the settings
-                PolicyBasedPermission p = (PolicyBasedPermission)
-                                          grantedPermissions.elementAt(index);
-                int status = removeElement(oldPermissions, p);
-                switch (status)
-                {
-                case REMOVED:
-                case NOT_FOUND:
-                    index++;
-                    break;
-                default:
-                    // different settings
-                    UserSecuritySettings oldSettings
-                    = ((PolicyBasedPermission)oldPermissions
-                       .elementAt(status)).getUserSecuritySettings();
-                    UserSecuritySettings newSettings
-                    = p.getUserSecuritySettings();
-                    if (oldSettings != null
-                            && newSettings != null)
-                    {
-                        boolean activeSettings = false;
-                        if (oldSettings.isActive() 
-                            || newSettings.isActive())
-                        {
-                            activeSettings = true;
-                        }
-                        newGrantedPermissions.addElement(
-                            new PolicyBasedPermissionImpl(
-                                p.getName(),
-                                p.getTarget(),
-                                p.getActionList(),
-                                p.getType(),
-                                new UserSecuritySettingsImpl(
-                                    newSettings.getName(),
-                                    oldSettings.getCurrentInteractionMode(),
-                                    newSettings.getAllowedInteractionModes(),
-                                    oldSettings.getBlanketPrompt(),
-                                    activeSettings)));
-                    }
-                    else
-                    {
-                        newGrantedPermissions.addElement(p);
-                    }
-                    grantedPermissions.removeElementAt(index);
-                    break;
-                }
-            }
-        }
-        // write what's left from the granted permissions
-        for (int i=0; i<newGrantedPermissions.size(); i++)
-        {
-            grantedPermissions.addElement(newGrantedPermissions.elementAt(i));
-        }
-    }
-    
-    private int removeElement(Vector elements, PolicyBasedPermission element)
-    {
-        PolicyBasedPermissionImpl p1 = new PolicyBasedPermissionImpl(
-            element.getName(),
-            element.getTarget(),
-            element.getActionList(),
-            null);
-        for (int i=0; i<elements.size(); i++)
-        {
-            PolicyBasedPermission tmp = (PolicyBasedPermission)elements
-                                        .elementAt(i);
-            PolicyBasedPermissionImpl p2 = new PolicyBasedPermissionImpl(
-                tmp.getName(),
-                tmp.getTarget(),
-                tmp.getActionList(),
-                null);
-            if (p1.equals(p2))
-            {
-                UserSecuritySettings s1 = element.getUserSecuritySettings();
-                UserSecuritySettings s2 = tmp.getUserSecuritySettings();
-                if ((s1 == null && s2 == null)
-                        || (s1 != null
-                            && s2 != null
-                            && s1.equals(s2)))
-                {
-                    // identical permissions
-                    elements.removeElementAt(i);
-                    return REMOVED;
-                }
-                return i;
-            }
-        }
-        return NOT_FOUND;
-    }
 }
--- a/javacommons/security/javasrc/com/nokia/mj/impl/security/midp/authentication/AuthenticationException.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/javasrc/com/nokia/mj/impl/security/midp/authentication/AuthenticationException.java	Wed Oct 13 14:23:59 2010 +0300
@@ -37,7 +37,6 @@
     public static final int CERT_EXPIRED = 8;
     public static final int ROOT_CERT_IN_CHAIN = 9;
     public static final int UNKNOWN_EXT_KEY_USAGE = 10;
-    public static final int JAR_NOT_FOUND = 11;
 
     // the error code encapsulated in this exception
     private int errorCode;
--- a/javacommons/security/javasrc/com/nokia/mj/impl/security/midp/authentication/AuthenticationModule.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/javasrc/com/nokia/mj/impl/security/midp/authentication/AuthenticationModule.java	Wed Oct 13 14:23:59 2010 +0300
@@ -266,22 +266,18 @@
      *                       (if applicable)
      * @param appJARPath     the path to the JAR being authenticated
      */
-    public AuthenticationCredentials[] authenticateJar(
+    public void authenticateJar(
+        StorageSession storageSession,
         Uid msUID,
         Uid oldMSUID,
         String appJARPath,
         boolean drmContent)
     {
         AuthenticationStorageData data = null;
-        Credentials selectedCredentials = null;
         try
         {
             Vector allAuthCredentials = (Vector)iAuthCredentials.get(msUID);
-            String jarHash = null;
-            try
-            {
-                jarHash = _computeHash(appJARPath);
-            }catch(AuthenticationException e) {}
+            String jarHash = _computeHash(appJARPath);
             if (jarHash == null || jarHash.length() == 0)
             {
                 // could not compute hash for the given application
@@ -307,15 +303,15 @@
                     null /*validatedChainIndexes*/,
                     null /* jarPath*/,
                     iSecurityWarningsMode);
-                selectedCredentials = new Credentials(
-                    data.getProtectionDomain(),
-                    data.getProtectionDomainCategory(),
-                    jarHash,
-                    null /* root hash */,
-                    -1 /* validated chain index*/,
-                    null /* signing cert */);
                 verifyUpdate(
-                    new Credentials[] {selectedCredentials},
+                    new Credentials[] {new Credentials(
+                                           data.getProtectionDomain(),
+                                           data.getProtectionDomainCategory(),
+                                           jarHash,
+                                           null /* root hash */,
+                                           -1 /* validated chain index*/,
+                                           null /* signing cert */)
+                                      },
                     oldMSUID);
             }
             else
@@ -328,7 +324,7 @@
                 String jarHashValue = null;
                 String rootHashValue = null;
                 Vector validatedChainIndexes = new Vector();
-                selectedCredentials = selectCredentials(jarHash, allAuthCredentials, validatedChainIndexes);
+                Credentials selectedCredentials = selectCredentials(jarHash, allAuthCredentials, validatedChainIndexes);
                 if (selectedCredentials == null
                         || selectedCredentials.getProtectionDomainName() == null)
                 {
@@ -378,6 +374,8 @@
                     validatedChainIndexes,
                     iSecurityWarningsMode);
             }
+
+            writeAuthenticationStorageData(storageSession, msUID, data, (oldMSUID != null && oldMSUID.equals(msUID)));
         }
         finally
         {
@@ -387,18 +385,17 @@
                 iSelectedAuthCredentials.put(msUID, data);
             }
         }
-        return new AuthenticationCredentials[] {selectedCredentials};
     }
 
     /**
      */
-    public AuthenticationCredentials[] authenticateJar(
+    public void authenticateJar(
+        StorageSession storageSession,
         Uid uid,
         Uid oldUid,
         ProtectionDomain protectionDomain,
         String appJARPath)
     {
-        Credentials selectedCredentials = null;
         if (protectionDomain == null
                 || (!protectionDomain.equals(ProtectionDomain.getManufacturerDomain())
                     && !protectionDomain.equals(ProtectionDomain.getOperatorDomain())
@@ -413,11 +410,7 @@
                 new String[] {"Unknown protection domain " + protectionDomain},
                 OtaStatusCode.INTERNAL_ERROR);
         }
-        String jarHash = null;
-        try
-        {
-            jarHash = _computeHash(appJARPath);
-        }catch(AuthenticationException e) {}
+        String jarHash = _computeHash(appJARPath);
         if (jarHash == null || jarHash.length() == 0)
         {
             // could not compute hash for the given application
@@ -437,20 +430,18 @@
             null /*validatedChainIndexes*/,
             null /* jarPath*/,
             iSecurityWarningsMode);
-        selectedCredentials = new Credentials(
-            data.getProtectionDomain(),
-            data.getProtectionDomainCategory(),
-            jarHash,
-            null /* root hash */,
-            -1 /* validated chain index*/,
-            null /* signing cert */);
         verifyUpdate(
-            new Credentials[] {selectedCredentials},
+            new Credentials[] {new Credentials(
+                                   data.getProtectionDomain(),
+                                   data.getProtectionDomainCategory(),
+                                   jarHash,
+                                   null /* root hash */,
+                                   -1 /* validated chain index*/,
+                                   null /* signing cert */)
+                              },
             oldUid);
 
-        iSelectedAuthCredentials.put(uid, data);
-
-        return new AuthenticationCredentials[] {selectedCredentials};
+        writeAuthenticationStorageData(storageSession, uid, data, (oldUid != null && oldUid.equals(uid)));
     }
 
     /**
@@ -582,24 +573,6 @@
     }
 
     /**
-     * Writes to storage all the security data related to a certain MIDlet suite
-     *
-     * @param sessionID the JavaStorage session to be used when
-     *                  writing the security data into storage
-     * @param msUID     the UID if the MIDlet suite whose security data is
-     *                  being written
-     */
-    public void addSecurityData(StorageSession storageSession, Uid msUID, Uid oldMsUID)
-    {
-        Logger.log("Write authentication data to storage");
-        AuthenticationStorageData authStorageData =
-            (AuthenticationStorageData)iSelectedAuthCredentials.remove(
-                msUID);
-        writeAuthenticationStorageData(storageSession, msUID, authStorageData,
-            (oldMsUID != null && oldMsUID.equals(msUID)));
-    }
-
-    /**
      * Returns the details of the certificates used for authenticating a
      * MIDlet suite. This method is used at installation time.
      *
@@ -680,20 +653,31 @@
      * @param aMediaId        the identifier of the media where the MIDlet
      *                        suite is installed
      */
-    public void setMediaId(Uid aMsUid, int aMediaId)
+    public void setMediaId(StorageSession aStorageSession, Uid aMsUid, int aMediaId)
     {
         // store the jar hash only if the suite was installed on a non-protected media
         if (isDriveProtected(aMediaId))
         {
-            AuthenticationStorageData authStorageData =
-                (AuthenticationStorageData)iSelectedAuthCredentials.get(
-                    aMsUid);
-            if (authStorageData != null)
+            SecurityStorage storage = new SecurityStorage(aStorageSession);
+            try
             {
-                Logger.log("Suite installed on protected media -> the runtime tamper detection is disabled");
-                authStorageData.setJarHashValue(null);
-                iSelectedAuthCredentials.put(aMsUid, authStorageData);
+                AuthenticationStorageData authStorageData =
+                    (AuthenticationStorageData)iSelectedAuthCredentials.get(
+                        aMsUid);
+                if (authStorageData != null)
+                {
+                    Logger.log("Suite installed on protected media -> the runtime tamper detection is disabled");
+                    authStorageData.setJarHashValue(null);
+                    storage.writeAuthenticationStorageData(aMsUid,
+                                                           authStorageData,
+                                                           true /* this is an update */);
+                }
             }
+            finally
+            {
+                iSelectedAuthCredentials.remove(aMsUid);
+            }
+
         }
     }
 
@@ -841,23 +825,7 @@
                 && authStorageData.getJarHashValue().length() > 0)
         {
             Logger.log("  Doing tamper detection");
-            String computedJarHash = null;
-            try
-            {
-                computedJarHash = _computeHash(authStorageData.getJarPath());
-            }catch(AuthenticationException e)
-            {
-                if (e.getErrorCode()
-                    == AuthenticationException.JAR_NOT_FOUND)
-                {
-                    Logger.logWarning("    Jar not found while trying to compute hash");
-                    throw new RuntimeSecurityException(
-                        SecurityErrorMessage.JAR_NOT_FOUND,
-                        null, /* no params for short msg */
-                        SecurityDetailedErrorMessage.JAR_NOT_FOUND,
-                        null /* no params for detailed msg */);
-                }
-            }
+            String computedJarHash = _computeHash(authStorageData.getJarPath());
             // do the tampering check: compute the hash and compare it with the stored hash
             if (computedJarHash == null || !computedJarHash.equals(
                         authStorageData.getJarHashValue()))
@@ -1152,7 +1120,6 @@
     private boolean isDriveProtected(int aMediaId)
     {
         DriveInfo[] allDrives = DriveUtilities.getAllDrives();
-        boolean driveFound = false;
         if (allDrives != null)
         {
             for (int i=0; i<allDrives.length; i++)
@@ -1167,11 +1134,11 @@
                     {
                         return false;
                     }
-                    driveFound = true;
+                    return true;
                 }
             }
         }
-        return driveFound;
+        return false;
     }
 
     private Credentials selectCredentials(String selectedJarHash, Vector allAuthCredentials, Vector validatedChainIndexes)
--- a/javacommons/security/javasrc/com/nokia/mj/impl/security/midp/authorization/PermissionResolver.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/javasrc/com/nokia/mj/impl/security/midp/authorization/PermissionResolver.java	Wed Oct 13 14:23:59 2010 +0300
@@ -203,7 +203,7 @@
                     // add new settings
                     newPermissionInstancesAndSettings.addElement(
                         new PermisionInstanceAndSettings(
-                            p.getPermissionInstance(),
+                            p.getPermissionInstance(), 
                             p.getType(),
                             newSettings));
                 }
@@ -678,15 +678,11 @@
                     // permission and the policy permission
                     String target = legacyPermission.getTarget();
                     if (target != null
-                        && !("*".equals(policyPermissions[i].getTarget()))
-                        && !target.equals(policyPermissions[i].getTarget()))
+                            && target.indexOf("*") == -1
+                            && !target.equals(policyPermissions[i].getTarget()))
                     {
                         continue;
                     }
-                    if (target == null)
-                    {
-                        target = policyPermissions[i].getTarget();
-                    }
                     // choose the action
                     String actionList = legacyPermission.getActionList();
                     if (actionList == null)
@@ -694,7 +690,7 @@
                         resolvedPermissions.addElement(
                             new PolicyBasedPermissionImpl(
                                 policyPermissions[i].getName(),
-                                target,
+                                policyPermissions[i].getTarget(),
                                 policyPermissions[i].getActionList(),
                                 policyPermissions[i].getUserSecuritySettings()));
                     }
@@ -706,7 +702,7 @@
                             resolvedPermissions.addElement(
                                 new PolicyBasedPermissionImpl(
                                     policyPermissions[i].getName(),
-                                    target,
+                                    policyPermissions[i].getTarget(),
                                     actionList,
                                     policyPermissions[i].getUserSecuritySettings()));
                         }
@@ -739,7 +735,7 @@
         {
             return settings;
         }
-
+        
         public int getType()
         {
             return type;
--- a/javacommons/security/javasrc/com/nokia/mj/impl/security/midp/common/PermissionMappingTable.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/javasrc/com/nokia/mj/impl/security/midp/common/PermissionMappingTable.java	Wed Oct 13 14:23:59 2010 +0300
@@ -58,7 +58,7 @@
                 "com.nokia.mj.impl.gcf.protocol.datagram.DatagramPermissionImpl", "datagram://"));
         PERMISSION_MAPPING_TABLE.put(
             "javax.microedition.io.Connector.comm", new MIDPPermission(
-                "com.nokia.mj.impl.gcf.protocol.comm.CommPermissionImpl", "comm:*"));
+                "com.nokia.mj.impl.gcf.protocol.comm.CommPermissionImpl", "comm://*"));
         PERMISSION_MAPPING_TABLE.put(
             "javax.microedition.io.PushRegistry", new MIDPPermission(
                 "com.nokia.mj.impl.gcf.PushRegistryPermissionImpl", "*"));
@@ -178,22 +178,22 @@
                 "com.nokia.mj.impl.properties.mobinfo.MobileInfoPermission", "*", "read"));
         PERMISSION_MAPPING_TABLE.put(
             "javax.microedition.contactless.ndef.NDEFTagConnection.write", new MIDPPermission(
-                "com.nokia.mj.impl.nfc.utils.ContactlessCommunicationPermission", "ndef://*", "write"));
+                "com.nokia.mj.impl.ccapi.utils.ContactlessCommunicationPermission", "ndef://*", "write"));
         PERMISSION_MAPPING_TABLE.put(
             "javax.microedition.contactless.DiscoveryManager", new MIDPPermission(
-                "com.nokia.mj.impl.nfc.utils.ContactlessCommunicationPermission", "DiscoveryManager", "get_instance"));
+                "com.nokia.mj.impl.ccapi.utils.ContactlessCommunicationPermission", "discoveryManager", "get_instance"));
         PERMISSION_MAPPING_TABLE.put(
             "javax.microedition.io.Connector.ndef", new MIDPPermission(
-                "com.nokia.mj.impl.nfc.utils.ContactlessCommunicationPermission", "ndef://*", "open"));
+                "com.nokia.mj.impl.ccapi.utils.ContactlessCommunicationPermission", "ndef://*", "open"));
         PERMISSION_MAPPING_TABLE.put(
             "javax.microedition.io.Connector.rf", new MIDPPermission(
-                "com.nokia.mj.impl.nfc.utils.ContactlessCommunicationPermission", "rf://*", "open"));
+                "com.nokia.mj.impl.ccapi.utils.ContactlessCommunicationPermission", "rf://*", "open"));
         PERMISSION_MAPPING_TABLE.put(
             "javax.microedition.io.Connector.sc", new MIDPPermission(
-                "com.nokia.mj.impl.nfc.utils.ContactlessCommunicationPermission", "sc://*", "open"));
+                "com.nokia.mj.impl.ccapi.utils.ContactlessCommunicationPermission", "sc://*", "open"));
         PERMISSION_MAPPING_TABLE.put(
             "javax.microedition.io.Connector.vtag", new MIDPPermission(
-                "com.nokia.mj.impl.nfc.utils.ContactlessCommunicationPermission", "vtag://*", "open"));
+                "com.nokia.mj.impl.ccapi.utils.ContactlessCommunicationPermission", "vtag://*", "open"));
         PERMISSION_MAPPING_TABLE.put(
             "javax.microedition.io.SocketProtocolPermission", new MIDPPermission(
                 "com.nokia.mj.impl.gcf.protocol.socket.SocketPermissionImpl", "socket://*"));
@@ -228,9 +228,6 @@
             "javax.microedition.midlet.AutoStartPermission", new MIDPPermission(
                 "com.nokia.mj.impl.installer.utils.AutoStartPermission", null));
        PERMISSION_MAPPING_TABLE.put(
-            "AutoStartPermission", new MIDPPermission(
-                "com.nokia.mj.impl.installer.utils.AutoStartPermission", null));
-       PERMISSION_MAPPING_TABLE.put(
             "javax.microedition.midlet.CmdLineArgsPermission", new MIDPPermission(
                 "com.nokia.mj.impl.rt.utils.CmdLineArgsPermission", null));
        PERMISSION_MAPPING_TABLE.put(
--- a/javacommons/security/javasrc/com/nokia/mj/impl/security/midp/common/UserSecuritySettingsImpl.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/javasrc/com/nokia/mj/impl/security/midp/common/UserSecuritySettingsImpl.java	Wed Oct 13 14:23:59 2010 +0300
@@ -18,7 +18,6 @@
 package com.nokia.mj.impl.security.midp.common;
 
 import java.util.Vector;
-import com.nokia.mj.impl.utils.Id;
 import com.nokia.mj.impl.utils.ResourceLoader;
 
 /**
@@ -36,29 +35,24 @@
     private static ResourceLoader resLoader = null;
     private boolean active;
 
-    private static final Id NET_ACCESS_ID = new Id("setting_net_access", "setlabel_net_access");
-    private static final Id LOW_LEVEL_NET_ACCESS_ID = new Id("setting_low_level_net_access", "setlabel_low_level_net_access");
-    private static final Id MESSAGING_ID = new Id("setting_messaging", "setlabel_messaging");
-    private static final Id RESTRICTED_MESSAGING_ID = new Id("setting_restricted_messaging", "setlabel_restricted_messaging");
-    private static final Id CALL_CONTROL_ID = new Id("setting_call_control", "setlabel_call_control");
-    private static final Id LOCAL_CONNECTIVITY_ID = new Id("setting_local_conn", "setlabel_local_conn");
-    private static final Id MULTIMEDIA_RECORDING_ID = new Id("setting_mm_record", "setlabel_mm_record");
-    private static final Id READ_USER_DATA_ACCESS_ID = new Id("setting_read_data", "setlabel_read_data");
-    private static final Id WRITE_USER_DATA_ACCESS_ID = new Id("setting_write_data", "setlabel_write_data");
-    private static final Id APPLICATION_AUTO_INVOCATION_ID = new Id("setting_app_auto_invocat", "setlabel_app_auto_invoc");
-    private static final Id PHONE_CALL_ID = new Id("setting_phone_call", "setlabel_call_control");
-    private static final Id LOCATION_ID = new Id("setting_location", "setlabel_location");
-    private static final Id LANDMARK_ID = new Id("setting_landmarks", "setlabel_landmarks");
-    private static final Id SMART_CARD_COMMUNICATION_ID = new Id("setting_smartcard", "setlabel_smartcard");
-    private static final Id AUTHENTICATION_ID = new Id("setting_auth", "setlabel_auth");
-    private static final Id BROADCAST_ID = new Id("setting_broadcast", "setlabel_broadcast");
-    private static final Id NFC_WRITE_ACCESS_ID = new Id("setting_nfc_write_access", "setlabel_nfc_write_access");
-    private static final Id URL_START_ID = new Id("setting_url_start", "setlabel_url_start");
-
-    private static final String AVKON_LOC_FILE = "javaapplicationsettings";
-    private static final String AVKON_PREFIX = "qtn_java_";
-    private static final String QT_LOC_FILE = "javaruntimeapplicationsettings";
-    private static final String QT_PREFIX = "txt_java_sett_";
+    private static final String NET_ACCESS_ID = "setting_net_access";
+    private static final String LOW_LEVEL_NET_ACCESS_ID = "setting_low_level_net_access";
+    private static final String MESSAGING_ID = "setting_messaging";
+    private static final String RESTRICTED_MESSAGING_ID = "setting_restricted_messaging";
+    private static final String CALL_CONTROL_ID = "setting_call_control";
+    private static final String LOCAL_CONNECTIVITY_ID = "setting_local_conn";
+    private static final String MULTIMEDIA_RECORDING_ID = "setting_mm_record";
+    private static final String READ_USER_DATA_ACCESS_ID = "setting_read_data";
+    private static final String WRITE_USER_DATA_ACCESS_ID = "setting_write_data";
+    private static final String APPLICATION_AUTO_INVOCATION_ID = "setting_app_auto_invocat";
+    private static final String PHONE_CALL_ID = "setting_phone_call";
+    private static final String LOCATION_ID = "setting_location";
+    private static final String LANDMARK_ID = "setting_landmarks";
+    private static final String SMART_CARD_COMMUNICATION_ID = "setting_smartcard";
+    private static final String AUTHENTICATION_ID = "setting_auth";
+    private static final String BROADCAST_ID = "setting_broadcast";
+    private static final String NFC_WRITE_ACCESS_ID = "setting_nfc_write_access";
+    private static final String URL_START_ID = "setting_url_start";
 
     public UserSecuritySettingsImpl(
         String name,
@@ -112,9 +106,9 @@
     {
         if (resLoader == null)
         {
-            resLoader = ResourceLoader.getInstance(AVKON_LOC_FILE, AVKON_PREFIX, QT_LOC_FILE, QT_PREFIX);
+            resLoader = ResourceLoader.getInstance("javaapplicationsettings", "qtn_java_");
         }
-        Id id = null;
+        String id = "";
         if (NET_ACCESS_SETTINGS.equalsIgnoreCase(aSettingName))
         {
             id = NET_ACCESS_ID;
@@ -194,11 +188,11 @@
         return resLoader.format(id, null /*aTextParameters*/);
     }
 
-    public static String getLocalizedString(Id aStrId)
+    public static String getLocalizedString(String aStrId)
     {
         if (resLoader == null)
         {
-            resLoader = ResourceLoader.getInstance(AVKON_LOC_FILE, AVKON_PREFIX, QT_LOC_FILE, QT_PREFIX);
+            resLoader = ResourceLoader.getInstance("javaapplicationsettings", "qtn_java_");
         }
         return resLoader.format(aStrId, null /*aTextParameters*/);
     }
--- a/javacommons/security/javasrc/com/nokia/mj/impl/security/midp/storage/SecurityStorage.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/javasrc/com/nokia/mj/impl/security/midp/storage/SecurityStorage.java	Wed Oct 13 14:23:59 2010 +0300
@@ -102,6 +102,9 @@
     public static final int AUTHENTICATION_JAR_HASH_QUERY = 8;
     public static final int AUTHENTICATION_VALID_CERTS_QUERY = 16;
 
+    private static final int NOT_FOUND = -2;
+    private static final int REMOVED = -1;
+
     /**
      * Constructor
      */
@@ -432,11 +435,10 @@
         {
             if (oldAppUID != null)
             {
-                // remove granted permissions
-                removeGrantedPermissions(appUID);
-                
-                // write granted permissions
-                writeGrantedPermissions(appUID, null, grantedPermissions);
+                updateGrantedPermissions(
+                    appUID,
+                    oldAppUID,
+                    grantedPermissions);
                 return;
             }
             // put all the function group names into a vector and use it
@@ -740,9 +742,12 @@
         if (data.getRootHashValue() != null
                 && data.getRootHashValue().length() > 0)
         {
+            int rootHashLength = (data.getRootHashValue().length() > 8
+                ? 8 : data.getRootHashValue().length());
             entry.addAttribute(new StorageAttribute(
                                    StorageNames.CERT_HASH,
-                                   data.getRootHashValue()));
+                                   data.getRootHashValue().substring(0, 
+                                   rootHashLength)));
         }
         String validCerts = encodeValidatedChainIndexes(
                                 data.getValidatedChainIndexes());
@@ -1244,6 +1249,146 @@
             {/* move on with defaults */}
     }
 
+
+    private void updateGrantedPermissions(Uid newAppUID, Uid oldAppUID, Vector grantedPermissions)
+    {
+        // the vector containing the newGrantedPermissions
+        Vector newGrantedPermissions = new Vector();
+
+        // get the old permissions & settings
+        Vector oldPermissions = readGrantedPermissions(oldAppUID);
+
+        // filter out the the brand new permissions
+        // (permissions which are not found among the old permissions)
+        if (oldPermissions != null)
+        {
+            int index=0;
+            while (index < grantedPermissions.size())
+            {
+                // instead of calling Vector.removeElement(p) we will do the
+                // remove manually, since the search is to be based on
+                // the permission without the settings
+                PolicyBasedPermission p = (PolicyBasedPermission)
+                                          grantedPermissions.elementAt(index);
+                int status = removeElement(oldPermissions, p);
+                switch (status)
+                {
+                case NOT_FOUND:
+                    index++;
+                    break;
+                case REMOVED:
+                    grantedPermissions.removeElementAt(index);
+                    break;
+                default:
+                    // different settings
+                    UserSecuritySettings oldSettings
+                    = ((PolicyBasedPermission)oldPermissions
+                       .elementAt(status)).getUserSecuritySettings();
+                    UserSecuritySettings newSettings
+                    = p.getUserSecuritySettings();
+                    if (oldSettings != null
+                            && newSettings != null)
+                    {
+                        boolean activeSettings = false;
+                        if (oldSettings.isActive() 
+                            || newSettings.isActive())
+                        {
+                            activeSettings = true;
+                        }
+                        newGrantedPermissions.addElement(
+                            new PolicyBasedPermissionImpl(
+                                p.getName(),
+                                p.getTarget(),
+                                p.getActionList(),
+                                p.getType(),
+                                new UserSecuritySettingsImpl(
+                                    newSettings.getName(),
+                                    oldSettings.getCurrentInteractionMode(),
+                                    newSettings.getAllowedInteractionModes(),
+                                    oldSettings.getBlanketPrompt(),
+                                    activeSettings)));
+                    }
+                    else
+                    {
+                        newGrantedPermissions.addElement(p);
+                    }
+                    grantedPermissions.removeElementAt(index);
+                    break;
+                }
+            }
+        }
+        // write what's left from the granted permissions
+        writeGrantedPermissions(newAppUID, null, grantedPermissions, true /* preserveSettings */);
+        for (int i=0; i<newGrantedPermissions.size(); i++)
+        {
+            grantedPermissions.addElement(newGrantedPermissions.elementAt(i));
+        }
+
+        // remove what's left from the old permissions
+        if (oldPermissions != null)
+        {
+            for (int i=0; i<oldPermissions.size(); i++)
+            {
+                PolicyBasedPermission p = (PolicyBasedPermission)
+                                          oldPermissions.elementAt(i);
+                StorageEntry removePermissionQuery = new StorageEntry();
+                removePermissionQuery.addAttribute(new StorageAttribute(
+                                                       StorageAttribute.ID,
+                                                       oldAppUID.getStringValue()));
+                removePermissionQuery.addAttribute(new StorageAttribute(
+                                                       StorageNames.CLASS,
+                                                       p.getName()));
+                if (p.getTarget() != null
+                        && p.getTarget().length() > 0)
+                {
+                    removePermissionQuery.addAttribute(new StorageAttribute(
+                                                           StorageNames.NAME,
+                                                           p.getTarget()));
+                }
+                if (p.getActionList() != null
+                        && p.getActionList().length() > 0)
+                {
+                    removePermissionQuery.addAttribute(new StorageAttribute(
+                                                           StorageNames.ACTION,
+                                                           p.getActionList()));
+                }
+                doStorageRemove(StorageNames.MIDP_PERMISSIONS_TABLE,
+                                removePermissionQuery);
+                // remove the setting also if not used by some other permission
+                UserSecuritySettings settings =
+                    p.getUserSecuritySettings();
+                if (settings != null)
+                {
+                    StorageEntry permissionsQuery = new StorageEntry();
+                    permissionsQuery.addAttribute(new StorageAttribute(
+                                                      StorageAttribute.ID,
+                                                      newAppUID.getStringValue()));
+                    permissionsQuery.addAttribute(new StorageAttribute(
+                                                      StorageNames.FUNCTION_GROUP,
+                                                      settings.getName()));
+                    StorageEntry[] permissions = doStorageSearch(
+                                                     StorageNames.MIDP_PERMISSIONS_TABLE, permissionsQuery);
+                    if (permissions == null || (permissions != null
+                                                && permissions.length == 0))
+                    {
+                        // remove the orphaned settings from settings table
+                        StorageEntry removeSettingsQuery = new StorageEntry();
+                        removeSettingsQuery.addAttribute(new StorageAttribute(
+                                                             StorageAttribute.ID,
+                                                             newAppUID.getStringValue()));
+                        removeSettingsQuery.addAttribute(new StorageAttribute(
+                                                             StorageNames.FUNCTION_GROUP,
+                                                             settings.getName()));
+                        doStorageRemove(StorageNames.MIDP_FUNC_GRP_SETTINGS_TABLE,
+                                        removeSettingsQuery);
+                    }
+                }
+            }
+        }
+        // write the new permissions
+        writeGrantedPermissions(newAppUID, null, newGrantedPermissions, true /* preserveSettings */);
+    }
+
     private AuthenticationStorageData readAuthenticationStorageData(
         Uid appUID, String aAppName, String aAppVersion,
         String aAppVendor, int readFilter)
@@ -1696,6 +1841,41 @@
         }
         return attrValue;
     }
+
+    private int removeElement(Vector elements, PolicyBasedPermission element)
+    {
+        PolicyBasedPermissionImpl p1 = new PolicyBasedPermissionImpl(
+            element.getName(),
+            element.getTarget(),
+            element.getActionList(),
+            null);
+        for (int i=0; i<elements.size(); i++)
+        {
+            PolicyBasedPermission tmp = (PolicyBasedPermission)elements
+                                        .elementAt(i);
+            PolicyBasedPermissionImpl p2 = new PolicyBasedPermissionImpl(
+                tmp.getName(),
+                tmp.getTarget(),
+                tmp.getActionList(),
+                null);
+            if (p1.equals(p2))
+            {
+                UserSecuritySettings s1 = element.getUserSecuritySettings();
+                UserSecuritySettings s2 = tmp.getUserSecuritySettings();
+                if ((s1 == null && s2 == null)
+                        || (s1 != null
+                            && s2 != null
+                            && s1.equals(s2)))
+                {
+                    // identical permissions
+                    elements.removeElementAt(i);
+                    return REMOVED;
+                }
+                return i;
+            }
+        }
+        return NOT_FOUND;
+    }
     
     private String encodeFunctionGroup(int type, String name)
     {
--- a/javacommons/security/javasrc/com/nokia/mj/impl/security/utils/SecurityDetailedErrorMessage.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/javasrc/com/nokia/mj/impl/security/utils/SecurityDetailedErrorMessage.java	Wed Oct 13 14:23:59 2010 +0300
@@ -39,7 +39,6 @@
     public static final int OCSP_GENERAL_ERR = 7;
     public static final int OCSP_SETTINGS_ERR = 8;
     public static final int OCSP_REVOKED_ERR = 9;
-    public static final int JAR_NOT_FOUND = 10;
 
 
     /*** ----------------------------- PUBLIC ------------------------------ */
@@ -57,32 +56,15 @@
             return iMessageTable;
         }
         Hashtable messageTable = new Hashtable();
-        if (getLocaleIdQt() == null)
-        {
-            messageTable.put(new Integer(JAR_TAMPERED), "jar_tampered_details");
-            messageTable.put(new Integer(CERT_DISABLED), "cert_disabled");
-            messageTable.put(new Integer(CERT_DELETED), "cert_deleted");
-            messageTable.put(new Integer(SIM_CHANGED), "sim_changed");
-            messageTable.put(new Integer(UNIDENTIFIED_APPLICATION), "unidentified_application");
-            messageTable.put(new Integer(NETWORK_RESTRICTION_VIOLATION), "net_restr_violation_details");
-            messageTable.put(new Integer(OCSP_GENERAL_ERR), "ocsp_general_details");
-            messageTable.put(new Integer(OCSP_SETTINGS_ERR), "ocsp_settings");
-            messageTable.put(new Integer(OCSP_REVOKED_ERR), "ocsp_revoked");
-            messageTable.put(new Integer(JAR_NOT_FOUND), "jar_not_found_details");
-        }
-        else
-        {
-            messageTable.put(new Integer(JAR_TAMPERED), "jar_tampered_details");
-            messageTable.put(new Integer(CERT_DISABLED), "cert_disabled");
-            messageTable.put(new Integer(CERT_DELETED), "cert_deleted");
-            messageTable.put(new Integer(SIM_CHANGED), "sim_changed");
-            messageTable.put(new Integer(UNIDENTIFIED_APPLICATION), "unidentified_application");
-            messageTable.put(new Integer(NETWORK_RESTRICTION_VIOLATION), "net_restr_violation_details");
-            messageTable.put(new Integer(OCSP_GENERAL_ERR), "error_ocsp_general_details");
-            messageTable.put(new Integer(OCSP_SETTINGS_ERR), "error_ocsp_settings");
-            messageTable.put(new Integer(OCSP_REVOKED_ERR), "error_ocsp_revoked");
-            messageTable.put(new Integer(JAR_NOT_FOUND), "jar_not_found_details");
-        }
+        messageTable.put(new Integer(JAR_TAMPERED), "jar_tampered_details");
+        messageTable.put(new Integer(CERT_DISABLED), "cert_disabled");
+        messageTable.put(new Integer(CERT_DELETED), "cert_deleted");
+        messageTable.put(new Integer(SIM_CHANGED), "sim_changed");
+        messageTable.put(new Integer(UNIDENTIFIED_APPLICATION), "unidentified_application");
+        messageTable.put(new Integer(NETWORK_RESTRICTION_VIOLATION), "net_restr_violation_details");
+        messageTable.put(new Integer(OCSP_GENERAL_ERR), "ocsp_general_details");
+        messageTable.put(new Integer(OCSP_SETTINGS_ERR), "ocsp_settings");
+        messageTable.put(new Integer(OCSP_REVOKED_ERR), "ocsp_revoked");
         iMessageTable = messageTable;
         return iMessageTable;
     }
@@ -96,37 +78,11 @@
     {
         if (iRes == null)
         {
-            if (getLocaleIdQt() == null)
-            {
-                iRes = ResourceLoader.getInstance(
-                    "javausermessages", "qtn_java_secur_error_");
-            }
+            iRes = ResourceLoader.getInstance("javausermessages", "qtn_java_secur_error_");
         }
         return iRes;
     }
 
-    /**
-     * Method for retrieving the ResourceLoader instance that is used
-     * to localise error message for specified error code.
-     *
-     * @param errorCode error code for which ResourceLoader is returned
-     */
-    protected ResourceLoader getResourceLoader(int errorCode)
-    {
-        String resFilename = "javaapplicationsecuritymessages";
-        String resPrefix = "txt_java_secur_info_";
-        switch (errorCode)
-        {
-        case OCSP_GENERAL_ERR:
-        case OCSP_SETTINGS_ERR:
-        case OCSP_REVOKED_ERR:
-            resFilename = "javaapplicationinstaller";
-            resPrefix = "txt_java_secur_info_";
-            break;
-        }
-        return getResourceLoader(resFilename, resPrefix);
-    }
-
     /*** ----------------------------- PACKAGE ---------------------------- */
     /*** ----------------------------- PRIVATE ---------------------------- */
     /*** ----------------------------- NATIVE ----------------------------- */
--- a/javacommons/security/javasrc/com/nokia/mj/impl/security/utils/SecurityErrorMessage.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/javasrc/com/nokia/mj/impl/security/utils/SecurityErrorMessage.java	Wed Oct 13 14:23:59 2010 +0300
@@ -23,16 +23,18 @@
 
 /**
  * Class defining Security short error messages.
+ *
+ * @author Nokia Corporation
+ * @version 1.0
  */
 public final class SecurityErrorMessage extends ErrorMessageBase
 {
     // Security error codes.
-    public static final int JAR_TAMPERED = 1 + ErrorMessageBase.SECURITY_RANGE_START;
-    public static final int CERT_NOT_AVAILABLE = 2 + ErrorMessageBase.SECURITY_RANGE_START;
-    public static final int UNEXPECTED_ERR = 3 + ErrorMessageBase.SECURITY_RANGE_START;
-    public static final int NETWORK_RESTRICTION_VIOLATION = 4 + ErrorMessageBase.SECURITY_RANGE_START;
-    public static final int OCSP_GENERAL_ERR = 5 + ErrorMessageBase.SECURITY_RANGE_START;
-    public static final int JAR_NOT_FOUND = 6 + ErrorMessageBase.SECURITY_RANGE_START;
+    public static final int JAR_TAMPERED = 1;
+    public static final int CERT_NOT_AVAILABLE = 2;
+    public static final int UNEXPECTED_ERR = 3;
+    public static final int NETWORK_RESTRICTION_VIOLATION = 4;
+    public static final int OCSP_GENERAL_ERR = 5;
 
     /*** ----------------------------- PUBLIC ------------------------------ */
     /*** ---------------------------- PROTECTED --------------------------- */
@@ -49,24 +51,11 @@
             return iMessageTable;
         }
         Hashtable messageTable = new Hashtable();
-        if (getLocaleIdQt() == null)
-        {
-            messageTable.put(new Integer(JAR_TAMPERED), "jar_tampered");
-            messageTable.put(new Integer(CERT_NOT_AVAILABLE), "cert_not_available");
-            messageTable.put(new Integer(UNEXPECTED_ERR), "unexpected_err");
-            messageTable.put(new Integer(NETWORK_RESTRICTION_VIOLATION), "net_restr_violation");
-            messageTable.put(new Integer(OCSP_GENERAL_ERR), "ocsp_general");
-            messageTable.put(new Integer(JAR_NOT_FOUND), "jar_not_found");
-        }
-        else
-        {
-            messageTable.put(new Integer(JAR_TAMPERED), "jar_tampered");
-            messageTable.put(new Integer(CERT_NOT_AVAILABLE), "cert_not_available");
-            messageTable.put(new Integer(UNEXPECTED_ERR), "unexpected_error");
-            messageTable.put(new Integer(NETWORK_RESTRICTION_VIOLATION), "net_restr_violation");
-            messageTable.put(new Integer(OCSP_GENERAL_ERR), "there_is_a_security_issue_with_this");
-            messageTable.put(new Integer(JAR_NOT_FOUND), "error_jar_not_found");
-        }
+        messageTable.put(new Integer(JAR_TAMPERED), "jar_tampered");
+        messageTable.put(new Integer(CERT_NOT_AVAILABLE), "cert_not_available");
+        messageTable.put(new Integer(UNEXPECTED_ERR), "unexpected_err");
+        messageTable.put(new Integer(NETWORK_RESTRICTION_VIOLATION), "net_restr_violation");
+        messageTable.put(new Integer(OCSP_GENERAL_ERR), "ocsp_general");
         iMessageTable = messageTable;
         return iMessageTable;
     }
@@ -80,39 +69,11 @@
     {
         if (iRes == null)
         {
-            // This method returns ResourceLoader only when Qt
-            // localisation is not in use. When Qt localisation
-            // is in use this method returns null and
-            // ResourceLoader is obtained with getResourceLoader(int)
-            // method variant.
-            if (getLocaleIdQt() == null)
-            {
-                iRes = ResourceLoader.getInstance("javausermessages", "qtn_java_secur_error_");
-            }
+            iRes = ResourceLoader.getInstance("javausermessages", "qtn_java_secur_error_");
         }
         return iRes;
     }
 
-    /**
-     * Method for retrieving the ResourceLoader instance that is used
-     * to localise error message for specified error code.
-     *
-     * @param errorCode error code for which ResourceLoader is returned
-     */
-    protected ResourceLoader getResourceLoader(int errorCode)
-    {
-        String resFilename = "javaapplicationsecuritymessages";
-        String resPrefix = "txt_java_secur_info_";
-        switch (errorCode)
-        {
-        case OCSP_GENERAL_ERR:
-            resFilename = "common_errors";
-            resPrefix = "txt_error_info_";
-            break;
-        }
-        return getResourceLoader(resFilename, resPrefix);
-    }
-
     /*** ----------------------------- PACKAGE ---------------------------- */
     /*** ----------------------------- PRIVATE ---------------------------- */
     /*** ----------------------------- NATIVE ----------------------------- */
--- a/javacommons/security/javasrc/com/nokia/mj/impl/security/utils/SecurityPermissionTexts.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/javasrc/com/nokia/mj/impl/security/utils/SecurityPermissionTexts.java	Wed Oct 13 14:23:59 2010 +0300
@@ -17,7 +17,6 @@
 
 package com.nokia.mj.impl.security.utils;
 
-import com.nokia.mj.impl.utils.Id;
 import com.nokia.mj.impl.utils.LocalizedTextProvider;
 import com.nokia.mj.impl.utils.ResourceLoader;
 
@@ -29,25 +28,20 @@
     private static ResourceLoader iRes = null;
 
     // identifiers for the security permission texts
-    public static final Id CALL_CONTROL = new Id("call_control", "N/A");
-    public static final Id NET_ACCESS = new Id("net_access", "N/A");
-    public static final Id LOW_LEVEL_NET_ACCESS = new Id("low_level_net_access", "N/A");
-    public static final Id MESSAGING = new Id("messaging", "qt_kalle_test_d");
-    public static final Id RESTRICTED_MESSAGING = new Id("restricted_messaging", "N/A");
-    public static final Id APP_AUTO_INVOCAT = new Id("app_auto_invocat", "N/A");
-    public static final Id LOCAL_CONN = new Id("local_conn", "N/A");
-    public static final Id MM_RECORD = new Id("mm_record", "N/A");
-    public static final Id READ_DATA = new Id("read_data", "N/A");
-    public static final Id WRITE_DATA = new Id("write_data", "N/A");
-    public static final Id LOCATION = new Id("location", "N/A");
-    public static final Id LANDMARKS = new Id("landmarks", "N/A");
-    public static final Id AUTH = new Id("auth", "N/A");
-    public static final Id BROADCAST = new Id("broadcast", "N/A");
-
-    private static final String AVKON_LOC_FILE = "javainstallation";
-    private static final String AVKON_PREFIX = "qtn_java_inst_perm_";
-    private static final String QT_LOC_FILE = "N/A";
-    private static final String QT_PREFIX = "N/A";
+    public static final String CALL_CONTROL = "call_control";
+    public static final String NET_ACCESS = "net_access";
+    public static final String LOW_LEVEL_NET_ACCESS = "low_level_net_access";
+    public static final String MESSAGING = "messaging";
+    public static final String RESTRICTED_MESSAGING = "restricted_messaging";
+    public static final String APP_AUTO_INVOCAT = "app_auto_invocat";
+    public static final String LOCAL_CONN = "local_conn";
+    public static final String MM_RECORD = "mm_record";
+    public static final String READ_DATA = "read_data";
+    public static final String WRITE_DATA = "write_data";
+    public static final String LOCATION = "location";
+    public static final String LANDMARKS = "landmarks";
+    public static final String AUTH = "auth";
+    public static final String BROADCAST = "broadcast";
 
     /**
      * Creates an instance of the SecurityPermissionTexts
@@ -79,13 +73,12 @@
      * @return            the localized text associated with the provided
      *                    identifier and parameters
      */
-    public String getText(Id aTextId, Object[] aTextParams)
+    public String getText(String aTextId, Object[] aTextParams)
     {
         if (iRes == null)
         {
-            iRes = ResourceLoader.getInstance(AVKON_LOC_FILE, AVKON_PREFIX, QT_LOC_FILE, QT_PREFIX);
+            iRes = ResourceLoader.getInstance("javainstallation", "qtn_java_inst_perm_");
         }
-
         return iRes.format(aTextId, aTextParams);
     }
 }
--- a/javacommons/security/javasrc/com/nokia/mj/impl/security/utils/SecurityPromptMessage.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/javasrc/com/nokia/mj/impl/security/utils/SecurityPromptMessage.java	Wed Oct 13 14:23:59 2010 +0300
@@ -17,7 +17,6 @@
 
 package com.nokia.mj.impl.security.utils;
 
-import com.nokia.mj.impl.utils.Id;
 import com.nokia.mj.impl.utils.LocalizedTextProvider;
 import com.nokia.mj.impl.utils.ResourceLoader;
 
@@ -29,74 +28,68 @@
     private static ResourceLoader iRes = null;
 
     // identifiers for the security prompt questions
-    public static final Id QUESTION_ID_NETWORK_USAGE = new Id("network_usage", "N/A");
-    public static final Id QUESTION_ID_SMS_OPENING_CONN = new Id("sms_opening_conn", "N/A");
-    public static final Id QUESTION_ID_MMS_OPENING_CONN = new Id("mms_opening_conn", "N/A");
-    public static final Id QUESTION_ID_CBS_OPENING_CONN = new Id("cbs_opening_conn", "N/A");
-    public static final Id QUESTION_ID_SMS_RECEIVING = new Id("sms_receiving", "N/A");
-    public static final Id QUESTION_ID_MMS_RECEIVING = new Id("mms_receiving", "N/A");
-    public static final Id QUESTION_ID_CBS_RECEIVING = new Id("cbs_receiving", "N/A");
-    public static final Id QUESTION_ID_SMS_SENDING = new Id("sms_sending", "N/A");
-    public static final Id QUESTION_ID_SMS_SINGLE_SENDING = new Id("sms_single_sending", "N/A");
-    public static final Id QUESTION_ID_MMS_SENDING = new Id("mms_sending", "N/A");
-    public static final Id QUESTION_ID_MMS_SINGLE_SENDING = new Id("mms_single_sending", "N/A");
-    public static final Id QUESTION_ID_MMS_SINGLE_SENDING_MULTIPLE_DESTINATIONS = new Id("mms_single_sending_multiple_destinations", "N/A");
-    public static final Id QUESTION_ID_SEND_RECEIVE_MESSAGES = new Id("receive_send_messages", "N/A");
-    public static final Id QUESTION_ID_LOCAL_CONNECTIVITY = new Id("local_connectivity", "N/A");
-    public static final Id QUESTION_ID_AUDIO_VIDEO_RECORDING = new Id("audio_video_recording", "N/A");
-    public static final Id QUESTION_ID_READING_USER_DATA = new Id("reading_user_data", "N/A");
-    public static final Id QUESTION_ID_WRITING_USER_DATA = new Id("writing_user_data", "N/A");
-    public static final Id QUESTION_ID_READING_FILE = new Id("reading_file", "N/A");
-    public static final Id QUESTION_ID_MANAGE_USER_DATA = new Id("manage_user_data", "N/A");
-    public static final Id QUESTION_ID_MODIFYING_FILE = new Id("modifying_file", "N/A");
-    public static final Id QUESTION_ID_READING_LOCATION_DATA = new Id("reading_location_data", "N/A");
-    public static final Id QUESTION_ID_READING_LANDMARK_DATA = new Id("reading_landmark_data", "N/A");
-    public static final Id QUESTION_ID_READING_SMARTCARD = new Id("reading_smartcard", "N/A");
-    public static final Id QUESTION_ID_AUTH_SERVICES_USAGE = new Id("auth_services_usage", "N/A");
-    public static final Id QUESTION_ID_BLUETOOTH_USAGE = new Id("bluetooth_usage", "N/A");
-    public static final Id QUESTION_ID_READING_CONTACTS = new Id("reading_contacts", "N/A");
-    public static final Id QUESTION_ID_MODIFYING_CONTACTS = new Id("modifying_contacts", "N/A");
-    public static final Id QUESTION_ID_READING_EVENTS = new Id("reading_events", "N/A");
-    public static final Id QUESTION_ID_MODIFYING_EVENTS = new Id("modifying_events", "N/A");
-    public static final Id QUESTION_ID_READING_TODOS = new Id("reading_todos", "N/A");
-    public static final Id QUESTION_ID_MODIFYING_TODOS = new Id("modifying_todos", "N/A");
-    public static final Id QUESTION_ID_DELETING_ITEM = new Id("deleting_item", "N/A");
-    public static final Id QUESTION_ID_UPDATING_ITEM = new Id("updating_item", "N/A");
-    public static final Id QUESTION_ID_DELETING_CATEGORY = new Id("deleting_category", "N/A");
-    public static final Id QUESTION_ID_UPDATING_CATEGORY = new Id("updating_category", "N/A");
-    public static final Id QUESTION_ID_DELETING_UNNAMED_ITEM = new Id("deleting_unnamed_item", "N/A");
-    public static final Id QUESTION_ID_UPDATING_UNNAMED_ITEM = new Id("updating_unnamed_item", "N/A");
-    public static final Id QUESTION_ID_ADDING_CALENDAR = new Id("adding_calendar", "N/A");
-    public static final Id QUESTION_ID_DELETING_CALENDAR = new Id("deleting_calendar", "N/A");
-    public static final Id QUESTION_ID_LISTING_CALENDARS = new Id("listing_calendars", "N/A");
-    public static final Id QUESTION_ID_ORIENTATION_DATA_USAGE = new Id("orientation_data_usage", "N/A");
-    public static final Id QUESTION_ID_POSITIONING_DATA_USAGE = new Id("positioning_data_usage", "N/A");
-    public static final Id QUESTION_ID_LANDMARK_DATA_USAGE = new Id("landmark_data_usage", "N/A");
-    public static final Id QUESTION_ID_PROXIMITY_LISTENER_REGISTRATION = new Id("proximity_listener_registration", "N/A");
-    public static final Id QUESTION_ID_MOBITV_DATA_USAGE = new Id("tv_broadcast_user_data_access", "N/A");
-    public static final Id QUESTION_ID_NETWORK_USAGE_VIA_PLAT_REQ = new Id("network_usage_via_plat_req", "N/A");
-    public static final Id QUESTION_ID_APP_LAUNCH_VIA_PLAT_REQ = new Id("app_launch_via_plat_req", "N/A");
-    public static final Id QUESTION_ID_PUSH_STATIC_REGISTRATION = new Id("push_registration_static", "N/A");
-    public static final Id QUESTION_ID_PUSH_DYNAMIC_REGISTRATION = new Id("push_registration_dynamic", "N/A");
-    public static final Id QUESTION_ID_AUTO_INVOCATION = new Id("auto_invocation", "N/A");
-    public static final Id QUESTION_ID_NDEF_TAG_WRITE = new Id("nfc_ndef_tag_write", "N/A");
-    public static final Id QUESTION_ID_APP_AUTO_LAUNCH = new Id("url_start", "N/A");
+    public static final String QUESTION_ID_NETWORK_USAGE = "network_usage";
+    public static final String QUESTION_ID_SMS_OPENING_CONN = "sms_opening_conn";
+    public static final String QUESTION_ID_MMS_OPENING_CONN = "mms_opening_conn";
+    public static final String QUESTION_ID_CBS_OPENING_CONN = "cbs_opening_conn";
+    public static final String QUESTION_ID_SMS_RECEIVING = "sms_receiving";
+    public static final String QUESTION_ID_MMS_RECEIVING = "mms_receiving";
+    public static final String QUESTION_ID_CBS_RECEIVING = "cbs_receiving";
+    public static final String QUESTION_ID_SMS_SENDING = "sms_sending";
+    public static final String QUESTION_ID_SMS_SINGLE_SENDING = "sms_single_sending";
+    public static final String QUESTION_ID_MMS_SENDING = "mms_sending";
+    public static final String QUESTION_ID_MMS_SINGLE_SENDING = "mms_single_sending";
+    public static final String QUESTION_ID_MMS_SINGLE_SENDING_MULTIPLE_DESTINATIONS = "mms_single_sending_multiple_destinations";
+    public static final String QUESTION_ID_SEND_RECEIVE_MESSAGES = "receive_send_messages";
+    public static final String QUESTION_ID_LOCAL_CONNECTIVITY = "local_connectivity";
+    public static final String QUESTION_ID_AUDIO_VIDEO_RECORDING = "audio_video_recording";
+    public static final String QUESTION_ID_READING_USER_DATA = "reading_user_data";
+    public static final String QUESTION_ID_WRITING_USER_DATA = "writing_user_data";
+    public static final String QUESTION_ID_READING_FILE = "reading_file";
+    public static final String QUESTION_ID_MANAGE_USER_DATA = "manage_user_data";
+    public static final String QUESTION_ID_MODIFYING_FILE = "modifying_file";
+    public static final String QUESTION_ID_READING_LOCATION_DATA = "reading_location_data";
+    public static final String QUESTION_ID_READING_LANDMARK_DATA = "reading_landmark_data";
+    public static final String QUESTION_ID_READING_SMARTCARD = "reading_smartcard";
+    public static final String QUESTION_ID_AUTH_SERVICES_USAGE = "auth_services_usage";
+    public static final String QUESTION_ID_BLUETOOTH_USAGE = "bluetooth_usage";
+    public static final String QUESTION_ID_READING_CONTACTS = "reading_contacts";
+    public static final String QUESTION_ID_MODIFYING_CONTACTS = "modifying_contacts";
+    public static final String QUESTION_ID_READING_EVENTS = "reading_events";
+    public static final String QUESTION_ID_MODIFYING_EVENTS = "modifying_events";
+    public static final String QUESTION_ID_READING_TODOS = "reading_todos";
+    public static final String QUESTION_ID_MODIFYING_TODOS = "modifying_todos";
+    public static final String QUESTION_ID_DELETING_ITEM = "deleting_item";
+    public static final String QUESTION_ID_UPDATING_ITEM = "updating_item";
+    public static final String QUESTION_ID_DELETING_CATEGORY = "deleting_category";
+    public static final String QUESTION_ID_UPDATING_CATEGORY = "updating_category";
+    public static final String QUESTION_ID_DELETING_UNNAMED_ITEM = "deleting_unnamed_item";
+    public static final String QUESTION_ID_UPDATING_UNNAMED_ITEM = "updating_unnamed_item";
+    public static final String QUESTION_ID_ADDING_CALENDAR = "adding_calendar";
+    public static final String QUESTION_ID_DELETING_CALENDAR = "deleting_calendar";
+    public static final String QUESTION_ID_LISTING_CALENDARS = "listing_calendars";
+    public static final String QUESTION_ID_ORIENTATION_DATA_USAGE = "orientation_data_usage";
+    public static final String QUESTION_ID_POSITIONING_DATA_USAGE = "positioning_data_usage";
+    public static final String QUESTION_ID_LANDMARK_DATA_USAGE = "landmark_data_usage";
+    public static final String QUESTION_ID_PROXIMITY_LISTENER_REGISTRATION = "proximity_listener_registration";
+    public static final String QUESTION_ID_MOBITV_DATA_USAGE = "tv_broadcast_user_data_access";
+    public static final String QUESTION_ID_NETWORK_USAGE_VIA_PLAT_REQ = "network_usage_via_plat_req";
+    public static final String QUESTION_ID_APP_LAUNCH_VIA_PLAT_REQ = "app_launch_via_plat_req";
+    public static final String QUESTION_ID_PUSH_STATIC_REGISTRATION = "push_registration_static";
+    public static final String QUESTION_ID_PUSH_DYNAMIC_REGISTRATION = "push_registration_dynamic";
+    public static final String QUESTION_ID_AUTO_INVOCATION = "auto_invocation";
+    public static final String QUESTION_ID_NDEF_TAG_WRITE = "nfc_ndef_tag_write";
+    public static final String QUESTION_ID_APP_AUTO_LAUNCH = "url_start";
 
     // identifiers for the security prompt answer options
-    public static final Id ANSWER_ID_ALLOW = new Id("prompt_allow", "N/A");
-    public static final Id ANSWER_ID_DENY = new Id("prompt_deny", "N/A");
-    public static final Id ANSWER_ID_YES = new Id("prompt_yes", "N/A");
-    public static final Id ANSWER_ID_NO = new Id("prompt_no", "N/A");
+    public static final String ANSWER_ID_ALLOW = "prompt_allow";
+    public static final String ANSWER_ID_DENY = "prompt_deny";
+    public static final String ANSWER_ID_YES = "prompt_yes";
+    public static final String ANSWER_ID_NO = "prompt_no";
 
     // general purpose identifiers
-    public static final Id SECURITY_WARNING_ID = new Id("general_warning", "N/A");
-    public static final Id OCSP_WARNING_ID = new Id("ocsp_warning", "N/A");
-
-    // Localised resources
-    private static final String AVKON_LOC_FILE = "javausermessages";
-    private static final String AVKON_PREFIX = "qtn_java_secur_";
-    private static final String QT_LOC_FILE = "N/A";
-    private static final String QT_PREFIX = "";
+    public static final String SECURITY_WARNING_ID = "general_warning";
+    public static final String OCSP_WARNING_ID = "ocsp_warning";
 
     /**
      * Creates an instance of the SecurityPromptMessage
@@ -128,13 +121,12 @@
      * @return            the localized text associated with the provided
      *                    identifier and parameters
      */
-    public String getText(Id aTextId, Object[] aTextParams)
+    public String getText(String aTextId, Object[] aTextParams)
     {
         if (iRes == null)
         {
-            iRes = ResourceLoader.getInstance(AVKON_LOC_FILE, AVKON_PREFIX, QT_LOC_FILE, QT_PREFIX);
+            iRes = ResourceLoader.getInstance("javausermessages", "qtn_java_secur_");
         }
-
         return iRes.format(aTextId, aTextParams);
     }
 }
--- a/javacommons/security/javaunicertstoreplugin/build/bld.inf	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/javaunicertstoreplugin/build/bld.inf	Wed Oct 13 14:23:59 2010 +0300
@@ -11,13 +11,16 @@
 *
 * Contributors:
 *
-* Description: Generated bld.inf -file
+* Description: 
 *
 */
 
 PRJ_PLATFORMS
 default
 
-PRJ_MMPFILES  
-javaunicertstoreplugin_0x200213A3.mmp 
+PRJ_MMPFILES
+javaunicertstoreplugin.mmp
+
+#ifdef RD_JAVA_UI_QT
 #include "exports.inf" 
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/security/javaunicertstoreplugin/build/javaunicertstoreplugin.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,69 @@
+/*
+* 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: 
+*
+*/
+
+#include <bldvariant.hrh>
+#include <data_caging_paths.hrh>
+#include <platform_paths.hrh>
+#include <../../../../inc/project_defines.hrh>
+#include <../../../../inc/java_stdcpp_support_for_dll.hrh>
+
+target          javaunicertstoreplugin.dll
+
+targettype      PLUGIN 
+
+uid             0x10009D8D 0x200213A3
+
+CAPABILITY      CAP_ECOM_PLUGIN
+VENDORID        VID_DEFAULT
+
+// Use bytepair compression to enable code paging
+PAGED
+
+systeminclude   /epoc32/include/ecom
+
+userinclude   ../../../../inc
+
+sourcepath      ../src.s60
+
+source          javacertstoreimpl.cpp
+source          javacertstoretoken.cpp
+source          javacertstoretokentype.cpp
+source          main.cpp
+
+start resource  200213A3.rss
+target javaunicertstoreplugin.rsc
+end
+
+START RESOURCE          ../data/javausermessages.rss
+HEADER
+TARGETPATH              /resource/java
+LANGUAGE_IDS
+END
+
+library         ctframework.lib
+library         efsrv.lib
+library         estor.lib
+library         x509.lib
+library         javacomms.lib
+LIBRARY         CommonEngine.lib
+LIBRARY         aknnotify.lib
+
+#if defined(WINSCW)
+deffile ./bwins/javaunicertstoreplugin.def
+#else
+deffile ./eabi/javaunicertstoreplugin.def
+#endif
--- a/javacommons/security/javaunicertstoreplugin/build/javaunicertstoreplugin.pro	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-#
-# 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: 
-#
-
-include(../../../../inc/build_defines.pri)
-
-TEMPLATE=lib
-TARGET=javaunicertstoreplugin
-CONFIG += omj stl
-CONFIG -= qt
-
-contains(PROJECT_DEFINES,RD_JAVA_S60_RELEASE_10_1_ONWARDS) {
-    CONFIG += qt hb
-    SOURCES += ../src.s60/confirmquery.cpp
-    HEADERS += ../src.s60/confirmquery.h
-}
-symbian {
-    TARGET.UID2 = 0x10009D8D
-    TARGET.UID3 = 0x200213A3
-    TARGET.TARGETTYPE=PLUGIN
-    TARGET.CAPABILITY = CAP_ECOM_PLUGIN
-    MMP_RULES += "START RESOURCE 200213A3.rss"
-    MMP_RULES += "TARGETPATH /resource/plugins"   
-    MMP_RULES += "TARGET javaunicertstoreplugin.rsc"
-    MMP_RULES += "END"
-    MMP_RULES += "START RESOURCE 200213A3_iad.rss"
-    MMP_RULES += "TARGETPATH /resource/java/iad"   
-    MMP_RULES += "TARGET javaunicertstoreplugin.rsc"
-    MMP_RULES += "END"
-    MMP_RULES += "START RESOURCE ../data/javausermessages.rss"
-    MMP_RULES += "HEADER"
-    MMP_RULES += "TARGETPATH /resource/java"
-    MMP_RULES += "LANGUAGE_IDS"
-    MMP_RULES += "END"
-    DEPENDPATH += ../src.s60
-    INCLUDEPATH += ../src.s60 ../../../../inc
-    SOURCES += ../src.s60/javacertstoreimpl.cpp \
-               ../src.s60/javacertstoretoken.cpp \
-               ../src.s60/javacertstoretokentype.cpp \
-               ../src.s60/main.cpp
-    LIBS += -lctframework \
-            -lefsrv \
-            -lestor \
-            -lx509 \
-            -ljavacomms \
-            -lCommonEngine
-    !contains(PROJECT_DEFINES,RD_JAVA_S60_RELEASE_10_1_ONWARDS) {
-        LIBS += -laknnotify
-    }
-}
-
-include(../../../../build/omj.pri)
--- a/javacommons/security/javaunicertstoreplugin/build/javaunicertstoreplugin_0x200213A3.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,171 +0,0 @@
-/*
-* 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: Generated file - do not edit manually
-*
-*/
-
-// ==============================================================================
-// Generated by qmake (2.01a) (Qt 4.6.4) on: (date)
-// This file is generated by qmake and should not be modified by the
-// user.
-//  Name        : javaunicertstoreplugin.mmp
-// ==============================================================================
-
-TARGET		javaunicertstoreplugin.dll
-TARGETTYPE		DLL
-
-UID		0x10009D8D 0x200213A3
-SECUREID		0x200213A3
-
-EPOCALLOWDLLDATA
-
-
-// Qt Macros
-MACRO		UNICODE
-MACRO		QT_KEYPAD_NAVIGATION
-MACRO		QT_SOFTKEYS_ENABLED
-MACRO		QT_USE_MATH_H_FLOATS
-MACRO		RD_JAVA_SYMBIAN_TARGET
-MACRO		RD_JAVA_S60_RELEASE_9_2
-MACRO		RD_JAVA_S60_RELEASE_9_2_ONWARDS
-MACRO		RD_JAVA_S60_RELEASE_5_0_ONWARDS
-MACRO		RD_JAVA_STDCPPV5
-MACRO		RD_JAVA_EPOCALLOWDLLDATA_FIX
-MACRO		RD_JAVA_HTTP_EMC_ENABLED
-MACRO		RD_JAVA_NGA_ENABLED
-MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
-MACRO		RD_JAVA_OPENC_BETA_PATCH
-MACRO		RD_JAVA_INSTALLERUI_ENABLED
-MACRO		RD_JAVA_PREWARM
-MACRO		RD_JAVA_ADVANCED_TACTILE_FEEDBACK
-MACRO		RD_JAVA_MIDPRMS_DB
-MACRO		__SYMBIAN32__
-MACRO		J9EPOC32
-
-SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
-SYSTEMINCLUDE		../src.s60
-SYSTEMINCLUDE		../../../../inc
-SYSTEMINCLUDE		../../inc
-SYSTEMINCLUDE		../../../inc
-SYSTEMINCLUDE		/epoc32/include/stdapis/stlportv5
-SYSTEMINCLUDE		/epoc32/include/mw
-SYSTEMINCLUDE		.
-
-SOURCEPATH 	../src.s60
-SOURCE		javacertstoreimpl.cpp
-SOURCE		javacertstoretoken.cpp
-SOURCE		javacertstoretokentype.cpp
-SOURCE		main.cpp
-
-
-LIBRARY		ctframework.lib
-LIBRARY		efsrv.lib
-LIBRARY		estor.lib
-LIBRARY		x509.lib
-LIBRARY		javacomms.lib
-LIBRARY		CommonEngine.lib
-LIBRARY		aknnotify.lib
-LIBRARY		javautils.lib
-LIBRARY		libpthread.lib
-LIBRARY		libstdcppv5.lib
-LIBRARY		libc.lib
-LIBRARY		libm.lib
-LIBRARY		euser.lib
-LIBRARY		libdl.lib
-LIBRARY		cone.lib
-LIBRARY		eikcore.lib
-LIBRARY		mediaclientaudio.lib
-LIBRARY		eikcoctl.lib
-LIBRARY		eiksrv.lib
-LIBRARY		apparc.lib
-LIBRARY		avkon.lib
-LIBRARY		charconv.lib
-LIBRARY		ws32.lib
-LIBRARY		hal.lib
-LIBRARY		gdi.lib
-LIBRARY		apgrfx.lib
-
-CAPABILITY		all -tcb 
-
-OPTION CW -wchar_t on
-OPTION ARMCC --visibility_inlines_hidden
-#if defined(ARMCC_4_0)
-OPTION ARMCC --import_all_vtbl
-#endif
-OPTION GCCE -fvisibility-inlines-hidden
-
-VERSION 10.525
-
-ARMFPU softvfp
-
-PAGED
-
-BYTEPAIRCOMPRESSTARGET
-
-USERINCLUDE .
-
-START RESOURCE 200213A3.rss
-
-TARGETPATH /resource/plugins
-
-TARGET javaunicertstoreplugin.rsc
-
-END
-
-START RESOURCE 200213A3_iad.rss
-
-TARGETPATH /resource/java/iad
-
-TARGET javaunicertstoreplugin.rsc
-
-END
-
-START RESOURCE ../data/javausermessages.rss
-
-HEADER
-
-TARGETPATH /resource/java
-
-LANGUAGE_IDS
-
-END
-
-#include <platform_paths.hrh>
-
- APP_LAYER_SYSTEMINCLUDE
-
- OS_LAYER_LIBC_SYSTEMINCLUDE
-
- OS_LAYER_SSL_SYSTEMINCLUDE
-
-deffile ./~/javaunicertstoreplugin.def
-
- SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlportv5)
-
-SYSTEMINCLUDE /epoc32/build/jrt/javabuild/inc.javah
-
-#ifdef WINSCW
-
-LIBRARY ewsd.lib
-
-#endif
-
-STDCPP
-
-#ifdef WINSCW
-DEFFILE ./bwins/javaunicertstoreplugin.def
-#elif defined EABI
-DEFFILE ./eabi/javaunicertstoreplugin.def
-#endif
--- a/javacommons/security/javaunicertstoreplugin/src.s60/200213A3.rss	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/javaunicertstoreplugin/src.s60/200213A3.rss	Wed Oct 13 14:23:59 2010 +0300
@@ -18,16 +18,12 @@
 
 // INCLUDES
 
-#include <ecom/registryinfov2.rh>
+#include <registryinfov2.rh>
 #include <ct/interfaceuid.hrh>
 
 // Some defines of useful values for attributes to simplify
 // writing resource files
 
-#ifndef ECOM_VERSION_NO
-#define ECOM_VERSION_NO 1
-#endif
-
 // True
 #define CT_TRUE 1,0,0,0
 // False
@@ -61,7 +57,7 @@
 				BINARY_IMPLEMENTATION_INFO
 					{
 					implementation_uid = 0x200213A3;					
-					version_no = ECOM_VERSION_NO;
+					version_no = 1;
 					display_name = "Java Certificate store";
 					default_data = { CT_CERT_STORE, CT_WRITEABLE_CERT_STORE };
 					opaque_data = { CT_SOFTWARE, CT_TRUE,
--- a/javacommons/security/javaunicertstoreplugin/src.s60/200213A3_iad.rss	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/*
-* Copyright (c) 2010 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:  ECOM resource definition for IAD
-*
-*/
-
-//  Version for IAD
-#define ECOM_VERSION_NO 2
-
-//  Include actual rss
-#include "200213A3.rss"
-
--- a/javacommons/security/javaunicertstoreplugin/src.s60/confirmquery.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-#include "confirmquery.h"
-#include <hbmessagebox.h>
-#include <hblabel.h>
-
-using namespace java::security;
-
-ConfirmQuery::ConfirmQuery()
-    : mAsyncToSyncCallEventLoop(0), mQueryAccepted(false)
-{
-    mAsyncToSyncCallEventLoop = new QEventLoop();
-}
-    
-bool ConfirmQuery::accept(const QString& aQuery)
-{
-    HbMessageBox confirmQuery(HbMessageBox::MessageTypeQuestion);
-    confirmQuery.setDismissPolicy(HbDialog::NoDismiss);
-    confirmQuery.setTimeout(HbDialog::NoTimeout);
-    confirmQuery.setIconVisible(false);
-    confirmQuery.setText(aQuery);
-    confirmQuery.setAttribute(Qt::WA_DeleteOnClose);
-    confirmQuery.setStandardButtons(HbMessageBox::Yes | HbMessageBox::No);
-    confirmQuery.open(this,SLOT(queryDismissed(int)));
-    mAsyncToSyncCallEventLoop->exec();
-    return mQueryAccepted;
-}
-
-void ConfirmQuery::queryDismissed(int dismissAction)
-{
-    if (dismissAction == HbMessageBox::Yes) {
-        mQueryAccepted = true;
-    }
-    mAsyncToSyncCallEventLoop->exit();
-}
-
-ConfirmQuery::~ConfirmQuery()
-{
-    delete mAsyncToSyncCallEventLoop;
-}
-
-#include "moc_confirmquery.cpp"
--- a/javacommons/security/javaunicertstoreplugin/src.s60/confirmquery.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
-* Copyright (c) 2010 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 CONFIRMQUERY_H
-#define CONFIRMQUERY_H
-
-#include <QEventLoop>
-
-namespace java
-{
-namespace security
-{
-
-class ConfirmQuery: public QObject
-{
-    Q_OBJECT
-
-public:
-    ConfirmQuery();
-    bool accept(const QString& aQuery);
-    virtual ~ConfirmQuery();
-
-private slots:
-    void queryDismissed(int dismissAction);
-
-private:
-    // own event loop used for "translating" asynchronous calls into
-    // synchronous calls
-    QEventLoop* mAsyncToSyncCallEventLoop;
-    // boolean for carying the user's input in between two async calls
-    bool mQueryAccepted;
-};
-
-} // end namespace security
-} // end namespace java
-
-#endif //CONFIRMQUERY_H 
--- a/javacommons/security/javaunicertstoreplugin/src.s60/javacertstoreimpl.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/javaunicertstoreplugin/src.s60/javacertstoreimpl.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -20,6 +20,8 @@
 
 #include <javausermessages.rsg>
 
+#include <avkon.rsg>
+#include <AknGlobalConfirmationQuery.h>
 #include <stringresourcereader.h>
 #include <StringLoader.h>
 #include <data_caging_path_literals.hrh>
@@ -41,12 +43,6 @@
 #include "s60commonutils.h"
 #include "securitycommsmessagedefs.h"
 
-#ifdef RD_JAVA_S60_RELEASE_10_1_ONWARDS
-#include "confirmquery.h"
-#else
-#include <avkon.rsg>
-#include <AknGlobalConfirmationQuery.h>
-#endif
 
 
 //_LIT(KMIDP2TrustRoot, "J2ME MIDP2 Trust Root");
@@ -64,11 +60,8 @@
  *
  */
 CJavaCertStoreImpl::CJavaCertStoreImpl(CJavaCertStoreToken& aToken)
-        : CActive(EPriorityNormal),mToken(aToken),mClientStatus(NULL),mState(EInitial),mTempCertData(0)
+        : CActive(EPriorityNormal),mToken(aToken),mClientStatus(NULL),mState(EInitial),mQuery(0),mTempCertData(0)
 {
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
-    mQuery.reset(0);
-#endif        
 }
 
 /**
@@ -82,6 +75,7 @@
         Cancel();
     }
 
+    mComms.unregisterListener(PLUGIN_ID_JAVA_CERT_STORE_ECOM_C,this);
     mComms.unregisterDefaultListener(this);
     mComms.disconnect();
     mCertsData.ResetAndDestroy();
@@ -182,7 +176,7 @@
     case EPreDeleting:
         SendDeleteMsg(status);
         return;
-
+        
     default:
         //Do nothing.
         break;
@@ -257,7 +251,7 @@
         User::RequestComplete(pRequestStatus,KErrArgument);
         return;
     }
-
+    
     mState = EPreDeleting;
     mTempCertData = certData;
     HandleDeleteDisableQuery(aStatus, false /* disableCertQuery */);
@@ -394,7 +388,7 @@
     TBool validRequest = validateCertAttrFilter(aFilter);
     if (!validRequest)
     {
-        LOG(EJavaSecurity, EInfo, "No certificates matching the filter supplied");
+        ELOG(EJavaSecurity,"No certificates matching the filter supplied");
         User::RequestComplete(pRequestStatus,KErrNone);
         return;
     }
@@ -496,13 +490,12 @@
         return;
     }
 
-    TInt err = KErrNone;
     if (!certData->mIsDisabled)
     {
-        err = aApplications.Append(KMidletInstallApplicabilityUid);
+        aApplications.Append(KMidletInstallApplicabilityUid);
     }
 
-    User::RequestComplete(pRequestStatus, err);
+    User::RequestComplete(pRequestStatus,KErrNone);
 }
 
 /**
@@ -843,7 +836,7 @@
         User::RequestComplete(aRequestStatus,KErrCommsBreak);
         return EFalse;
     }
-
+    
     return ETrue;
 }
 
@@ -884,9 +877,7 @@
         SetActive();
         return;
     }
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
     delete mQuery.release();
-#endif        
     mState = EInitial;
     TRequestStatus* pRequestStatus = &aRequestStatus;
     User::RequestComplete(pRequestStatus,KErrCancel);
@@ -903,24 +894,8 @@
     std::auto_ptr<CStringResourceReader> reader(CStringResourceReader::NewL(resourceFileName));
     std::auto_ptr<HBufC> queryPrompt(reader->ReadResourceString(resourceId).AllocL());
 
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
     mQuery.reset(CAknGlobalConfirmationQuery::NewL());
     mQuery->ShowConfirmationQueryL(iStatus,queryPrompt->Des(),R_AVKON_SOFTKEYS_OK_CANCEL);
-#else
-    int completeStatus = KErrCancel;
-    ConfirmQuery* query = new ConfirmQuery();
-    QString queryText = QString::fromStdWString(
-            std::wstring((wchar_t*) queryPrompt->Ptr(), 
-                    queryPrompt->Length())); 
-    if (query->accept(queryText))
-    {
-        completeStatus = KErrNone;
-    }
-    delete query; query = NULL;
-    TRequestStatus* status = &iStatus;
-    User::RequestComplete(status, completeStatus);
-#endif
-    
 }
 
 /**
@@ -930,15 +905,9 @@
 {
 
     mState = EInitial;
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
     delete mQuery.release();
-#endif        
     mState = EInitial;
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
     if (EAknSoftkeyOk != aStatus)
-#else
-    if (KErrNone != aStatus)
-#endif        
     {
         User::RequestComplete(mClientStatus,KErrCancel);
         return;
@@ -953,15 +922,9 @@
 {
 
     mState = EInitial;
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
     delete mQuery.release();
-#endif        
     mState = EInitial;
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
     if (EAknSoftkeyOk != aStatus)
-#else
-    if (KErrNone != aStatus)
-#endif        
     {
         User::RequestComplete(mClientStatus,KErrCancel);
         return;
@@ -1009,7 +972,7 @@
         //operation in the error situation.
         return;
     }
-    aCertDataObj.mDeleted = ETrue;
+    aCertDataObj.mDeleted = ETrue;    
 
     User::RequestComplete(aRequestStatus,KErrNone);
 }
--- a/javacommons/security/javaunicertstoreplugin/src.s60/javacertstoreimpl.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/javaunicertstoreplugin/src.s60/javacertstoreimpl.h	Wed Oct 13 14:23:59 2010 +0300
@@ -24,9 +24,7 @@
 #include "commsclientendpoint.h"
 #include "commsmessage.h"
 
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
 class CAknGlobalConfirmationQuery;
-#endif
 
 namespace java
 {
@@ -70,7 +68,8 @@
 };
 
 class CJavaCertStoreImpl: public CActive, public MCTWritableCertStore,
-        public java::comms::CommsListener
+        public java::comms::CommsListener,
+        public java::comms::CommsClientEndpoint
 {
 public:
 
@@ -144,9 +143,7 @@
     RPointerArray<CJavaCertData> mCertsData;
     TState mState;
     RThread mUiThread;
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
     std::auto_ptr<CAknGlobalConfirmationQuery> mQuery;
-#endif        
     //This class does not have ownership into this object.
     CJavaCertData* mTempCertData;
 
--- a/javacommons/security/legacysupport/midp2securitypolicyv2/plugins/securitypolicyV2/build/MIDP2SecurityPolicyV2Dll.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/legacysupport/midp2securitypolicyv2/plugins/securitypolicyV2/build/MIDP2SecurityPolicyV2Dll.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -21,11 +21,9 @@
 
 @SYMPurpose MIDP2SecurityPolicyV2.dll Java security policy interface implementation
 */
-#include <platform_paths.hrh>
+
 #include <../../../../../../../inc/project_defines.hrh>
 
-APP_LAYER_SYSTEMINCLUDE
-
 target			MIDP2SecurityPolicyV2.dll
 targettype		dll
 CAPABILITY		CAP_GENERAL_DLL
@@ -44,6 +42,10 @@
 deffile ./midp2secrp/eabi/MIDP2SecurityPolicyV2.def
 #endif
 
+systeminclude	/epoc32/include
+systeminclude	/epoc32/include/libc
+
+systeminclude ../../../../../../../inc
 
 userinclude		../export
 userinclude     ../../../../../../../inc
--- a/javacommons/security/legacysupport/midp2securitypolicyv2/plugins/securitypolicyV2/src/BlanketPermissionPolicy.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/legacysupport/midp2securitypolicyv2/plugins/securitypolicyV2/src/BlanketPermissionPolicy.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -61,9 +61,9 @@
 
 }
 
-void CBlanketPermissionPolicy::AddL(const CBlanketPermissionPolicyElement *aElement)
+void CBlanketPermissionPolicy::Add(const CBlanketPermissionPolicyElement *aElement)
 {
-    iPolicyElements.AppendL(aElement);
+    iPolicyElements.Append(aElement);
 }
 
 
--- a/javacommons/security/legacysupport/midp2securitypolicyv2/plugins/securitypolicyV2/src/BlanketPermissionPolicy.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/legacysupport/midp2securitypolicyv2/plugins/securitypolicyV2/src/BlanketPermissionPolicy.h	Wed Oct 13 14:23:59 2010 +0300
@@ -49,7 +49,7 @@
     static CBlanketPermissionPolicy* NewL();
 
 
-    void AddL(const CBlanketPermissionPolicyElement *);
+    void Add(const CBlanketPermissionPolicyElement *);
 
     // MBlanketPermissionPolicy
     virtual TInt GetPolicyElementCount() const ;
--- a/javacommons/security/legacysupport/midp2securitypolicyv2/plugins/securitypolicyV2/src/SimpleMapping.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/legacysupport/midp2securitypolicyv2/plugins/securitypolicyV2/src/SimpleMapping.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -61,7 +61,7 @@
 
     for (TInt i = 0; i < count; i++)
     {
-        iMapping.AppendL(aMapping[i]);
+        iMapping.Append(aMapping[i]);
     }
 }
 
--- a/javacommons/security/legacysupport/midp2securitypolicyv2/plugins/securitypolicyV2/src/XPFParser.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/legacysupport/midp2securitypolicyv2/plugins/securitypolicyV2/src/XPFParser.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -385,8 +385,8 @@
 
     //Add the sets and permission downgrade policy to the
     //CBlanketPermissionPolicy object for this domain
-    aBlanketPermissionPolicy->AddL(pe);
     CleanupStack::Pop(pe);
+    aBlanketPermissionPolicy->Add(pe);
     DEBUG("CXPFParser::ExclusionSetL() - Exit");
 }
 
--- a/javacommons/security/legacysupport/midp2userpreferences/build/midp2userpreferences.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/legacysupport/midp2userpreferences/build/midp2userpreferences.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -19,7 +19,11 @@
 CONFIG += omj stl
 CONFIG -= qt
 
-INCLUDEPATH += ../../storageutils/inc
+INCLUDEPATH += /epoc32/include/j2me/midp2/data \
+               ../../../../../inc/j2me/midp2/security \
+               ../../../../../inc/j2me/midp2/runtime \
+               ../../../../../inc/j2me/midp2/dbv2 \
+               ../../storageutils/inc
 
 SOURCES += ../../storageutils/src/*.cpp \
            ../src/*.cpp
--- a/javacommons/security/legacysupport/midp2userpreferences/src/MIDP2UserPreferences.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/legacysupport/midp2userpreferences/src/MIDP2UserPreferences.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -22,8 +22,8 @@
 #include "UserPreferencesIterator.h"
 #include "MIDletSuiteUserPreferences.h"
 #include "MIDletSuiteCustomAttributes.h"
-#include "MUserSecurityPreferencesTable.h"
-#include "j2me/midp2/security/MSecurityPolicyV2.h"
+#include <MUserSecurityPreferencesTable.h>
+#include <MSecurityPolicyV2.h>
 #include "SecurityPreferences.h"
 #include "javauid.h"
 
--- a/javacommons/security/legacysupport/tsrc/build/securitylegacysupportunittests.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/legacysupport/tsrc/build/securitylegacysupportunittests.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -22,6 +22,11 @@
 #include <../../../../../inc/java_stdcpp_support_for_exe.hrh>
 #include <platform_paths.hrh>
 
+SYSTEMINCLUDE /epoc32/include 
+SYSTEMINCLUDE ../../../../../inc/j2me/midp2/security
+SYSTEMINCLUDE ../../../../../inc/j2me/midp2/data
+SYSTEMINCLUDE ../../../../../inc/j2me/midp2/runtime
+
 USERINCLUDE ../../../../../tools/cpputest/include/cpputest
 USERINCLUDE ../../../../../tools/cpputest/include/platforms/symbian
 USERINCLUDE ../../../../../inc
--- a/javacommons/security/legacysupport/tsrc/src/testpermissiondb.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/legacysupport/tsrc/src/testpermissiondb.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -23,7 +23,7 @@
 #include "javastoragenames.h"
 #include "javauid.h"
 
-#include "j2me/midp2/security/midp2permissiondb.h"
+#include <midp2permissiondb.h>
 
 using namespace MIDP;
 using namespace java::storage;
--- a/javacommons/security/legacysupport/tsrc/src/testsecuritypolicy.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/legacysupport/tsrc/src/testsecuritypolicy.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -20,7 +20,7 @@
 
 #include "TestHarness.h"
 
-#include "j2me/midp2/security/msecuritypolicyv2.h"
+#include <msecuritypolicyv2.h>
 
 using namespace MIDP;
 
--- a/javacommons/security/legacysupport/tsrc/src/testuserpreferences.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/legacysupport/tsrc/src/testuserpreferences.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -25,11 +25,11 @@
 #include "javauid.h"
 #include "javasymbianoslayer.h"
 
-#include "j2me/midp2/data/muserpreferences.h"
-#include "j2me/midp2/data/mmidletsuiteuserpreferencesiterator.h"
-#include "j2me/midp2/data/mmidletsuiteuserpreferences.h"
-#include "j2me/midp2/data/mmidletsuitecustomattributes.h"
-#include "j2me/midp2/security/msecuritypolicyv2.h"
+#include <muserpreferences.h>
+#include <mmidletsuiteuserpreferencesiterator.h>
+#include <mmidletsuiteuserpreferences.h>
+#include <mmidletsuitecustomattributes.h>
+#include <msecuritypolicyv2.h>
 
 using namespace MIDP;
 using namespace java::storage;
--- a/javacommons/security/security.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/security.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -15,5 +15,5 @@
 #
 TEMPLATE = subdirs
 SUBDIRS += build/javasecurity.pro 
-SUBDIRS += javaunicertstoreplugin/build/javaunicertstoreplugin.pro 
+BLD_INF_RULES.prj_extensions += "$${LITERAL_HASH}include \"javaunicertstoreplugin/build/bld.inf\""  
 BLD_INF_RULES.prj_extensions += "prj_extensions" 
--- a/javacommons/security/src.s60/fileutils.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/src.s60/fileutils.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -65,7 +65,7 @@
         if (err == KErrNone)
         {
             // figure out the size of the file
-            TInt size = 0;
+            TInt size;
             if (drmContent)
             {
                 TRAP(err, cafData->DataSizeL(size));
--- a/javacommons/security/src.s60/telutils.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/src.s60/telutils.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -76,19 +76,6 @@
     return sec.Int();
 }
 
-/**
- * Return 0 if secure time has not been set
- */
-int TelUtils::isSecureTimeSet()
-{
-    TTime t;
-    if (KErrNoSecureTime == t.UniversalTimeSecure())
-    {
-        return 0;
-    }
-    return 1;
-}
-
 void TelUtils::ConstructL()
 {
     RMobilePhone::TMobilePhoneIdentityV1        phoneId;
--- a/javacommons/security/src.s60/telutils.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/src.s60/telutils.h	Wed Oct 13 14:23:59 2010 +0300
@@ -36,7 +36,6 @@
     void getNetworkCodes(std::string& mnc, std::string& mcc);
     void getImei(std::string& imei);
     static signed int getSecureTime();
-    static int isSecureTimeSet();
     virtual ~TelUtils();
 
 private: //Methods
--- a/javacommons/security/src/midpauthenticationmoduleimpl.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/src/midpauthenticationmoduleimpl.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -40,7 +40,6 @@
 #include <openssl/rsa.h>
 #include <openssl/sha.h>
 #include <string.h>
-#include <errno.h>
 
 using namespace java::security;
 using namespace java::storage;
@@ -54,7 +53,7 @@
 /* forward declarations of local/private methods */
 static int verify_callback(int, X509_STORE_CTX *);
 int getErrCode(int);
-int verifyCertChain(char **, int, const unsigned char *, int, vector<string> CAs, char *, char *, CERT_DETAILS*);
+int verifyCertChain(char **, int, const unsigned char *, int, vector<string> CAs, char *, char *, char *, CERT_DETAILS*);
 
 JNIEXPORT jobjectArray JNICALL Java_com_nokia_mj_impl_security_midp_authentication_AuthenticationModule__1validateChainsAndSignatures
 (JNIEnv * env, jobject, jobjectArray authInfos)
@@ -77,6 +76,7 @@
     AUTH_INFO* authInfo = NULL;
     char * jar_hash = NULL;
     char * root_hash = NULL;
+    char * root_id = NULL;
     int validation_result = KDefault;
     for (int i=0; i<len; i++)
     {
@@ -87,20 +87,24 @@
         jar_hash[0] = '\0';
         root_hash = new char[MD5_DIGEST_LEN + 1];
         root_hash[0] = '\0';
+        root_id = new char[2*SHA_1_DIGEST_LEN + 1];
+        root_id[0] = '\0';
         details = new CERT_DETAILS();
         int chain_verification_result = verifyCertChain(
                                             authInfo->cert_chain, authInfo->cert_chain_len,
                                             (const unsigned char *)authInfo->signature,
                                             authInfo->signature_len, CAs, jar_hash,
-                                            root_hash, details);
+                                            root_hash, root_id, details);
         if (chain_verification_result == KCertAndSignatureOk)
         {
             validation_result = KCertAndSignatureOk;
             auth_credentials = new AUTH_CREDENTIALS();
             auth_credentials->jar_hash = new char[2*SHA_1_DIGEST_LEN + 1];
             auth_credentials->root_hash = new char[MD5_DIGEST_LEN + 1];
+            auth_credentials->root_id = new char[2*SHA_1_DIGEST_LEN + 1];
             memmove(auth_credentials->jar_hash, jar_hash, 2*SHA_1_DIGEST_LEN + 1);
             memmove(auth_credentials->root_hash, root_hash, MD5_DIGEST_LEN + 1);
+            memmove(auth_credentials->root_id, root_id, 2*SHA_1_DIGEST_LEN + 1);
             auth_credentials->chain_index = i+1;
             auth_credentials->signing_cert = details;
             all_auth_credentials.push_back(auth_credentials);
@@ -115,6 +119,8 @@
             jar_hash = NULL;
             delete[] root_hash;
             root_hash = NULL;
+            delete[] root_id;
+            root_id = NULL;
             // just record the failure of the chain validation
             if (chain_verification_result > validation_result)
             {
@@ -179,9 +185,19 @@
         std::string protection_domain_name;
         std::string protection_domain_category;
         JavaCertStoreHandler::retrieveRootProtDomainInfo(
-            all_auth_credentials[i]->root_hash,
+            all_auth_credentials[i]->root_id,
             protection_domain_name,
             protection_domain_category);
+        if (strcmp(protection_domain_name.c_str(),"") == 0)
+        {
+            // clean up the root_id
+            delete[] all_auth_credentials[i]->root_id;
+            all_auth_credentials[i]->root_id = NULL;
+            JavaCertStoreHandler::retrieveRootProtDomainInfo(
+                all_auth_credentials[i]->root_hash,
+                protection_domain_name,
+                protection_domain_category);
+        }
         if (strcmp(protection_domain_name.c_str(),""))
         {
             // DeveloperCertificates: if domain_category is manufacturer and we have predefined_domain_category use the predefined one
@@ -253,13 +269,6 @@
         jar_hash_value = NULL;
         return hash;
     }
-    else
-    {
-        if (errno == ENOENT)
-        {
-            SecurityUtils::throw_exception(env, "JAR_NOT_FOUND");
-        }
-    }
     return NULL;
 }
 
@@ -401,7 +410,7 @@
 int verifyCertChain(char **cert_chain, int no_certs,
                     const unsigned char * sig, int sig_len,
                     vector<string> CAs, char * jar_hash,
-                    char * root_hash, CERT_DETAILS* details)
+                    char * root_hash, char * root_id, CERT_DETAILS* details)
 {
     X509 *end_entity_cert;
     X509_STORE_CTX *x509_ctx = NULL;
@@ -494,6 +503,7 @@
                     if (user_cert != NULL)
                     {
                         sprintf(root_hash,"%08lX",X509_issuer_name_hash(user_cert));
+                        SecurityUtils::computePublicKeyHash(user_cert, root_id);
                         X509_free(user_cert);
                         ret_code = KCertAndSignatureOk;
                     }
@@ -541,13 +551,12 @@
             if (root != NULL)
             {
                 sprintf(root_hash,"%08lX",X509_issuer_name_hash(root));
-                // no need to free the root explicitly since it will be 
-                // freed when freeing all the roots from roots_certs_st 
-                // stack
+                SecurityUtils::computePublicKeyHash(root, root_id);
             }
         }
         // add the '\0'
         root_hash[MD5_DIGEST_LEN] = '\0';
+        root_id[SHA_1_DIGEST_LEN] = '\0';
 
         // 1. get the public key of the signing cert
         // 2. decode the provided signature using the signing cert's public key
--- a/javacommons/security/src/utils/securityutils.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/src/utils/securityutils.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -423,8 +423,17 @@
             all_auth_credentials[i]->signing_cert = NULL;
             jstring j_jar_hash_value =
                 env->NewStringUTF(all_auth_credentials[i]->jar_hash);
-            jstring j_root_hash_value =
-                env->NewStringUTF(all_auth_credentials[i]->root_hash);
+            jstring j_root_hash_value;
+            if (all_auth_credentials[i]->root_id != NULL)
+            {
+                j_root_hash_value =
+                    env->NewStringUTF(all_auth_credentials[i]->root_id);
+            }
+            else
+            {
+                j_root_hash_value =
+                    env->NewStringUTF(all_auth_credentials[i]->root_hash);
+            }
             jstring j_protection_domain_name = NULL;
             if (all_auth_credentials[i]->domain_name != NULL)
             {
@@ -455,6 +464,11 @@
             all_auth_credentials[i]->jar_hash = NULL;
             delete[] all_auth_credentials[i]->root_hash;
             all_auth_credentials[i]->root_hash = NULL;
+            if (all_auth_credentials[i]->root_id != NULL)
+            {
+                delete[] all_auth_credentials[i]->root_id;
+                all_auth_credentials[i]->root_id = NULL;
+            }
             delete all_auth_credentials[i];
             all_auth_credentials[i] = NULL;
             env->SetObjectArrayElement(result, i, auth_credentials);
@@ -464,6 +478,22 @@
     return result;
 }
 
+void SecurityUtils::computePublicKeyHash(X509 * x, char * pkey_hash)
+{
+    unsigned char tmp[SHA_1_DIGEST_LEN];
+    EVP_Digest(x->cert_info->key->public_key->data,
+        x->cert_info->key->public_key->length, tmp, NULL, EVP_sha1(), NULL);
+    char * tmp_pkey_hash = NULL;
+    tmp_pkey_hash = pkey_hash;
+    for (int i=0; i<SHA_1_DIGEST_LEN; i++)
+    {
+        sprintf(tmp_pkey_hash, "%02X", tmp[i]);
+        tmp_pkey_hash = tmp_pkey_hash + 2;
+    }
+    pkey_hash[2*SHA_1_DIGEST_LEN] = '\0';
+    tmp_pkey_hash = NULL;
+}
+
 void SecurityUtils::getAuthInfo(JNIEnv* env, jobjectArray authInfos, int authInfoIndex, AUTH_INFO * authInfo)
 {
     jboolean isCopy;
--- a/javacommons/security/src/utils/securityutils.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/src/utils/securityutils.h	Wed Oct 13 14:23:59 2010 +0300
@@ -95,6 +95,7 @@
     char * domain_category;
     char * jar_hash;
     char * root_hash;
+    char * root_id;
     int chain_index;
     int predefined_domain_category;
     CERT_DETAILS* signing_cert;
@@ -120,6 +121,7 @@
     static void getAuthInfo(JNIEnv*, jobjectArray, int, AUTH_INFO *);
     static jobject getJNICertDetails(JNIEnv *, const CERT_DETAILS);
     static jobjectArray getJNIAuthCredentials(JNIEnv *, std::vector<AUTH_CREDENTIALS*>);
+    static void computePublicKeyHash(X509 *, char *);
 private:
     static bool checkIMEI(const X509_EXTENSION *, const char *);
     static char * computeDigest1(const char*);
--- a/javacommons/security/src/utils/storagehandler.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/src/utils/storagehandler.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -163,7 +163,7 @@
     {
         aCerts.push_back(JavaCommonUtils::wstringToInt(aValue));
     }
-    catch (ExceptionBase& eb)
+    catch (ExceptionBase eb)
     {
         WLOG1WSTR(EJavaStorage,
                   "Invalid cert index skipped: %s", aValue);
--- a/javacommons/security/subsystem.mk	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/subsystem.mk	Wed Oct 13 14:23:59 2010 +0300
@@ -17,14 +17,16 @@
 include $(JAVA_SRC_ROOT)/build/Makefile.defs
 
 COMPONENTS = \
-	build \
-	javaunicertstoreplugin/build
+	build
 
 ifdef RD_JAVA_S60_RELEASE_5_0_IAD
 SUBSYSTEMS = \
 	legacysupport
 endif
 
+NONQTSUBSYSTEMS = \
+	javaunicertstoreplugin/build
+
 SYMBIAN_ONLY = \
     javaunicertstoreplugin/build
 ifdef RD_JAVA_S60_RELEASE_5_0_IAD
--- a/javacommons/security/tsrc/data/ext1/ext1.odc	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/tsrc/data/ext1/ext1.odc	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 [properties]
 -Dcom.nokia.mj.addon.protected.ext1=com.nokia.mj.impl.,com.nokia.ext1.internal.,java.security.
 -Dcom.nokia.mj.addon.restricted.ext1=com.nokia.ext1.public.,com.nokia.mj.impl.
--Dcom.nokia.mj.addon.permissions.ext1=com.nokia.ext1.public.Ext1Perm,com.nokia.mj.impl.gcf.protocol.socket.SocketPermissionImpl;javax.microedition.io.Connector.socket,com.nokia.ext1.internal.Ext1Perm;com.nokia.ext1.public.Ext1Perm,com.nokia.ext1.internal.Ext1Perm;
+-Dcom.nokia.mj.addon.permissions.ext1=com.nokia.ext1.public.Ext1Perm,com.nokia.mj.impl.gcf.protocol.socket.SocketPermissionImpl;javax.microedition.io.Connector.socket,com.nokia.ext1.internal.Ext1Perm;com.nokia.ext1.public.Ext1Perm,com.nokia.ext1.internal.Ext1Perm,*;
 -Dcom.nokia.mj.addon.policies.ext1=c:\resource\java\security\extensions\ext1\policies\untrusted.ser;c:\resource\java\security\extensions\ext1\policies\trustedthirdparty.ser;
\ No newline at end of file
--- a/javacommons/security/tsrc/data/ext2/ext2.odc	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/tsrc/data/ext2/ext2.odc	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 [properties]
 -Dcom.nokia.mj.addon.protected.ext2=com.nokia.ext2.internal.,com.nokia.ext1.public
 -Dcom.nokia.mj.addon.restricted.ext2=com.nokia.ext2.public.,com.nokia.ext1.internal
--Dcom.nokia.mj.addon.permissions.ext2=com.nokia.ext2.public.Ext2Perm,com.nokia.ext1.internal.Ext1Perm;com.nokia.ext1.public.Ext1Perm,com.nokia.ext2.internal.Ext2Perm;com.nokia.ext2.public.Ext2Perm,com.nokia.ext2.internal.Ext2Perm
+-Dcom.nokia.mj.addon.permissions.ext2=com.nokia.ext2.public.Ext2Perm,com.nokia.ext1.internal.Ext1Perm;com.nokia.ext1.public.Ext1Perm,com.nokia.ext2.internal.Ext2Perm;com.nokia.ext2.public.Ext2Perm,com.nokia.ext2.internal.Ext2Perm,*
 -Dcom.nokia.mj.addon.policies.ext2=c:\resource\java\security\extensions\ext2\policies\trustedthirdparty.ser
--- a/javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/OMJSecurityTests.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/OMJSecurityTests.java	Wed Oct 13 14:23:59 2010 +0300
@@ -196,11 +196,9 @@
         allAttributes.clear();
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, null);
         signingCerts = authenticationModule.getCertificatesDetails(session, appUID);
         assertWithTrace(signingCerts != null
                         && signingCerts.length == 1
@@ -243,11 +241,9 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, null);
         signingCerts = authenticationModule.getCertificatesDetails(session, appUID);
         assertWithTrace(signingCerts != null
                         && signingCerts.length == 1
@@ -289,11 +285,9 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, null);
         allAttributes.clear();
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(AuthenticationAttribute.MAIN_ATTRIBUTE_PREFIX + "1-1", new Attribute("",        "MIICWDCCAcECBEhQwA0wDQYJKoZIhvcNAQEEBQAwczELMAkGA1UEBhMCZmkxEjAQBgNVBAgTCVBpcmthbm1hYTEQMA4GA1UEBxMHVGFtcGVyZTEOMAwGA1UEChMFTm9raWExDTALBgNVBAsTBEphdmExHzAdBgNVBAMMFkpQX0RldmljZV9NYW51ZmFjdHVyZXIwHhcNMDgwNjEyMDYxOTU3WhcNMTgwNjEwMDYxOTU3WjBzMQswCQYDVQQGEwJmaTESMBAGA1UECBMJUGlya2FubWFhMRAwDgYDVQQHEwdUYW1wZXJlMQ4wDAYDVQQKEwVOb2tpYTENMAsGA1UECxMESmF2YTEfMB0GA1UEAwwWSlBfRGV2aWNlX01hbnVmYWN0dXJlcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEApi3ipIPj8O33/rZre1euh7Itd9d6ZVf2mvQ/tLpHEsFJe5XLOsVViMvFskhhKUzmDsRbP4J03L6827/vEDIi/1i8kJGLaoFqJYaLGFWI2Zmxlj6aJV8cfZyOjmQPWJn1IDEe1ZAWbvMSp8xibWRsCLNEGKIkxQvAr/QDK/6iS+kCAwEAATANBgkqhkiG9w0BAQQFAAOBgQCDXt6klAs6yKvdTab3D2wkdoi3Lu4YFsMgLexJOu5HhAUJ/9VYO+Q2+mjd95MRsTa5rWQ2Jjvhn57Z3z/KBOwfHbymmNtMk6Gl14H0vQRoHa31jh3mTuAy5KotDVthaDp30aOizk473NU68wY1WdP4gFk5ZhrpNea9q3st13BxIQ=="));
@@ -307,11 +301,9 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID2,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID2, null);
-        permissionGranter.grantJarPermissions( appUID2, null, securityAttributes.getPermissionAttributes(), credentials);
+        authenticationModule.authenticateJar(session, appUID2,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID2, null, securityAttributes.getPermissionAttributes());
         permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID2, null);
         // 2 legacy unsigned MIDlets, install from JAD -> checkPermission succeeds
         storage.removeAuthenticationStorageData(appUID);
         permissionGranter.removeSecurityData(session,appUID);
@@ -325,11 +317,9 @@
         allAttributes.clear();
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, null);
         signingCerts = authenticationModule.getCertificatesDetails(session, appUID);
         assertWithTrace(signingCerts == null);
         ac.checkPermission(new java.util.PropertyPermission("microedition.version", "read"));
@@ -341,11 +331,9 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         securityAttributes = new SecurityAttributes();
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, null);
         signingCerts = authenticationModule.getCertificatesDetails(session, appUID);
         assertWithTrace(signingCerts == null);
         ac.checkPermission(new java.util.PropertyPermission("microedition.version", "read"));
@@ -368,8 +356,7 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
         storage.removeAuthenticationStorageData(appUID2);
         permissionGranter.removeSecurityData(session,appUID2);
         PermissionResolver.testClearCache();
@@ -401,11 +388,9 @@
         allAttributes.clear();
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP3));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, null);
         storage.removeAuthenticationStorageData(appUID2);
         permissionGranter.removeSecurityData(session,appUID2);
         PermissionResolver.testClearCache();
@@ -441,11 +426,9 @@
         allAttributes.clear();
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, null);
         storage.removeAuthenticationStorageData(appUID2);
         permissionGranter.removeSecurityData(session,appUID2);
         PermissionResolver.testClearCache();
@@ -471,11 +454,9 @@
         allAttributes.clear();
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, null);
         storage.removeAuthenticationStorageData(appUID2);
         permissionGranter.removeSecurityData(session,appUID2);
         PermissionResolver.testClearCache();
@@ -494,11 +475,9 @@
         allAttributes.clear();
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID2,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID2, appUID);
-        permissionGranter.grantJarPermissions( appUID2, null, securityAttributes.getPermissionAttributes(), credentials);
+        authenticationModule.authenticateJar(session, appUID2,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID2, null, securityAttributes.getPermissionAttributes());
         permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID2, null);
         // update from manufacturer to operator succeeds for legacy suites
         storage.removeAuthenticationStorageData(appUID);
         permissionGranter.removeSecurityData(session,appUID);
@@ -516,8 +495,7 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
         storage.removeAuthenticationStorageData(appUID2);
         permissionGranter.removeSecurityData(session,appUID2);
         PermissionResolver.testClearCache();
@@ -547,11 +525,9 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, null);
         appPackageEntry = new StorageEntry();
         appPackageEntry.addAttribute(new StorageAttribute(
                                          StorageAttribute.ID,
@@ -580,11 +556,9 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID2,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID2, appUID);
-        permissionGranter.grantJarPermissions( appUID2, appUID, securityAttributes.getPermissionAttributes(), credentials);
+        authenticationModule.authenticateJar(session, appUID2,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID2, appUID, securityAttributes.getPermissionAttributes());
         permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID2, appUID);
         // update from identified third party to identified third party but with different organization for signing certificate fails for MIDP3 MIDlets
         storage.removeAuthenticationStorageData(appUID);
         permissionGranter.removeSecurityData(session,appUID);
@@ -599,8 +573,7 @@
         allAttributes.clear();
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP3));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
         appPackageEntry = new StorageEntry();
         appPackageEntry.addAttribute(new StorageAttribute(
                                          StorageAttribute.ID,
@@ -650,11 +623,9 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, null);
         appPackageEntry = new StorageEntry();
         appPackageEntry.addAttribute(new StorageAttribute(
                                          StorageAttribute.ID,
@@ -683,11 +654,9 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID2,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID2, appUID);
-         permissionGranter.grantJarPermissions( appUID2, appUID, securityAttributes.getPermissionAttributes(), credentials);
+        authenticationModule.authenticateJar(session, appUID2,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID2, appUID, securityAttributes.getPermissionAttributes());
         permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID2, appUID);
         // update from identified third party to identified third party succeeds (V1 requests P1 (Net), P2 (Messaging), P3 (Messaging), V2 requests P2 (Messaging), P4 (UserData), P5 (Net)) -> check that P1 is removed, P2 is retained (with old settings), P3 is removed, P4 and P5 are added with brand new settings
         storage.removeAuthenticationStorageData(appUID);
         permissionGranter.removeSecurityData(session,appUID);
@@ -705,11 +674,10 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.wireless.messaging.sms.send,javax.wireless.messaging.mms.send"));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, null);
+        permissionGranter.getBlanketPermissions(appUID);
         appPackageEntry = new StorageEntry();
         appPackageEntry.addAttribute(new StorageAttribute(
                                          StorageAttribute.ID,
@@ -738,11 +706,9 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.wireless.messaging.sms.send,javax.microedition.io.Connector.file.read,javax.microedition.io.Connector.http"));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, appUID);
-        permissionGranter.grantJarPermissions( appUID, appUID, securityAttributes.getPermissionAttributes(), credentials);
+        authenticationModule.authenticateJar(session, appUID,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID, appUID, securityAttributes.getPermissionAttributes());
         permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, appUID);
         grantedPermissions = storage.readGrantedPermissions(appUID);
         MIDPPermission p1 = PermissionMappingTable.get("javax.wireless.messaging.sms.send");
         MIDPPermission p2 = PermissionMappingTable.get("javax.microedition.io.Connector.file.read");
@@ -758,7 +724,7 @@
                                                                                                                          UserSecuritySettings.NO_INTERACTION_MODE,
                                                                                                                          UserSecuritySettings.ONESHOT_INTERACTION_MODE,
                                                                                                                          UserSecuritySettings.SESSION_INTERACTION_MODE})),
-                                                    new PolicyBasedPermissionImpl(p2.getName(), p2.getTarget(), p2.getActionList(),
+                                                    new PolicyBasedPermissionImpl(p2.getName(), "*", p2.getActionList(),
                                                                                   new UserSecuritySettingsImpl("Read User Data Access",
                                                                                                                UserSecuritySettings.SESSION_INTERACTION_MODE,
                                                                                                                new int[]{UserSecuritySettings.BLANKET_INTERACTION_MODE,
@@ -814,11 +780,9 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.wireless.messaging.sms.send,javax.wireless.messaging.mms.send"));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, null);
         assertWithTrace(checkStringArrays(blanketPermissions,
                                           new String[] {UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.NET_ACCESS_SETTINGS),
                                                         UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.MESSAGING_SETTINGS)
@@ -850,11 +814,9 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.wireless.messaging.sms.send,javax.microedition.io.Connector.file.read,javax.microedition.io.Connector.http"));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, appUID);
-        permissionGranter.grantJarPermissions( appUID, appUID, securityAttributes.getPermissionAttributes(), credentials);
+        authenticationModule.authenticateJar(session, appUID,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID, appUID, securityAttributes.getPermissionAttributes());
         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, appUID);
         assertWithTrace(checkStringArrays(blanketPermissions,
                                           new String[] {UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.NET_ACCESS_SETTINGS),
                                                         UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.MESSAGING_SETTINGS),
@@ -877,11 +839,9 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.wireless.messaging.sms.send,javax.wireless.messaging.mms.send"));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, null);
         assertWithTrace(checkStringArrays(blanketPermissions,
                                           new String[] {UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.NET_ACCESS_SETTINGS),
                                                         UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.MESSAGING_SETTINGS)
@@ -912,11 +872,9 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.wireless.messaging.sms.send,javax.microedition.io.Connector.file.read,javax.microedition.io.Connector.http"));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, appUID);
-        permissionGranter.grantJarPermissions( appUID, appUID, securityAttributes.getPermissionAttributes(), credentials);
+        authenticationModule.authenticateJar(session, appUID,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID, appUID, securityAttributes.getPermissionAttributes());
         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, appUID);
         assertWithTrace(checkStringArrays(blanketPermissions,
                                           new String[] {UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.NET_ACCESS_SETTINGS),
                                                         UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.READ_USER_DATA_ACCESS_SETTINGS)
@@ -936,11 +894,9 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.wireless.messaging.sms.send,javax.microedition.io.Connector.file.read,javax.microedition.io.Connector.http"));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, appUID);
-        permissionGranter.grantJarPermissions( appUID, appUID, securityAttributes.getPermissionAttributes(), credentials);
+        authenticationModule.authenticateJar(session, appUID,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID, appUID, securityAttributes.getPermissionAttributes());
         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, appUID);
         assertWithTrace(blanketPermissions == null);
         // change some settings to e.g. Session and reinstall the same suite with same permissions -> check that only the settings which are not Blanket (due to being changed) are returned
         storage.writeUserSecuritySettings(appUID, "Messaging", UserSecuritySettings.SESSION_INTERACTION_MODE);
@@ -957,11 +913,9 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.wireless.messaging.sms.send,javax.microedition.io.Connector.file.read,javax.microedition.io.Connector.http"));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, appUID);
-        permissionGranter.grantJarPermissions( appUID, appUID, securityAttributes.getPermissionAttributes(), credentials);
+        authenticationModule.authenticateJar(session, appUID,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID, appUID, securityAttributes.getPermissionAttributes());
         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, appUID);
         assertWithTrace(checkStringArrays(blanketPermissions,
                                           new String[] {UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.MESSAGING_SETTINGS)}));
         // upgrade tests for legacy suites
@@ -994,10 +948,9 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.http,javax.wireless.messaging.sms.send"));
         securityAttributes.addManifestAttributes(allAttributes);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         permissionGranter.getBlanketPermissions(appUID);
         assertTrue(permissionGranter.getBlanketPermissionsDetails(appUID) == null);
-        permissionGranter.addSecurityData(session, appUID, null);
         // getBlanketPermissionsDetails for Multimedia Read User Data -> no details
         permissionGranter.removeSecurityData(session, appUID);
         storage.removeAuthenticationStorageData(appUID);
@@ -1018,9 +971,8 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.media.control.RecordControl,javax.microedition.io.Connector.file.read"));
         securityAttributes.addManifestAttributes(allAttributes);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, null);
         assertTrue(permissionGranter.getBlanketPermissionsDetails(appUID) == null);
         // getBlanketPermissionsDetails for Multimedia, Local Connectivity -> privacy details
         permissionGranter.removeSecurityData(session, appUID);
@@ -1042,11 +994,10 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.media.control.RecordControl,javax.microedition.io.Connector.bluetooth.client"));
         securityAttributes.addManifestAttributes(allAttributes);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, null);
         String blanketDetails = permissionGranter.getBlanketPermissionsDetails(appUID);
-        assertTrue("qtn_java_settings_inst_query_perm_sec".equals(blanketDetails)
+        assertTrue("qtn_java_settings_inst_query_perm_sec".equals(blanketDetails) 
             || "Allowing these permissions may result in compromised privacy".equals(
             blanketDetails));
         // getBlanketPermissionsDetails for Messaging, Multimedia -> net details
@@ -1069,11 +1020,10 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.media.control.RecordControl,javax.wireless.messaging.sms.send"));
         securityAttributes.addManifestAttributes(allAttributes);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, null);
         blanketDetails = permissionGranter.getBlanketPermissionsDetails(appUID);
-        assertTrue("qtn_java_settings_inst_query_perm_net".equals(blanketDetails)
+        assertTrue("qtn_java_settings_inst_query_perm_net".equals(blanketDetails) 
             || "Allowing these permissions may result in compromised privacy or increased network usage costs".equals(
             blanketDetails));
     }
@@ -1108,7 +1058,6 @@
 
     private void upgradeDomain(ProtectionDomain domain1, ProtectionDomain domain2, boolean expectToFail, boolean legacySuite)
     {
-        AuthenticationCredentials[] credentials;
         boolean success1 = false;
         boolean success2 = false;
         storage.removeAuthenticationStorageData(appUID);
@@ -1132,11 +1081,9 @@
                                          StorageNames.VALUE,
                                          (legacySuite ? "MIDP-2.0" : "MIDP-3.0")));
         session.write(StorageNames.APPLICATION_PACKAGE_ATTRIBUTES_TABLE, appPackageEntry);
-        credentials = authenticationModule.authenticateJar(appUID, null, domain1, TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar");
-        authenticationModule.addSecurityData(session, appUID, null);
-        permissionGranter.grantJarPermissions(appUID, null, domain1);
+        authenticationModule.authenticateJar(session, appUID, null, domain1, TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar");
+        permissionGranter.grantJarPermissions(session, appUID, null, domain1);
         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, null);
         signingCerts = authenticationModule.getCertificatesDetails(session, appUID);
         success1 = (blanketPermissions == null && signingCerts == null);
         ac.checkPermission(new java.util.PropertyPermission("microedition.version", "read"));
@@ -1146,8 +1093,7 @@
         assertWithTrace(domainCategory.equals(domain1.getCategory()));
         try
         {
-            credentials = authenticationModule.authenticateJar(appUID, appUID, domain2, TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar");
-            authenticationModule.addSecurityData(session, appUID, appUID);
+            authenticationModule.authenticateJar(session, appUID, appUID, domain2, TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar");
             assertWithTrace(!expectToFail);
         }
         catch (InstallerSecurityException e)
@@ -1158,9 +1104,8 @@
                             && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.DIFFERENT_SIGNERS, null)));
             return;
         }
-        permissionGranter.grantJarPermissions(appUID,appUID, domain2);
+        permissionGranter.grantJarPermissions(session, appUID,appUID, domain2);
         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, appUID);
         signingCerts = authenticationModule.getCertificatesDetails(session, appUID);
         success2 = (blanketPermissions == null && signingCerts == null);
         assertWithTrace(success1 == true && success2 == true);
--- a/javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/authentication/AuthenticationModuleTests.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/authentication/AuthenticationModuleTests.java	Wed Oct 13 14:23:59 2010 +0300
@@ -179,8 +179,7 @@
         authenticationModule.removeSecurityData(session, appUID);
         try
         {
-            authenticationModule.authenticateJar(appUID,null,"somethingWhichDoesNotExist", false);
-            authenticationModule.addSecurityData(session, appUID, null);
+            authenticationModule.authenticateJar(session, appUID,null,"somethingWhichDoesNotExist", false);
             assertTrue(false);
         }
         catch (InstallerSecurityException e)
@@ -194,15 +193,13 @@
         authenticationModule.removeSecurityData(session, appUID);
         // 3. unsigned, install from JAR
         authenticationModule.removeSecurityData(session, appUID);
-        authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp"  + System.getProperty("file.separator") + "app.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp"  + System.getProperty("file.separator") + "app.jar", false);
         assertTrue(authenticationModule.getProtectionDomainCategory(session, appUID).equals(ApplicationInfo.UNIDENTIFIED_THIRD_PARTY_DOMAIN)
                    && authenticationModule.getCertificatesDetails(session, appUID) == null);
         authenticationModule.removeSecurityData(session, appUID);
-        // 3.1. unsigned, install from JAR, no session provided to addSecurityData -> no authentication data stored to storage
+        // 3.1. unsigned, install from JAR, no session provided to authenticateJar -> no authentication data stored to storage
         authenticationModule.removeSecurityData(session, appUID);
-        authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp"  + System.getProperty("file.separator") + "app.jar", false);
-        authenticationModule.addSecurityData(null, appUID, null);
+        authenticationModule.authenticateJar(null, appUID,null,TEST_DATA_DIR + "security_tmp"  + System.getProperty("file.separator") + "app.jar", false);
         StorageEntry query = new StorageEntry();
         query.addAttribute(new StorageAttribute(
                                StorageAttribute.ID,
@@ -234,15 +231,13 @@
         credentials = authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
         assertTrue(credentials != null && credentials.length == 1 && credentials[0].getProtectionDomainName().equals("UnidentifiedThirdParty")
                    && authenticationModule.getCertificatesDetails(session, appUID) == null);
-        authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp"  +  System.getProperty("file.separator") + "app.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp"  +  System.getProperty("file.separator") + "app.jar", false);
         assertTrue(authenticationModule.getProtectionDomainCategory(session, appUID).equals(ApplicationInfo.UNIDENTIFIED_THIRD_PARTY_DOMAIN));
         authenticationModule.removeSecurityData(session, appUID);
         // 5. upgrade of authentication storage data
         authenticationModule.removeSecurityData(session, appUID);
         storage.writeAuthenticationStorageData(appUID, new AuthenticationStorageData("UnidentifiedThirdParty", ApplicationInfo.UNIDENTIFIED_THIRD_PARTY_DOMAIN, "jarHash", "rootHash", new Vector()));
-        authenticationModule.authenticateJar(appUID,appUID,TEST_DATA_DIR + "security_tmp" + System.getProperty("file.separator") + "app.jar", false);
-        authenticationModule.addSecurityData(session, appUID, appUID);
+        authenticationModule.authenticateJar(session, appUID,appUID,TEST_DATA_DIR + "security_tmp" + System.getProperty("file.separator") + "app.jar", false);
         assertTrue(authenticationModule.getProtectionDomainCategory(session, appUID).equals(ApplicationInfo.UNIDENTIFIED_THIRD_PARTY_DOMAIN)
                    && authenticationModule.getCertificatesDetails(session, appUID) == null);
         authenticationModule.removeSecurityData(session, appUID);
@@ -277,8 +272,7 @@
         securityAttributes.addDescriptorAttributes(allAttributes);
         authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
         details = (SigningCertificate[])authenticationModule.getCertificatesDetails(session, appUID);
-        authenticationModule.authenticateJar(appUID, null,TEST_DATA_DIR + "security_tmp" + System.getProperty("file.separator") + "app.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
+        authenticationModule.authenticateJar(session, appUID, null,TEST_DATA_DIR + "security_tmp" + System.getProperty("file.separator") + "app.jar", false);
         domainCategory = authenticationModule.getProtectionDomainCategory(session, appUID);
         // this empties the cache as well
         authenticationModule.removeSecurityData(session, appUID);
@@ -365,8 +359,7 @@
         authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
         try
         {
-            authenticationModule.authenticateJar(appUID, null,TEST_DATA_DIR + "security_tmp" + System.getProperty("file.separator") + "modified_app.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
+            authenticationModule.authenticateJar(session, appUID, null,TEST_DATA_DIR + "security_tmp" + System.getProperty("file.separator") + "modified_app.jar", false);
             assertTrue(INVALID_CERTIFICATE_SIGNATURE_MSG, false);
         }
         catch (InstallerSecurityException e)
@@ -559,8 +552,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
-        authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "app.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "app.jar", false);
         domainCategory = authenticationModule.getProtectionDomainCategory(session, appUID);
         assertTrue(domainCategory.equals(ApplicationInfo.IDENTIFIED_THIRD_PARTY_DOMAIN));
         // 17. Developer Certificates/Manufacturer - sign to operator party domain
@@ -574,8 +566,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
-        authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "app.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "app.jar", false);
         domainCategory = authenticationModule.getProtectionDomainCategory(session, appUID);
         assertTrue(domainCategory.equals(ApplicationInfo.OPERATOR_DOMAIN));
         // 18. Developer Certificates/Manufacturer - sign to manufacturer domain
@@ -589,8 +580,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
-        authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "app.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "app.jar", false);
         domainCategory = authenticationModule.getProtectionDomainCategory(session, appUID);
         assertTrue(domainCategory.equals(ApplicationInfo.MANUFACTURER_DOMAIN));
         // 19. Developer Certificates/Operator - sign to trusted third party domain
@@ -604,8 +594,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
-        authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "app.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "app.jar", false);
         domainCategory = authenticationModule.getProtectionDomainCategory(session, appUID);
         assertTrue(domainCategory.equals(ApplicationInfo.IDENTIFIED_THIRD_PARTY_DOMAIN));
         // 20. Developer Certificates/Operator - sign to operator party domain
@@ -619,8 +608,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
-        authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "app.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "app.jar", false);
         domainCategory = authenticationModule.getProtectionDomainCategory(session, appUID);
         assertTrue(domainCategory.equals(ApplicationInfo.OPERATOR_DOMAIN));
         // 21. Developer Certificates/Operator - sign to manufacturer domain -> still the operator domain is used
@@ -634,8 +622,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
-        authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "app.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "app.jar", false);
         domainCategory = authenticationModule.getProtectionDomainCategory(session, appUID);
         assertTrue(domainCategory.equals(ApplicationInfo.OPERATOR_DOMAIN));
         // 22. Developer Certificates/TrustedThirdParty - sign to manufacturer domain -> still the trusted third party domain is used
@@ -649,8 +636,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
-        authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "app.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "app.jar", false);
         domainCategory = authenticationModule.getProtectionDomainCategory(session, appUID);
         assertTrue(domainCategory.equals(ApplicationInfo.IDENTIFIED_THIRD_PARTY_DOMAIN));
         // 23. Developer Certificates/TrustedThirdParty - sign to operator domain -> still the trusted third party domain is used
@@ -664,8 +650,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
-        authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "app.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "app.jar", false);
         domainCategory = authenticationModule.getProtectionDomainCategory(session, appUID);
         assertTrue(domainCategory.equals(ApplicationInfo.IDENTIFIED_THIRD_PARTY_DOMAIN));
         // 24. Developer Certificates - no domain info -> fail
@@ -702,8 +687,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
-        authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "app.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "app.jar", false);
         domainCategory = authenticationModule.getProtectionDomainCategory(session, appUID);
         assertTrue(domainCategory.equals(ApplicationInfo.IDENTIFIED_THIRD_PARTY_DOMAIN));
         // 26. Developer Certificates - empty IMEI list -> failure
@@ -823,8 +807,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
-        authenticationModule.authenticateJar(appUID, null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "app.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
+        authenticationModule.authenticateJar(session, appUID, null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "app.jar", false);
         SigningInfo info = authenticationModule.getSigningInfo("appName","appVersion","appVendor");
         // app is unknown
         assertTrue(info == null);
@@ -868,8 +851,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
-        authenticationModule.authenticateJar(appUID, null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "app.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
+        authenticationModule.authenticateJar(session, appUID, null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "app.jar", false);
         info = authenticationModule.getSigningInfo("appName","appVersion","appVendor");
         assertTrue(info.getProtectionDomain() != null
                    && info.getProtectionDomain().getName() != null
@@ -976,8 +958,7 @@
         authenticationModule.removeSecurityData(session, appUID);
         try
         {
-            authenticationModule.authenticateJar(appUID, null, domain, TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "app.jar");
-        authenticationModule.addSecurityData(session, appUID, null);
+            authenticationModule.authenticateJar(session, appUID, null, domain, TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "app.jar");
             assertTrue(!expectToFail);
         }
         catch (InstallerSecurityException e)
@@ -1065,8 +1046,8 @@
         }
         catch (RuntimeSecurityException e)
         {
-            assertTrue(e.getShortMessage().equals(securityErrorMessage.get(SecurityErrorMessage.JAR_NOT_FOUND, null))
-                       && e.getDetailedMessage().equals(securityDetailedErrorMessage.get(SecurityDetailedErrorMessage.JAR_NOT_FOUND, null)));
+            assertTrue(e.getShortMessage().equals(securityErrorMessage.get(SecurityErrorMessage.JAR_TAMPERED, null))
+                       && e.getDetailedMessage().equals(securityDetailedErrorMessage.get(SecurityDetailedErrorMessage.JAR_TAMPERED, null)));
         }
         // root not enabled
         try
@@ -1219,8 +1200,7 @@
         allAttributes.clear();
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP3));
         securityAttributes.addManifestAttributes(allAttributes);
-        authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
         assertTrue(true);
         // PreInstallation: ocsp disabled, warning undefined, silent mode
         ocspSettings = new OcspSettings(OcspSettings.OCSP_MODE_DISABLED, OcspSettings.OCSP_WARNING_UNDEFINED, true, "0", "0");
@@ -1238,8 +1218,7 @@
         allAttributes.clear();
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP3));
         securityAttributes.addManifestAttributes(allAttributes);
-        authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
         assertTrue(true);
         // PreInstallation: ocsp enabled, warning ignore, silent mode, ocsp url not set
         ocspSettings = new OcspSettings(OcspSettings.OCSP_MODE_ENABLED, OcspSettings.OCSP_WARNING_IGNORE, true, "0", "0");
@@ -1257,8 +1236,7 @@
         allAttributes.clear();
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP3));
         securityAttributes.addManifestAttributes(allAttributes);
-        authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
         assertTrue(true);
     }
 
--- a/javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/authorization/AccessControllerTests.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/authorization/AccessControllerTests.java	Wed Oct 13 14:23:59 2010 +0300
@@ -47,7 +47,6 @@
 public class AccessControllerTests extends TestCase implements InstallerMain
 {
 
-    int assertTrace = 0;
     // Begin j2meunit test framework setup
     public void installerMain(String[] args)
     {
@@ -92,12 +91,6 @@
     {
     }
 
-    private void assertWithTrace(boolean aCondition)
-    {
-        assertTrue("" + assertTrace, aCondition);
-        assertTrace++;
-    }
-
     protected void testAccessControllerFactory()
     {
         Uid appUID1 = Uid.createUid("appUID1");
@@ -107,17 +100,17 @@
         String appName = "AccessControllerTests";
         // check null values
         ac1 = AccessControllerFactoryImpl.getAccessController(null, null);
-        assertWithTrace(ac1 == null);
+        assertTrue(ac1 == null);
         AccessControllerFactoryImpl.destroyAccessController(null);
         ac1 = AccessControllerFactoryImpl.getAccessController(null, "appName");
-        assertWithTrace(ac1 == null);
+        assertTrue(ac1 == null);
         AccessControllerFactoryImpl.destroyAccessController(null);
         // check duplicates
         AccessControllerFactoryImpl.destroyAccessController(appUID1);
         ac1 = AccessControllerFactoryImpl.getAccessController(appUID1, appName);
         ac2 = AccessControllerFactoryImpl.getAccessController(appUID1, appName);
         AccessControllerFactoryImpl.destroyAccessController(appUID1);
-        assertWithTrace(ac1 == ac2);
+        assertTrue(ac1 == ac2);
         // check destroy
         ac1 = AccessControllerFactoryImpl.getAccessController(appUID1, appName);
         AccessControllerFactoryImpl.destroyAccessController(appUID1);
@@ -125,7 +118,7 @@
         // call destroy two times (or calling it on a UID which does not have an instance)
         AccessControllerFactoryImpl.destroyAccessController(appUID1);
         AccessControllerFactoryImpl.destroyAccessController(appUID1);
-        assertWithTrace(ac1 != ac2);
+        assertTrue(ac1 != ac2);
     }
 
     protected void testAccessController()
@@ -142,32 +135,32 @@
         try
         {
             ac.checkPermission((Permission)null);
-            assertWithTrace(false);
+            assertTrue(false);
         }
         catch (AccessControlException e)
         {
-            assertWithTrace(true);
+            assertTrue(true);
         }
-        assertWithTrace(ac.checkPermission((String)null) == 0);
+        assertTrue(ac.checkPermission((String)null) == 0);
         // check permission which is not granted
         PermissionResolver.testClearCache();
         try
         {
             ac.checkPermission(new CommProtocolPermission("comm://"));
-            assertWithTrace(false);
+            assertTrue(false);
         }
         catch (AccessControlException e)
         {
-            assertWithTrace(true);
+            assertTrue(true);
         }
         try
         {
             ac.checkPermission(new CommProtocolPermission("comm://"));
-            assertWithTrace(false);
+            assertTrue(false);
         }
         catch (AccessControlException e)
         {
-            assertWithTrace(true);
+            assertTrue(true);
         }
         // check allowed permission which is granted
         PermissionResolver.testClearCache();
@@ -183,11 +176,11 @@
         try
         {
             ac.checkPermission(new FileProtocolPermission("file://myFile.txt", "read"));
-            assertWithTrace(false);
+            assertTrue(false);
         }
         catch (AccessControlException e)
         {
-            assertWithTrace(true);
+            assertTrue(true);
         }
         storage.removeGrantedPermissions(appUID);
         // check permission not allowed
@@ -209,11 +202,11 @@
         try
         {
             ac.checkPermission(new SocketProtocolPermission("socket://:100"));
-            assertWithTrace(false);
+            assertTrue(false);
         }
         catch (AccessControlException e)
         {
-            assertWithTrace(true);
+            assertTrue(true);
         }
         storage.removeGrantedPermissions(appUID);
         // check user permission with NO as interaction mode -> security exception thrown
@@ -235,35 +228,35 @@
         try
         {
             ac.checkPermission(new HttpProtocolPermissionImpl("http://"));
-            assertWithTrace(false);
+            assertTrue(false);
         }
         catch (AccessControlException e)
         {
-            assertWithTrace(true);
+            assertTrue(true);
         }
         try
         {
             ac.checkPermission(new HttpProtocolPermission("http://"));
-            assertWithTrace(false);
+            assertTrue(false);
         }
         catch (AccessControlException e)
         {
-            assertWithTrace(true);
+            assertTrue(true);
         }
         storage.removeGrantedPermissions(appUID);
         // check the named permissions: unknown permission
-        assertWithTrace(ac.checkPermission("unknownPermission") == 0);
+        assertTrue(ac.checkPermission("unknownPermission") == 0);
         // check the named permissions: allowed permission
         PermissionResolver.testClearCache();
         grantedPermissions = new Vector();
         grantedPermissions.addElement(new PolicyBasedPermissionImpl(
                                           "com.nokia.mj.impl.gcf.protocol.socket.SocketPermissionImpl",
-                                          "socket://*",
+                                          "socket://",
                                           null,
                                           null));
         storage.removeGrantedPermissions(appUID);
         storage.writeGrantedPermissions(appUID, null, grantedPermissions);
-        assertWithTrace(ac.checkPermission("javax.microedition.io.Connector.socket") == 1);
+        assertTrue(ac.checkPermission("javax.microedition.io.Connector.socket") == 1);
         // check the named permissions: user permission with NO interaction mode
         PermissionResolver.testClearCache();
         grantedPermissions = new Vector();
@@ -280,7 +273,7 @@
                                                                                  })));
         storage.removeGrantedPermissions(appUID);
         storage.writeGrantedPermissions(appUID, null, grantedPermissions);
-        assertWithTrace(ac.checkPermission("javax.microedition.io.Connector.http") == 0);
+        assertTrue(ac.checkPermission("javax.microedition.io.Connector.http") == 0);
         // check the named permissions: user permission with ONESHOT interaction mode
         PermissionResolver.testClearCache();
         grantedPermissions = new Vector();
@@ -297,7 +290,7 @@
                                                                                  })));
         storage.removeGrantedPermissions(appUID);
         storage.writeGrantedPermissions(appUID, null, grantedPermissions);
-        assertWithTrace(ac.checkPermission("javax.microedition.io.Connector.http") == -1);
+        assertTrue(ac.checkPermission("javax.microedition.io.Connector.http") == -1);
         // check the named permissions: user permission with BLANKET interaction mode (blanket prompt not shown yet)
         PermissionResolver.testClearCache();
         grantedPermissions = new Vector();
@@ -314,7 +307,7 @@
                                                                                  })));
         storage.removeGrantedPermissions(appUID);
         storage.writeGrantedPermissions(appUID, null, grantedPermissions);
-        assertWithTrace(ac.checkPermission("javax.microedition.io.Connector.http") == -1);
+        assertTrue(ac.checkPermission("javax.microedition.io.Connector.http") == -1);
         // check the named permissions: user permission with BLANKET interaction mode (blanket prompt shown already)
         PermissionResolver.testClearCache();
         grantedPermissions = new Vector();
@@ -332,7 +325,7 @@
         storage.removeGrantedPermissions(appUID);
         storage.writeGrantedPermissions(appUID, null, grantedPermissions);
         storage.writeUserSecuritySettingsPromptFlag(appUID, "Net Access", true);
-        assertWithTrace(ac.checkPermission("javax.microedition.io.Connector.http") == 1);
+        assertTrue(ac.checkPermission("javax.microedition.io.Connector.http") == 1);
         // check the named permissions: user permission with SESSION interaction mode (session prompt not shown already)
         PermissionResolver.testClearCache();
         grantedPermissions = new Vector();
@@ -350,7 +343,7 @@
         storage.removeGrantedPermissions(appUID);
         storage.writeGrantedPermissions(appUID, null, grantedPermissions);
         storage.writeUserSecuritySettingsPromptFlag(appUID, "Net Access", true);
-        assertWithTrace(ac.checkPermission("javax.microedition.io.Connector.http") == -1);
+        assertTrue(ac.checkPermission("javax.microedition.io.Connector.http") == -1);
         // check the named permissions: denied permission
         PermissionResolver.testClearCache();
         grantedPermissions = new Vector();
@@ -361,7 +354,7 @@
                                           null));
         storage.removeGrantedPermissions(appUID);
         storage.writeGrantedPermissions(appUID, null, grantedPermissions);
-        assertWithTrace(ac.checkPermission("javax.wireless.messaging.mms.send") == 0);
+        assertTrue(ac.checkPermission("javax.wireless.messaging.mms.send") == 0);
         // cleanup
         storage.removeGrantedPermissions(appUID);
         AccessControllerFactoryImpl.destroyAccessController(appUID);
--- a/javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/authorization/InteractiveAccessControllerTests.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/authorization/InteractiveAccessControllerTests.java	Wed Oct 13 14:23:59 2010 +0300
@@ -626,10 +626,8 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
-        permissionGranter.addSecurityData(session, appUID, null);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         permissionGranter.getBlanketPermissions(appUID);
         ac.checkPermission(new HttpProtocolPermissionImpl("http://", "\n(choose ALLOW)"));
         ac.checkPermission(new HttpProtocolPermissionImpl("http://", "\n(IF YOU SEE THIS PROMPT THE TEST FAILED)"));
@@ -661,10 +659,8 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, appUID);
-        permissionGranter.grantJarPermissions( appUID, appUID, securityAttributes.getPermissionAttributes(), credentials);
-        permissionGranter.addSecurityData(session, appUID, appUID);
+        authenticationModule.authenticateJar(session, appUID,appUID,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID, appUID, securityAttributes.getPermissionAttributes());
         blanketPromptShown = storage.readUserSecuritySettingsPromptFlag(appUID, "Net Access");
         ac.checkPermission(new HttpProtocolPermissionImpl("http://", "\n(IF YOU SEE THIS PROMPT THE TEST FAILED)"));
         storage.removeAuthenticationStorageData(appUID);
@@ -691,10 +687,8 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(com.nokia.mj.impl.security.midp.common.PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","javax.microedition.io.Connector.socket,javax.microedition.io.Connector.http"));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" + System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
-        permissionGranter.addSecurityData(session, appUID, null);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" + System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         signingCerts = authenticationModule.getCertificatesDetails(session, appUID);
         assertTrue(signingCerts != null
                    && signingCerts.length == 1
@@ -731,10 +725,8 @@
         allAttributes.clear();
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" + System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), credentials);
-        permissionGranter.addSecurityData(session, appUID, null);
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" + System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         signingCerts = authenticationModule.getCertificatesDetails(session, appUID);
         assertTrue(signingCerts == null);
         ac.checkPermission(new HttpProtocolPermissionImpl("http://url", "\n(choose ALLOW)"));
--- a/javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/authorization/PermissionGranterTests.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/authorization/PermissionGranterTests.java	Wed Oct 13 14:23:59 2010 +0300
@@ -57,7 +57,6 @@
 {
 
     private static String TEST_DATA_DIR;
-    int assertTrace = 0;
 
     static
     {
@@ -79,12 +78,6 @@
         }
     }
 
-    private void assertWithTrace(boolean aCondition)
-    {
-        assertTrue("" + assertTrace, aCondition);
-        assertTrace++;
-    }
-
     // general-purpose constants
     private static final String MIDP_PROFILE_ATTRIBUTE_NAME = "MicroEdition-Profile";
     private static final String MIDP3 = "MIDP-3.0";
@@ -233,12 +226,12 @@
         MIDPPermission[] jadPermissions;
         MIDPPermission[] jarPermissions;
         MIDPPermission[] allPermissions;
-        assertWithTrace(permissionGranter != null);
+        assertTrue(permissionGranter != null);
         // test the null values
         permissionGranter.removeSecurityData(session, appUID);
-        permissionGranter.grantJarPermissions(null, null, (PermissionAttribute[])null, null);
+        permissionGranter.grantJarPermissions(null, null, null, (PermissionAttribute[])null);
         grantedPermissions = storage.readGrantedPermissions(appUID);
-        assertWithTrace(grantedPermissions == null);
+        assertTrue(grantedPermissions == null);
         // populate the storage
         storage.removeAuthenticationStorageData(appUID);
         permissionGranter.removeSecurityData(session, appUID);
@@ -266,10 +259,9 @@
         allAttributes.put(PermissionAttribute.OPTIONAL_LEGACY_ATTRIBUTE_NAME, new Attribute("",MIDP2_DATAGRAM_PERMISSION + COMMA + "                  " + MIDP2_COMM_PERMISSION));
         allAttributes.put(PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("",MIDP2_SOCKET_PERMISSION + COMMA + MIDP2_HTTP_PERMISSION));
         securityAttributes.addManifestAttributes(allAttributes);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
-        permissionGranter.addSecurityData(session, appUID, null);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         grantedPermissions = storage.readGrantedPermissions(appUID);
-        assertWithTrace(checkGrantedPermissions(grantedPermissions, getPolicyPermissions("Manufacturer", new String[]
+        assertTrue(checkGrantedPermissions(grantedPermissions, getPolicyPermissions("Manufacturer", new String[]
                                            {
                                                INTERNAL_DATAGRAM_PERMISSION, INTERNAL_COMM_PERMISSION, INTERNAL_SOCKET_PERMISSION,INTERNAL_HTTP_PERMISSION,"javax.microedition.PropertyPermission","javax.microedition.midlet.AutoStartPermission"
                                            }),
@@ -295,10 +287,9 @@
         allAttributes.put(PermissionAttribute.OPTIONAL_LEGACY_ATTRIBUTE_NAME, new Attribute("",MIDP2_DATAGRAM_PERMISSION + COMMA + "                  " + MIDP2_COMM_PERMISSION));
         allAttributes.put(PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("",MIDP2_SOCKET_PERMISSION + COMMA + MIDP2_HTTP_PERMISSION));
         securityAttributes.addManifestAttributes(allAttributes);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
-        permissionGranter.addSecurityData(session, appUID, null);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         grantedPermissions = storage.readGrantedPermissions(appUID);
-        assertWithTrace(checkGrantedPermissions(grantedPermissions, getPolicyPermissions("IdentifiedThirdParty",
+        assertTrue(checkGrantedPermissions(grantedPermissions, getPolicyPermissions("IdentifiedThirdParty",
                                            new String[] {INTERNAL_DATAGRAM_PERMISSION, INTERNAL_COMM_PERMISSION, INTERNAL_SOCKET_PERMISSION,INTERNAL_HTTP_PERMISSION}),
                                            getAssignedPermissions("IdentifiedThirdParty")));
         // 1.2 One of the requested mandatory permission is not available in the domain -> fail
@@ -323,13 +314,12 @@
             allAttributes.put(PermissionAttribute.OPTIONAL_ATTRIBUTE_PREFIX + "1", new Attribute("",MIDP3_DATAGRAM_PERMISSION));
             allAttributes.put(PermissionAttribute.MANDATORY_ATTRIBUTE_PREFIX + "1", new Attribute("",MIDP3_RUNTIME_PERMISSION + " name"));
             securityAttributes.addManifestAttributes(allAttributes);
-            permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
-            permissionGranter.addSecurityData(session, appUID, null);
-            assertWithTrace(false);
+            permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
+            assertTrue(INVALID_PERMISSION_VALUE_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(INVALID_PERMISSION_VALUE_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.APPLICATION_AUTHORIZATION_FAILURE
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_UNSUPPORTED,
@@ -353,10 +343,9 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP3));
         allAttributes.put(PermissionAttribute.OPTIONAL_ATTRIBUTE_PREFIX + "1", new Attribute("",MIDP3_RUNTIME_PERMISSION + " name"));
         securityAttributes.addManifestAttributes(allAttributes);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
-        permissionGranter.addSecurityData(session, appUID, null);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         grantedPermissions = storage.readGrantedPermissions(appUID);
-        assertWithTrace(checkGrantedPermissions(grantedPermissions, getAssignedPermissions("IdentifiedThirdParty"), true));
+        assertTrue(checkGrantedPermissions(grantedPermissions, getAssignedPermissions("IdentifiedThirdParty"), true));
         // 2. Legacy, signed : permissions NOT requested in JAD & permissions requested in JAR -> grant the requested permissions filled in with right
         // targets/actions from the policy plus the assigned ones
         storage.removeAuthenticationStorageData(appUID);
@@ -376,10 +365,9 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("",MIDP2_SOCKET_PERMISSION + COMMA + MIDP2_HTTP_PERMISSION));
         securityAttributes.addManifestAttributes(allAttributes);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
-        permissionGranter.addSecurityData(session, appUID, null);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         grantedPermissions = storage.readGrantedPermissions(appUID);
-        assertWithTrace(checkGrantedPermissions(grantedPermissions, getPolicyPermissions("Operator", new String[]
+        assertTrue(checkGrantedPermissions(grantedPermissions, getPolicyPermissions("Operator", new String[]
                                            {
                                                INTERNAL_SOCKET_PERMISSION, INTERNAL_HTTP_PERMISSION,"javax.microedition.PropertyPermission","javax.microedition.midlet.AutoStartPermission"
                                            }),
@@ -401,10 +389,9 @@
         allAttributes.clear();
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP3));
         securityAttributes.addManifestAttributes(allAttributes);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
-        permissionGranter.addSecurityData(session, appUID, null);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         grantedPermissions = storage.readGrantedPermissions(appUID);
-        assertWithTrace(grantedPermissions != null && checkGrantedPermissions(grantedPermissions, getAssignedPermissions("IdentifiedThirdParty"), true));
+        assertTrue(grantedPermissions != null && checkGrantedPermissions(grantedPermissions, getAssignedPermissions("IdentifiedThirdParty"), true));
         // same for a domain which has one assigned permissions -> only the assigned + default permissions are granted
         storage.removeAuthenticationStorageData(appUID);
         permissionGranter.removeSecurityData(session, appUID);
@@ -422,10 +409,9 @@
         allAttributes.clear();
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP3));
         securityAttributes.addManifestAttributes(allAttributes);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
-        permissionGranter.addSecurityData(session, appUID, null);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         grantedPermissions = storage.readGrantedPermissions(appUID);
-        assertWithTrace(checkGrantedPermissions(grantedPermissions, getPolicyPermissions("Operator", new String[] {"javax.microedition.PropertyPermission","javax.microedition.midlet.AutoStartPermission"}),
+        assertTrue(checkGrantedPermissions(grantedPermissions, getPolicyPermissions("Operator", new String[] {"javax.microedition.PropertyPermission","javax.microedition.midlet.AutoStartPermission"}),
                                            getDefaultPermissions()));
         // 4. Legacy, unsigned : permissions requested in JAD & permissions requested in JAR -> ignore requested permissions and
         //    grant all the permissions available in the policy for untrusted MIDlets
@@ -448,10 +434,9 @@
         allAttributes.put(PermissionAttribute.OPTIONAL_LEGACY_ATTRIBUTE_NAME, new Attribute("","MyOwnOptionalPermission"));
         allAttributes.put(PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","MyOwnMandatoryPermission"));
         securityAttributes.addManifestAttributes(allAttributes);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
-        permissionGranter.addSecurityData(session, appUID, null);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         grantedPermissions = storage.readGrantedPermissions(appUID);
-        assertWithTrace(checkGrantedPermissions(grantedPermissions, getPolicyPermissions("UnidentifiedThirdParty")));
+        assertTrue(checkGrantedPermissions(grantedPermissions, getPolicyPermissions("UnidentifiedThirdParty")));
         // 5. Legacy, unsigned : permissions requested in JAD & permissions NOT requested in JAR -> ignore requested permissions and,
         //    grant all the permissions available in the policy for untrusted MIDlets
         storage.removeAuthenticationStorageData(appUID);
@@ -470,10 +455,9 @@
         allAttributes.clear();
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         securityAttributes.addManifestAttributes(allAttributes);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
-        permissionGranter.addSecurityData(session, appUID, null);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         grantedPermissions = storage.readGrantedPermissions(appUID);
-        assertWithTrace(checkGrantedPermissions(grantedPermissions, getPolicyPermissions("UnidentifiedThirdParty")));
+        assertTrue(checkGrantedPermissions(grantedPermissions, getPolicyPermissions("UnidentifiedThirdParty")));
         // 6. Legacy, unsigned : permissions NOT requested in JAD & permissions requested in JAR -> ignore requested permissions and
         //    grant all the permissions available in the policy for untrusted MIDlets
         storage.removeAuthenticationStorageData(appUID);
@@ -492,10 +476,9 @@
         allAttributes.put(PermissionAttribute.OPTIONAL_LEGACY_ATTRIBUTE_NAME, new Attribute("","MyOwnOptionalPermission"));
         allAttributes.put(PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","MyOwnMandatoryPermission"));
         securityAttributes.addManifestAttributes(allAttributes);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
-        permissionGranter.addSecurityData(session, appUID, null);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         grantedPermissions = storage.readGrantedPermissions(appUID);
-        assertWithTrace(checkGrantedPermissions(grantedPermissions, getPolicyPermissions("UnidentifiedThirdParty")));
+        assertTrue(checkGrantedPermissions(grantedPermissions, getPolicyPermissions("UnidentifiedThirdParty")));
         // 7. Legacy, unsigned : permissions NOT requested in JAD & permissions NOT requested in JAR -> grant all the permissions available in the policy for untrusted MIDlets
         storage.removeAuthenticationStorageData(appUID);
         permissionGranter.removeSecurityData(session, appUID);
@@ -511,10 +494,9 @@
         allAttributes.clear();
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         securityAttributes.addManifestAttributes(allAttributes);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
-        permissionGranter.addSecurityData(session, appUID, null);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         grantedPermissions = storage.readGrantedPermissions(appUID);
-        assertWithTrace(checkGrantedPermissions(grantedPermissions, getPolicyPermissions("UnidentifiedThirdParty")));
+        assertTrue(checkGrantedPermissions(grantedPermissions, getPolicyPermissions("UnidentifiedThirdParty")));
         // 8. MIDP3 unsigned, unknown mandatory permission in JAD file -> failure
         permissionGranter.removeSecurityData(session, appUID);
         try
@@ -527,11 +509,11 @@
             authCredentials = new AuthenticationCredentials[1];
             authCredentials[0] = new AuthenticationCredentials("UnidentifiedThirdParty", "UIDP");
             permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
-            assertWithTrace(false);
+            assertTrue(UNKNOWN_PERMISSION_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(UNKNOWN_PERMISSION_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.APPLICATION_AUTHORIZATION_FAILURE
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_UNSUPPORTED,
@@ -546,13 +528,12 @@
             allAttributes.put(PermissionAttribute.MANDATORY_ATTRIBUTE_PREFIX + "1",new Attribute("","MyMandatoryClass MyMandatoryTarget MyMandatoryAction1,MyMandatoryAction2,MyMandatoryAction3"));
             securityAttributes = new SecurityAttributes();
             securityAttributes.addManifestAttributes(allAttributes);
-            permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
-        permissionGranter.addSecurityData(session, appUID, null);
-            assertWithTrace(false);
+            permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
+            assertTrue(UNKNOWN_PERMISSION_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(UNKNOWN_PERMISSION_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.APPLICATION_AUTHORIZATION_FAILURE
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_UNSUPPORTED,
@@ -574,10 +555,9 @@
         allAttributes.clear();
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP3));
         securityAttributes.addManifestAttributes(allAttributes);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
-        permissionGranter.addSecurityData(session, appUID, null);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         grantedPermissions = storage.readGrantedPermissions(appUID);
-        assertWithTrace(grantedPermissions != null && checkGrantedPermissions(grantedPermissions, getAssignedPermissions("UnidentifiedThirdParty"), true));
+        assertTrue(grantedPermissions != null && checkGrantedPermissions(grantedPermissions, getAssignedPermissions("UnidentifiedThirdParty"), true));
         // 9.1. MIDP3 unsigned, P1, unknown optional P2 requested in JAD -> unknown permission is ignored, grant only P1 plus the assigned permissions
         storage.removeAuthenticationStorageData(appUID);
         permissionGranter.removeSecurityData(session, appUID);
@@ -595,10 +575,9 @@
         allAttributes.clear();
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP3));
         securityAttributes.addManifestAttributes(allAttributes);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
-        permissionGranter.addSecurityData(session, appUID, null);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         grantedPermissions = storage.readGrantedPermissions(appUID);
-        assertWithTrace(grantedPermissions != null && checkGrantedPermissions(grantedPermissions,
+        assertTrue(grantedPermissions != null && checkGrantedPermissions(grantedPermissions,
                    new MIDPPermission[] {new MIDPPermission(INTERNAL_SOCKET_PERMISSION,"socket://")},getAssignedPermissions("UnidentifiedThirdParty")));
         // 10. MIDP3 unsigned MIDlet, unknown mandatory permission in JAR file -> failure
         permissionGranter.removeSecurityData(session, appUID);
@@ -609,13 +588,12 @@
             allAttributes.put(PermissionAttribute.MANDATORY_ATTRIBUTE_PREFIX + "1",new Attribute("","MyMandatoryClass MyMandatoryTarget MyMandatoryAction1,MyMandatoryAction2,MyMandatoryAction3"));
             securityAttributes = new SecurityAttributes();
             securityAttributes.addManifestAttributes(allAttributes);
-            permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
-        permissionGranter.addSecurityData(session, appUID, null);
-            assertWithTrace(false);
+            permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
+            assertTrue(UNKNOWN_PERMISSION_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(UNKNOWN_PERMISSION_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.APPLICATION_AUTHORIZATION_FAILURE
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_UNSUPPORTED,
@@ -633,13 +611,12 @@
             allAttributes.put(AuthenticationAttribute.SECOND_ATTRIBUTE_PREFIX + "1", new Attribute("","signature"));
             securityAttributes = new SecurityAttributes();
             securityAttributes.addManifestAttributes(allAttributes);
-            permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
-        permissionGranter.addSecurityData(session, appUID, null);
-            assertWithTrace(false);
+            permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
+            assertTrue(UNKNOWN_PERMISSION_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(UNKNOWN_PERMISSION_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.APPLICATION_AUTHORIZATION_FAILURE
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_UNSUPPORTED,
@@ -658,13 +635,12 @@
             securityAttributes.addDescriptorAttributes(allAttributes);
             allAttributes.put(PermissionAttribute.MANDATORY_ATTRIBUTE_PREFIX + "1",new Attribute("","MyMandatoryClass MyMandatoryTarget MyMandatoryAction1,MyMandatoryAction2,MyMandatoryAction3"));
             securityAttributes.addManifestAttributes(allAttributes);
-            permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
-        permissionGranter.addSecurityData(session, appUID, null);
-            assertWithTrace(false);
+            permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
+            assertTrue(UNKNOWN_PERMISSION_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(UNKNOWN_PERMISSION_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.APPLICATION_AUTHORIZATION_FAILURE
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_UNSUPPORTED,
@@ -683,13 +659,12 @@
             securityAttributes.addDescriptorAttributes(allAttributes);
             allAttributes.put(PermissionAttribute.MANDATORY_ATTRIBUTE_PREFIX + "1",new Attribute("","MyMandatoryClass MyMandatoryTarget MyMandatoryAction1,MyMandatoryAction2,MyMandatoryAction3"));
             securityAttributes.addManifestAttributes(allAttributes);
-            permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
-        permissionGranter.addSecurityData(session, appUID, null);
-            assertWithTrace(false);
+            permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
+            assertTrue(UNKNOWN_PERMISSION_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(UNKNOWN_PERMISSION_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.APPLICATION_AUTHORIZATION_FAILURE
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_UNSUPPORTED,
@@ -716,10 +691,9 @@
         allAttributes.clear();
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP3));
         securityAttributes.addManifestAttributes(allAttributes);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
-        permissionGranter.addSecurityData(session, appUID, null);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         grantedPermissions = storage.readGrantedPermissions(appUID);
-        assertWithTrace(grantedPermissions != null && checkGrantedPermissions(grantedPermissions,
+        assertTrue(grantedPermissions != null && checkGrantedPermissions(grantedPermissions,
                    new MIDPPermission[]
                    {
                        new MIDPPermission(INTERNAL_SOCKET_PERMISSION,"socket://50"),
@@ -751,11 +725,11 @@
             authCredentials = new AuthenticationCredentials[1];
             authCredentials[0] = new AuthenticationCredentials("UnidentifiedThirdParty", "UIDP");
             permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
-            assertWithTrace(false);
+            assertTrue(INVALID_PERMISSION_VALUE_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(INVALID_PERMISSION_VALUE_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.APPLICATION_AUTHORIZATION_FAILURE
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_UNSUPPORTED,
@@ -791,10 +765,9 @@
         allAttributes.put(PermissionAttribute.MANDATORY_ATTRIBUTE_PREFIX + "5",new Attribute("",MIDP3_DATAGRAM_PERMISSION + " datagram://12345"));
         allAttributes.put(PermissionAttribute.MANDATORY_ATTRIBUTE_PREFIX + "6",new Attribute("",MIDP3_COMM_PERMISSION + " comm:123"));
         securityAttributes.addManifestAttributes(allAttributes);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
-        permissionGranter.addSecurityData(session, appUID, null);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         grantedPermissions = storage.readGrantedPermissions(appUID);
-        assertWithTrace(grantedPermissions != null && checkGrantedPermissions(grantedPermissions,
+        assertTrue(grantedPermissions != null && checkGrantedPermissions(grantedPermissions,
                    new MIDPPermission[]
                    {
                        new MIDPPermission(INTERNAL_SOCKET_PERMISSION,"socket://50"),
@@ -837,10 +810,9 @@
         allAttributes.put(PermissionAttribute.MANDATORY_ATTRIBUTE_PREFIX + "5",new Attribute("",MIDP3_DATAGRAM_PERMISSION + " datagram://12345"));
         allAttributes.put(PermissionAttribute.MANDATORY_ATTRIBUTE_PREFIX + "6",new Attribute("",MIDP3_COMM_PERMISSION + " comm:123"));
         securityAttributes.addManifestAttributes(allAttributes);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
-        permissionGranter.addSecurityData(session, appUID, null);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         grantedPermissions = storage.readGrantedPermissions(appUID);
-        assertWithTrace(grantedPermissions != null && checkGrantedPermissions(grantedPermissions,
+        assertTrue(grantedPermissions != null && checkGrantedPermissions(grantedPermissions,
                    new MIDPPermission[]
                    {
                        new MIDPPermission(INTERNAL_SOCKET_PERMISSION,"socket://50"),
@@ -855,12 +827,12 @@
         storage.removeAuthenticationStorageData(appUID);
         permissionGranter.removeSecurityData(session, appUID);
         blanketPermissions = permissionGranter.getBlanketPermissions(null);
-        assertWithTrace(blanketPermissions == null);
+        assertTrue(blanketPermissions == null);
         // 20. getBlanketPermissions - unknown appUID
         storage.removeAuthenticationStorageData(appUID);
         permissionGranter.removeSecurityData(session, appUID);
         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
-        assertWithTrace(blanketPermissions == null);
+        assertTrue(blanketPermissions == null);
         // 21. getBlanketPermissions - unsigned suite
         storage.removeAuthenticationStorageData(appUID);
         permissionGranter.removeSecurityData(session, appUID);
@@ -876,10 +848,9 @@
         allAttributes.clear();
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         securityAttributes.addManifestAttributes(allAttributes);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, null);
-        assertWithTrace(blanketPermissions == null);
+        assertTrue(blanketPermissions == null);
         // 22. getBlanketPermissions - one of the requested permissions does not allow Blanket
         permissionGranter.removeSecurityData(session, appUID);
         storage.removeAuthenticationStorageData(appUID);
@@ -901,10 +872,9 @@
         allAttributes.put(PermissionAttribute.OPTIONAL_LEGACY_ATTRIBUTE_NAME, new Attribute("",MIDP2_DATAGRAM_PERMISSION + COMMA + "                  " + MIDP2_SMS_SEND_PERMISSION));
         allAttributes.put(PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("",MIDP2_SOCKET_PERMISSION + COMMA + MIDP2_HTTP_PERMISSION));
         securityAttributes.addManifestAttributes(allAttributes);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, null);
-        assertWithTrace(blanketPermissions == null);
+        assertTrue(blanketPermissions == null);
         // 23. getBlanketPermissions - request one permissions which is already in Blanket
         permissionGranter.removeSecurityData(session, appUID);
         storage.removeAuthenticationStorageData(appUID);
@@ -925,10 +895,9 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(PermissionAttribute.OPTIONAL_LEGACY_ATTRIBUTE_NAME, new Attribute("",MIDP2_HTTP_PERMISSION));
         securityAttributes.addManifestAttributes(allAttributes);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, null);
-        assertWithTrace(blanketPermissions == null);
+        assertTrue(blanketPermissions == null);
         // 24. getBlanketPermissions - request Auto Invocation and Net Access -> mutually exclusive permissions
         permissionGranter.removeSecurityData(session, appUID);
         storage.removeAuthenticationStorageData(appUID);
@@ -949,10 +918,9 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(PermissionAttribute.OPTIONAL_LEGACY_ATTRIBUTE_NAME, new Attribute("",MIDP2_PUSH_REGISTRY_PERMISSION + COMMA + MIDP2_HTTP_PERMISSION));
         securityAttributes.addManifestAttributes(allAttributes);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, null);
-        assertWithTrace(blanketPermissions == null);
+        assertTrue(blanketPermissions == null);
         // 25. getBlanketPermissions - manufacturer signed MIDlet
         permissionGranter.removeSecurityData(session, appUID);
         storage.removeAuthenticationStorageData(appUID);
@@ -973,10 +941,9 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("",MIDP2_HTTP_PERMISSION + COMMA + MIDP2_SMS_SEND_PERMISSION + COMMA + MIDP2_MMS_OPEN_PERMISSION + COMMA + MIDP2_COMM_PERMISSION));
         securityAttributes.addManifestAttributes(allAttributes);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, null);
-        assertWithTrace(blanketPermissions == null);
+        assertTrue(blanketPermissions == null);
         // 26. getBlanketPermissions - request Messaging, Net Access and Local connectivity. Since Messaging and Net Access have the current interaction mode set to Blanket, only Local connectivity is returned
         permissionGranter.removeSecurityData(session, appUID);
         storage.removeAuthenticationStorageData(appUID);
@@ -997,10 +964,9 @@
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         allAttributes.put(PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("",MIDP2_HTTP_PERMISSION + COMMA + MIDP2_SMS_SEND_PERMISSION + COMMA + MIDP2_MMS_OPEN_PERMISSION + COMMA + MIDP2_COMM_PERMISSION));
         securityAttributes.addManifestAttributes(allAttributes);
-        permissionGranter.grantJarPermissions( appUID, null, securityAttributes.getPermissionAttributes(), authCredentials);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
         blanketPermissions = permissionGranter.getBlanketPermissions(appUID);
-        permissionGranter.addSecurityData(session, appUID, null);
-        assertWithTrace(blanketPermissions != null && blanketPermissions.length == 1 && blanketPermissions[0].equals(UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.LOCAL_CONNECTIVITY_SETTINGS)));
+        assertTrue(blanketPermissions != null && blanketPermissions.length == 1 && blanketPermissions[0].equals(UserSecuritySettingsImpl.getLocalizedName(UserSecuritySettings.LOCAL_CONNECTIVITY_SETTINGS)));
         permissionGranter.setPermissionsToBlanket(session, appUID);
         grantedPermissions = storage.readGrantedPermissions(appUID);
         for (int i=0; i<grantedPermissions.size(); i++)
@@ -1011,22 +977,20 @@
                 permission.getUserSecuritySettings();
             if (settings != null && settings.getName() == UserSecuritySettings.LOCAL_CONNECTIVITY_SETTINGS)
             {
-                assertWithTrace(settings.getCurrentInteractionMode() == UserSecuritySettings.BLANKET_INTERACTION_MODE);
+                assertTrue(settings.getCurrentInteractionMode() == UserSecuritySettings.BLANKET_INTERACTION_MODE);
             }
         }
         // grantAllPermissions - null values
         permissionGranter.removeSecurityData(session, appUID);
         storage.removeAuthenticationStorageData(appUID);
-        permissionGranter.grantJarPermissions(null, null, (ProtectionDomain)null);
-        permissionGranter.addSecurityData(session, null, null);
+        permissionGranter.grantJarPermissions(session, null, null, (ProtectionDomain)null);
         permissionGranter.removeSecurityData(session, appUID);
         storage.removeAuthenticationStorageData(appUID);
-        permissionGranter.grantJarPermissions(appUID, null, (ProtectionDomain)null);
-        permissionGranter.addSecurityData(session, appUID, null);
+        permissionGranter.grantJarPermissions(session, appUID, null, (ProtectionDomain)null);
         grantedPermissions = storage.readGrantedPermissions(appUID);
         permissionGranter.removeSecurityData(session, appUID);
         storage.removeAuthenticationStorageData(appUID);
-        assertWithTrace(grantedPermissions == null);
+        assertTrue(grantedPermissions == null);
         // grantAllPermissions - operator domain
         grantAllPermissions(ProtectionDomain.getOperatorDomain());
         // grantAllPermissions - manufacturer domain
@@ -1044,12 +1008,11 @@
     {
         permissionGranter.removeSecurityData(session, appUID);
         storage.removeAuthenticationStorageData(appUID);
-        permissionGranter.grantJarPermissions(appUID, null, domain);
-        permissionGranter.addSecurityData(session, appUID, null);
+        permissionGranter.grantJarPermissions(session, appUID, null, domain);
         grantedPermissions = storage.readGrantedPermissions(appUID);
         permissionGranter.removeSecurityData(session, appUID);
         storage.removeAuthenticationStorageData(appUID);
-        assertWithTrace(checkGrantedPermissions(grantedPermissions, getPolicyPermissions(domain.getName())));
+        assertTrue(checkGrantedPermissions(grantedPermissions, getPolicyPermissions(domain.getName())));
     }
 
     private static MIDPPermission[] getPolicyPermissions(String policyName, String[] permissionNameFilter, String permissionTypeFilter)
@@ -1078,7 +1041,7 @@
                     && findString(policyPerms[i].getName(), permissionNameFilter) != -1)
                     || permissionNameFilter == null) && (permissionTypeFilter == null
                                                          || (permissionTypeFilter.equals("assigned")
-                                                             && (policyPerms[i].getType() == PolicyBasedPermission.ASSIGNED_TYPE
+                                                             && (policyPerms[i].getType() == PolicyBasedPermission.ASSIGNED_TYPE 
                                                              || policyPerms[i].getType() == PolicyBasedPermission.USER_ASSIGNED_TYPE))))
             {
                 vPermissions.addElement(new MIDPPermission(policyPerms[i].getName(), policyPerms[i].getTarget(), policyPerms[i].getActionList()));
--- a/javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/authorization/TestPermissionMappingTable.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/authorization/TestPermissionMappingTable.java	Wed Oct 13 14:23:59 2010 +0300
@@ -62,7 +62,7 @@
                 "com.nokia.mj.impl.security.midp.authorization.DatagramProtocolPermissionImpl", "datagram://"));
         TEST_PERMISSION_MAPPING_TABLE.put(
             "javax.microedition.io.Connector.comm", new MIDPPermission(
-                "com.nokia.mj.impl.security.midp.authorization.CommProtocolPermissionImpl", "comm:*"));
+                "com.nokia.mj.impl.security.midp.authorization.CommProtocolPermissionImpl", "comm://*"));
         TEST_PERMISSION_MAPPING_TABLE.put(
             "javax.microedition.io.PushRegistry", new MIDPPermission(
                 "javax.microedition.io.PushRegistryPermission", "*"));
--- a/javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/common/SecurityDescriptorAttributesTests.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/common/SecurityDescriptorAttributesTests.java	Wed Oct 13 14:23:59 2010 +0300
@@ -39,7 +39,6 @@
  */
 public class SecurityDescriptorAttributesTests extends TestCase implements InstallerMain
 {
-    int assertTrace = 0;
 
     /**
      * Hashtable holding all the attributes. Tests populate this hashtable
@@ -79,7 +78,7 @@
         midp2PermissionTargets.put(INTERNAL_HTTPS_PERMISSION, "https://*");
         midp2PermissionTargets.put(INTERNAL_SSL_PERMISSION, "ssl://*");
         midp2PermissionTargets.put(INTERNAL_DATAGRAM_PERMISSION,"datagram://*");
-        midp2PermissionTargets.put(INTERNAL_COMM_PERMISSION, "comm:*");
+        midp2PermissionTargets.put(INTERNAL_COMM_PERMISSION, "comm://*");
         midp2PermissionTargets.put(INTERNAL_PUSH_REGISTRY_PERMISSION, "*");
     }
 
@@ -165,7 +164,7 @@
         // no attributes
         allAttributes.clear();
         authAttributes = securityAttributes.getAuthenticationAttributes();
-        assertWithTrace((authAttributes == null) || (authAttributes.length == 0));
+        assertTrue((authAttributes == null) || (authAttributes.length == 0));
         // empty certificate attribute
         try
         {
@@ -173,11 +172,11 @@
             allAttributes.put(AuthenticationAttribute.MAIN_ATTRIBUTE_PREFIX + "1-1", new Attribute("", ""));
             securityAttributes = new SecurityAttributes();
             securityAttributes.addDescriptorAttributes(allAttributes);
-            assertWithTrace(false);
+            assertTrue(EMPTY_CERTIFICATE_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(EMPTY_CERTIFICATE_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.APPLICATION_AUTHENTICATION_FAILURE
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_HANDLING_FAILED,
@@ -190,11 +189,11 @@
             allAttributes.put(AuthenticationAttribute.MAIN_ATTRIBUTE_PREFIX + "1-1", new Attribute("","?%cert"));
             securityAttributes = new SecurityAttributes();
             securityAttributes.addDescriptorAttributes(allAttributes);
-            assertWithTrace(false);
+            assertTrue(INVALID_CERTIFICATE_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(INVALID_CERTIFICATE_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.APPLICATION_AUTHENTICATION_FAILURE
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_HANDLING_FAILED,
@@ -205,7 +204,7 @@
         allAttributes.put(AuthenticationAttribute.MAIN_ATTRIBUTE_PREFIX + "1-1", new Attribute("","cert"));
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
-        assertWithTrace(securityAttributes.getAuthenticationAttributes() == null);
+        assertTrue(securityAttributes.getAuthenticationAttributes() == null);
         // missing certificate attribute
         try
         {
@@ -213,11 +212,11 @@
             allAttributes.put(AuthenticationAttribute.SECOND_LEGACY_ATTRIBUTE_NAME, new Attribute("","signature"));
             securityAttributes = new SecurityAttributes();
             securityAttributes.addDescriptorAttributes(allAttributes);
-            assertWithTrace(false);
+            assertTrue(MISSING_CERTIFICATE_ATTRIBUTE_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(MISSING_CERTIFICATE_ATTRIBUTE_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.APPLICATION_AUTHENTICATION_FAILURE
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_MISSING,
@@ -231,11 +230,11 @@
             allAttributes.put(AuthenticationAttribute.SECOND_LEGACY_ATTRIBUTE_NAME, new Attribute("","?signature"));
             securityAttributes = new SecurityAttributes();
             securityAttributes.addDescriptorAttributes(allAttributes);
-            assertWithTrace(false);
+            assertTrue(INVALID_CERTIFICATE_SIGNATURE_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(INVALID_CERTIFICATE_SIGNATURE_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.APPLICATION_AUTHENTICATION_FAILURE
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_HANDLING_FAILED,
@@ -250,11 +249,11 @@
             allAttributes.put(AuthenticationAttribute.SECOND_ATTRIBUTE_PREFIX + "1", new Attribute("","?signature"));
             securityAttributes = new SecurityAttributes();
             securityAttributes.addDescriptorAttributes(allAttributes);
-            assertWithTrace(false);
+            assertTrue(INVALID_CERTIFICATE_SIGNATURE_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(INVALID_CERTIFICATE_SIGNATURE_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.APPLICATION_AUTHENTICATION_FAILURE
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_HANDLING_FAILED,
@@ -269,11 +268,11 @@
             allAttributes.put(AuthenticationAttribute.SECOND_ATTRIBUTE_PREFIX + "2", new Attribute("","signature"));
             securityAttributes = new SecurityAttributes();
             securityAttributes.addDescriptorAttributes(allAttributes);
-            assertWithTrace(false);
+            assertTrue(MISSING_CERTIFICATE_ATTRIBUTE_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(MISSING_CERTIFICATE_ATTRIBUTE_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.APPLICATION_AUTHENTICATION_FAILURE
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_MISSING,
@@ -287,11 +286,11 @@
             allAttributes.put(AuthenticationAttribute.SECOND_ATTRIBUTE_PREFIX + "1", new Attribute("","signature"));
             securityAttributes = new SecurityAttributes();
             securityAttributes.addDescriptorAttributes(allAttributes);
-            assertWithTrace(false);
+            assertTrue(MIDP3_ATTRIBUTE_NOT_ALLOWED_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(MIDP3_ATTRIBUTE_NOT_ALLOWED_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.INVALID_DESCRIPTOR
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_HANDLING_FAILED,
@@ -306,11 +305,11 @@
             allAttributes.put(AuthenticationAttribute.SECOND_LEGACY_ATTRIBUTE_NAME, new Attribute("","signature"));
             securityAttributes = new SecurityAttributes();
             securityAttributes.addDescriptorAttributes(allAttributes);
-            assertWithTrace(false);
+            assertTrue(MIDP2_SIGNATURE_NOT_ALLOWED_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(MIDP2_SIGNATURE_NOT_ALLOWED_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.INVALID_DESCRIPTOR
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_HANDLING_FAILED,
@@ -327,11 +326,11 @@
             allAttributes.put(AuthenticationAttribute.SECOND_LEGACY_ATTRIBUTE_NAME, new Attribute("","signature"));
             securityAttributes = new SecurityAttributes();
             securityAttributes.addDescriptorAttributes(allAttributes);
-            assertWithTrace(false);
+            assertTrue(MIDP2_SIGNATURE_NOT_ALLOWED_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(MIDP2_SIGNATURE_NOT_ALLOWED_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.INVALID_DESCRIPTOR
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_HANDLING_FAILED,
@@ -345,7 +344,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         authAttributes = securityAttributes.getAuthenticationAttributes();
-        assertWithTrace(authAttributes != null
+        assertTrue(authAttributes != null
                    && authAttributes.length == 1
                    && checkChainsAndSignatures(authAttributes,
                                                new String[] {"cert1", "cert2"},
@@ -361,7 +360,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         authAttributes = securityAttributes.getAuthenticationAttributes();
-        assertWithTrace(authAttributes != null
+        assertTrue(authAttributes != null
                    && authAttributes.length == 1
                    && checkChainsAndSignatures(authAttributes,
                                                new String[] {"cert1", "cert2"},
@@ -378,7 +377,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         authAttributes = securityAttributes.getAuthenticationAttributes();
-        assertWithTrace(authAttributes != null
+        assertTrue(authAttributes != null
                    && authAttributes.length == 1
                    && checkChainsAndSignatures(authAttributes,
                                                new String[] {"cert1", "cert2"},
@@ -392,7 +391,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         authAttributes = securityAttributes.getAuthenticationAttributes();
-        assertWithTrace(authAttributes != null
+        assertTrue(authAttributes != null
                    && authAttributes.length == 1
                    && checkChainsAndSignatures(authAttributes,
                                                new String[] {"cert1", "cert2"},
@@ -411,7 +410,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         authAttributes = securityAttributes.getAuthenticationAttributes();
-        assertWithTrace(authAttributes != null
+        assertTrue(authAttributes != null
                    && authAttributes.length == 1
                    && checkChainsAndSignatures(authAttributes,
                                                new String[] {"cert11", "cert12"},
@@ -431,11 +430,11 @@
             allAttributes.put(AuthenticationAttribute.SECOND_ATTRIBUTE_PREFIX + "2" , new Attribute("","signature2"));
             securityAttributes = new SecurityAttributes();
             securityAttributes.addDescriptorAttributes(allAttributes);
-            assertWithTrace(false);
+            assertTrue(CERTIFICATE_WITHOUT_SIGNATURE_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(INVALID_CERTIFICATE_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.APPLICATION_AUTHENTICATION_FAILURE
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_HANDLING_FAILED,
@@ -453,11 +452,11 @@
             allAttributes.put(AuthenticationAttribute.SECOND_ATTRIBUTE_PREFIX + "1" , new Attribute("","signature1"));
             securityAttributes = new SecurityAttributes();
             securityAttributes.addDescriptorAttributes(allAttributes);
-            assertWithTrace(false);
+            assertTrue(INVALID_CERTIFICATE_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(INVALID_CERTIFICATE_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.APPLICATION_AUTHENTICATION_FAILURE
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_HANDLING_FAILED,
@@ -480,7 +479,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         authAttributes = securityAttributes.getAuthenticationAttributes();
-        assertWithTrace(authAttributes != null
+        assertTrue(authAttributes != null
                    && authAttributes.length == 2
                    && checkChainsAndSignatures(authAttributes,
                                                new String[] {"cert11", "cert12", "cert21", "cert22", "cert23"},
@@ -499,18 +498,18 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         authAttributes = securityAttributes.getAuthenticationAttributes();
-        assertWithTrace(authAttributes != null && authAttributes.length == 100);
+        assertTrue(authAttributes != null && authAttributes.length == 100);
         for (int i=0; i<100; i++)
         {
             // make sure we have 10 certs in each chain and a corresponding signature
-            assertWithTrace(authAttributes[i].getCertChain() != null
+            assertTrue(authAttributes[i].getCertChain() != null
                        && authAttributes[i].getSignature() != null
                        && authAttributes[i].getCertChain().length == 10
                        && authAttributes[i].getSignature().equals("signature" + (i+1)));
             // check each chain
             for (int j=0; j<10; j++)
             {
-                assertWithTrace((authAttributes[i].getCertChain())[j]
+                assertTrue((authAttributes[i].getCertChain())[j]
                            .equals("cert" + (i+1) + "" + (j+1)));
             }
         }
@@ -527,11 +526,11 @@
             allAttributes.put(PermissionAttribute.MANDATORY_LEGACY_ATTRIBUTE_NAME, new Attribute("","Perm1, Perm2"));
             securityAttributes = new SecurityAttributes();
             securityAttributes.addDescriptorAttributes(allAttributes);
-            assertWithTrace(false);
+            assertTrue(LEGACY_NOT_ALLOWED_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(LEGACY_NOT_ALLOWED_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.INVALID_DESCRIPTOR
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_HANDLING_FAILED,
@@ -545,11 +544,11 @@
             allAttributes.put(PermissionAttribute.OPTIONAL_LEGACY_ATTRIBUTE_NAME, new Attribute("","Perm1, Perm2"));
             securityAttributes = new SecurityAttributes();
             securityAttributes.addDescriptorAttributes(allAttributes);
-            assertWithTrace(false);
+            assertTrue(LEGACY_NOT_ALLOWED_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(LEGACY_NOT_ALLOWED_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.INVALID_DESCRIPTOR
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_HANDLING_FAILED,
@@ -564,11 +563,11 @@
                               new Attribute("","PermissionClassName TargetName ActionList"));
             securityAttributes = new SecurityAttributes();
             securityAttributes.addDescriptorAttributes(allAttributes);
-            assertWithTrace(false);
+            assertTrue(MIDP3_ATTRIBUTE_NOT_ALLOWED_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(MIDP3_ATTRIBUTE_NOT_ALLOWED_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.INVALID_DESCRIPTOR
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_HANDLING_FAILED,
@@ -583,11 +582,11 @@
                               new Attribute("","PermissionClassName TargetName ActionList"));
             securityAttributes = new SecurityAttributes();
             securityAttributes.addDescriptorAttributes(allAttributes);
-            assertWithTrace(false);
+            assertTrue(MIDP3_ATTRIBUTE_NOT_ALLOWED_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(MIDP3_ATTRIBUTE_NOT_ALLOWED_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.INVALID_DESCRIPTOR
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_HANDLING_FAILED,
@@ -602,7 +601,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         permissionAttributes = securityAttributes.getPermissionAttributes();
-        assertWithTrace(permissionAttributes != null
+        assertTrue(permissionAttributes != null
                    && permissionAttributes.length == 1
                    && permissionAttributes[0].isLegacyAttribute());
         // MIDP2 mandatory permissions handling - invalid permission value
@@ -617,11 +616,11 @@
             allAttributes.put(AuthenticationAttribute.SECOND_LEGACY_ATTRIBUTE_NAME, new Attribute("","signature"));
             securityAttributes = new SecurityAttributes();
             securityAttributes.addDescriptorAttributes(allAttributes);
-            assertWithTrace(false);
+            assertTrue(UNKNOWN_PERMISSION_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(UNKNOWN_PERMISSION_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.APPLICATION_AUTHORIZATION_FAILURE
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_UNSUPPORTED,
@@ -641,11 +640,11 @@
             allAttributes.put(AuthenticationAttribute.SECOND_LEGACY_ATTRIBUTE_NAME, new Attribute("","signature"));
             securityAttributes = new SecurityAttributes();
             securityAttributes.addDescriptorAttributes(allAttributes);
-            assertWithTrace(false);
+            assertTrue(UNKNOWN_PERMISSION_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(UNKNOWN_PERMISSION_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.APPLICATION_AUTHORIZATION_FAILURE
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_UNSUPPORTED,
@@ -664,7 +663,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         permissionAttributes = securityAttributes.getPermissionAttributes();
-        assertWithTrace(permissionAttributes != null
+        assertTrue(permissionAttributes != null
                    && permissionAttributes.length == 2
                    && checkImportance(permissionAttributes, 0, 2)
                    && checkNamesAndTargets(permissionAttributes,
@@ -682,7 +681,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         permissionAttributes = securityAttributes.getPermissionAttributes();
-        assertWithTrace(permissionAttributes != null
+        assertTrue(permissionAttributes != null
                    && permissionAttributes.length == 1
                    && checkImportance(permissionAttributes, 0, 1)
                    && checkNamesAndTargets(permissionAttributes,
@@ -699,11 +698,11 @@
             allAttributes.put(AuthenticationAttribute.SECOND_LEGACY_ATTRIBUTE_NAME, new Attribute("","signature"));
             securityAttributes = new SecurityAttributes();
             securityAttributes.addDescriptorAttributes(allAttributes);
-            assertWithTrace(true);
+            assertTrue(UNKNOWN_PERMISSION_MSG, true);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(false);
+            assertTrue(UNKNOWN_PERMISSION_MSG, false);
         }
         // MIDP2 optional permissions handling - unknown permission value
         try
@@ -717,11 +716,11 @@
             allAttributes.put(AuthenticationAttribute.SECOND_LEGACY_ATTRIBUTE_NAME, new Attribute("","signature"));
             securityAttributes = new SecurityAttributes();
             securityAttributes.addDescriptorAttributes(allAttributes);
-            assertWithTrace(true);
+            assertTrue(UNKNOWN_PERMISSION_MSG, true);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(false);
+            assertTrue(UNKNOWN_PERMISSION_MSG, false);
         }
         // MIDP2 optional permissions handling - known permission value
         allAttributes.clear();
@@ -735,7 +734,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         permissionAttributes = securityAttributes.getPermissionAttributes();
-        assertWithTrace(permissionAttributes != null
+        assertTrue(permissionAttributes != null
                    && permissionAttributes.length == 2
                    && checkImportance(permissionAttributes, 2, 0)
                    && checkNamesAndTargets(permissionAttributes,
@@ -757,7 +756,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         permissionAttributes = securityAttributes.getPermissionAttributes();
-        assertWithTrace(permissionAttributes != null
+        assertTrue(permissionAttributes != null
                    && permissionAttributes.length == 1
                    && checkImportance(permissionAttributes, 1, 0)
                    && checkNamesAndTargets(permissionAttributes,
@@ -778,7 +777,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         permissionAttributes = securityAttributes.getPermissionAttributes();
-        assertWithTrace(permissionAttributes != null
+        assertTrue(permissionAttributes != null
                    && permissionAttributes.length == 4
                    && checkImportance(permissionAttributes, 2, 2)
                    && checkNamesAndTargets(permissionAttributes,
@@ -798,7 +797,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         permissionAttributes = securityAttributes.getPermissionAttributes();
-        assertWithTrace(permissionAttributes != null
+        assertTrue(permissionAttributes != null
                    && permissionAttributes.length == 2
                    && checkImportance(permissionAttributes, 1, 1)
                    && checkNamesAndTargets(permissionAttributes,
@@ -812,7 +811,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         permissionAttributes = securityAttributes.getPermissionAttributes();
-        assertWithTrace(permissionAttributes != null
+        assertTrue(permissionAttributes != null
                    && permissionAttributes.length == 2
                    && checkImportance(permissionAttributes, 1, 1)
                    && checkNamesAndTargets(permissionAttributes,
@@ -826,7 +825,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         permissionAttributes = securityAttributes.getPermissionAttributes();
-        assertWithTrace(permissionAttributes != null
+        assertTrue(permissionAttributes != null
                    && permissionAttributes.length == 2
                    && checkImportance(permissionAttributes, 1, 1)
                    && checkNamesAndTargets(permissionAttributes,
@@ -842,7 +841,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         permissionAttributes = securityAttributes.getPermissionAttributes();
-        assertWithTrace(permissionAttributes != null
+        assertTrue(permissionAttributes != null
                    && permissionAttributes.length == 2
                    && checkImportance(permissionAttributes, 1, 1)
                    && checkNamesAndTargets(permissionAttributes,
@@ -856,11 +855,11 @@
             allAttributes.put(PermissionAttribute.MANDATORY_ATTRIBUTE_PREFIX + "1",new Attribute("","MyMandatoryClass MyMandatoryTarget MyMandatoryAction1 MyMandatoryAction2"));
             securityAttributes = new SecurityAttributes();
             securityAttributes.addDescriptorAttributes(allAttributes);
-            assertWithTrace(false);
+            assertTrue(INVALID_PERMISSION_VALUE_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(INVALID_PERMISSION_VALUE_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.APPLICATION_AUTHENTICATION_FAILURE
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_HANDLING_FAILED,
@@ -874,11 +873,11 @@
             allAttributes.put(PermissionAttribute.MANDATORY_ATTRIBUTE_PREFIX + "1",new Attribute("","MyMandatoryClass   MyMandatoryTarget   MyMandatoryAction1 MyMandatoryAction2"));
             securityAttributes = new SecurityAttributes();
             securityAttributes.addDescriptorAttributes(allAttributes);
-            assertWithTrace(false);
+            assertTrue(INVALID_PERMISSION_VALUE_MSG, false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(INVALID_PERMISSION_VALUE_MSG + e.getOtaStatusCode() + " " + e.getShortMessage() + "," + e.getDetailedMessage(),
                        e.getOtaStatusCode() == OtaStatusCode.APPLICATION_AUTHENTICATION_FAILURE
                        && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                        && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_HANDLING_FAILED,
@@ -891,7 +890,7 @@
         securityAttributes = new SecurityAttributes();
         securityAttributes.addDescriptorAttributes(allAttributes);
         permissionAttributes = securityAttributes.getPermissionAttributes();
-        assertWithTrace(permissionAttributes != null
+        assertTrue(permissionAttributes != null
                    && permissionAttributes.length == 1
                    && checkImportance(permissionAttributes, 1, 0)
                    && checkNamesAndTargets(permissionAttributes,
@@ -933,7 +932,7 @@
                 allAttributes.put(PermissionAttribute.OPTIONAL_ATTRIBUTE_PREFIX + "1",new Attribute("",className + "            MyMandatoryTarget  MyMandatoryAction      "));
                 securityAttributes = new SecurityAttributes();
                 securityAttributes.addDescriptorAttributes(allAttributes);
-                assertWithTrace(false);
+                assertTrue(INVALID_PERMISSION_VALUE_MSG, false);
             }
             catch (InvalidAttributeException e)
             {
@@ -1111,13 +1110,6 @@
         return (checkBoolArray(certsChecked) && checkBoolArray(signaturesChecked));
     }
 
-    private void assertWithTrace(boolean aCondition)
-    {
-        assertTrue("" + assertTrace, aCondition);
-        assertTrace++;
-    }
-
-
     private int findString(String str, String[] strings)
     {
         for (int i=0; i<strings.length; i++)
--- a/javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/common/SecurityExtensionsTests.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/common/SecurityExtensionsTests.java	Wed Oct 13 14:23:59 2010 +0300
@@ -48,7 +48,6 @@
 public class SecurityExtensionsTests extends TestCase implements InstallerMain
 {
     private static String TEST_DATA_DIR;
-    int assertTrace = 0;
 
     static
     {
@@ -129,7 +128,7 @@
         SecurityAttributes securityAttributes;
         AuthenticationCredentials[] credentials;
         // package names
-        assertWithTrace(find(SecurityExtensionsReader.getExtProtectedPackages(), new String[] {"com.nokia.ext1.internal.", "com.nokia.ext2.internal."})
+        assertTrue(find(SecurityExtensionsReader.getExtProtectedPackages(), new String[] {"com.nokia.ext1.internal.", "com.nokia.ext2.internal."})
                    && !find(SecurityExtensionsReader.getExtProtectedPackages(), new String[] {"com.nokia.ext1.public."})
                    && !find(SecurityExtensionsReader.getExtProtectedPackages(), new String[] {"com.nokia.ext2.public."})
                    && find(SecurityExtensionsReader.getExtRestrictedPackages(), new String[] {"com.nokia.ext1.public.", "com.nokia.ext2.public."})
@@ -137,10 +136,10 @@
                    && !find(SecurityExtensionsReader.getExtRestrictedPackages(), new String[] {"com.nokia.ext2.internal."}));
         // mappings
         MIDPPermission perm = SecurityExtensionsReader.getExtPermission("com.nokia.ext1.public.Ext1Perm");
-        assertWithTrace(perm != null && perm.getName() != null && perm.getName().equals("com.nokia.ext1.internal.Ext1Perm") && perm.getTarget() == null && perm.getActionList() == null);
-        assertWithTrace(SecurityExtensionsReader.getExtPermission("com.nokia.mj.impl.gcf.protocol.socket.SocketPermissionImpl") == null);
+        assertTrue(perm != null && perm.getName() != null && perm.getName().equals("com.nokia.ext1.internal.Ext1Perm") && perm.getTarget() != null && perm.getTarget().equals("*")&& perm.getActionList() == null);
+        assertTrue(SecurityExtensionsReader.getExtPermission("com.nokia.mj.impl.gcf.protocol.socket.SocketPermissionImpl") == null);
         perm = SecurityExtensionsReader.getExtPermission("com.nokia.ext2.public.Ext2Perm");
-        assertWithTrace(perm != null && perm.getName() != null && perm.getName().equals("com.nokia.ext2.internal.Ext2Perm") && perm.getTarget() == null && perm.getActionList() == null);
+        assertTrue(perm != null && perm.getName() != null && perm.getName().equals("com.nokia.ext2.internal.Ext2Perm") && perm.getTarget() != null && perm.getTarget().equals("*")&& perm.getActionList() == null);
         // policies (unsigned suite, check that ext1 perms are granted and the base permissions were not altered)
         storage.removeAuthenticationStorageData(appUID);
         permissionGranter.removeSecurityData(session,appUID);
@@ -154,11 +153,9 @@
         allAttributes.clear();
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
-        permissionGranter.grantJarPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
-        permissionGranter.addSecurityData(session, appUID, null);
-        assertWithTrace(checkGrantedPermissions(storage.readGrantedPermissions(appUID),
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
+        assertTrue(checkGrantedPermissions(storage.readGrantedPermissions(appUID),
                                            new PolicyBasedPermissionImpl[]
                                            {
                                                new PolicyBasedPermissionImpl("com.nokia.ext1.internal.Ext1Perm", "ext1.target1", "ext1.action1", new UserSecuritySettingsImpl("Ext1", UserSecuritySettings.ONESHOT_INTERACTION_MODE, new int[] {UserSecuritySettings.ONESHOT_INTERACTION_MODE, UserSecuritySettings.SESSION_INTERACTION_MODE, UserSecuritySettings.BLANKET_INTERACTION_MODE, UserSecuritySettings.NO_INTERACTION_MODE})),
@@ -183,11 +180,11 @@
             securityAttributes.addDescriptorAttributes(allAttributes);
             credentials = authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
             permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
-            assertWithTrace(false);
+            assertTrue(false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(
                 e.getOtaStatusCode() == OtaStatusCode.APPLICATION_AUTHORIZATION_FAILURE
                 && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                 && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_UNSUPPORTED,
@@ -208,11 +205,11 @@
             securityAttributes.addDescriptorAttributes(allAttributes);
             credentials = authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
             permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
-            assertWithTrace(false);
+            assertTrue(false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(
                 e.getOtaStatusCode() == OtaStatusCode.APPLICATION_AUTHORIZATION_FAILURE
                 && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                 && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_UNSUPPORTED,
@@ -233,11 +230,11 @@
             securityAttributes.addDescriptorAttributes(allAttributes);
             credentials = authenticationModule.authenticateJad(appUID,null,securityAttributes.getAuthenticationAttributes());
             permissionGranter.grantJadPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
-            assertWithTrace(false);
+            assertTrue(false);
         }
         catch (InvalidAttributeException e)
         {
-            assertWithTrace(
+            assertTrue(
                 e.getOtaStatusCode() == OtaStatusCode.APPLICATION_AUTHORIZATION_FAILURE
                 && e.getShortMessage().equals(errorMessage.get(InstallerErrorMessage.INST_CORRUPT_PKG, null))
                 && e.getDetailedMessage().equals(detailedErrorMessage.get(InstallerDetailedErrorMessage.ATTR_UNSUPPORTED,
@@ -259,11 +256,9 @@
         allAttributes.clear();
         allAttributes.put(MIDP_PROFILE_ATTRIBUTE_NAME,new Attribute("",MIDP2));
         securityAttributes.addManifestAttributes(allAttributes);
-        credentials = authenticationModule.authenticateJar(appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
-        authenticationModule.addSecurityData(session, appUID, null);
-        permissionGranter.grantJarPermissions(appUID, null, securityAttributes.getPermissionAttributes(), credentials);
-        permissionGranter.addSecurityData(session, appUID, null);
-        assertWithTrace(checkGrantedPermissions(storage.readGrantedPermissions(appUID),
+        authenticationModule.authenticateJar(session, appUID,null,TEST_DATA_DIR + "security_tmp" +  System.getProperty("file.separator") + "HelloWorld.jar", false);
+        permissionGranter.grantJarPermissions(session, appUID, null, securityAttributes.getPermissionAttributes());
+        assertTrue(checkGrantedPermissions(storage.readGrantedPermissions(appUID),
                                            new PolicyBasedPermissionImpl[]
                                            {
                                                new PolicyBasedPermissionImpl("com.nokia.ext2.internal.Ext2Perm", "ext2.target1", "ext2.action1", new UserSecuritySettingsImpl("Ext1", UserSecuritySettings.BLANKET_INTERACTION_MODE, new int[] {UserSecuritySettings.BLANKET_INTERACTION_MODE, UserSecuritySettings.NO_INTERACTION_MODE})),
@@ -274,12 +269,6 @@
                                            }));
     }
 
-    private void assertWithTrace(boolean aCondition)
-    {
-        assertTrue("" + assertTrace, aCondition);
-        assertTrace++;
-    }
-
     private static boolean checkGrantedPermissions(Vector grantedPermissions, PolicyBasedPermissionImpl[] expectedPerms)
     {
         if (grantedPermissions == null)
--- a/javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/storage/SecurityStorageTests.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/security/tsrc/javasrc/com/nokia/mj/impl/security/midp/storage/SecurityStorageTests.java	Wed Oct 13 14:23:59 2010 +0300
@@ -188,6 +188,70 @@
         storage.removeGrantedPermissions(appUID);
         readPermissions = storage.readGrantedPermissions(appUID);
         assertTrue(readPermissions == null);
+        // full read/write/remove cycle for update -> the old settings are retained
+        storage.removeGrantedPermissions(appUID);
+        grantedPermissions = storage.readGrantedPermissions(appUID);
+        assertTrue(grantedPermissions == null);
+        grantedPermissions = new Vector();
+        storage.writeGrantedPermissions(appUID, null, grantedPermissions);
+        storage.removeGrantedPermissions(appUID);
+        assertTrue(true);
+        grantedPermissions.addElement(new PolicyBasedPermissionImpl(
+                                          "permission1",
+                                          "target1",
+                                          "action1",
+                                          PolicyBasedPermission.ALLOWED_TYPE));
+        grantedPermissions.addElement(new PolicyBasedPermissionImpl(
+                                          "permission2",
+                                          "target2",
+                                          "action2",
+                                          PolicyBasedPermission.ASSIGNED_TYPE));
+        grantedPermissions.addElement(new PolicyBasedPermissionImpl(
+                                          "permission3",
+                                          "target3",
+                                          "action3",
+                                          new UserSecuritySettingsImpl("settingsname",
+                                                                       UserSecuritySettings.ONESHOT_INTERACTION_MODE,
+                                                                       new int[] { UserSecuritySettings.ONESHOT_INTERACTION_MODE,
+                                                                                   UserSecuritySettings.SESSION_INTERACTION_MODE,
+                                                                                   UserSecuritySettings.BLANKET_INTERACTION_MODE,
+                                                                                   UserSecuritySettings.NO_INTERACTION_MODE
+                                                                                 })));
+        storage.writeGrantedPermissions(appUID, null, grantedPermissions);
+        readPermissions = storage.readGrantedPermissions(appUID);
+        assertTrue(readPermissions != null
+                   && readPermissions.size() == grantedPermissions.size()
+                   && checkGrantedPermissions(readPermissions, grantedPermissions));
+        grantedPermissions2 = new Vector();
+        grantedPermissions2.addElement(new PolicyBasedPermissionImpl(
+                                           "permission1",
+                                           "target1",
+                                           "action1",
+                                           PolicyBasedPermission.ALLOWED_TYPE));
+        grantedPermissions2.addElement(new PolicyBasedPermissionImpl(
+                                           "permission2",
+                                           "target2",
+                                           "action2",
+                                           PolicyBasedPermission.ASSIGNED_TYPE));
+        grantedPermissions2.addElement(new PolicyBasedPermissionImpl(
+                                           "permission3",
+                                           "target3",
+                                           "action3",
+                                           new UserSecuritySettingsImpl("settingsname",
+                                                                        UserSecuritySettings.SESSION_INTERACTION_MODE,
+                                                                        new int[] { UserSecuritySettings.ONESHOT_INTERACTION_MODE,
+                                                                                    UserSecuritySettings.SESSION_INTERACTION_MODE,
+                                                                                    UserSecuritySettings.BLANKET_INTERACTION_MODE,
+                                                                                    UserSecuritySettings.NO_INTERACTION_MODE
+                                                                                  })));
+        storage.writeGrantedPermissions(appUID, appUID, grantedPermissions2);
+        readPermissions = storage.readGrantedPermissions(appUID);
+        assertTrue(readPermissions != null
+                   && readPermissions.size() == grantedPermissions.size()
+                   && checkGrantedPermissions(readPermissions, grantedPermissions));
+        storage.removeGrantedPermissions(appUID);
+        readPermissions = storage.readGrantedPermissions(appUID);
+        assertTrue(readPermissions == null);
         // full read/write/remove cycle with different valid values for permissions and user settings
         storage.removeGrantedPermissions(appUID);
         grantedPermissions = storage.readGrantedPermissions(appUID);
--- a/javacommons/utils/build/build.xml	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/build/build.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -30,7 +30,6 @@
                    com.nokia.mj.impl.properties.common.Locale,
                    com.nokia.mj.impl.properties.common.Platform,
                    com.nokia.mj.impl.utils.Formatter,
-                   com.nokia.mj.impl.utils.InstallerErrorMessage,
                    com.nokia.mj.impl.utils.ResourceLoader"/>
 
   <target name="system.properties">
--- a/javacommons/utils/build/bwins/javautilsu.def	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/build/bwins/javautilsu.def	Wed Oct 13 14:23:59 2010 +0300
@@ -128,7 +128,7 @@
 	??_ERuntimeException@runtime@java@@UAE@I@Z @ 127 NONAME ; java::runtime::RuntimeException::~RuntimeException(unsigned int)
 	??1RuntimeException@runtime@java@@UAE@XZ @ 128 NONAME ; java::runtime::RuntimeException::~RuntimeException(void)
 	?toString@RuntimeException@runtime@java@@UBE?AV?$basic_string@DV?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ @ 129 NONAME ; class std::basic_string<char, class std::char_traits<char>, class std::allocator<char> > java::runtime::RuntimeException::toString(void) const
-	?wbase64encode@JavaCommonUtils@util@java@@SA?AV?$basic_string@_WV?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV45@@Z @ 130 NONAME ; class std::basic_string<wchar_t, class std::char_traits<wchar_t>, class std::allocator<wchar_t> > java::util::JavaCommonUtils::wbase64encode(class std::basic_string<wchar_t, class std::char_traits<wchar_t>, class std::allocator<wchar_t> > const &)
+	?wbase64encode@JavaCommonUtils@util@java@@SA?AV?$basic_string@_WV?$char_traits@_W@std@@V?$allocator@_W@2@@std@@ABV45@@Z @ 130 ABSENT; absent
 	?isFirstBoot@JavaCommonUtils@util@java@@SA_NXZ @ 131 NONAME ; bool java::util::JavaCommonUtils::isFirstBoot(void)
 	?initIsFirstBoot@JavaCommonUtils@util@java@@SAHXZ @ 132 NONAME ; int java::util::JavaCommonUtils::initIsFirstBoot(void)
 
--- a/javacommons/utils/build/eabi/javautilsu.def	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/build/eabi/javautilsu.def	Wed Oct 13 14:23:59 2010 +0300
@@ -178,7 +178,7 @@
 	_ZNK4java7runtime16RuntimeException8toStringEv @ 177 NONAME
 	_ZTIN4java7runtime16RuntimeExceptionE @ 178 NONAME
 	_ZTVN4java7runtime16RuntimeExceptionE @ 179 NONAME
-	_ZN4java4util15JavaCommonUtils13wbase64encodeERKSbIwSt11char_traitsIwESaIwEE @ 180 NONAME
+	0 @ 180 NONAME ABSENT
 	_ZN4java4util15JavaCommonUtils11isFirstBootEv @ 181 NONAME
 	_ZN4java4util15JavaCommonUtils15initIsFirstBootEv @ 182 NONAME
 
--- a/javacommons/utils/build/javautils.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/build/javautils.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -37,7 +37,7 @@
                ../src.s60/*.cpp \
 
       LIBS += -lflogger -lplatformver -lsysversioninfo -lsysutil -lbafl \
-              -lefsrv -ljavaenvinfo -lhal -llibcrypto -lCommonEngine -lplatformenv
+              -lefsrv -ljavaenvinfo -lhal -llibcrypto -lcommonengine -lplatformenv
 
     !contains(PROJECT_DEFINES,RD_JAVA_UI_QT) {
         LIBS += -lavkon
--- a/javacommons/utils/build/javautils_0x2002DCDA.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/build/javautils_0x2002DCDA.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc.s60
@@ -113,7 +113,7 @@
 LIBRARY		javaenvinfo.lib
 LIBRARY		hal.lib
 LIBRARY		libcrypto.lib
-LIBRARY		CommonEngine.lib
+LIBRARY		commonengine.lib
 LIBRARY		platformenv.lib
 LIBRARY		avkon.lib
 LIBRARY		libpthread.lib
@@ -142,7 +142,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javacommons/utils/inc.s60/java_stdcpp_support_for_dll.hrh	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/inc.s60/java_stdcpp_support_for_dll.hrh	Wed Oct 13 14:23:59 2010 +0300
@@ -49,6 +49,9 @@
 macro J9EPOC32
 #define J9EPOC32
 
+macro RD_JAVA_OMJ_FSERVER
+#define RD_JAVA_OMJ_FSERVER
+
 #include "build_defines.hrh"
 
 #ifdef RD_JAVA_STDCPPV5
@@ -59,10 +62,5 @@
   OS_LAYER_STDCPP_SYSTEMINCLUDE
   LIBRARY libstdcpp.lib
 #endif
-#ifndef RD_JAVA_NO_BIN_VERSION
-#ifdef RD_JAVA_BIN_VERSION_NONQT
-  VERSION RD_JAVA_BIN_VERSION_NONQT
-#endif
-#endif
 
 #endif // JAVA_STDCPP_SUPPORT_FOR_DLL_HRH
--- a/javacommons/utils/inc.s60/java_stdcpp_support_for_exe.hrh	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/inc.s60/java_stdcpp_support_for_exe.hrh	Wed Oct 13 14:23:59 2010 +0300
@@ -55,10 +55,5 @@
   OS_LAYER_STDCPP_SYSTEMINCLUDE
   LIBRARY libstdcpp.lib
 #endif
-#ifndef RD_JAVA_NO_BIN_VERSION
-#ifdef RD_JAVA_BIN_VERSION_NONQT
-  VERSION RD_JAVA_BIN_VERSION_NONQT
-#endif
-#endif
 
 #endif // JAVA_STDCPP_SUPPORT_FOR_DLL_HRH
--- a/javacommons/utils/inc.s60/java_stdcpp_support_for_stddll.hrh	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/inc.s60/java_stdcpp_support_for_stddll.hrh	Wed Oct 13 14:23:59 2010 +0300
@@ -51,10 +51,5 @@
   OS_LAYER_STDCPP_SYSTEMINCLUDE
   LIBRARY libstdcpp.lib
 #endif
-#ifndef RD_JAVA_NO_BIN_VERSION
-#ifdef RD_JAVA_BIN_VERSION_NONQT
-  VERSION RD_JAVA_BIN_VERSION_NONQT
-#endif
-#endif
 
 #endif // JAVA_STDCPP_SUPPORT_FOR_DLL_HRH
--- a/javacommons/utils/inc.s60/java_stdcpp_support_for_stdexe.hrh	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/inc.s60/java_stdcpp_support_for_stdexe.hrh	Wed Oct 13 14:23:59 2010 +0300
@@ -52,10 +52,5 @@
   OS_LAYER_STDCPP_SYSTEMINCLUDE
   LIBRARY libstdcpp.lib
 #endif
-#ifndef RD_JAVA_NO_BIN_VERSION
-#ifdef RD_JAVA_BIN_VERSION_NONQT
-  VERSION RD_JAVA_BIN_VERSION_NONQT
-#endif
-#endif
 
 #endif // JAVA_STDCPP_SUPPORT_FOR_DLL_HRH
--- a/javacommons/utils/inc/javacommonutils.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/inc/javacommonutils.h	Wed Oct 13 14:23:59 2010 +0300
@@ -87,23 +87,6 @@
     OS_IMPORT static std::string base64encode(const std::string& aData);
 
     /**
-     * Encode wstring to base64 wstring byte by byte.
-     *
-     * wstring aData is base64 encoded as a byte array.
-     * If the wstring has been created from TDesC16 in Symbian it contains
-     * UTF-16LE (UCS-2) encoded 16-bit characters.
-     * The result is byte array that contains 8-bit ASCII characters.
-     * Each of these 8-bit character is converted to the corresponding
-     * wchar and appended to the result wstring.
-     *
-     * @see \sf\app\jrt\javamanager\javainstaller\installer\javasrc\com\nokia
-     *  \mj\impl\installer\utils\Args.java, decodeBase64Args()
-     * @param aData wstring containing the data to be encoded.
-     * @return base64 encoded result wstring.
-     */
-    OS_IMPORT static std::wstring wbase64encode(const std::wstring& aData);
-
-    /**
      * Decode base64 string.
      *
      * @param aData base64 encoded string.
--- a/javacommons/utils/inc/javaoslayer.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/inc/javaoslayer.h	Wed Oct 13 14:23:59 2010 +0300
@@ -33,7 +33,6 @@
 const int BOOT_CLASSPATH_MIDP = 1;
 const int BOOT_CLASSPATH_INSTALLER = 2;
 const int BOOT_CLASSPATH_TCKRUNNER = 3;
-const int BOOT_CLASSPATH_JAVACONTROLPANEL = 4;
 
 class DriveId;
 
--- a/javacommons/utils/inc/logger.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/inc/logger.h	Wed Oct 13 14:23:59 2010 +0300
@@ -115,10 +115,7 @@
     EDebugApi,          //  =34
     EJavaAppMngrPlugin, //  =35
     EJavaBroadcast,     //  =36
-    EJavaAMMS,          //  =37
-    EJavaSettings,      //  =38
-    EJavaQtServiceApp,  //  =39
-	EJavaCentrep        //  =40
+    EJavaAMMS,					//  =37
     // add id of new components here
 };
 
@@ -175,10 +172,7 @@
     {"JavaDebugApi.log",     "[JavaDebugApi]"},       // EDebugApi
     {"JavaAppMngrPlugin.log","[JavaAppMngrPlugin]"},  // EJavaAppMngrPlugin
     {"JavaBroadcast.log",    "[JavaBroadcast]"},      // EJavaBroadcast
-    {"JavaMMAPI.log",         "[ MMAPPI ]"},          // EJavaAMMS
-    {"JavaSettings.log",     "[ JavaSettings ]"},     // EJavaSettings
-    {"JavaQtServiceApp.log", "[ QtServiceApp ]"},     // EJavaQtServiceApp
-	{"JavaCentrep.log",      "[ JavaCentrep  ]"},     // EJavaCentrep
+    {"JavaMMAPI.log",         "[ MMAPPI ]"},					// EJavaAMMS
     // add new component file name and nickname here
 };
 
--- a/javacommons/utils/javasrc/com/nokia/mj/impl/coreui/CoreUi.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/javasrc/com/nokia/mj/impl/coreui/CoreUi.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -19,7 +19,6 @@
 
 import java.util.Hashtable;
 
-import com.nokia.mj.impl.utils.Logger;
 import com.nokia.mj.impl.utils.Uid;
 
 /**
@@ -50,12 +49,10 @@
                 Class clazz = Class.forName(className);
                 sInstance = (CoreUi)clazz.newInstance();
             }
-            catch (Throwable t)
+            catch (Exception e)
             {
-                String err = "Not able to instantiate class " +
-                             className+". Reason is: ";
-                Logger.LOG(Logger.EJavaUI, Logger.EInfo, err, t);
-                throw new RuntimeException(err + t);
+                throw new RuntimeException("Not able to instantiate class " +
+                                           className+". Reason is: " + e);
             }
         }
     }
@@ -81,18 +78,13 @@
     /**
      * For creating the UI from Java side. This is meant for the pre-warmed
      * VM use case. Calling this method will lead creation of the CoreUI.
-     * @param uid The UID of the application. If null NullPointerException
-     *            will be thrown.
+     * @param uid The UID of the application.
      * @param backGroundStart Should the UI be put into background.
      */
     public static void createUi(Uid uid, boolean backGroundStart)
     {
         if (sInstance != null)
         {
-            if (uid == null)
-            {
-                throw new NullPointerException("Null UID when creating UI");
-            }
             sInstance.createUiImpl(uid, backGroundStart);
         }
     }
@@ -133,18 +125,9 @@
         return fg;
     }
 
-    public static void hideApplication(boolean hide)
-    {
-        if (sInstance != null)
-        {
-            sInstance.hideApplicationImpl(hide);
-        }
-    }
-
     protected abstract boolean connectToUiImpl();
     protected abstract void createUiImpl(Uid uid, boolean backGroundStart);
     protected abstract void shutdownRequestImpl();
     protected abstract void foregroundRequestImpl();
     protected abstract boolean isUiInForegroundImpl();
-    protected abstract void hideApplicationImpl(boolean hide);
 }
--- a/javacommons/utils/javasrc/com/nokia/mj/impl/rt/SystemPropertyUtils.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/javasrc/com/nokia/mj/impl/rt/SystemPropertyUtils.java	Wed Oct 13 14:23:59 2010 +0300
@@ -98,7 +98,7 @@
 
                 try
                 {
-                    Class clazz = Class.forName(className);
+                    Class clazz = clazz = Class.forName(className);
                     Object providerImpl = clazz.newInstance();
 
                     boolean isFrozen = false;
--- a/javacommons/utils/javasrc/com/nokia/mj/impl/rt/support/ApplicationUtils.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/javasrc/com/nokia/mj/impl/rt/support/ApplicationUtils.java	Wed Oct 13 14:23:59 2010 +0300
@@ -45,11 +45,12 @@
  * package com.nokia.mj.impl.mypackage;
  *
  * import com.nokia.mj.impl.rt.support.ApplicationUtils;
- *      public void myClass()
+ * import com.nokia.mj.impl.rt.support.ShutdownListener;
+ *      public MyClass
  *      {
  *          public void myMethod()
  *          {
- *              // Get the insatnce of ApplicationUtils.
+ *              // Get the instance of ApplicationUtils.
  *              ApplicationUtils appUtils = ApplicationUtils.getInstance();
  *
  *              // Get the name of the application.
@@ -162,14 +163,11 @@
      * <p>
      * This method is meant ONLY for the UI and no other API are allowed
      * to use it. The UI must use this API ONLY when the user explicitly
-     * wants to close the application using some platform dependent feature
+     * wants to close the application using some platform depedent feataure
      * (e.g. red key in S60). If the user tries to close the application
      * using the mechanism provided by the application itself, this method
      * must not be called.
      * <p>
-     * Note that calling this method might cause the UI framework to call
-     * uiDisposed method, depending on which UI framework is used.
-     * <p>
      * This method is a problematic in such runtimes that may run more than one
      * application in same JVM instance (e.g. eRCP). If the application
      * doesn't close nicely the runtime may have to terminate
@@ -180,23 +178,6 @@
     public abstract void notifyExitCmd();
 
     /**
-     * Notifies the runtime that UI has been disposed. The runtime is
-     * responsible for killing the application if it doesn't close itself
-     * nicely after specified grace time. The specified grace time is
-     * runtime dependent.
-     * <p>
-     * This method is meant ONLY for the UI and no other API are allowed
-     * to use it.
-     * <p>
-     * It is possible that the method is called several times from different 
-     * phases of the UI exit sequence. 
-     */
-    public void uiDisposed()
-    {
-        notifyExitCmd();
-    }
-
-    /**
      * Determines whether the access request indicated by the specified
      * permission should be allowed or denied, based on the security policy
      * currently in effect. This method quietly returns if the access request
@@ -236,7 +217,11 @@
      * calls are made in a loop in one thread, so if some listener blocks the
      * call the rest of the listeners don't get the notification.
      * <p>
-     * There can be more than one listener.
+     * There can be more than one listener, but it is recommended that there
+     * is only one listener per component.
+     * <p>
+     * The implementation stores a strong reference to object which prevents
+     * garbage collection of the listener unless the listener is removed.
      *
      * @param listener the new listener.
      */
@@ -249,6 +234,25 @@
         mListeners.addElement(listener);
     }
 
+    /**
+     * Removes the registered shutdown listener.
+     *
+     * @param listener the listener to be removed. If the listener is not
+     *                 found nothing happens. If the key is null, a 
+     * @throws NullPointerException if the listener is null.
+     */
+    public void removeShutdownListener(ShutdownListener listener)
+    {
+        if (listener == null)
+        {
+            throw new 
+              NullPointerException("Listener was null when trying to remove");
+        }
+        if (mListeners != null)
+        {
+            mListeners.removeElement(listener);
+        }
+    }
 
     /**
      * Waits (if needed) until the application to be started is known.
--- a/javacommons/utils/javasrc/com/nokia/mj/impl/utils/DebugUtils.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/javasrc/com/nokia/mj/impl/utils/DebugUtils.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -11,16 +11,13 @@
 *
 * Contributors:
 *
-* Description:
+* Description:  ?Description
 *
 */
 
 
 package com.nokia.mj.impl.utils;
 
-import java.io.PrintStream;
-import java.io.ByteArrayOutputStream;
-
 import com.nokia.mj.impl.rt.support.Jvm;
 import com.nokia.mj.impl.utils.Logger;
 
@@ -57,19 +54,6 @@
         _closeThreadDumper();
     }
 
-    public static String getStackTrace(Throwable t)
-    {
-        if (t == null)
-        {
-            throw new NullPointerException("Null when getting stack trace");
-        }
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        _getStackTrace(t, new PrintStream(baos));
-        return baos.toString();
-    }
-
-    private static native void _getStackTrace(Throwable t, PrintStream printStream);
-
     private static native void _doThreadDump();
     private static native void _closeThreadDumper();
 }
--- a/javacommons/utils/javasrc/com/nokia/mj/impl/utils/ErrorMessageBase.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/javasrc/com/nokia/mj/impl/utils/ErrorMessageBase.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -24,6 +24,8 @@
 /**
  * Base class for classes defining localized error messages.
  *
+ * @author Nokia Corporation
+ * @version 1.0
  * @see InstallerExceptionBase
  */
 abstract public class ErrorMessageBase
@@ -32,19 +34,6 @@
 
     public static final int NO_MSG = 0; // Used when the error message is not available.
 
-    /** Start of Runtime error message ids range. */
-    public static final int RUNTIME_RANGE_START = 0;
-    /** End of Runtime error message ids range. */
-    public static final int RUNTIME_RANGE_END = 99;
-    /** Start of Installer error message ids range. */
-    public static final int INSTALLER_RANGE_START = 100;
-    /** End of Installer error message ids range. */
-    public static final int INSTALLER_RANGE_END = 199;
-    /** Start of Security error message ids range. */
-    public static final int SECURITY_RANGE_START = 200;
-    /** End of Security error message ids range. */
-    public static final int SECURITY_RANGE_END = 299;
-
     /**
      * Method for retrieving the message of a certain error.
      *
@@ -62,12 +51,7 @@
         {
             return this.getClass().getName() + ": No message found for error " + errorCode;
         }
-        ResourceLoader rl = getResourceLoader();
-        if (rl == null)
-        {
-            rl = getResourceLoader(errorCode);
-        }
-        return rl.format(msgId, errorMessageParameters);
+        return getResourceLoader().format(msgId, errorMessageParameters);
     }
 
     /*** ---------------------------- PROTECTED --------------------------- */
@@ -81,64 +65,11 @@
 
     /**
      * Method for retrieving the ResourceLoader instance that is used
-     * to localise error messages. If this method returns null,
-     * the ResourceLoader is obtained with getResourceLoader(int)
-     * method variant which then must not return null.
-     *
+     * to localise error messages.
      * This method must be overriden in inheriting class.
      */
     abstract protected ResourceLoader getResourceLoader();
 
-    /**
-     * Method for retrieving the ResourceLoader instance that is used
-     * to localise error message for specified error code.
-     * This method must be overriden in inheriting class if
-     * the getResourceLoader() method variant returns null.
-     *
-     * @param errorCode error code for which ResourceLoader is returned
-     */
-    protected ResourceLoader getResourceLoader(int errorCode)
-    {
-        return null;
-    }
-
-    /**
-     * Method for retrieving the ResourceLoader instance.
-     * This method is called from inheriting class
-     * getResourceLoader(int) method variant.
-     *
-     * @param textFilename name for text file
-     * @param textPrefix prefix for text ids
-     */
-    private static Hashtable iResourceLoaderTable = null;
-    protected static ResourceLoader getResourceLoader(String textFilename, String textPrefix)
-    {
-        String key = textFilename + "::" + textPrefix;
-        if (iResourceLoaderTable == null)
-        {
-            iResourceLoaderTable = new Hashtable();
-        }
-        ResourceLoader rl = (ResourceLoader)iResourceLoaderTable.get(key);
-        if (rl == null)
-        {
-            rl = ResourceLoader.getInstance(textFilename, textPrefix);
-            iResourceLoaderTable.put(key, rl);
-        }
-        return rl;
-    }
-
-    /**
-     * Gets the Qt locale ID currently being used on the phone.
-     *
-     * @return Qt locale ID as provided by the platform
-     */
-    protected static String getLocaleIdQt()
-    {
-        // Change this after Qt localisation files are taken into use.
-        //return ResourceLoader.getLocaleIdQt();
-        return null;
-    }
-
     /*** ----------------------------- PACKAGE ---------------------------- */
     /*** ----------------------------- PRIVATE ---------------------------- */
     /*** ----------------------------- NATIVE ----------------------------- */
--- a/javacommons/utils/javasrc/com/nokia/mj/impl/utils/Formatter.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/javasrc/com/nokia/mj/impl/utils/Formatter.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -28,7 +28,6 @@
  * <UL>
  * <LI>%nU - String in position n
  * <LI>%U - Next string
- * <LI>%Ln - Integer in position n
  * <LI>%nN - Integer in position n
  * <LI>%N - Next integer
  * <LI>%nC - Character in position n
@@ -48,10 +47,9 @@
  * </pre>
  * <br>
  * Limitation: more than 10 positional arguments are not supported (only 0...9)
- * <br>
- * Note that Formatter supports Avkon and Qt based localisation.
- * Text parameter indices start from 0 when Avkon is used and from 1
- * when Qt is used.
+ *
+ * @author Nokia Corporation
+ * @version 1.0
  */
 public class Formatter
 {
@@ -61,19 +59,8 @@
     /** String with latest replacements */
     private String replaced;
 
-    /**
-     * Platform localisation type.
-     * Either ResourceLoader.AVKON or ResourceLoader.QT. */
-    private final int locType;
-
-    /**
-     * The first text parameter replacement index. For Avkon based
-     * localisation this is 0, for Qt based localisation this is 1.
-     */
-    private final int startIndex;
-
     /** Next replacement index */
-    private int nextIndex;
+    private int nextIndex = 0;
 
     /*** ----------------------------- PUBLIC ------------------------------ */
 
@@ -82,24 +69,10 @@
      *
      * @param pattern formatter pattern
      */
-    Formatter(String aPattern)
-    {
-        this(aPattern, ResourceLoader.AVKON);
-    }
-
-    /**
-     * Create a new formatter
-     *
-     * @param pattern formatter pattern
-     * @param aLocType platform localisation type
-     */
-    Formatter(String aPattern, int aLocType)
+    public Formatter(String aPattern)
     {
         pattern = aPattern;
         replaced = aPattern;
-        locType = aLocType;
-        startIndex = (locType == ResourceLoader.QT? 1: 0);
-        nextIndex = startIndex;
     }
 
     /**
@@ -117,12 +90,11 @@
                 replace("%U", string))
         {
             nextIndex++;
+
         }
         else
         {
-            Logger.WLOG(Logger.EUtils,
-                        "String replacement failed on parameter " +
-                        nextIndex + ": " + pattern);
+            Logger.WLOG(Logger.EUtils, "String replacement failed");
         }
         return this;
     }
@@ -138,9 +110,8 @@
     {
         String localisedNumber = _formatInteger(number);
 
-        // Try to replace with patterns %Ln, %nN, %n, %N
-        if (replace("%" + "L" + nextIndex, localisedNumber) ||
-                replace("%" + nextIndex + "N", localisedNumber) ||
+        // Try to replace with patterns %nN, %n, %N
+        if (replace("%" + nextIndex + "N", localisedNumber) ||
                 replace("%" + nextIndex, localisedNumber) ||
                 replace("%N", localisedNumber))
         {
@@ -149,9 +120,7 @@
         }
         else
         {
-            Logger.WLOG(Logger.EUtils,
-                        "Integer replacement failed on parameter " +
-                        nextIndex + ": " + pattern);
+            Logger.WLOG(Logger.EUtils, "Integer replacement failed");
         }
         return this;
     }
@@ -177,9 +146,7 @@
         }
         else
         {
-            Logger.WLOG(Logger.EUtils,
-                        "Character replacement failed on parameter " +
-                        nextIndex + ": " + pattern);
+            Logger.WLOG(Logger.EUtils, "Character replacement failed");
         }
         return this;
     }
@@ -241,12 +208,24 @@
 
         // Reset for next usage
         replaced = pattern;
-        nextIndex = startIndex;
+        nextIndex = 0;
 
         return result;
     }
 
     /**
+     * Gets a clone of this formatter. This can be used for caching preparsed
+     * Formatters.
+     *
+     * @return clone of the formatter, as if new Formatter were created with
+     * same pattern as current one.
+     */
+    public Formatter getClone()
+    {
+        return new Formatter(pattern);
+    }
+
+    /**
      * Formats localised text with specified parameters from an array.
      *
      * Note that the arg().arg().toString() is preferred method of
@@ -282,11 +261,11 @@
         return toString();
     }
     /**
-     * Applies convertion from european digits into arabic-indic digits
+     * Applies convertion from european digits into arabic-indic digits 
      * based on existing language settings
      *
      * @param str String which might contain european digits
-     * @return A string identical with the provided string but with the
+     * @return A string identical with the provided string but with the 
      *         european digits (if any) converted to arabic-indic digits
      */
     public static String formatDigits(String str)
@@ -397,7 +376,7 @@
      * based on existing language settings
      *
      * @param str String which might contain european digits
-     * @return A string identical with the provided string but with the
+     * @return A string identical with the provided string but with the 
      *         european digits (if any) converted to arabic-indic digits
      */
     private static native String _formatDigits(String str);
--- a/javacommons/utils/javasrc/com/nokia/mj/impl/utils/Id.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-
-package com.nokia.mj.impl.utils;
-
-/**
- * Localisation Identifier. This class is used to hide platform localisation
- * specifics.
- */
-public class Id
-{
-    private String iAvkonLocString = null;
-    private String iQtLocString = null;
-
-    /**
-     * Default constructor.
-     */
-    private Id()
-    {
-    }
-
-    public Id(String aAvkonLocString, String aQtLocString)
-    {
-        this.iAvkonLocString = aAvkonLocString;
-        this.iQtLocString = aQtLocString;
-    }
-
-    public String getString(int aPlatform)
-    {
-        if (aPlatform == ResourceLoader.QT)
-        {
-            return iQtLocString;
-        }
-        else
-        {
-            return iAvkonLocString;       
-        }
-    }     
-}
--- a/javacommons/utils/javasrc/com/nokia/mj/impl/utils/InstallerDetailedErrorMessage.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/javasrc/com/nokia/mj/impl/utils/InstallerDetailedErrorMessage.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-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"
@@ -22,6 +22,9 @@
 
 /**
  * Class defining Installer detailed error messages.
+ *
+ * @author Nokia Corporation
+ * @version 1.0
  */
 public final class InstallerDetailedErrorMessage extends ErrorMessageBase
 {
@@ -39,8 +42,6 @@
     public static final int UNINST_BLOCKED = 11;
     public static final int INTERNAL_ERROR = 12;
     public static final int NO_MEM_MB = 13;
-    public static final int INST_CANCEL = 14;
-    public static final int UNINST_CANCEL = 15;
 
     /*** ----------------------------- PUBLIC ------------------------------ */
     /*** ---------------------------- PROTECTED --------------------------- */
@@ -57,42 +58,19 @@
             return iMessageTable;
         }
         Hashtable messageTable = new Hashtable();
-        if (getLocaleIdQt() == null)
-        {
-            messageTable.put(new Integer(NO_MEM), "no_mem_detail");
-            messageTable.put(new Integer(NO_MEM_MB), "no_mem_detail_mb");
-            messageTable.put(new Integer(NO_NET), "no_net_detail");
-            messageTable.put(new Integer(ATTR_BAD_SYNTAX), "attr_bad_syntax");
-            messageTable.put(new Integer(ATTR_MISSING), "attr_missing");
-            messageTable.put(new Integer(ATTR_MISMATCH), "attr_mismatch");
-            messageTable.put(new Integer(ATTR_UNSUPPORTED), "attr_unsupported_value");
-            messageTable.put(new Integer(ATTR_HANDLING_FAILED), "attr_handling_failed");
-            messageTable.put(new Integer(CERT_UNSUPPORTED), "cert_unsupported");
-            messageTable.put(new Integer(PROT_PKG_MISUSE), "protected_pkg_misuse");
-            messageTable.put(new Integer(DIFFERENT_SIGNERS), "different_signers");
-            messageTable.put(new Integer(UNINST_BLOCKED), "uninst_blocked");
-            messageTable.put(new Integer(INTERNAL_ERROR), "internal");
-            messageTable.put(new Integer(INST_CANCEL), "Installation cancelled.");
-            messageTable.put(new Integer(UNINST_CANCEL), "Uninstallation cancelled.");
-        }
-        else
-        {
-            messageTable.put(new Integer(NO_MEM), "error_no_mem_detail");
-            messageTable.put(new Integer(NO_MEM_MB), "error_no_mem_detail_mb");
-            messageTable.put(new Integer(NO_NET), "error_no_net_detail");
-            messageTable.put(new Integer(ATTR_BAD_SYNTAX), "error_bad_syntax");
-            messageTable.put(new Integer(ATTR_MISSING), "error_attr_missing");
-            messageTable.put(new Integer(ATTR_MISMATCH), "error_attr_mismatch");
-            messageTable.put(new Integer(ATTR_UNSUPPORTED), "error_attr_unsupported_value");
-            messageTable.put(new Integer(ATTR_HANDLING_FAILED), "error_attr_handling_failed");
-            messageTable.put(new Integer(CERT_UNSUPPORTED), "error_cert_unsupported");
-            messageTable.put(new Integer(PROT_PKG_MISUSE), "error_pkg_misuse");
-            messageTable.put(new Integer(DIFFERENT_SIGNERS), "error_different_signers");
-            messageTable.put(new Integer(UNINST_BLOCKED), "uninst_blocked");
-            messageTable.put(new Integer(INTERNAL_ERROR), "internal_error");
-            messageTable.put(new Integer(INST_CANCEL), "error_cancel");
-            messageTable.put(new Integer(UNINST_CANCEL), "error_uninst_cancel");
-        }
+        messageTable.put(new Integer(NO_MEM), "no_mem_detail");
+        messageTable.put(new Integer(NO_MEM_MB), "no_mem_detail_mb");
+        messageTable.put(new Integer(NO_NET), "no_net_detail");
+        messageTable.put(new Integer(ATTR_BAD_SYNTAX), "attr_bad_syntax");
+        messageTable.put(new Integer(ATTR_MISSING), "attr_missing");
+        messageTable.put(new Integer(ATTR_MISMATCH), "attr_mismatch");
+        messageTable.put(new Integer(ATTR_UNSUPPORTED), "attr_unsupported_value");
+        messageTable.put(new Integer(ATTR_HANDLING_FAILED), "attr_handling_failed");
+        messageTable.put(new Integer(CERT_UNSUPPORTED), "cert_unsupported");
+        messageTable.put(new Integer(PROT_PKG_MISUSE), "protected_pkg_misuse");
+        messageTable.put(new Integer(DIFFERENT_SIGNERS), "different_signers");
+        messageTable.put(new Integer(UNINST_BLOCKED), "uninst_blocked");
+        messageTable.put(new Integer(INTERNAL_ERROR), "internal");
         iMessageTable = messageTable;
         return iMessageTable;
     }
@@ -106,14 +84,7 @@
     {
         if (iRes == null)
         {
-            if (getLocaleIdQt() == null)
-            {
-                iRes = ResourceLoader.getInstance("javainstallation", "qtn_java_inst_error_");
-            }
-            else
-            {
-                iRes = ResourceLoader.getInstance("javaapplicationinstaller", "txt_java_inst_info_");
-            }
+            iRes = ResourceLoader.getInstance("javainstallation", "qtn_java_inst_error_");
         }
         return iRes;
     }
--- a/javacommons/utils/javasrc/com/nokia/mj/impl/utils/InstallerErrorMessage.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/javasrc/com/nokia/mj/impl/utils/InstallerErrorMessage.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-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"
@@ -22,31 +22,34 @@
 
 /**
  * Class defining Installer short error messages.
+ *
+ * @author Nokia Corporation
+ * @version 1.0
  */
 public final class InstallerErrorMessage extends ErrorMessageBase
 {
     // Installation error codes.
-    public static final int INST_NO_MEM = 1 + ErrorMessageBase.INSTALLER_RANGE_START;
-    public static final int INST_NO_NET = 2 + ErrorMessageBase.INSTALLER_RANGE_START;
-    public static final int INST_CORRUPT_PKG = 3 + ErrorMessageBase.INSTALLER_RANGE_START;
-    public static final int INST_COMPAT_ERR = 4 + ErrorMessageBase.INSTALLER_RANGE_START;
-    public static final int INST_AUTHORIZATION_ERR = 5 + ErrorMessageBase.INSTALLER_RANGE_START;
-    public static final int INST_AUTHENTICATION_ERR = 6 + ErrorMessageBase.INSTALLER_RANGE_START;
-    public static final int INST_PUSH_REG_ERR = 7 + ErrorMessageBase.INSTALLER_RANGE_START;
-    public static final int INST_UNEXPECTED_ERR = 8 + ErrorMessageBase.INSTALLER_RANGE_START;
-    public static final int INST_CANCEL = 9 + ErrorMessageBase.INSTALLER_RANGE_START;
+    public static final int INST_NO_MEM = 1;
+    public static final int INST_NO_NET = 2;
+    public static final int INST_CORRUPT_PKG = 3;
+    public static final int INST_COMPAT_ERR = 4;
+    public static final int INST_AUTHORIZATION_ERR = 5;
+    public static final int INST_AUTHENTICATION_ERR = 6;
+    public static final int INST_PUSH_REG_ERR = 7;
+    public static final int INST_UNEXPECTED_ERR = 8;
+    public static final int INST_CANCEL = 9;
 
     // Uninstallation error codes.
-    public static final int UNINST_NOT_ALLOWED = 10 + ErrorMessageBase.INSTALLER_RANGE_START;
-    public static final int UNINST_UNEXPECTED_ERR = 11 + ErrorMessageBase.INSTALLER_RANGE_START;
-    public static final int UNINST_CANCEL = 12 + ErrorMessageBase.INSTALLER_RANGE_START;
+    public static final int UNINST_NOT_ALLOWED = 101;
+    public static final int UNINST_UNEXPECTED_ERR = 102;
+    public static final int UNINST_CANCEL = 103;
 
     /**
      * Error codes for other than install and uninstall operations.
      * Do not use these error codes in installation or uninstallation.
      * These are only used in installer "list" and "test" commands.
      */
-    public static final int OTHER_UNEXPECTED_ERR = 13 + ErrorMessageBase.INSTALLER_RANGE_START;
+    public static final int OTHER_UNEXPECTED_ERR = 201;
 
     /*** ----------------------------- PUBLIC ------------------------------ */
     /*** ---------------------------- PROTECTED --------------------------- */
@@ -63,38 +66,19 @@
             return iMessageTable;
         }
         Hashtable messageTable = new Hashtable();
-        if (getLocaleIdQt() == null)
-        {
-            messageTable.put(new Integer(INST_NO_MEM), "no_mem");
-            messageTable.put(new Integer(INST_NO_NET), "no_net");
-            messageTable.put(new Integer(INST_CORRUPT_PKG), "corrupt_pkg");
-            messageTable.put(new Integer(INST_COMPAT_ERR), "compat_err");
-            messageTable.put(new Integer(INST_AUTHORIZATION_ERR), "authorization_err");
-            messageTable.put(new Integer(INST_AUTHENTICATION_ERR), "authentication_err");
-            messageTable.put(new Integer(INST_PUSH_REG_ERR), "push_reg_err");
-            messageTable.put(new Integer(INST_UNEXPECTED_ERR), "unexpected");
-            messageTable.put(new Integer(INST_CANCEL), "cancel");
-            messageTable.put(new Integer(UNINST_NOT_ALLOWED), "uninst_not_allowed");
-            messageTable.put(new Integer(UNINST_UNEXPECTED_ERR), "uninst_unexpected");
-            messageTable.put(new Integer(UNINST_CANCEL), "uninst_cancel");
-            messageTable.put(new Integer(OTHER_UNEXPECTED_ERR), "other_unexpected");
-        }
-        else
-        {
-            messageTable.put(new Integer(INST_NO_MEM), "info_there_is_not_enough_space_currently");
-            messageTable.put(new Integer(INST_NO_NET), "info_network_is_unavailable_currently");
-            messageTable.put(new Integer(INST_CORRUPT_PKG), "info_installation_package_is_invalid");
-            messageTable.put(new Integer(INST_COMPAT_ERR), "info_application_is_not_compatible_with");
-            messageTable.put(new Integer(INST_AUTHORIZATION_ERR), "info_there_is_a_security_issue_with_this");
-            messageTable.put(new Integer(INST_AUTHENTICATION_ERR), "info_there_is_a_security_issue_with_this");
-            messageTable.put(new Integer(INST_PUSH_REG_ERR), "info_an_unexpected_error_occurred");
-            messageTable.put(new Integer(INST_UNEXPECTED_ERR), "info_an_unexpected_error_occurred");
-            messageTable.put(new Integer(INST_CANCEL), "info_application_not_installed");
-            messageTable.put(new Integer(UNINST_NOT_ALLOWED), "info_application_cannot_be_deleted");
-            messageTable.put(new Integer(UNINST_UNEXPECTED_ERR), "installer_info_uninstallation_failed");
-            messageTable.put(new Integer(UNINST_CANCEL), "info_application_not_deleted");
-            messageTable.put(new Integer(OTHER_UNEXPECTED_ERR), "info_an_unexpected_error_occurred");
-        }
+        messageTable.put(new Integer(INST_NO_MEM), "no_mem");
+        messageTable.put(new Integer(INST_NO_NET), "no_net");
+        messageTable.put(new Integer(INST_CORRUPT_PKG), "corrupt_pkg");
+        messageTable.put(new Integer(INST_COMPAT_ERR), "compat_err");
+        messageTable.put(new Integer(INST_AUTHORIZATION_ERR), "authorization_err");
+        messageTable.put(new Integer(INST_AUTHENTICATION_ERR), "authentication_err");
+        messageTable.put(new Integer(INST_PUSH_REG_ERR), "push_reg_err");
+        messageTable.put(new Integer(INST_UNEXPECTED_ERR), "unexpected");
+        messageTable.put(new Integer(INST_CANCEL), "cancel");
+        messageTable.put(new Integer(UNINST_NOT_ALLOWED), "uninst_not_allowed");
+        messageTable.put(new Integer(UNINST_UNEXPECTED_ERR), "uninst_unexpected");
+        messageTable.put(new Integer(UNINST_CANCEL), "uninst_cancel");
+        messageTable.put(new Integer(OTHER_UNEXPECTED_ERR), "other_unexpected");
         iMessageTable = messageTable;
         return iMessageTable;
     }
@@ -108,14 +92,7 @@
     {
         if (iRes == null)
         {
-            if (getLocaleIdQt() == null)
-            {
-                iRes = ResourceLoader.getInstance("javainstallation", "qtn_java_inst_error_");
-            }
-            else
-            {
-                iRes = ResourceLoader.getInstance("common_errors", "txt_error_");
-            }
+            iRes = ResourceLoader.getInstance("javainstallation", "qtn_java_inst_error_");
         }
         return iRes;
     }
--- a/javacommons/utils/javasrc/com/nokia/mj/impl/utils/LocalizedTextProvider.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/javasrc/com/nokia/mj/impl/utils/LocalizedTextProvider.java	Wed Oct 13 14:23:59 2010 +0300
@@ -28,5 +28,5 @@
      * @return           the text associated with the provided
      *                   identifier and parameters
      */
-    public abstract String getText(Id aTextId, Object[] aTextParams);
+    public abstract String getText(String aTextId, Object[] aTextParams);
 }
--- a/javacommons/utils/javasrc/com/nokia/mj/impl/utils/Logger.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/javasrc/com/nokia/mj/impl/utils/Logger.java	Wed Oct 13 14:23:59 2010 +0300
@@ -81,8 +81,6 @@
     public static final int EJavaAppMngrPlugin  = 35;
     public static final int EJavaBroadcast      = 36;
     public static final int EJavaAMMS	          = 37;
-    public static final int EJavaSettings       = 38;
-	public static final int EJavaCentrep       = 40;
     // add name of new components here
 
 
@@ -140,8 +138,6 @@
         false,  //EJavaAppMngrPlugin = 35;
         false,  //EJavaBroadcast     = 36;
         false,  //EJavaAMMS					 = 37;
-        false,  //EJavaSettings 		 = 38;
-		false   //EJavaCentrep       = 40;
         // add  new components here
     };
 
--- a/javacommons/utils/javasrc/com/nokia/mj/impl/utils/ResourceLoader.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/javasrc/com/nokia/mj/impl/utils/ResourceLoader.java	Wed Oct 13 14:23:59 2010 +0300
@@ -34,14 +34,12 @@
  *   Label noteLabel = createLabel(
  *       res.string("note"), horizontalSpan, labelStyle);
  * </pre>
+ *
+ * @author Nokia Corporation
+ * @version 1.0
  */
 public class ResourceLoader
 {
-    /** AVKON UI identifier. */
-    public static final int AVKON = 1;
-    /** QT UI identifier. */
-    public static final int QT = 2;
-
     /** Localisation resource basepath */
     private static final String LOC_RESOURCE_BASE = "/resources/com/nokia/mj/impl/";
 
@@ -52,33 +50,10 @@
     private Hashtable resourceMap = new Hashtable();
 
     /** Resource name prefix */
-    private String prefix = null;
-
-    /** Platform localisation type. */
-    private int locType = -1;
+    private String prefix;
 
     /*** ----------------------------- PUBLIC ------------------------------ */
 
-    public static ResourceLoader getInstance(String avkonFileName,
-                                             String avkonPrefix,
-                                             String qtFileName,
-                                             String qtPrefix)
-    {
-        // Construct key from filenames and prefixes, this is the same
-        // between platforms.
-        String key = (new StringBuffer()).append(avkonFileName).append(":")
-            .append(avkonPrefix).append(":").append(qtFileName).append(":")
-            .append(qtPrefix).toString();
-        ResourceLoader result = (ResourceLoader)resourceLoaders.get(key);
-
-        if (result == null)
-        {
-            result = new ResourceLoader(avkonFileName, avkonPrefix, qtFileName, qtPrefix);
-            resourceLoaders.put(key, result);
-        }
-        return result;
-    }
-
     /**
      * Returns a resource loader instance.
      *
@@ -99,46 +74,6 @@
     }
 
     /**
-     * Private constructor. Loads localisation resource file.
-     * On Avkon UI it's resources are loaded. On Qt platfor it's
-     * resource is first read and if that fails Avkon one is read.
-     *
-     * @param avkonFileName Avkon localisation resource file.
-     * @param avkonPrefix   Avkon logical string prefix.
-     * @param qtFileName    Qt localisation resource file.
-     * @param qtPrefix      Qt logical string prefix.
-     */
-    private ResourceLoader(String avkonFileName,
-                           String avkonPrefix,
-                           String qtFileName,
-                           String qtPrefix)
-    {
-        String localeId = getLocaleIdQt();
-
-        if (localeId == null)
-        {
-            locType = AVKON;
-            prefix = avkonPrefix;
-            loadFile(avkonFileName, true);
-        }
-        else
-        {
-            if (!loadFile(qtFileName, false))
-            {
-                // Fallback to Avkon
-                locType = AVKON;
-                prefix = avkonPrefix;
-                loadFile(avkonFileName, true);
-            }
-            else
-            {
-                locType = QT;
-                prefix = qtPrefix;
-            }
-        }
-    }
-
-    /**
      * Creates resource loader, using the current locale of the environment.
      *
      * @param resourceName name of the resource
@@ -146,9 +81,8 @@
      */
     public ResourceLoader(String resourceName, String aPrefix)
     {
-        locType = AVKON;
         prefix = aPrefix;
-        loadFile(resourceName, true);  // Avkon
+        loadFile(resourceName);
     }
 
     /**
@@ -160,60 +94,7 @@
      */
     public Formatter format(String id)
     {
-        return new Formatter(string(id), locType);
-    }
-
-    /**
-     * Get a string formatter of a given resource id.
-     *
-     * @param avkonId Avkon resource id.
-     * @param qtId Qt resource id.
-     * @return formatter instance
-     * @see Formatter
-     */
-    public Formatter format(String avkonId, String qtId)
-    {
-        if (locType == AVKON)
-        {
-            return new Formatter(string(avkonId), locType);
-        }
-        else
-        {
-            return new Formatter(string(qtId), locType);
-        }
-    }
-
-    /**
-     * Formats localised text with specified parameters from an array.
-     *
-     * @param avkonId Avkon resource id.
-     * @param qtId Qt resource id.
-     * @param textParameters parameters to be filled into the text.
-     * @return localised text formatted with the provided parameters.
-     * @see Formatter
-     */
-    public String format(String avkonId, String qtId, Object[] textParameters)
-    {
-        if (locType == AVKON)
-        {
-            return new Formatter(string(avkonId), locType).format(textParameters);
-        }
-        else
-        {
-            return new Formatter(string(qtId), locType).format(textParameters);
-        }
-    }
-
-    /**
-     * Get a string formatter of a given resource id.
-     *
-     * @param id resource id
-     * @return formatter instance
-     * @see Formatter
-     */
-    public Formatter format(Id id)
-    {
-        return new Formatter(id.getString(locType), locType);
+        return new Formatter(string(id));
     }
 
     /**
@@ -226,24 +107,10 @@
      */
     public String format(String id, Object[] textParameters)
     {
-        return new Formatter(string(id), locType).format(textParameters);
+        return new Formatter(string(id)).format(textParameters);
     }
 
     /**
-     * Formats localised text with specified parameters from an array.
-     *
-     * @param id resource id
-     * @param textParameters parameters to be filled into the text
-     * @return localised text formatted with the provided parameters
-     * @see Formatter
-     */
-    public String format(Id id, Object[] textParameters)
-    {
-        return new Formatter(string(id.getString(locType)), locType).format(textParameters);
-    }
-
-
-    /**
      * Get a plain string resource with a given resource id.
      *
      * @param id resource id, either with prefix or without
@@ -305,77 +172,35 @@
         return "sc";
     }
 
-    /**
-     * Return locale id string on Qt platform.
-     *
-     * @return Qt Locale Id String, null if not in Qt.
-     */
-    public static String getLocaleIdQt()
-    {
-        return _getLocaleIdQt();
-    }
-
-
     /*** ----------------------------- PRIVATE ---------------------------- */
 
     /**
-     * Loads the resources from .loc type file.
-     *
-     * @param resourceName name of the resource file.
-     * @param aIs InputStream pointing to resource. It will be closed after use.
-     * @param true if operation succeed.
+     * Loads the resources from .loc type file
      */
-    private boolean loadFile(String resourceName, boolean avkon)
+    private void loadFile(String resourceName)
     {
         InputStream is = null;
 
-        if (!avkon)  // Qt resources.
+        // Load with real locale id
+        is = this.getClass().getResourceAsStream(
+                 LOC_RESOURCE_BASE + resourceName + "_" + getLocaleId() + ".loc");
+        if (is == null)
         {
-            String langName = getLocaleIdQt();
-
-            // Emulator returns falsely en_GB as engineering English locale name.
-            if (langName.equals("en_GB"))
-            {
-                langName = "en";
-            }
-
-            // Load with real locale id
+            // Load the engineering english
             is = this.getClass().getResourceAsStream(
-                LOC_RESOURCE_BASE + resourceName + "_" + langName + ".loc");
-
-            if (is == null)
-            {
-                /*
-                 * Does not exist. No need to continue as avkon file cannot
-                 * found using qt name.
-                 */
-                return false;
-            }
+                     LOC_RESOURCE_BASE + resourceName + "_sc" + ".loc");
         }
-        else  // Avkon resources.
+        if (is == null)
         {
-            // Load with real locale id
+            // Load the reference engineering english
             is = this.getClass().getResourceAsStream(
-                 LOC_RESOURCE_BASE + resourceName + "_" + getLocaleId() + ".loc");
-
-            if (is == null)
-            {
-                // Load the engineering english
-                is = this.getClass().getResourceAsStream(
-                         LOC_RESOURCE_BASE + resourceName + "_sc" + ".loc");
-            }
-            if (is == null)
-            {
-                // Load the reference engineering english
-                is = this.getClass().getResourceAsStream(
-                         LOC_RESOURCE_BASE + resourceName + ".loc");
-            }
-            if (is == null)
-            {
-                Logger.WLOG(Logger.EUtils,
-                            "Cannot load resource file: " + resourceName);
-                return false;
-            }
+                     LOC_RESOURCE_BASE + resourceName + ".loc");
+        }
+        if (is == null)
+        {
+            Logger.WLOG(Logger.EUtils,
+                        "Cannot load resource file: " + resourceName);
+            return;
         }
 
         try
@@ -423,8 +248,6 @@
                         "Resource file " + resourceName + " handling failed: "
                         + ex.getMessage());
         }
-
-        return true;
     }
 
     /**
@@ -543,11 +366,4 @@
      */
     private native int _getLocaleId();
 
-    /**
-     * Get Locale Id on Qt platform.
-     *
-     * @return locale Id string. If not in Qt null.
-     */
-    private static native String _getLocaleIdQt();
-
 }
--- a/javacommons/utils/javasrc/com/nokia/mj/impl/utils/Version.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/javasrc/com/nokia/mj/impl/utils/Version.java	Wed Oct 13 14:23:59 2010 +0300
@@ -58,12 +58,7 @@
         {
             return null;
         }
-        // Remove all invalid characters from string
-        String str = normalizeVersion(aStr);
-        if (str.length() == 0)
-        {
-            return null;
-        }
+        String str = aStr.trim();
 
         int major = 0;
         int minor = 0;
@@ -237,23 +232,4 @@
         }
         return buf.toString();
     }
-
-    /**
-     * Remove the illegal characters from version string,
-     * for example "1.1 rev.2" becomes "1.1.2"
-     */
-    private static String normalizeVersion(String aString)
-    {
-        StringBuffer buf = new StringBuffer();
-        int len = aString.length();
-        for (int ind = 0; ind < len; ind++)
-        {
-            char ch = aString.charAt(ind);
-            if ((ch == '.') || Character.isDigit(ch))
-            {
-                buf.append(ch);
-            }
-        }
-        return buf.toString();
-    }
 }
--- a/javacommons/utils/src.s60/formatternative.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/src.s60/formatternative.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -16,14 +16,10 @@
 */
 
 
+//#include <avkon.rsg>
 #include <memory>
 #include <stringresourcereader.h>
-
-#ifdef RD_JAVA_UI_QT
-#include <QLocale>
-#else // RD_JAVA_UI_QT
 #include <AknUtils.h>
-#endif // RD_JAVA_UI_QT
 
 #include "com_nokia_mj_impl_utils_Formatter.h"
 #include "com_nokia_mj_impl_utils_ResourceLoader.h"
@@ -49,6 +45,7 @@
 const TInt KMaxNumberFormatSize = 40;
 using namespace java::util;
 
+// _LIT( KAvkonResFile, "z:\\resource\\avkon.rsc" );
 
 JNIEXPORT jstring JNICALL Java_com_nokia_mj_impl_utils_Formatter__1formatInteger
 (JNIEnv *aJni, jobject, jint aNumber)
@@ -71,10 +68,7 @@
               "Cannot format %d to current locale. Error: %d", aNumber, error);
     }
 
-#ifndef RD_JAVA_UI_QT
-        AknTextUtils::LanguageSpecificNumberConversion( numberPtr );
-#endif // RD_JAVA_UI_QT
-
+    AknTextUtils::LanguageSpecificNumberConversion( numberPtr );
     return aJni->NewString(
                (const jchar*)numberPtr.Ptr(), numberPtr.Length());
 }
@@ -122,24 +116,8 @@
     std::wstring wstr = JniUtils::jstringToWstring(aEnv, str);
     HBufC* buf = S60CommonUtils::wstringToDes(wstr.c_str());
     TPtr ptr(buf->Des());
-
-#ifndef RD_JAVA_UI_QT
     AknTextUtils::LanguageSpecificNumberConversion( ptr );
-#endif // RD_JAVA_UI_QT
     ret = S60CommonUtils::NativeToJavaString(*aEnv, ptr);
     delete buf; buf = NULL;
     return ret;
 }
-
-JNIEXPORT jstring JNICALL Java_com_nokia_mj_impl_utils_ResourceLoader__1getLocaleIdQt
-  (JNIEnv *env, jclass)
-{
-#ifdef RD_JAVA_UI_QT
-    QString localeName = QLocale::system().name();
-    jstring loc = env->NewString(localeName.utf16(), localeName.size());
-    return loc;
-#else // RD_JAVA_UI_QT
-    (void)env;     // just to suppress a warning
-    return NULL;
-#endif // RD_JAVA_UI_QT
-}
--- a/javacommons/utils/src.s60/javaoslayer.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/src.s60/javaoslayer.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -39,7 +39,6 @@
 const char * const BOOT_CLASSPATH_MIDP_FILE = "midpodclist";
 const char * const BOOT_CLASSPATH_INSTALLER_FILE = "installerodclist";
 const char * const BOOT_CLASSPATH_TCKRUNNER_FILE = "tckrunnerodclist";
-const char * const BOOT_CLASSPATH_JAVACONTROLPANEL_FILE = "javacontrolpanelodclist";
 
 _LIT(KStartUpTraceDir, "java\\full");
 _LIT(KStartUpTraceFile, "startup.txt");
@@ -304,10 +303,6 @@
     {
         path.append(BOOT_CLASSPATH_TCKRUNNER_FILE);
     }
-    else if (BOOT_CLASSPATH_JAVACONTROLPANEL == pathType)
-    {
-        path.append(BOOT_CLASSPATH_JAVACONTROLPANEL_FILE);
-    }
     else
     {
         path.append(BOOT_CLASSPATH_MIDP_FILE);
--- a/javacommons/utils/src/debugutils.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/src/debugutils.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -39,28 +39,3 @@
     ThreadDump::closeDumper();
 }
 
-/**
- * A utility for getting the stack trace for further processing.
- * @param th The throwable from where the stack trace should be get.
- * @param printStream Where to print the stack trace.
- */
-JNIEXPORT void JNICALL
-Java_com_nokia_mj_impl_utils_DebugUtils__1getStackTrace
-(JNIEnv* jniEnv, jclass, jthrowable th, jobject printStream)
-{
-    /*
-     * call Throwable.printStackTrace(java.io.PrintStream)
-     * this method is not part of CLDC spec, but it's supported by VM vendor.
-     */
-    jclass classThrowable = jniEnv->GetObjectClass(th);
-    if (classThrowable)
-    {
-        jmethodID methodId = jniEnv->GetMethodID(classThrowable,
-                             "printStackTrace",
-                             "(Ljava/io/PrintStream;)V");
-        if (methodId)
-        {
-            jniEnv->CallVoidMethod(th, methodId, printStream);
-        }
-    }
-}
--- a/javacommons/utils/src/javacommonutils.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/src/javacommonutils.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -285,37 +285,7 @@
     std::string result;
     result.insert(0, bptr->data, bptr->length);
     BIO_free_all(b64);
-    CRYPTO_cleanup_all_ex_data();
-    
-    return result;
-}
 
-OS_EXPORT std::wstring JavaCommonUtils::wbase64encode(const std::wstring& aData)
-{
-    BIO* b64  = BIO_new(BIO_f_base64());
-    if (NULL == b64)
-    {
-        return L"";
-    }
-    BIO_set_flags(b64, BIO_FLAGS_BASE64_NO_NL);
-    BIO* bmem = BIO_new(BIO_s_mem());
-
-    b64 = BIO_push(b64, bmem);
-    BIO_write(b64, aData.c_str(), aData.length() * 2);
-    BIO_flush(b64);
-
-    BUF_MEM* bptr;
-    BIO_get_mem_ptr(b64, &bptr);
-
-    std::wstring result;
-    // convert each char to wchar
-    for (int i = 0; i < bptr->length; i++)
-    {
-        result.push_back((wchar_t)*(bptr->data + i));
-    }
-    BIO_free_all(b64);
-    CRYPTO_cleanup_all_ex_data();
-    
     return result;
 }
 
@@ -340,8 +310,7 @@
 
     BIO_free_all(bmem);
     delete[] buf;
-    CRYPTO_cleanup_all_ex_data();
-    
+
     return result;
 }
 
--- a/javacommons/utils/src/javainifileutils.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/src/javainifileutils.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -157,9 +157,9 @@
         }
         rewind(iniFile);
         data = new char[len+1];
+        data[len] = 0;
         if (data != 0)
         {
-            data[len] = 0;
             fread(data, sizeof(char), len, iniFile);
         }
         fclose(iniFile);
--- a/javacommons/utils/src/logger.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/src/logger.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -30,10 +30,6 @@
 #include <sstream>
 #include <iomanip>
 
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-
 #include "jdebug_omj.h"
 #include "logger.h"
 #include "javacommonutils.h"
@@ -340,16 +336,14 @@
     int logFileNameLen = strlen(fileName);
     TPtr8 fileNamePtr((unsigned char*)fileName, logFileNameLen, logFileNameLen);
     RBuf nameBuf;
-    int rc = nameBuf.Create(fileNamePtr.MaxLength());
-    if (rc == KErrNone)
-    {
-        nameBuf.Copy(fileNamePtr);
+    nameBuf.Create(fileNamePtr.MaxLength());
+    nameBuf.Copy(fileNamePtr);
 
-        TInt len = strlen(txt);
-        TPtr8 ptr((unsigned char*)txt, len, len);
-        RFileLogger::Write(KJavaLogDir, nameBuf, EFileLoggingModeAppendRaw, ptr);
-        nameBuf.Close();
-    }
+    TInt len = strlen(txt);
+    TPtr8 ptr((unsigned char*)txt, len, len);
+    RFileLogger::Write(KJavaLogDir, nameBuf, EFileLoggingModeAppendRaw, ptr);
+
+    nameBuf.Close();
 
 #else //J_LOG_USE_RLOGGER_ENABLED
 
--- a/javacommons/utils/tsrc/build/java/build.xml	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-<!--
-#
-# Copyright (c) 2010 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 name="javacommonutilstest" basedir="." default="deploy">
-
-  <import file="../../../../../build/utilities.xml"/>
-  <property file="../../../../../build/unittest.properties"/>
-
-  <property name="java.src.paths" value="../../javasrc"/>
-  <property name="java.bin.root" value="${env.JAVA_BIN_ROOT}"/>
-
-  <target name="run" depends="deploy">
-      <echo>Running BufferedReaderTests</echo>
-      <exec executable="${java.bin.root}/bin/javaunittester">
-          <arg line="-mainclass=com.nokia.mj.impl.utils.BufferedReaderTests"/>
-      </exec>
-
-      <echo>Running ConcurrencyTests</echo>
-      <exec executable="${java.bin.root}/bin/javaunittester">
-          <arg line="-mainclass=com.nokia.mj.impl.utils.concurrent.ConcurrentTests"/>
-      </exec>
-
-      <echo>Running SystemPropertyTests</echo>
-      <exec executable="${java.bin.root}/bin/javaunittester">
-          <arg line="-mainclass=com.nokia.mj.impl.rt.SystemPropertyTests"/>
-      </exec>
-
-      <echo>Running DebugUtilsTests tests</echo>
-      <exec executable="${java.bin.root}/bin/javaunittester">
-          <arg line="-mainclass=com.nokia.mj.impl.utils.DebugUtilsTests"/>
-      </exec>
-  </target>
-
-  <target name="main" depends="clean,run"/>
-
-</project>
--- a/javacommons/utils/tsrc/build/java/dummy.pro	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-#
-# Copyright (c) 2010 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: A dummy pro file for generating a Jar file. Keeping
-#              build system happy.
-#
-
-TEMPLATE = subdirs
--- a/javacommons/utils/tsrc/build/native/exports.inf	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-PRJ_EXPORTS
-
-#include "../../../../inc/build_defines.hrh"
-#ifdef RD_JAVA_SYMBIAN_TARGET
-../../tst.bat        /epoc32/winscw/c/tst.bat
-#endif // RD_JAVA_SYMBIAN_TARGET
--- a/javacommons/utils/tsrc/build/native/testjavautils.pro	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-#
-# Copyright (c) 2010 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:
-#
-
-TEMPLATE=app
-TARGET=testjavautils
-CONFIG += omj no_icon stl
-CONFIG -= qt
-
-LIBS += -lCppUTest
-
-INCLUDEPATH += ../../../../../tools/cpputest/include/CppUTest
-
-INCLUDEPATH += ../../../../../tools/cpputest/include/Platforms/Symbian
-INCLUDEPATH += ../testcoreui/src
-TARGET.CAPABILITY = all -tcb
-
-#SOURCES += ../../src/SymbianAllTests.cpp
-SOURCES += ../../src/AllTests.cpp
-SOURCES += ../../src/uidtests.cpp
-SOURCES += ../../src/testbase64.cpp
-SOURCES += ../../src/testlanguageresource.cpp
-SOURCES += ../../src/testoslayer.cpp
-
-include(../../../../../build/omj.pri)
--- a/javacommons/utils/tsrc/javasrc/com/nokia/mj/impl/rt/SystemPropertyTests.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/tsrc/javasrc/com/nokia/mj/impl/rt/SystemPropertyTests.java	Wed Oct 13 14:23:59 2010 +0300
@@ -19,7 +19,7 @@
 package com.nokia.mj.impl.rt;
 
 
-import com.nokia.mj.impl.rt.test.UnitTestSuiteCreator;
+import com.nokia.mj.impl.installer.utils.InstallerMain;
 import com.nokia.mj.impl.rt.support.JvmInternal;
 
 import j2meunit.framework.Test;
@@ -30,11 +30,11 @@
 /**
  * SystemProperty unit tests.
  */
-public class SystemPropertyTests extends TestCase implements UnitTestSuiteCreator
+public class SystemPropertyTests extends TestCase implements InstallerMain
 {
 
     // Begin j2meunit test framework setup
-    public TestSuite createTestSuite(String[] args)
+    public void installerMain(String[] args)
     {
         TestSuite suite = new TestSuite(this.getClass().getName());
 
@@ -62,7 +62,8 @@
             }
         }));
 
-        return suite;
+ 
+        com.nokia.mj.impl.utils.OmjTestRunner.run(suite);
 
     }
 
@@ -117,7 +118,7 @@
             res = System.getProperty(testPropertyKey1);
             assertTrue("Fail3, got: "+ res, testPropertyVal2.equals(res));
 
-            // Set a null value to same system property and check that an
+            // Set a null value to same system property and check that an 
             // exception is thrown and the value is not changed.
             try
             {
@@ -145,7 +146,7 @@
             res = System.getProperty(testPropertyKey2);
             assertTrue("Fail7, got: "+ res, testPropertyVal4.equals(res));
 
-            // Set a null value to same user property and check that an
+            // Set a null value to same user property and check that an 
             // exception is thrown and the value is not changed.
             try
             {
@@ -158,7 +159,7 @@
             res = System.getProperty(testPropertyKey2);
             assertTrue("Fail8, got: "+ res, testPropertyVal4.equals(res));
 
-            // Set the same system and user property and check that the user property
+            // Set the same system and user property and check that the user property 
             // doesn't override the system property.
             JvmInternal.setSystemProperty(testPropertyKey3, testPropertyVal5);
             JvmInternal.setUserProperty(testPropertyKey3, testPropertyVal6);
--- a/javacommons/utils/tsrc/javasrc/com/nokia/mj/impl/utils/BufferedReaderTests.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/tsrc/javasrc/com/nokia/mj/impl/utils/BufferedReaderTests.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -18,7 +18,7 @@
 
 package com.nokia.mj.impl.utils;
 
-import com.nokia.mj.impl.rt.test.UnitTestSuiteCreator;
+import com.nokia.mj.impl.installer.utils.InstallerMain;
 import com.nokia.mj.impl.utils.BufferedReader;
 
 import java.io.ByteArrayInputStream;
@@ -33,14 +33,14 @@
 /**
  * BufferedReader unit tests.
  */
-public class BufferedReaderTests extends TestCase implements UnitTestSuiteCreator
+public class BufferedReaderTests extends TestCase implements InstallerMain
 {
 
     private static final String TEST_DATA = "one\ntwo\nthree";
     private static final int MAX_BUF_SIZE = 16;
 
     // Begin j2meunit test framework setup
-    public TestSuite createTestSuite(String[] args)
+    public void installerMain(String[] args)
     {
         TestSuite suite = new TestSuite(this.getClass().getName());
 
@@ -80,7 +80,7 @@
             }
         }));
 
-        return suite;
+        com.nokia.mj.impl.utils.OmjTestRunner.run(suite);
     }
 
     public BufferedReaderTests()
--- a/javacommons/utils/tsrc/javasrc/com/nokia/mj/impl/utils/DebugUtilsTests.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-
-package com.nokia.mj.impl.utils;
-
-import com.nokia.mj.impl.utils.DebugUtils;
-
-import com.nokia.mj.impl.rt.test.UnitTestSuiteCreator;
-import j2meunit.framework.Test;
-import j2meunit.framework.TestCase;
-import j2meunit.framework.TestMethod;
-import j2meunit.framework.TestSuite;
-
-/**
- * DebugUtils unit tests.
- */
-public class DebugUtilsTests extends TestCase implements UnitTestSuiteCreator
-{
-    // Create the test suite.
-    public TestSuite createTestSuite(String[] args)
-    {
-        TestSuite suite = new TestSuite(this.getClass().getName());
-
-        suite.addTest(new DebugUtilsTests("TestStackTrace", new TestMethod()
-        {
-            public void run(TestCase tc)
-            {
-                ((DebugUtilsTests)tc).testStackTrace();
-            }
-        }));
-
-        return suite;
-    }
-
-    public DebugUtilsTests()
-    {
-    }
-
-    public DebugUtilsTests(String aTestName, TestMethod aTestMethod)
-    {
-        super(aTestName, aTestMethod);
-    }
-
-    // End j2meunit test framework setup
-
-    protected void setUp()
-    {
-    }
-
-    protected void tearDown()
-    {
-    }
-
-    public void testStackTrace()
-    {
-        try
-        {
-            try
-            {
-                DebugUtils.getStackTrace(null);
-                assertTrue("No exception.", false);
-            }
-            catch (NullPointerException ne)
-            {
-            }
-
-            Exception e1 = new Exception("Test 42");
-            String res = DebugUtils.getStackTrace(e1);
-            boolean ok = res.indexOf("at com.nokia.mj.impl.utils.DebugUtilsTests.testStackTrace") >= 0;
-            assertTrue("Exception didn't contain: " + res, ok);
-
-        }
-        catch (Throwable t)
-        {
-            assertTrue(t.toString(), false);
-            t.printStackTrace();
-        }
-    }
-}
--- a/javacommons/utils/tsrc/javasrc/com/nokia/mj/impl/utils/concurrent/ConcurrentTests.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/tsrc/javasrc/com/nokia/mj/impl/utils/concurrent/ConcurrentTests.java	Wed Oct 13 14:23:59 2010 +0300
@@ -21,7 +21,8 @@
 import java.util.Enumeration;
 import java.util.Vector;
 
-import com.nokia.mj.impl.rt.test.UnitTestSuiteCreator;
+import com.nokia.mj.impl.installer.utils.InstallerMain;
+import com.nokia.mj.impl.utils.DebugUtils;
 
 import j2meunit.framework.Test;
 import j2meunit.framework.TestCase;
@@ -31,7 +32,7 @@
 /**
  * BufferedReader unit tests.
  */
-public class ConcurrentTests extends TestCase implements UnitTestSuiteCreator
+public class ConcurrentTests extends TestCase implements InstallerMain
 {
     private int mMaxThreadId;
     private int mReleaseThreadId;
@@ -41,7 +42,7 @@
     private Object mLockEnd;
 
     // Begin j2meunit test framework setup
-    public TestSuite createTestSuite(String[] args)
+    public void installerMain(String[] args)
     {
         createDumperThread(false);
         TestSuite suite = new TestSuite(this.getClass().getName());
@@ -122,7 +123,9 @@
             }
         }));
 
-        return suite;
+
+
+        com.nokia.mj.impl.utils.OmjTestRunner.run(suite);
 
     }
 
@@ -139,8 +142,7 @@
     {
         if (doCreate)
         {
-            new Thread(new Runnable()
-            {
+            new Thread(new Runnable(){
                 public void run()
                 {
                     threadSleep(5000);
@@ -187,8 +189,8 @@
     {
         if (doTrace)
         {
-            //System.out.println(str);
-            mTrace.addElement(str);
+        //System.out.println(str);
+        mTrace.addElement(str);
         }
     }
 
@@ -248,7 +250,7 @@
 
         try
         {
-
+            
             testLock(true);
         }
         catch (Throwable t)
@@ -267,7 +269,7 @@
 
         try
         {
-
+            
             testLock(true);
         }
         catch (Throwable t)
@@ -286,7 +288,7 @@
 
         try
         {
-
+            
             testLock(false);
         }
         catch (Throwable t)
@@ -305,7 +307,7 @@
 
         try
         {
-
+            
             testLock(false);
         }
         catch (Throwable t)
@@ -357,13 +359,13 @@
     {
         private int mId;
         private boolean mCheck;
-
+        
         private LockTestThread(int id, boolean check)
         {
             mId = id;
             mCheck = check;
         }
-        public void run()
+        public void run() 
         {
             threadSleep(20);
             trace("run: "+mId);
@@ -387,7 +389,7 @@
             trace("Got lock: "+mId);
             if (mCheck)
             {
-                String errorTxt = "Incorrect release order. mId: "+ mId +
+                String errorTxt = "Incorrect release order. mId: "+ mId + 
                                   ", next: " +mNextReleasedThreadId;
                 assertTrue(errorTxt, mNextReleasedThreadId == mId);
             }
@@ -498,12 +500,12 @@
     private class ConditionTestThread extends Thread
     {
         private int mId;
-
+        
         private ConditionTestThread(int id)
         {
             mId = id;
         }
-        public void run()
+        public void run() 
         {
             threadSleep(20);
             trace("run: "+mId);
--- a/javacommons/utils/tsrc/localisation/build/build.xml	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/tsrc/localisation/build/build.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -1,6 +1,6 @@
 <!--
 #
-# Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2008-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"
@@ -96,7 +96,7 @@
   <target name="run" depends="deploy">
       <echo>Running Location Tests</echo>
       <exec executable="${java.bin.root}/bin/javainstaller">
-          <arg line="test -mainclass=com.nokia.mj.impl.utils.LocalisationTest"/>
+          <arg line="test -mainclass=localisationtest.LocalisationTest"/>
       </exec>
   </target>
 
--- a/javacommons/utils/tsrc/localisation/javasrc/com/nokia/mj/impl/utils/LocalisationTest.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,325 +0,0 @@
-/*
-* Copyright (c) 2008-2010 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:
-*
-*/
-
-
-package com.nokia.mj.impl.utils;
-
-import java.util.Date;
-
-import com.nokia.mj.impl.utils.ResourceLoader;
-import com.nokia.mj.impl.utils.Formatter;
-
-import com.nokia.mj.impl.utils.Logger;
-
-import com.nokia.mj.impl.installer.utils.InstallerMain;
-
-import j2meunit.framework.Test;
-import j2meunit.framework.TestCase;
-import j2meunit.framework.TestMethod;
-import j2meunit.framework.TestSuite;
-
-public class LocalisationTest extends TestCase implements InstallerMain
-{
-    // Must have no-argument constructor for Class.forname()
-    public LocalisationTest()
-    {
-    }
-
-    public LocalisationTest(String sTestName, TestMethod rTestMethod)
-    {
-        super(sTestName, rTestMethod);
-    }
-
-    // Begin j2meunit test framework setup
-    public void installerMain(String[] args)
-    {
-        com.nokia.mj.impl.utils.OmjTestRunner.run(suite());
-    }
-
-
-    public Test suite()
-    {
-        // TestSuite aSuite = new TestSuite();
-        TestSuite aSuite = new TestSuite(this.getClass().getName());
-
-        aSuite.addTest(new LocalisationTest("formatterTest", new TestMethod()
-        {
-            public void run(TestCase tc)
-            {
-                ((LocalisationTest) tc).formatterTest();
-            }
-        }));
-
-        aSuite.addTest(new LocalisationTest("resourceLoaderTest", new TestMethod()
-        {
-            public void run(TestCase tc)
-            {
-                ((LocalisationTest) tc).resourceLoaderTest();
-            }
-        }));
-
-        return aSuite;
-    }
-
-    void formatterTest()
-    {
-        // Zero argument
-        assertEquals(
-            "Test",
-            new Formatter("Test").toString());
-
-        // One argument tests
-        assertEquals(
-            "Test 100",
-            new Formatter("Test %0N").arg(100).toString());
-
-        assertEquals(
-            "Test 1",
-            new Formatter("Test %C").arg('1').toString());
-
-        assertEquals(
-            "Test A",
-            new Formatter("Test %0C").arg('A').toString());
-
-        // Two argument tests
-        assertEquals(
-            "Test test 100",
-            new Formatter("Test %1U %0N").arg(100).arg("test").toString());
-
-        assertEquals(
-            "100 test test",
-            new Formatter("%0 test %1").arg(100).arg("test").toString());
-
-        assertEquals(
-            "Test A B C",
-            new Formatter("Test %0C %1 %2C").arg('A').arg('B').arg('C').toString());
-
-        // Two argument tests with array
-        assertEquals(
-            "Test test 100",
-            new Formatter("Test %1U %0N").format(new Object[]
-                                                 {
-                                                     new Integer(100), "test"
-                                                 }));
-
-        assertEquals(
-            "100 test test",
-            new Formatter("%0 test %1").format(new Object[]
-                                               {
-                                                   new Integer(100), "test"
-                                               }));
-
-        // Missing argument, no failure, just unreplaced parameter
-        assertEquals(
-            "100 test %1",
-            new Formatter("%0 test %1").arg(100).toString());
-
-        // Extra argument, no failure
-        assertEquals(
-            "100 test",
-            new Formatter("%0 test").arg(100).arg("test").toString());
-
-        Date testDate = new Date(1234567890); // 15/01/1970
-        // Test case assumes emulator locale is default as EDateEuropean.
-        assertEquals("15/01/1970", new Formatter("%0").arg(testDate).toString());
-
-        Object obj = testDate;
-        assertEquals("15/01/1970", new Formatter("%0").arg(obj).toString());
-
-        obj = new Integer(1);
-        assertEquals("1", new Formatter("%0").arg(obj).toString());
-
-        obj = new String("me");
-        assertEquals("Test me", new Formatter("Test %0").arg(obj).toString());
-
-        // Test skip not supported type
-        obj = new Boolean(false);
-        assertEquals("Test %0", new Formatter("Test %0").arg(obj).toString());
-
-        // Test MAX %1U[08]
-        assertEquals(
-            "Test testMyTe 100",
-            new Formatter("Test %1U[08] %0N").arg(100).arg("testMyTest").toString());
-
-        // Test %U[]
-        assertEquals(
-            "Test testMyTest",
-            new Formatter("Test %U[]").arg("testMyTest").toString());
-
-        // Test %U[08]
-        assertEquals(
-            "Test testMyTe",
-            new Formatter("Test %U[08]").arg("testMyTest").toString());
-
-        // Test %0[]
-        assertEquals(
-            "Test testMyTest",
-            new Formatter("Test %0[]").arg("testMyTest").toString());
-
-        // Test %0[08]
-        assertEquals(
-            "Test testMyTe",
-            new Formatter("Test %0[08]").arg("testMyTest").toString());
-
-        // Test %U[20  Skip
-        assertEquals(
-            "Test %U[20",
-            new Formatter("Test %U[20").arg("testMyTest").toString());
-
-        // Test %U[300]
-        assertEquals(
-            "Test testMyTest",
-            new Formatter("Test %U[300]").arg("testMyTest").toString());
-
-        // Test %U[8]
-        assertEquals(
-            "Test testMyTe",
-            new Formatter("Test %U[8]").arg("testMyTest").toString());
-
-        // Test Max is higher than actual string. Expected output: whole string no padding.
-        assertEquals(
-            "Test testMyTest",
-            new Formatter("Test %U[80]").arg("testMyTest").toString());
-
-        // Test Max is higher than pattern and string is shorter than pattern.
-        assertEquals(
-            "t to",
-            new Formatter("t %U[09]").arg("to").toString());
-
-        // Test 0 len Max
-        assertEquals(
-            "t ",
-            new Formatter("t %U[00]").arg("to").toString());
-
-        // Test 1 len Max
-        assertEquals(
-            "t 1",
-            new Formatter("t %U[01]").arg("12").toString());
-
-        // Test 0 len Max with 0 len replacement
-        assertEquals(
-            "t ",
-            new Formatter("t %U[00]").arg("").toString());
-
-        // Test 1 len Max with 1 len replacement
-        assertEquals(
-            "t 1",
-            new Formatter("t %U[01]").arg("1").toString());
-    }
-
-    void resourceLoaderTest()
-    {
-
-        ResourceLoader res = new ResourceLoader("testresource", "test_");
-
-        // Test existing
-        assertEquals(
-            "id1 test",
-            res.format("id_1").arg("test").toString());
-        assertEquals(
-            "id2 test2",
-            res.format("id_2").arg("test2").toString());
-        assertEquals(
-            "id3 test3",
-            res.format("id_3").arg("test3").toString());
-
-// Test full name
-        assertEquals(
-            "id1 test",
-            res.format("test_id_1").arg("test").toString());
-// Test non-existing, with prefix
-        assertEquals(
-            "test_id_notfound",
-            res.format("test_id_notfound").arg("test3").toString());
-
-        // Test non-existing, without prefix
-        assertEquals(
-            "test_id_notfound",
-            res.format("id_notfound").arg("test3").toString());
-
-        // Test array
-        assertEquals(
-            "id3 test3",
-            res.format("id_3", new Object[] {"test3"}));
-
-        // Test enter decoding.
-        assertEquals(
-            "id4 \n test4 \n",
-            res.format("id_4").arg("test4").toString());
-
-        // Test backlash decoding.
-        assertEquals(
-            "\\id5 \\ test5",
-            res.format("id_5").arg("test5").toString());
-
-        // Test double-quote decoding.
-        assertEquals(
-            "id6 \"\" test6",
-            res.format("id_6").arg("test6").toString());
-
-        // Test single-quote decoding.
-        assertEquals(
-            "id7 \' test7",
-            res.format("id_7").arg("test7").toString());
-
-        // Test tabulator decoding.
-        assertEquals(
-            "id8\ttest8",
-            res.format("id_8").arg("test8").toString());
-
-        // Test character code <0x20AC>
-        assertEquals(
-            "id9 It takes 800 \u20ac to win!",
-            res.format("id_9").arg(800).toString());
-
-        // Test two character codes.
-        assertEquals(
-            "id10 It takes \u20ac 800 \u20ac to win!",
-            res.format("id_10").arg(800).toString());
-
-        // Test two character codes in a row. Test <0x20ac><0x20ac>
-        assertEquals(
-            "id11 It takes \u20ac\u20ac to win!",
-            res.format("id_11").toString());
-
-        // Test only character code.
-        assertEquals(
-            "\u20ac",
-            res.format("id_12").toString());
-
-        // Test invalid character code.
-        assertEquals(
-            "id13 It <0x20A>to win!",
-            res.format("id_13").toString());
-
-
-        // Test character code as first character.
-        assertEquals(
-            "\u20ac id14",
-            res.format("id_14").toString());
-
-        // Test character code as last character.
-        assertEquals(
-            "id15 \u20ac",
-            res.format("id_15").toString());
-
-        // Test invalid character.
-        assertEquals(
-            "id16 <0xG0AC>",
-            res.format("id_16").toString());
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/utils/tsrc/localisation/javasrc/com/nokia/mj/test/utils/LocalisationTest.java	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,325 @@
+/*
+* 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:
+*
+*/
+
+
+package com.nokia.mj.test.utils;
+
+import java.util.Date;
+
+import com.nokia.mj.impl.utils.ResourceLoader;
+import com.nokia.mj.impl.utils.Formatter;
+
+import com.nokia.mj.impl.utils.Logger;
+
+import com.nokia.mj.impl.installer.utils.InstallerMain;
+
+import j2meunit.framework.Test;
+import j2meunit.framework.TestCase;
+import j2meunit.framework.TestMethod;
+import j2meunit.framework.TestSuite;
+
+public class LocalisationTest extends TestCase implements InstallerMain
+{
+    // Must have no-argument constructor for Class.forname()
+    public LocalisationTest()
+    {
+    }
+
+    public LocalisationTest(String sTestName, TestMethod rTestMethod)
+    {
+        super(sTestName, rTestMethod);
+    }
+
+    // Begin j2meunit test framework setup
+    public void installerMain(String[] args)
+    {
+        com.nokia.mj.impl.utils.OmjTestRunner.run(suite());
+    }
+
+
+    public Test suite()
+    {
+        // TestSuite aSuite = new TestSuite();
+        TestSuite aSuite = new TestSuite(this.getClass().getName());
+
+        aSuite.addTest(new LocalisationTest("formatterTest", new TestMethod()
+        {
+            public void run(TestCase tc)
+            {
+                ((LocalisationTest) tc).formatterTest();
+            }
+        }));
+
+        aSuite.addTest(new LocalisationTest("resourceLoaderTest", new TestMethod()
+        {
+            public void run(TestCase tc)
+            {
+                ((LocalisationTest) tc).resourceLoaderTest();
+            }
+        }));
+
+        return aSuite;
+    }
+
+    void formatterTest()
+    {
+        // Zero argument
+        assertEquals(
+            "Test",
+            new Formatter("Test").toString());
+
+        // One argument tests
+        assertEquals(
+            "Test 100",
+            new Formatter("Test %0N").arg(100).toString());
+
+        assertEquals(
+            "Test 1",
+            new Formatter("Test %C").arg('1').toString());
+
+        assertEquals(
+            "Test A",
+            new Formatter("Test %0C").arg('A').toString());
+
+        // Two argument tests
+        assertEquals(
+            "Test test 100",
+            new Formatter("Test %1U %0N").arg(100).arg("test").toString());
+
+        assertEquals(
+            "100 test test",
+            new Formatter("%0 test %1").arg(100).arg("test").toString());
+
+        assertEquals(
+            "Test A B C",
+            new Formatter("Test %0C %1 %2C").arg('A').arg('B').arg('C').toString());
+
+        // Two argument tests with array
+        assertEquals(
+            "Test test 100",
+            new Formatter("Test %1U %0N").format(new Object[]
+                                                 {
+                                                     new Integer(100), "test"
+                                                 }));
+
+        assertEquals(
+            "100 test test",
+            new Formatter("%0 test %1").format(new Object[]
+                                               {
+                                                   new Integer(100), "test"
+                                               }));
+
+        // Missing argument, no failure, just unreplaced parameter
+        assertEquals(
+            "100 test %1",
+            new Formatter("%0 test %1").arg(100).toString());
+
+        // Extra argument, no failure
+        assertEquals(
+            "100 test",
+            new Formatter("%0 test").arg(100).arg("test").toString());
+
+        Date testDate = new Date(1234567890); // 15/01/1970
+        // Test case assumes emulator locale is default as EDateEuropean.
+        assertEquals("15/01/1970", new Formatter("%0").arg(testDate).toString());
+
+        Object obj = testDate;
+        assertEquals("15/01/1970", new Formatter("%0").arg(obj).toString());
+
+        obj = new Integer(1);
+        assertEquals("1", new Formatter("%0").arg(obj).toString());
+
+        obj = new String("me");
+        assertEquals("Test me", new Formatter("Test %0").arg(obj).toString());
+
+        // Test skip not supported type
+        obj = new Boolean(false);
+        assertEquals("Test %0", new Formatter("Test %0").arg(obj).toString());
+
+        // Test MAX %1U[08]
+        assertEquals(
+            "Test testMyTe 100",
+            new Formatter("Test %1U[08] %0N").arg(100).arg("testMyTest").toString());
+
+        // Test %U[]
+        assertEquals(
+            "Test testMyTest",
+            new Formatter("Test %U[]").arg("testMyTest").toString());
+
+        // Test %U[08]
+        assertEquals(
+            "Test testMyTe",
+            new Formatter("Test %U[08]").arg("testMyTest").toString());
+
+        // Test %0[]
+        assertEquals(
+            "Test testMyTest",
+            new Formatter("Test %0[]").arg("testMyTest").toString());
+
+        // Test %0[08]
+        assertEquals(
+            "Test testMyTe",
+            new Formatter("Test %0[08]").arg("testMyTest").toString());
+
+        // Test %U[20  Skip
+        assertEquals(
+            "Test %U[20",
+            new Formatter("Test %U[20").arg("testMyTest").toString());
+
+        // Test %U[300]
+        assertEquals(
+            "Test testMyTest",
+            new Formatter("Test %U[300]").arg("testMyTest").toString());
+
+        // Test %U[8]
+        assertEquals(
+            "Test testMyTe",
+            new Formatter("Test %U[8]").arg("testMyTest").toString());
+
+        // Test Max is higher than actual string. Expected output: whole string no padding.
+        assertEquals(
+            "Test testMyTest",
+            new Formatter("Test %U[80]").arg("testMyTest").toString());
+
+        // Test Max is higher than pattern and string is shorter than pattern.
+        assertEquals(
+            "t to",
+            new Formatter("t %U[09]").arg("to").toString());
+
+        // Test 0 len Max
+        assertEquals(
+            "t ",
+            new Formatter("t %U[00]").arg("to").toString());
+
+        // Test 1 len Max
+        assertEquals(
+            "t 1",
+            new Formatter("t %U[01]").arg("12").toString());
+
+        // Test 0 len Max with 0 len replacement
+        assertEquals(
+            "t ",
+            new Formatter("t %U[00]").arg("").toString());
+
+        // Test 1 len Max with 1 len replacement
+        assertEquals(
+            "t 1",
+            new Formatter("t %U[01]").arg("1").toString());
+    }
+
+    void resourceLoaderTest()
+    {
+
+        ResourceLoader res = new ResourceLoader("testresource", "test_");
+
+        // Test existing
+        assertEquals(
+            "id1 test",
+            res.format("id_1").arg("test").toString());
+        assertEquals(
+            "id2 test2",
+            res.format("id_2").arg("test2").toString());
+        assertEquals(
+            "id3 test3",
+            res.format("id_3").arg("test3").toString());
+
+// Test full name
+        assertEquals(
+            "id1 test",
+            res.format("test_id_1").arg("test").toString());
+// Test non-existing, with prefix
+        assertEquals(
+            "test_id_notfound",
+            res.format("test_id_notfound").arg("test3").toString());
+
+        // Test non-existing, without prefix
+        assertEquals(
+            "test_id_notfound",
+            res.format("id_notfound").arg("test3").toString());
+
+        // Test array
+        assertEquals(
+            "id3 test3",
+            res.format("id_3", new Object[] {"test3"}));
+
+        // Test enter decoding.
+        assertEquals(
+            "id4 \n test4 \n",
+            res.format("id_4").arg("test4").toString());
+
+        // Test backlash decoding.
+        assertEquals(
+            "\\id5 \\ test5",
+            res.format("id_5").arg("test5").toString());
+
+        // Test double-quote decoding.
+        assertEquals(
+            "id6 \"\" test6",
+            res.format("id_6").arg("test6").toString());
+
+        // Test single-quote decoding.
+        assertEquals(
+            "id7 \' test7",
+            res.format("id_7").arg("test7").toString());
+
+        // Test tabulator decoding.
+        assertEquals(
+            "id8\ttest8",
+            res.format("id_8").arg("test8").toString());
+
+        // Test character code <0x20AC>
+        assertEquals(
+            "id9 It takes 800 \u20ac to win!",
+            res.format("id_9").arg(800).toString());
+
+        // Test two character codes.
+        assertEquals(
+            "id10 It takes \u20ac 800 \u20ac to win!",
+            res.format("id_10").arg(800).toString());
+
+        // Test two character codes in a row. Test <0x20ac><0x20ac>
+        assertEquals(
+            "id11 It takes \u20ac\u20ac to win!",
+            res.format("id_11").toString());
+
+        // Test only character code.
+        assertEquals(
+            "\u20ac",
+            res.format("id_12").toString());
+
+        // Test invalid character code.
+        assertEquals(
+            "id13 It <0x20A>to win!",
+            res.format("id_13").toString());
+
+
+        // Test character code as first character.
+        assertEquals(
+            "\u20ac id14",
+            res.format("id_14").toString());
+
+        // Test character code as last character.
+        assertEquals(
+            "id15 \u20ac",
+            res.format("id_15").toString());
+
+        // Test invalid character.
+        assertEquals(
+            "id16 <0xG0AC>",
+            res.format("id_16").toString());
+    }
+}
--- a/javacommons/utils/tsrc/src/testoslayer.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javacommons/utils/tsrc/src/testoslayer.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -37,22 +37,6 @@
     }
 };
 
-void removeTestJar(list <wstring>& list, const wstring& jar)
-{
-
-    std::list<wstring>::iterator iter = find(list.begin(), list.end(), jar);
-    if (iter != list.end())
-    {
-        list.erase(iter);
-    }
-}
-
-void removeTestJars(list <wstring>& list)
-{
-    removeTestJar(list, L"Z:\\resource\\java\\jvm\\lib\\jrt\\javacommonutilstest.jar");
-    removeTestJar(list, L"Z:\\resource\\java\\jvm\\lib\\jrt\\j2meunitomj.jar");
-}
-
 /**
  * Test JavaOsLayer::bootClassPath().
  *
@@ -70,7 +54,6 @@
     const wstring delim = L";";
     JavaOsLayer::bootClassPath(odcs, bc, BOOT_CLASSPATH_MIDP);
     CHECK(odcs.size() > 35);
-    removeTestJars(bc);
     CHECK(bc.size() == 1);
     odcs.clear();
     bc.clear();
@@ -78,15 +61,13 @@
     // 2. Test installer cp.
     JavaOsLayer::bootClassPath(odcs, bc, BOOT_CLASSPATH_INSTALLER);
     CHECK(odcs.size() > 24);
-    removeTestJars(bc);
     CHECK(bc.size() == 1);
     odcs.clear();
     bc.clear();
 
     // 3. Test tckrunner cp.
     JavaOsLayer::bootClassPath(odcs, bc, BOOT_CLASSPATH_TCKRUNNER);
-    CHECK(odcs.size() > 10);
-    removeTestJars(bc);
+    CHECK(bc.size() > 10);
     CHECK(bc.size() == 1);
     odcs.clear();
     bc.clear();
@@ -94,7 +75,6 @@
     // 4. Test negative type.
     JavaOsLayer::bootClassPath(odcs, bc, -1);
     CHECK(odcs.size() > 35);
-    removeTestJars(bc);
     CHECK(bc.size() == 1);
     odcs.clear();
     bc.clear();
@@ -102,7 +82,6 @@
     // 5. Test positive greater boyndary.
     JavaOsLayer::bootClassPath(odcs, bc, 50);
     CHECK(odcs.size() > 4);
-    removeTestJars(bc);
     CHECK(bc.size() == 1);
     odcs.clear();
     bc.clear();
--- a/javacommons/utils/tsrc/subsystem.mk	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-#
-# Copyright (c) 2010 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:
-#
-
-include $(JAVA_SRC_ROOT)/build/Makefile.defs
-
-# Include the test frameworks.
-SUBSYSTEMS = \
-	$(JAVA_SRC_ROOT)/tools
-
-COMPONENTS = \
-	build/java \
-	build/native
-
-SYMBIAN_ONLY = build/native
-
-# Make dependency to those.
-build/java build/native: $(JAVA_SRC_ROOT)/tools
-include ${JAVA_SRC_ROOT}/build/Makefile.subsystem
--- a/javacommons/utils/tsrc/tst.bat	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-@rem
-@rem Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
-@rem All rights reserved.
-@rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
-@rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-@rem
-@rem Initial Contributors:
-@rem Nokia Corporation - initial contribution.
-@rem
-@rem Contributors:
-@rem
-@rem Description:
-@rem
-rem Script for running JavaCommonUtils unit tests from S60 eshell
-javaunittester -mainclass=com.nokia.mj.impl.utils.BufferedReaderTests
-javaunittester -mainclass=com.nokia.mj.impl.utils.concurrent.ConcurrentTests
-javaunittester -mainclass=com.nokia.mj.impl.rt.SystemPropertyTests
-javaunittester -conf=cdc -mainclass=com.nokia.mj.impl.rt.SystemPropertyTests
-javaunittester -conf=foundation -mainclass=com.nokia.mj.impl.rt.SystemPropertyTests
-javaunittester -mainclass=com.nokia.mj.impl.utils.DebugUtilsTests
-testjavautils -nomemleaks
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/utils/tsrc/unittestrunner/runner/build/build.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,23 @@
+<!--
+#
+# Copyright (c) 2010 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 name="javaunittestrunner" basedir="." default="deploy">
+
+  <import file="../../../../../../build/utilities.xml"/>
+
+</project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/utils/tsrc/unittestrunner/runner/build/bwins/javaunittestrunneru.def	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	?jni_lookup@@YAP6AXXZPBD@Z @ 1 NONAME ; void (*)(void) jni_lookup(char const *)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/utils/tsrc/unittestrunner/runner/build/eabi/javaunittestrunneru.def	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	_Z10jni_lookupPKc @ 1 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/utils/tsrc/unittestrunner/runner/build/javaunittestrunner.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2010 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: 
+#
+
+TARGET=javaunittestrunner
+TEMPLATE=lib
+CONFIG += omj java stl
+CONFIG -= qt
+
+symbian {
+    TARGET.UID3          = 0xE0008435
+}
+include(../../../../../../build/omj.pri)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/utils/tsrc/unittestrunner/runner/javasrc/com/nokia/mj/impl/rt/test/UnitTestRunner.java	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,133 @@
+/*
+* Copyright (c) 2010 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:
+*
+*/
+
+package com.nokia.mj.impl.rt.test;
+
+import com.nokia.mj.impl.installer.utils.InstallerMain;
+import com.nokia.mj.impl.rt.support.JvmInternal;
+import com.nokia.mj.impl.rt.support.ThreadEventListener;
+import com.nokia.mj.impl.utils.Logger;
+import com.nokia.mj.impl.utils.Tokenizer;
+
+
+public class UnitTestRunner
+{
+    /**
+     * UnitTestRunner main program.
+     *
+     * @param args command line arguments
+     */
+    public static void main(String[] args)
+    {
+        int exitCode = 0;
+
+        System.out.println("java.version: " +
+                           System.getProperty("java.version"));
+        System.out.println("java.fullversion: " +
+                           System.getProperty("java.fullversion"));
+
+        if (args.length == 0)
+        {
+            Logger.ELOG(Logger.EJavaRuntime, "No args provided.");
+            exitCode = -2;
+        }
+        try
+        {
+            JvmInternal.setThreadEventListener(new ThreadEventListener()
+            {
+                public void threadStarting(Thread newThread, Thread parentThread) {}
+                public void threadDied(Thread thread) {}
+                public void uncaughtException(Thread thread, Throwable throwable)
+                {
+                    String threadName = null;
+                    if (thread != null)
+                    {
+                        threadName = thread.getName();
+                    }
+                    Logger.ELOG(Logger.EJavaRuntime, "Unhandled exception in " +
+                                threadName, throwable);
+                    System.exit(-1);
+                }
+            });
+            test(args);
+        }
+        catch (Throwable t)
+        {
+            Logger.ELOG(Logger.EJavaRuntime, "Unhandled exception in main", t);
+            exitCode = -1;
+        }
+        System.exit(exitCode);
+    }
+
+   /**
+     * Main program for executing tests.
+     */
+    private static void test(String[] args)
+    {
+        String mainClass = getMainClass(args[0]);
+        if (mainClass == null)
+        {
+            Logger.ELOG(Logger.EJavaRuntime, "Mainclass must be specified.");
+            return;
+        }
+
+        try
+        {
+            // Instantiate mainclass and call its main() method.
+            Class clazz = Class.forName(mainClass);
+            InstallerMain instMain = (InstallerMain)clazz.newInstance();
+            instMain.installerMain(args);
+        }
+        catch (Exception ex)
+        {
+            Logger.ELOG(Logger.EJavaRuntime, "Running mainclass failed", ex);
+        }
+    }
+
+   /**
+     * Main program for executing tests.
+     */
+    private static String getMainClass(String arg)
+    {
+        String[] mainClassArg = Tokenizer.split(arg, "=");
+        if (mainClassArg.length != 2)
+        {
+            return null;
+        }
+        if (!mainClassArg[0].equals("-mainclass"))
+        {
+            return null;
+        }
+    return mainClassArg[1];
+        
+    }
+
+    /**
+     * Logs arguments given to TCK Runner
+     */
+    private static void logArgs(String[] args)
+    {
+        StringBuffer buf = new StringBuffer("UnitTestRunner args:");
+        for (int i = 0; i < args.length; i++)
+        {
+            buf.append(" ");
+            buf.append(args[i]);
+        }
+        Logger.ILOG(Logger.EJavaRuntime, buf.toString());
+    }
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/utils/tsrc/unittestrunner/runner/javasrc/com/nokia/mj/impl/rt/unittestrunner/ApplicationInfoImpl.java	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,106 @@
+/*
+* Copyright (c) 2010 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:
+*
+*/
+
+package com.nokia.mj.impl.rt.unittestrunner;
+
+import com.nokia.mj.impl.rt.support.ApplicationInfo;
+import com.nokia.mj.impl.utils.Uid;
+
+public class ApplicationInfoImpl extends ApplicationInfo
+{
+    private String iProtectionDomain = null;
+
+    /**
+     */
+    public String getRuntimeType()
+    {
+        // See runtime types defined in ApplicationInfo class.
+        return "UnitTest_Runner";
+    }
+
+    /**
+     */
+    public String getProtectionDomain()
+    {
+        return MANUFACTURER_DOMAIN;
+    }
+
+    /**
+     */
+    public Uid getUid()
+    {
+        return Uid.createUid("[ffffffff]");
+    }
+
+    /**
+     */
+    public Uid getSuiteUid()
+    {
+        throw new RuntimeException
+        ("Get suite uid is not applicable for TckRunner");
+    }
+
+    /**
+     */
+    public String getSuiteName()
+    {
+        return getName();
+    }
+
+    /**
+     */
+    public String getName()
+    {
+        return "JavaUnitTester";
+    }
+
+    /**
+     */
+    public String getVendor()
+    {
+        return "Nokia";
+    }
+
+    /**
+     */
+    public String getVersion()
+    {
+        return "1.0.0";
+    }
+
+    /**
+     */
+    public String getRootPath()
+    {
+        return ".";
+    }
+
+    /**
+     */
+    public String getMainClass()
+    {
+        throw new RuntimeException
+        ("Get main class is not applicable for UntiTestRunner");
+    }
+
+    /**
+     */
+    public String getAttribute(String key)
+    {
+        return null;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/utils/tsrc/unittestrunner/runner/javasrc/com/nokia/mj/impl/rt/unittestrunner/ApplicationUtilsImpl.java	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,51 @@
+/*
+* Copyright (c) 2010 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:
+*
+*/
+
+package com.nokia.mj.impl.rt.unittestrunner;
+
+import com.nokia.mj.impl.rt.support.ApplicationInfo;
+import com.nokia.mj.impl.rt.support.ApplicationUtils;
+import com.nokia.mj.impl.utils.Uid;
+
+import java.security.Permission;
+import java.security.AccessControlException;
+
+public class ApplicationUtilsImpl extends ApplicationUtils
+{
+    public static void doShutdownImpl()
+    {
+        // Send shutdown notification to all registered listeners.
+        ((ApplicationUtilsImpl)sInstance).doShutdown();
+    }
+
+
+    public void notifyExitCmd()
+    {
+    }
+
+    public void checkPermission(Permission aPermission)
+    throws AccessControlException, NullPointerException
+    {
+        checkPermission(null, aPermission);
+    }
+
+    public void checkPermission(Uid aAppUid, Permission aPermission)
+    throws AccessControlException, NullPointerException
+    {
+        return;
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/utils/tsrc/unittestrunner/starter/build/javauntitester.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,34 @@
+#
+# Copyright (c) 2010 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: 
+#
+
+TARGET=javaunittester
+TEMPLATE=app
+
+CONFIG += omj no_icon stl
+CONFIG -= qt
+
+INCLUDEPATH += ../../../../../../javaruntimes/inc
+
+LIBS += -ljavaruntimestarterutils -ljavastorage
+
+symbian {
+    TARGET.EPOCHEAPSIZE  = 0x020000 0x800000
+    TARGET.EPOCSTACKSIZE = 0x14000
+    TARGET.CAPABILITY    = all -tcb -allfiles -drm
+}
+
+
+include(../../../../../../build/omj.pri)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/utils/tsrc/unittestrunner/starter/src/main.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,110 @@
+/*
+* Copyright (c) 2010 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 program for the Unit test process
+*
+*/
+
+#include <memory>
+#include <unistd.h>
+
+#include "logger.h"
+#include "exceptionbase.h"
+#include "runtimeexception.h"
+#include "javacommonutils.h"
+#include "runtimestarterutils.h"
+#include "jvmstarter.h"
+
+using namespace java::runtime;
+using namespace java::util;
+
+int startJvm(int argc, char *argv[]);
+const wchar_t* const UNIT_TEST_RUNNER_MAIN_CLASS = L"com.nokia.mj.impl.rt.test.UnitTestRunner";
+void findMidlet();
+
+int main(int argc, char *argv[])
+{
+    LOG(EJavaRuntime, EInfo, "UNIT TEST RUNNER main()");
+
+    int result = -1;
+    try
+    {
+        result = startJvm(argc, argv);
+    }
+    catch (RuntimeException& e)
+    {
+        ELOG1(EJavaRuntime, "UNIT TEST RUNNER main() RuntimeException caught: %s ",
+              e.toString().c_str());
+    }
+
+    catch (ExceptionBase& e)
+    {
+        ELOG1(EJavaRuntime, "UNIT TEST RUNNER main() ExceptionBase caught: %s ",
+              e.toString().c_str());
+    }
+
+    catch (std::exception& e)
+    {
+        ELOG1(EJavaRuntime, "UNIT TEST RUNNER main() Exception %s caught", e.what());
+    }
+
+    LOG1(EJavaRuntime, EInfo, "UNIT TEST RUNNER EXIT = %d", result);
+    return result;
+}
+
+int startJvm(int argc, char *argv[])
+{
+    JELOG2(EJavaRuntime);
+
+    // Create instance of RuntimeStarterUtils for thread supervisioning.
+    std::auto_ptr<RuntimeStarterUtils> starterUtils(new RuntimeStarterUtils());
+    starterUtils->startThreadSupervisor();
+    
+    JvmStarter::Configuration config = JvmStarter::CLDC;
+    int argInd = 1;
+    if (argc > 2)
+    {
+        if (strncmp(argv[1], "-conf", 5) == 0)
+        {
+            argInd = 2;
+            if (strcmp(argv[1]+5, "=cdc") == 0)
+            {
+                config = JvmStarter::CDC;
+            }
+            else if (strcmp(argv[1]+5, "=foundation") == 0)
+            {
+                config = JvmStarter::FOUNDATION;
+            }
+        }
+    }
+    // Create starter for starting the JVM
+    std::auto_ptr<JvmStarter>
+    jvm(JvmStarter::getJvmStarterInstance(config,
+                                          L"Unit_test_runner"));
+
+    // starterUtils->enableDevelopmentFeatures(*jvm.get());
+    jvm->enableThreadDumping();
+
+    jvm->appendSystemProperty(L"-Dcom.nokia.rt.port=unittestrunner");
+
+    jvm->setMainClass(UNIT_TEST_RUNNER_MAIN_CLASS);
+
+    for (; argInd < argc; ++argInd)
+    {
+        jvm->appendApplicationArgument(
+            JavaCommonUtils::utf8ToWstring(argv[argInd]));
+    }
+
+    // Start the JVM.
+    return jvm->startJvm();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/utils/tsrc/unittestrunner/subsystem.mk	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,23 @@
+#
+# Copyright (c) 2010 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: 
+#
+
+include $(JAVA_SRC_ROOT)/build/Makefile.defs
+
+COMPONENTS += \
+	starter/build \
+	runner/build
+
+include ${JAVA_SRC_ROOT}/build/Makefile.subsystem
--- a/javaextensions/bld.inf	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/bld.inf	Wed Oct 13 14:23:59 2010 +0300
@@ -27,7 +27,6 @@
 #include "location/build/bld.inf"    
 #include "sensor/build/bld.inf"    
 #include "broadcast_stub/build/bld.inf"    
-#include "centralrepository/build/bld.inf"    
 #include "midppush/bld.inf"    
 #include "bluetooth/bld.inf"    
 #include "datagram/bld.inf"    
--- a/javaextensions/bluetooth/bluecove/build/javabluecove_0x2002DC97.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/bluetooth/bluecove/build/javabluecove_0x2002DC97.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../inc
@@ -93,7 +93,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/bluetooth/bluetoothcommons/bluetoothplatformcontrol/src.s60/s60bluetoothplatformcontrol.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/bluetooth/bluetoothcommons/bluetoothplatformcontrol/src.s60/s60bluetoothplatformcontrol.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -358,7 +358,7 @@
  */
 std::wstring *S60BluetoothPlatformControl::getBluetoothName()
 {
-    TBuf16<KMaxBluetoothNameLen> bluetoothName;
+    TBuf16<KHCILocalDeviceNameMaxLength> bluetoothName;
 
     JELOG2(EJavaBluetooth);
     TInt error = RProperty::Get(KPropertyUidBluetoothCategory,
--- a/javaextensions/bluetooth/bluetoothcommons/bluetoothplatformcontrol/src.s60/s60btdialog.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/bluetooth/bluetoothcommons/bluetoothplatformcontrol/src.s60/s60btdialog.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -23,13 +23,6 @@
 #include "s60btdialog.h"
 #include "logger.h"
 
-#ifdef RD_JAVA_S60_RELEASE_10_1_ONWARDS
-#include <hbdevicemessageboxsymbian.h>
-#include <hbpopup.h>
-#include <QtCore\qvariant.h>
-
-#define QUERY_BUF_LEN 512
-#endif
 
 using namespace java::bluetooth;
 
@@ -51,9 +44,7 @@
 void CS60BTDialog::ConstructL()
 {
     LOG(EJavaBluetooth, EInfo, "+ CS60BTDialog::ConstructL()");
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
     User::LeaveIfError(mNotifier.Connect());
-#endif
     LOG(EJavaBluetooth, EInfo, "- CS60BTDialog::ConstructL()");
 }
 
@@ -66,9 +57,7 @@
 {
     CS60BTDialog* self = new(ELeave) CS60BTDialog;
     CleanupStack::PushL(self);
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
     self->ConstructL();
-#endif
     return self;
 }
 
@@ -81,11 +70,8 @@
 {
     JELOG2(EJavaBluetooth);
     LOG(EJavaBluetooth, EInfo, "+ CS60BTDialog::~CS60BTDialog()");
-
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
     DoCancel();
     mNotifier.Close();
-#endif
     LOG(EJavaBluetooth, EInfo, "- CS60BTDialog::~CS60BTDialog()");
 }
 
@@ -101,42 +87,14 @@
     JELOG2(EJavaBluetooth);
     LOG1(EJavaBluetooth, EInfo,"+ CS60BTDialog::ShowBTQueryDialog(): aQueryType = %d", aQueryType);
 
-
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
     mQueryParamsPckg().iMessageType = aQueryType;
     mQueryParamsPckg().iNameExists = ETrue;
     mQueryParamsPckg().iName.Copy(aAppName);
     mNotifier.StartNotifierAndGetResponse(mStatus, KBTGenericQueryNotifierUid,
                                           mQueryParamsPckg, mQueryResult);
+
     User::WaitForRequest(mStatus);
 
-#else
-    _LIT(KAppInfo,"Application %S cannot  be used when  Bluetooth is off Activate Bluetooth ?");
-    _LIT(KAppInfomsg,"Change 'My phone's visibility' setting to 'Show to all'? Application '%S' cannot be used when the visibility is set as 'Hidden'.");
-
-    TBuf<QUERY_BUF_LEN> queryBuf;
-    TInt err = KErrNone;
-    TBool userOpt;
-
-    queryBuf.Zero();
-    if (aQueryType == EBTIsOffJavaQuery)
-    {
-        queryBuf.Format(KAppInfo,&aAppName);
-    }
-    else if (aQueryType == EBTIsNotShownQuery)
-    {
-        queryBuf.Format(KAppInfomsg,&aAppName);
-    }
-
-    TRAP(err, userOpt = ShowBTQueryHbDialogL(queryBuf));
-    LOG1(EJavaBluetooth, EInfo,"  CS60BTDialog::ShowBTQueryDialog(): mQueryResult = %d", err);
-
-    if (err != KErrNone )
-        mQueryResult = EFalse;
-    else
-        mQueryResult = userOpt;
-#endif
-
     LOG1(EJavaBluetooth, EInfo,"- CS60BTDialog::ShowBTQueryDialog(): mQueryResult = %d", mQueryResult());
     return mQueryResult();
 }
@@ -151,42 +109,6 @@
 void CS60BTDialog::DoCancel()
 {
     LOG(EJavaBluetooth, EInfo, "+ CS60BTDialog::DoCancel()");
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
     mNotifier.CancelNotifier(KBTGenericQueryNotifierUid);
-#endif
     LOG(EJavaBluetooth, EInfo, "- CS60BTDialog::DoCancel()");
 }
-
-#ifdef RD_JAVA_S60_RELEASE_10_1_ONWARDS
-
-TBool CS60BTDialog::ShowBTQueryHbDialogL(const TDesC& aBufData)
-{
-    TBool result = EFalse;
-
-    CHbDeviceMessageBoxSymbian* messageBox
-    = CHbDeviceMessageBoxSymbian::NewL(CHbDeviceMessageBoxSymbian::EQuestion);
-    CleanupStack::PushL(messageBox);
-
-    messageBox->SetTextL(aBufData);
-    messageBox->SetTimeout(HbPopup::NoTimeout);
-
-    // Read localised versions instead of hard coded values.
-    _LIT(KAllowButtonText, "Yes");
-    _LIT(KDenyButtonText, "No");
-
-    messageBox->SetButtonTextL(CHbDeviceMessageBoxSymbian::EAcceptButton, KAllowButtonText);
-    messageBox->SetButton(CHbDeviceMessageBoxSymbian::EAcceptButton, ETrue);
-    messageBox->SetButtonTextL(CHbDeviceMessageBoxSymbian::ERejectButton, KDenyButtonText);
-    messageBox->SetButton(CHbDeviceMessageBoxSymbian::ERejectButton, ETrue);
-
-    if (messageBox->ExecL() == CHbDeviceMessageBoxSymbian::EAcceptButton)
-        result = ETrue;
-    else
-        result = EFalse;
-
-    messageBox->Close();
-    CleanupStack::PopAndDestroy(messageBox);
-
-    return result;
-}
-#endif
--- a/javaextensions/bluetooth/bluetoothcommons/bluetoothplatformcontrol/src.s60/s60btdialog.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/bluetooth/bluetoothcommons/bluetoothplatformcontrol/src.s60/s60btdialog.h	Wed Oct 13 14:23:59 2010 +0300
@@ -57,11 +57,6 @@
     TBool ShowBTQueryDialog(const TDesC& aAppName, const TBool aInstalling,
                             TBTGenericQueryNoteType aQueryType);
 
-#ifdef RD_JAVA_S60_RELEASE_10_1_ONWARDS
-    TBool ShowBTQueryHbDialogL(const TDesC& aBufData);
-#endif
-
-
     /**
      * Cancels the asynchronous request to the query list dialog.
      *
@@ -77,9 +72,7 @@
 
 private: // data
     TRequestStatus mStatus;
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
     RNotifier mNotifier;
-#endif
     TBTGenericQueryNotiferParamsPckg mQueryParamsPckg;
     TPckgBuf<TBool> mQueryResult;
 };
--- a/javaextensions/bluetooth/bluetoothcommons/build/javabluetoothcommons.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/bluetooth/bluetoothcommons/build/javabluetoothcommons.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -14,33 +14,20 @@
 # Description: 
 #
 
-include(../../../../inc/build_defines.pri)
-
 TEMPLATE=lib
 TARGET=javabluetoothcommons
 CONFIG += omj java stl
+CONFIG -= qt
 
-contains(PROJECT_DEFINES,RD_JAVA_S60_RELEASE_5_0) {
-    CONFIG -= qt
-}
-contains(PROJECT_DEFINES,RD_JAVA_S60_RELEASE_9_2) {
-    CONFIG -= qt
-}
-contains(PROJECT_DEFINES,RD_JAVA_S60_RELEASE_10_1_ONWARDS) {
-    CONFIG += hb
-}
-
-
-symbian {	
+symbian {
     SOURCES += ../src/*.cpp 
     SOURCES += ../src.s60/*.cpp
     SOURCES += ../bluetoothplatformcontrol/src/*.cpp 
-    SOURCES += ../bluetoothplatformcontrol/src.s60/*.cpp   
+    SOURCES += ../bluetoothplatformcontrol/src.s60/*.cpp
 }
 
 LIBS +=  -lsdpdatabase -lbtengsettings -lbluetooth -lbtmanclient \
          -lbtdevice -ljavacomms -ljavafileutils -lesock
 
+
 include(../../../../build/omj.pri)
-
-
--- a/javaextensions/bluetooth/bluetoothcommons/build/javabluetoothcommons_0x2002DC99.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/bluetooth/bluetoothcommons/build/javabluetoothcommons_0x2002DC99.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc.s60
@@ -127,7 +127,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/bluetooth/bluetoothcommons/src.s60/bluetoothclientconnection.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/bluetooth/bluetoothcommons/src.s60/bluetoothclientconnection.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -36,15 +36,19 @@
 
 OS_EXPORT BluetoothClientConnection::BluetoothClientConnection
 (BluetoothFunctionServer* server):
-        mServer(server),
+        mServer(server), mSocket(0),
         mShutdownNotifyMonitor(NULL),
         mReadNotifyMonitor(NULL),
+        mReadStatus(0),
         mBuffer(NULL, 0),
         mSendNotifyMonitor(NULL),
+        mRequestedRMtu(0), mRequestedTMtu(0),
+        mWriteStatus(0), mProtocol(0),
         mNegotiatedReceiveMtu(0),
         mNegotiatedTransmitMtu(0),
         mRemoteBTAddr(0),
         mConnectNotifyMonitor(NULL),
+        mConnectError(0),
         mMakeJavaCallbackOnRead(EFalse),
         mReadPending(EFalse),
         mBufferInitialized(EFalse)
@@ -58,11 +62,15 @@
         mSocket(aSocket),
         mShutdownNotifyMonitor(NULL),
         mReadNotifyMonitor(NULL),
+        mReadStatus(0),
         mBuffer(NULL, 0),
         mSendNotifyMonitor(NULL),
+        mRequestedRMtu(0), mRequestedTMtu(0),
+        mWriteStatus(0), mProtocol(0),
         mNegotiatedReceiveMtu(0),
         mNegotiatedTransmitMtu(0),
         mRemoteBTAddr(0),
+        mConnectError(0),
         mMakeJavaCallbackOnRead(EFalse),
         mReadPending(EFalse),
         mBufferInitialized(EFalse)
--- a/javaextensions/bluetooth/bluetoothcommons/src.s60/servicerecord.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/bluetooth/bluetoothcommons/src.s60/servicerecord.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -148,7 +148,7 @@
     TPtrC8 uuidDes(uuidBytes, uuidByteLength);
     TRAPD(err, uuid.SetL(uuidDes));
 
-    delete[] uuidBytes;
+    delete uuidBytes;
     uuidBytes = NULL;
 
     if (KErrNone != err)
@@ -205,7 +205,7 @@
             char *fileName = java::util::JavaCommonUtils::wstringToUtf8(
                                  persistentFileName);
             persistentRecFd = open(fileName, O_RDONLY);
-            delete[] fileName;
+            delete fileName;
         }
         catch (ExceptionBase ex)
         {
@@ -618,7 +618,7 @@
             write(mSrvRecFd, (char *) &aDeviceServiceClasses,
                   sizeof(aDeviceServiceClasses));
 
-            delete[] fileName;
+            delete fileName;
         }
         catch (ExceptionBase ex)
         {
@@ -1286,7 +1286,7 @@
             char *fileName =
                 java::util::JavaCommonUtils::wstringToUtf8(persistentFileName);
             persistentRecFd = open(fileName, O_RDONLY);
-            delete[] fileName;
+            delete fileName;
         }
         catch (ExceptionBase ex)
         {
@@ -1310,10 +1310,7 @@
     unsigned int devServClass = 0;
     ret = read(persistentRecFd, &devServClass, sizeof(devServClass));
     if (ret <= 0)
-    {
-        delete srvRecPopulator;
         return;
-    }
 
     elementBuilder = srvRecPopulator->SetDeviceServiceClass(devServClass);
 
--- a/javaextensions/bluetooth/bluetoothplugins/btgoeppushplugin/build/javabtgoepscplugin_0x2002DC9A.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/bluetooth/bluetoothplugins/btgoeppushplugin/build/javabtgoepscplugin_0x2002DC9A.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc
@@ -111,7 +111,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/bluetooth/bluetoothplugins/btjavacaptainplugin/build/javacaptain_ext_btdeviceclassmanager_0x2002DC9D.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/bluetooth/bluetoothplugins/btjavacaptainplugin/build/javacaptain_ext_btdeviceclassmanager_0x2002DC9D.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../inc
@@ -105,7 +105,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/bluetooth/bluetoothplugins/btl2cappushplugin/build/javabtl2capscplugin_0x2002DC9B.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/bluetooth/bluetoothplugins/btl2cappushplugin/build/javabtl2capscplugin_0x2002DC9B.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc.s60
@@ -113,7 +113,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/bluetooth/bluetoothplugins/btl2cappushplugin/src.s60/btl2capserverconnection.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/bluetooth/bluetoothplugins/btl2cappushplugin/src.s60/btl2capserverconnection.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -40,11 +40,16 @@
 OS_EXPORT L2CAPServerConnection::L2CAPServerConnection(
     java::bluetooth::BluetoothFunctionServer* server):
         mAcceptMonitor(NULL),
+        mAcceptStatus(0),
+        mAcceptedSocket(0),
+        mMasterRoleRequested(EFalse),
         mAsyncAccept(false),
         mAvoidFilter(false),
+        mPushEventListener(0),
         mBtUrlParams(NULL),
         mBtClientConn(NULL),
         mServer(server),
+        mListenSock(0),
         mIsConnected(EFalse),
         mServRec(NULL),
         mState(ENone)
--- a/javaextensions/bluetooth/bluetoothplugins/btl2cappushplugin/src/btl2cappushserverconnection.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/bluetooth/bluetoothplugins/btl2cappushplugin/src/btl2cappushserverconnection.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -37,9 +37,11 @@
 OS_EXPORT L2CapPushServerConnection::L2CapPushServerConnection(
     const wstring aUri, const wstring aFilter):
         mAcceptMonitor(NULL),
+        mConnectionListener(0),
         mConnectionUri(aUri),
         mConnectionFilter(aFilter),
         mL2CAPServer(NULL),
+        mClientConnection(0),
         mPendingConnection(false),
         mListening(false),
         mCreatedByPush(false),
@@ -199,9 +201,9 @@
     BluetoothNameLookup * nameLookup = NULL;
 
     long long remoteDevAddr = aClientConnection->getRemoteAddress();
-    ELOG1(EJavaBluetooth,
-      "+ L2CapPushServerConnection::handleConnectionRequest DeviceAddress:%llx",
-         remoteDevAddr);
+    LOG1(EJavaBluetooth, EInfo,
+     "L2CapPushServerConnection::handleConnectionRequest: remoteDevAddr: %llx",
+                                                                remoteDevAddr); 
     TRAPD(lookupErr,
     {
         nameLookup = BluetoothNameLookup::NewL();
--- a/javaextensions/bluetooth/bluetoothplugins/btspppushplugin/build/javabtsppscplugin_0x2002DC9C.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/bluetooth/bluetoothplugins/btspppushplugin/build/javabtsppscplugin_0x2002DC9C.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc.s60
@@ -113,7 +113,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/bluetooth/bluetoothplugins/btspppushplugin/src.s60/btrfcommserverconnection.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/bluetooth/bluetoothplugins/btspppushplugin/src.s60/btrfcommserverconnection.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -42,10 +42,15 @@
 OS_EXPORT RFCOMMServerConnection::RFCOMMServerConnection(
     java::bluetooth::BluetoothFunctionServer* server):
         mAcceptMonitor(NULL),
+        mAcceptStatus(0),
+        mAcceptedSocket(0),
         mAsyncAccept(false),
+        mAvoidFilter(false),
+        mPushEventListener(0),
         mBtUrlParams(NULL),
         mBtClientConn(NULL),
         mServer(server),
+        mListenSock(0),
         mIsConnected(EFalse),
         mServRec(NULL),
         mState(ENone)
--- a/javaextensions/bluetooth/bluetoothplugins/btspppushplugin/src/rfcommpushserverconnection.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/bluetooth/bluetoothplugins/btspppushplugin/src/rfcommpushserverconnection.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -38,10 +38,12 @@
 OS_EXPORT RFCOMMPushServerConnection::RFCOMMPushServerConnection(
     const wstring aUri, const wstring aFilter,ServerConnectionFactoryBase* aFactory):
         mAcceptMonitor(NULL),
+        mConnectionListener(0),
         mConnectionUri(aUri),
         mConnectionFilter(aFilter),
         mRFCOMMServer(NULL),
         mConnectionFactory(aFactory),
+        mClientConnection(0),
         mIsGOEP(false),
         mPendingConnection(false),
         mListening(false),
--- a/javaextensions/bluetooth/omjbluetooth/build/javabluetooth_0x2002DC98.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/bluetooth/omjbluetooth/build/javabluetooth_0x2002DC98.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc
@@ -119,7 +119,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/broadcast_stub/build/javabroadcast_0x2002DCE0.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/broadcast_stub/build/javabroadcast_0x2002DCE0.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../inc
@@ -92,7 +92,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/centralrepository/build/bld.inf	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-/*
-* 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: Generated bld.inf -file
-*
-*/
-
-PRJ_PLATFORMS
-default
-
-PRJ_MMPFILES  
-javacentrep_0x2002DCE1.mmp 
--- a/javaextensions/centralrepository/build/build.xml	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-<!--
-#
-# Copyright (c) 2010 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 name="javacentrep" default="deploy" basedir=".">
-    <description>
-        Builds Central Repository Component
-    </description>
-
-  <import file="../../../build/utilities.xml"/>
-
-  <!-- Needed by the utilities.xml. See the description form the utilities.xml
-       file -->
-  <target name="create.internal.api.jar">
-    <omj.internal.apis/>
-  </target>
-
-  <target name="create.public.api.jar">
-      <omj.public.apis includes="
-          com/nokia/mid/cenrep/CentralRepository.class
-		  com/nokia/mid/cenrep/CentralRepositoryException.class"/>        
-  </target>
-
-  <property name="javah.classnames" 
-            value="com.nokia.mid.cenrep.CentralRepositoryException,
-                   com.nokia.mj.impl.cenrep.CentralRepositoryImpl"/>
- 
-</project>
--- a/javaextensions/centralrepository/build/bwins/javacentrepu.def	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	?jni_lookup@@YAP6AXXZPBD@Z @ 1 NONAME ; void (*)(void) jni_lookup(char const *)
-
--- a/javaextensions/centralrepository/build/eabi/javacentrepu.def	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-EXPORTS
-	_Z10jni_lookupPKc @ 1 NONAME
-	_ZTI22CJavaCentralRepository @ 2 NONAME
-	_ZTV22CJavaCentralRepository @ 3 NONAME
-
--- a/javaextensions/centralrepository/build/javacentrep.pro	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-#
-# 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: 
-#
-
-TARGET=javacentrep
-TEMPLATE=lib
-CONFIG += omj java stl
-CONFIG -= qt
-
-include(../../../inc/build_defines.pri)
-
-symbian {
-    INCLUDEPATH += ../inc 
-    SOURCES += ../src/*.cpp
-
-    LIBS += -lcentralrepository \
-            -leuser 
-}
-
-include(../../../build/omj.pri)
--- a/javaextensions/centralrepository/build/javacentrep_0x2002DCE1.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +0,0 @@
-/*
-* 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: Generated file - do not edit manually
-*
-*/
-
-// ==============================================================================
-// Generated by qmake (2.01a) (Qt 4.6.4) on: (date)
-// This file is generated by qmake and should not be modified by the
-// user.
-//  Name        : javacentrep.mmp
-// ==============================================================================
-
-TARGET		javacentrep.dll
-TARGETTYPE		DLL
-
-UID		0x1000008d 0x2002DCE1
-SECUREID		0x2002DCE1
-
-EPOCALLOWDLLDATA
-
-
-// Qt Macros
-MACRO		UNICODE
-MACRO		QT_KEYPAD_NAVIGATION
-MACRO		QT_SOFTKEYS_ENABLED
-MACRO		QT_USE_MATH_H_FLOATS
-MACRO		RD_JAVA_SYMBIAN_TARGET
-MACRO		RD_JAVA_S60_RELEASE_9_2
-MACRO		RD_JAVA_S60_RELEASE_9_2_ONWARDS
-MACRO		RD_JAVA_S60_RELEASE_5_0_ONWARDS
-MACRO		RD_JAVA_STDCPPV5
-MACRO		RD_JAVA_EPOCALLOWDLLDATA_FIX
-MACRO		RD_JAVA_HTTP_EMC_ENABLED
-MACRO		RD_JAVA_NGA_ENABLED
-MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
-MACRO		RD_JAVA_OPENC_BETA_PATCH
-MACRO		RD_JAVA_INSTALLERUI_ENABLED
-MACRO		RD_JAVA_PREWARM
-MACRO		RD_JAVA_ADVANCED_TACTILE_FEEDBACK
-MACRO		RD_JAVA_MIDPRMS_DB
-MACRO		__SYMBIAN32__
-MACRO		J9EPOC32
-
-SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
-SYSTEMINCLUDE		../inc
-SYSTEMINCLUDE		../../inc
-SYSTEMINCLUDE		../../../inc
-SYSTEMINCLUDE		../src
-SYSTEMINCLUDE		/epoc32/include/stdapis/stlportv5
-SYSTEMINCLUDE		/epoc32/include/mw
-SYSTEMINCLUDE		.
-
-SOURCEPATH 	../src
-SOURCE		cjavacentralrepository.cpp
-SOURCE		javacentralrepositoryjni.cpp
-
-
-LIBRARY		centralrepository.lib
-LIBRARY		euser.lib
-LIBRARY		javautils.lib
-LIBRARY		libpthread.lib
-LIBRARY		libstdcppv5.lib
-LIBRARY		libc.lib
-LIBRARY		libm.lib
-LIBRARY		libdl.lib
-LIBRARY		cone.lib
-LIBRARY		eikcore.lib
-LIBRARY		mediaclientaudio.lib
-LIBRARY		eikcoctl.lib
-LIBRARY		eiksrv.lib
-LIBRARY		apparc.lib
-LIBRARY		avkon.lib
-LIBRARY		efsrv.lib
-LIBRARY		charconv.lib
-LIBRARY		ws32.lib
-LIBRARY		hal.lib
-LIBRARY		gdi.lib
-LIBRARY		apgrfx.lib
-
-CAPABILITY		all -tcb 
-
-OPTION CW -wchar_t on
-OPTION ARMCC --visibility_inlines_hidden
-#if defined(ARMCC_4_0)
-OPTION ARMCC --import_all_vtbl
-#endif
-OPTION GCCE -fvisibility-inlines-hidden
-
-VERSION 10.525
-
-ARMFPU softvfp
-
-PAGED
-
-BYTEPAIRCOMPRESSTARGET
-
-USERINCLUDE .
-
-#include <platform_paths.hrh>
-
- APP_LAYER_SYSTEMINCLUDE
-
- OS_LAYER_LIBC_SYSTEMINCLUDE
-
- OS_LAYER_SSL_SYSTEMINCLUDE
-
-deffile ./~/javacentrep.def
-
- SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlportv5)
-
-SYSTEMINCLUDE /epoc32/build/jrt/javabuild/inc.javah
-
-SOURCEPATH /epoc32/build/jrt/javabuild/javacentrep
-
-SOURCE lookup.cpp
-
-SOURCEPATH /epoc32/build/jrt/javabuild/javacentrep
-
-SOURCE jxe.c
-
-#ifdef WINSCW
-
-LIBRARY ewsd.lib
-
-#endif
-
-STDCPP
-
-#ifdef WINSCW
-DEFFILE ./bwins/javacentrep.def
-#elif defined EABI
-DEFFILE ./eabi/javacentrep.def
-#endif
--- a/javaextensions/centralrepository/inc/centrepfunctionserver.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-/*
-* Copyright (c) 2010 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 CENTREPFUNCTIONSERVER_H
-#define CENTREPFUNCTIONSERVER_H
-
-#include "monitor.h"
-#include "functionserver.h"
-#include "legacyeventserverwrapper.h"
-
-namespace java
-{
-namespace centrep
-{
-
-/**
- * If we have to execute some operation that essentially
- * needs ActiveScheduler, then we use this CentrepFunctionServer.
- *
- * We must however be careful not to make callbacks through FunctionServer.
- * Reason: If in callback, app calls another method that needs FunctionServer
- * to execute, we enter a deadlock.
- */
-
-class CentrepFunctionServer: public java::util::FunctionServer,
-        public LegacyEventServerWrapper
-{
-public:
-
-    CentrepFunctionServer() :
-            java::util::FunctionServer("JavaCentrepFunctionServer")
-    {
-        JELOG2(EJavaCentrep);
-
-        //Creates a new thread and starts active scheduler
-        //This results in call to doServerSideInit()
-        createServerToNewThread();
-        mServer = reinterpret_cast<java::util::FunctionServer*>(this);
-    }
-
-    ~CentrepFunctionServer()
-    {
-        JELOG2(EJavaCentrep);
-        stopServer();
-    }
-
-    java::util::FunctionServer* getFunctionServer() const
-    {
-        JELOG2(EJavaCentrep);
-        return mServer;
-    }
-
-private:
-
-    void doServerSideInit()
-    {
-        JELOG2(EJavaCentrep);
-        FunctionServer::doServerSideInit();
-    }
-
-private:
-
-    java::util::FunctionServer* mServer;
-};
-
-} //end namespace centrep
-} //end namespace java
-
-#endif // CENTREPFUNCTIONSERVER_H
--- a/javaextensions/centralrepository/inc/cjavacentralrepository.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-/*
-* Copyright (c) 2010 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 C_JAVACENTRALREPOSITORY_H
-#define C_JAVACENTRALREPOSITORY_H
-
-
-#include <e32std.h>
-
-class CRepository;
-
-/**
- * Java Central Repository.
- */
-class CJavaCentralRepository : public CBase
-{
-public:
-
-    /**
-     * Two-phased constructor.
-     * @param aRepositoryUid The UID of the repository to be accessed
-     */
-    static CJavaCentralRepository* NewL(TUid aRepositoryUid);
-
-    /**
-     * Two-phased constructor.
-     * @param aRepositoryUid The UID of the repository to be accessed
-     */
-    static CJavaCentralRepository* NewLC(TUid aRepositoryUid);
-
-    /**
-     * Destructor.
-     */
-    virtual ~CJavaCentralRepository();
-
-    /**
-     * Closes opened central repository.
-     */
-    void Close();
-
-    /**
-     * Reads a descriptor setting.
-     *
-     * @param aKey Key of setting to be read.
-     * @param aValue Returns the value of the setting if it is a descriptor.
-     * @leave System wide code if setting can not be read.
-     */
-    void GetL(TUint32 aKey, TDes& aValue);
-
-    /**
-     * Reads a integer setting.
-     *
-     * @param aKey Key of setting to be read.
-     * @param aValue Returns the value of the setting if it is an integer.
-     * @leave System wide code if setting can not be read.
-     */
-    void GetL(TUint32 aKey, TInt& aValue);
-
-    /**
-     * Stores descriptor setting.
-     *
-     * @param key The key of setting to be stored.
-     * @param value The value of the setting to be stored.
-     * @leave System wide error code if value cannot be stored.
-     */
-    void SetL(TUint32 aKey, TDesC& aValue);
-
-    /**
-     * Stores integer setting.
-     *
-     * @param aKey Key of setting to be stored.
-     * @param aValue The value of the setting to be stored.
-     * @leave System wide error code if value cannot be stored.
-     */
-    void SetL(TUint32 aKey, TInt aValue);
-
-    HBufC* GetStringL(TUint32 aKey);
-
-    TInt GetIntL(TUint32 aKey);
-
-private:
-
-    CJavaCentralRepository(TUid aRepositoryUid);
-
-    void ConstructL();
-
-private: // data
-
-    /**
-     * Access to a repository
-     * Own
-     */
-    CRepository* iRepository;
-
-    /**
-     * Repository ID
-     */
-    TUid iRepositoryUid;
-
-};
-
-#endif // C_JAVACENTRALREPOSITORY_H
--- a/javaextensions/centralrepository/javasrc/com/nokia/mid/cenrep/CentralRepository.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-package com.nokia.mid.cenrep;
-
-import com.nokia.mj.impl.cenrep.CentralRepositoryImpl;
-
-/**
- * The <code>CentralRepository</code> is class to manage application
- * settings and share data with other runtimes. In S60 this API can be used
- * to set and get values in Symbian Central Repositories.<P>
- *
- * Example of usage:<P>
- *
- * <code style="white-space: pre">
- * class CentralRepositoryExample {
- *     private static final String EXAMPLE_REPOSITORY= "0x20000000";
- *     private static final String EXAMPLE_KEY1 = "0x00000001";
- *     private static final String EXAMPLE_KEY2 = "0x00000002";
- *
- *     public modifySetting() throws CentralRepositoryException {
- *         CentralRepository cenrep = CentralRepository.open(EXAMPLE_REPOSITORY);
- *         try {
- *             String value1 = cenrep.getString(EXAMPLE_KEY1);
- *             int value2 = cenrep.getInt(EXAMPLE_KEY2);
-
- *             cenrep.setString(EXAMPLE_KEY1, value3);
- *             cenrep.setInt(EXAMPLE_KEY2, value4);
- *         }
- *         catch (CentralRepositoryException cre) {
- *             System.out.println(cre);
- *         }
- *         finally {
- *             cenrep.close();
- *         }
- *     }
- * }</code>
- */
-public abstract class CentralRepository
-{
-
-    /**
-     *  Hidden default constructor.
-     */
-    protected CentralRepository()
-    {
-    }
-
-    /**
-     * Opens central repository.
-     *
-     * @param repositoryId it is platform specific and in S60 it is
-     *        Symbian Central Repository UID.
-     * @return An instance of CentralRepository class
-     *         for accessing a repository.
-     * @throws CentralRepositoryException if openning fails.
-     */
-    static public CentralRepository open(String repositoryId)
-    throws CentralRepositoryException
-    {
-        return CentralRepositoryImpl.open(repositoryId);
-    }
-
-    /**
-     * Closes central repository. If get or set methods are used after
-     * close operation, exception will be thrown.
-     */
-    public abstract void close()
-    throws CentralRepositoryException;
-
-    /**
-     * Returns string stored in given key.
-     *
-     * @param key the key of setting to be read.
-     * @return the value of the setting if it is the string.
-     * @throws CentralRepositoryException if key is not found or
-     *         stored data is not string.
-     */
-    public abstract String getString(String key)
-    throws CentralRepositoryException;
-
-    /**
-     * Returns integer stored in given key.
-     *
-     * @param key the key of setting to be read.
-     * @return the value of the setting if it is an integer.
-     * @throws CentralRepositoryException if key is not found or
-     *         stored data is not integer.
-     */
-    public abstract int getInt(String key)
-    throws CentralRepositoryException;
-
-    /** Stores string value in key.
-     *
-     * @param key the key of setting to be stored.
-     * @param value the string value of the setting to be stored.
-     * @throws CentralRepositoryException if string value cannot be stored.
-     */
-    public abstract void setString(String key, String value)
-    throws CentralRepositoryException;
-
-    /** Stores integer value in key.
-     *
-     * @param key the key of setting to be stored.
-     * @param value the integer value of the setting to be stored.
-     * @throws CentralRepositoryException if integer value cannot be stored.
-     */
-    public abstract void setInt(String key, int value)
-    throws CentralRepositoryException;
-}
--- a/javaextensions/centralrepository/javasrc/com/nokia/mid/cenrep/CentralRepositoryException.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-package com.nokia.mid.cenrep;
-
-/**
- * Generic exception class for Central Repository API.
- */
-public class CentralRepositoryException extends Exception
-{
-
-    /**
-     * Default constructor is not allowed.
-     */
-    protected CentralRepositoryException()
-    {
-    }
-
-    /**
-     * Constructs an exception instance with a textual information.
-     *
-     * @param message human readable information about the exception.
-     */
-    public CentralRepositoryException(String message)
-    {
-        super(message);
-    }
-
-}
--- a/javaextensions/centralrepository/javasrc/com/nokia/mj/impl/cenrep/CentralRepositoryImpl.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,354 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-package com.nokia.mj.impl.cenrep;
-
-import com.nokia.mid.cenrep.CentralRepository;
-import com.nokia.mid.cenrep.CentralRepositoryException;
-import com.nokia.mj.impl.gcf.utils.NativeError;
-import com.nokia.mj.impl.rt.support.ApplicationInfo;
-import com.nokia.mj.impl.utils.Logger;
-import com.nokia.mj.impl.rt.support.Finalizer;
-import com.nokia.mj.impl.rt.support.Jvm;
-
-/**
- * CentralRepositoryImpl implements the functionality specified in
- * com.nokia.mid.cenrep.CentralRepository class.
- */
-public class CentralRepositoryImpl extends CentralRepository
-{
-
-    static
-    {
-        try
-        {
-            Jvm.loadSystemLibrary("javacentrep");
-        }
-        catch (Exception e)
-        {
-            Logger.ELOG(Logger.EJavaCentrep,
-                        "Unable to load javacentrep dll.");
-        }
-    }
-
-    private static final int INITIAL = 0;
-
-    private static final int OPEN = 1;
-
-    private static final int CLOSED = 2;
-
-    /*
-     * Central Repository API Function server.
-     */
-    private int iFunctionSourceHandle;
-
-    /**
-     * Handle to the native side peer object.
-     */
-    private int iCenrepHandle = 0;
-
-    /**
-     * Repository ID
-     */
-    private String iRepositoryId = null;
-
-    private Finalizer iFinalizer;
-
-    private int iState;
-
-    /**
-     *  Hidden default constructor.
-     */
-    private CentralRepositoryImpl()
-    {
-    }
-
-    /**
-     * Hidden constructor.
-     *
-     * @param repositoryId it is platform specific and in S60 it is
-     *        Symbian Central Repository UID.
-     */
-    private CentralRepositoryImpl(String repositoryId)
-    throws CentralRepositoryException
-    {
-        checkAccess();
-        iState = INITIAL;
-        int cenrepUid = CentralRepositoryUid.getIntValue(repositoryId);
-        this.iRepositoryId = repositoryId;
-        iFinalizer = registerFinalize();
-
-        iFunctionSourceHandle = _createFunctionSource();
-        iCenrepHandle = _createNativePeer(iFunctionSourceHandle, cenrepUid);
-        iState = OPEN;
-    }
-
-    /**
-     * See class CentralRepository for comments.
-     */
-    static public CentralRepository open(String repositoryId)
-    throws CentralRepositoryException
-    {
-        return new CentralRepositoryImpl(repositoryId);
-    }
-
-    /**
-     * See class CentralRepository for comments.
-     */
-    public void close() throws CentralRepositoryException
-    {
-        synchronized (this)
-        {
-
-            if (iState != CLOSED)
-            {
-                iState = CLOSED;
-                _close(iFunctionSourceHandle, iCenrepHandle);
-                _dispose(iFunctionSourceHandle, iCenrepHandle);
-            }
-            iRepositoryId = null;
-        }
-    }
-
-    /**
-     * See class CentralRepository for comments.
-     */
-    public String getString(String key)
-    throws CentralRepositoryException
-    {
-        synchronized (this)
-        {
-
-            if (iState == CLOSED)
-            {
-                throw new CentralRepositoryException("Connection Already Closed");
-            }
-            long cenrepKey = CentralRepositoryKey.getLongValue(key);
-            String value = _getString(iFunctionSourceHandle, iCenrepHandle, cenrepKey);
-            return value;
-        }
-    }
-
-    /**
-     * See class CentralRepository for comments.
-     */
-    public int getInt(String key)
-    throws CentralRepositoryException
-    {
-        synchronized (this)
-        {
-
-            if (iState == CLOSED)
-            {
-                throw new CentralRepositoryException("Connection Already Closed");
-            }
-            long cenrepKey = CentralRepositoryKey.getLongValue(key);
-            int res = _getInt(iFunctionSourceHandle, iCenrepHandle, cenrepKey);
-            return res;
-        }
-    }
-
-    /**
-     * See class CentralRepository for comments.
-     */
-    public void setString(String key, String value)
-    throws CentralRepositoryException
-    {
-        synchronized (this)
-        {
-
-            if (iState == CLOSED)
-            {
-                throw new CentralRepositoryException("Connection Already Closed");
-            }
-            long cenrepKey = CentralRepositoryKey.getLongValue(key);
-            if (value == null)
-            {
-                throw new CentralRepositoryException("Value is null");
-            }
-            _setString(iFunctionSourceHandle, iCenrepHandle, cenrepKey, value);
-        }
-    }
-
-    /**
-     * See class CentralRepository for comments.
-     */
-    public  void setInt(String key, int value)
-    throws CentralRepositoryException
-    {
-        synchronized (this)
-        {
-
-            if (iState == CLOSED)
-            {
-                throw new CentralRepositoryException("Connection Already Closed");
-            }
-            long cenrepKey = CentralRepositoryKey.getLongValue(key);
-            _setInt(iFunctionSourceHandle, iCenrepHandle, cenrepKey, value);
-        }
-    }
-
-    /**
-     * Registers with Finalizer to call a method when the object gets collected
-     * by GC
-     *
-     * @return Finalizer object that will be notified when GC happens
-     */
-    private Finalizer registerFinalize()
-    {
-        return new Finalizer()
-        {
-            public void finalizeImpl()
-            {
-                registeredFinalize();
-            }
-        };
-    }
-
-    /**
-     * Called when the object is finalized by the garbage collector.
-     */
-    final void registeredFinalize()
-    {
-        try
-        {
-            close();
-        }
-        catch (CentralRepositoryException e)
-        {
-            // Ignore
-        }
-    }
-
-    /**
-     * Creates a native side function source.
-     *
-     * @return handle to the native function source.
-     */
-    private native int _createFunctionSource();
-
-    /**
-     * Create native side peer of this Java class. It opens a repository.
-     *
-     * @param FunctionSource Handle handle to the native function source.
-     * @param arepositoryId is platform specific and in S60 it is
-     *        Symbian Central Repository UID.
-     * @return handle to the native side peer.
-     * @return Symbian OS error code, if openning fails.
-     */
-    private native int _createNativePeer(
-        int aFunctionSourceHandle,
-        int repositoryId);
-
-    /**
-     * Closes a repository.
-     *
-     * @param FunctionSourceHandle handle to the native function source.
-     * @param cenrepHandle handle to the native side peer object.
-     * @return Symbian OS error code, if closing fails.
-     */
-    private native void _close(int aFunctionSourceHandle, int cenrepHandle);
-
-    /**
-     * Dispose native side resources owned by this class.
-     *
-     * @param FunctionSourceHandle handle to the native function source.
-     * @param cenrepHandle handle to the native side peer object.
-     */
-    private native void _dispose(int aFunctionSourceHandle, int cenrepHandle);
-
-    /**
-     * Returns string stored in given key.
-     *
-     * @param FunctionSourceHandle handle to the native function source.
-     * @param cenrepHandle handle to the native side peer object.
-     * @param key the key of setting to be read.
-     * @param value returns the value of the setting if it is the string.
-     * @return Symbian OS error code, if key is not found or
-     *         stored data is not string.
-     */
-    private native String _getString(
-        int aFunctionSourceHandle,
-        int cenrepHandle,
-        long key);
-
-    /**
-     * Returns integer stored in given key.
-     *
-     * @param FunctionSourceHandle handle to the native function source.
-     * @param cenrepHandle handle to the native side peer object.
-     * @param key the key of setting to be read.
-     * @param value the value of the setting if it is an integer.
-     * @return Symbian OS error code, if key is not found or
-     *         stored data is not integer.
-     */
-    private native int _getInt(
-        int aFunctionSourceHandle,
-        int cenrepHandle,
-        long key);
-
-    /** Stores string value in key.
-     *
-     * @param FunctionSourceHandle handle to the native function source.
-     * @param cenrepHandle handle to the native side peer object.
-     * @param key the key of setting to be stored.
-     * @param value the string value of the setting to be stored.
-     * @return Symbian OS error code, if string value cannot be stored.
-     */
-    private native void _setString(
-        int aFunctionSourceHandle,
-        int cenrepHandle,
-        long key,
-        String value);
-
-    /** Stores integer value in key.
-     *
-     * @param FunctionSourceHandle handle to the native function source.
-     * @param cenrepHandle handle to the native side peer object.
-     * @param key the key of setting to be stored.
-     * @param value the integer value of the setting to be stored.
-     * @return Symbian OS error code, if integer value cannot be stored.
-     */
-    private native void _setInt(
-        int aFunctionSourceHandle,
-        int cenrepHandle,
-        long key,
-        int value);
-
-
-    /**
-     * Checks if MIDlet is permited to access the central repository.
-     * Only MIDlets in manufacturer or operator domain are allowed.
-     * @throws CentralRepositoryException if MIDlet is not in manufacturer or
-     *        operator domain.
-     */
-    private void checkAccess()
-    throws SecurityException
-    {
-
-        ApplicationInfo appInfo = ApplicationInfo.getInstance();
-        String protectionDomain = appInfo.getProtectionDomain();
-
-        if (protectionDomain.equals(ApplicationInfo.MANUFACTURER_DOMAIN) == false &&
-                protectionDomain.equals(ApplicationInfo.OPERATOR_DOMAIN) == false)
-        {
-            Logger.ELOG(Logger.EJavaCentrep, "Protection Domain: " + protectionDomain +
-                        ", Access denied");
-            throw new SecurityException("Access denied!");
-        }
-    }
-}
--- a/javaextensions/centralrepository/javasrc/com/nokia/mj/impl/cenrep/CentralRepositoryKey.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-package com.nokia.mj.impl.cenrep;
-
-import com.nokia.mid.cenrep.CentralRepositoryException;
-/**
- * Class for central repository key representation
- */
-class CentralRepositoryKey
-{
-
-    /**
-     * Default constructor.
-     */
-    protected CentralRepositoryKey()
-    {
-    }
-
-    /**
-     * Returns long value represantion.
-     *
-     * @param value string represantion of key.
-     * @throws CentralRepositoryException, if key is null, empty, negative
-     *        or not valid.
-     */
-    static long getLongValue(String value)
-    throws CentralRepositoryException
-    {
-        if (value == null || value.length() == 0)
-        {
-            throw new CentralRepositoryException("Key is null or empty!");
-        }
-
-        String numStr = value;
-
-        // Negative value is not allowed
-        if (numStr.startsWith("-"))
-        {
-            throw new CentralRepositoryException("Nagative value is not allowed!");
-        }
-
-        // Check for optional radix prefix.
-        int radix = 10;
-        if (numStr.startsWith("0x"))
-        {
-            radix = 16;
-            numStr = numStr.substring(2);
-        }
-
-        return Long.parseLong(numStr, radix);
-    }
-
-};
--- a/javaextensions/centralrepository/javasrc/com/nokia/mj/impl/cenrep/CentralRepositoryUid.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-package com.nokia.mj.impl.cenrep;
-
-import com.nokia.mj.impl.utils.Uid;
-import com.nokia.mid.cenrep.CentralRepositoryException;
-
-/**
- * Class for central repository UID.
- */
-class CentralRepositoryUid extends Uid
-{
-
-    /**
-     * Default constructor.
-     */
-    protected CentralRepositoryUid()
-    {
-        super();
-    }
-
-    /**
-     * Returns int value
-     *
-     * @param value string representation of uid.
-     * @throws CentralRepositoryException, if value is null, empty or not valid.
-     */
-    static int getIntValue(String value)
-    throws CentralRepositoryException
-    {
-        Uid uid = Uid.createUid(value);
-        if (uid == null)
-        {
-            throw new CentralRepositoryException("Uid is null or empty");
-        }
-
-        String numStr = uid.getStringValue();
-
-        // Check if value is negative.
-        boolean negative = false;
-        if (numStr.startsWith("-"))
-        {
-            negative = true;
-            numStr = numStr.substring(1);
-        }
-
-        // Check for optional radix prefix.
-        int radix = 10;
-        if (numStr.startsWith("0x"))
-        {
-            radix = 16;
-            numStr = numStr.substring(2);
-        }
-
-        // Check if numStr is in Symbian TUid form [12345678].
-        if (numStr.length() <= 10 && numStr.startsWith("[") && numStr.endsWith("]"))
-        {
-            radix = 16;
-            numStr = numStr.substring(1, numStr.length()-1);
-        }
-
-        int result = 0;
-        long val = Long.parseLong(numStr, radix);
-        if (negative)
-        {
-            result = (int)-val;
-        }
-        else
-        {
-            result = (int)val;
-        }
-        return result;
-    }
-
-};
--- a/javaextensions/centralrepository/src/cjavacentralrepository.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,134 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-#include <centralrepository.h>  // CRepository
-
-#include "cjavacentralrepository.h" // CJavaCentralRepository
-#include "logger.h"
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CJavaCentralRepository::NewL
-// ---------------------------------------------------------------------------
-CJavaCentralRepository* CJavaCentralRepository::NewL(TUid aRepositoryUid)
-{
-    CJavaCentralRepository* self = CJavaCentralRepository::NewLC(aRepositoryUid);
-    CleanupStack::Pop(self);
-    return self;
-}
-
-// ---------------------------------------------------------------------------
-// CJavaCentralRepository::NewLC
-// ---------------------------------------------------------------------------
-CJavaCentralRepository* CJavaCentralRepository::NewLC(TUid aRepositoryUid)
-{
-    CJavaCentralRepository* self =
-        new(ELeave) CJavaCentralRepository(aRepositoryUid);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    return self;
-}
-
-// ---------------------------------------------------------------------------
-// CJavaCentralRepository::~CJavaCentralRepository
-// ---------------------------------------------------------------------------
-CJavaCentralRepository::~CJavaCentralRepository()
-{
-    Close();
-}
-
-// ---------------------------------------------------------------------------
-// CJavaCentralRepository::Close
-// ---------------------------------------------------------------------------
-void CJavaCentralRepository::Close()
-{
-    iRepositoryUid = TUid::Null();
-    delete iRepository;
-    iRepository = NULL;
-}
-
-// ---------------------------------------------------------------------------
-// CJavaCentralRepository::CJavaCentralRepository
-// ---------------------------------------------------------------------------
-CJavaCentralRepository::CJavaCentralRepository(TUid aRepositoryUid)
-{
-    iRepositoryUid = aRepositoryUid;
-}
-
-// ---------------------------------------------------------------------------
-// CJavaCentralRepository::ConstructL
-// ---------------------------------------------------------------------------
-void CJavaCentralRepository::ConstructL()
-{
-    iRepository = CRepository::NewL(iRepositoryUid);
-}
-
-/**
- * GetStringL
- */
-HBufC* CJavaCentralRepository::GetStringL(TUint32 aKey)
-{
-    HBufC* value = HBufC::NewLC(NCentralRepositoryConstants::KMaxUnicodeStringLength);
-    TPtr ptr(value->Des());
-    GetL(aKey, ptr);
-
-    //aValue = value;
-    CleanupStack::Pop(value);
-    return value;
-}
-
-// ---------------------------------------------------------------------------
-// CJavaCentralRepository::Get
-// ---------------------------------------------------------------------------
-void CJavaCentralRepository::GetL(TUint32 aKey, TDes& aValue)
-{
-    User::LeaveIfError(iRepository->Get(aKey, aValue));
-}
-
-/**
- * GetIntL
- */
-TInt CJavaCentralRepository::GetIntL(TUint32 aKey/*, TInt& aValue*/)
-{
-    TInt value(0);
-    GetL(aKey, value);
-    return value;
-}
-
-// ---------------------------------------------------------------------------
-// CJavaCentralRepository::Get
-// ---------------------------------------------------------------------------
-void CJavaCentralRepository::GetL(TUint32 aKey, TInt& aValue)
-{
-    User::LeaveIfError(iRepository->Get(aKey, aValue));
-}
-
-// ---------------------------------------------------------------------------
-// CJavaCentralRepository::Set
-// ---------------------------------------------------------------------------
-void CJavaCentralRepository::SetL(TUint32 aKey, TDesC& aValue)
-{
-    User::LeaveIfError(iRepository->Set(aKey, aValue));
-}
-
-// ---------------------------------------------------------------------------
-// CJavaCentralRepository::Set
-// ---------------------------------------------------------------------------
-void CJavaCentralRepository::SetL(TUint32 aKey, TInt aValue)
-{
-    User::LeaveIfError(iRepository->Set(aKey, aValue));
-}
--- a/javaextensions/centralrepository/src/javacentralrepositoryjni.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,277 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-#include <centralrepository.h>      // KMaxUnicodeStringLength
-
-#include "com_nokia_mj_impl_cenrep_CentralRepositoryImpl.h"
-#include "cjavacentralrepository.h"
-#include "centrepfunctionserver.h"
-#include "javajniutils.h"
-#include "jstringutils.h"
-#include "s60commonutils.h"
-#include "logger.h"
-#include "fs_methodcall.h"
-
-using namespace java::util;
-/*
- * Class:     com_nokia_mj_impl_cenrep_CentralRepositoryImpl
- * Method:    _createFunctionSource
- * Signature: ()I
- */
-JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_cenrep_CentralRepositoryImpl__1createFunctionSource
-(JNIEnv *aJni, jobject /*aPeer*/)
-{
-    JELOG2(EJavaCentrep);
-    java::centrep::CentrepFunctionServer* mFunctionServer;
-    mFunctionServer = new java::centrep::CentrepFunctionServer();
-    TInt handle = reinterpret_cast<jint>(mFunctionServer);
-    if (handle < KErrNone)
-    {
-        JniUtils::throwNewException(aJni, "com/nokia/mid/cenrep/CentralRepositoryException" ,
-                                    JavaCommonUtils::intToString(handle));
-    }
-    return handle;
-}
-
-/**
- * CreateCentralRepositoryL
- */
-void CreateCentralRepositoryL(CJavaCentralRepository*& aCenRep,
-                              TUid aRepositoryId)
-{
-    CJavaCentralRepository* cenrep =
-        CJavaCentralRepository::NewL(aRepositoryId);
-    aCenRep = cenrep;
-}
-
-/*
- * Class:     com_nokia_mj_impl_cenrep_CentralRepositoryImpl
- * Method:    _createNativePeer
- * Signature: (II)I
- */
-JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_cenrep_CentralRepositoryImpl__1createNativePeer
-(JNIEnv *aJni, jobject, jint aFunctionSourceHandle, jint aRepositoryId)
-{
-    java::centrep::CentrepFunctionServer* mFunctionServer =
-        reinterpret_cast< java::centrep::CentrepFunctionServer*>(aFunctionSourceHandle);
-
-    CJavaCentralRepository* cenrep = NULL;
-
-    TUid uid = TUid::Uid(aRepositoryId);
-    TRAPD(err,CallMethodL(CreateCentralRepositoryL, cenrep, uid, mFunctionServer));
-
-    if (err != KErrNone)
-    {
-        JniUtils::throwNewException(aJni, "com/nokia/mid/cenrep/CentralRepositoryException" ,
-                                    JavaCommonUtils::intToString(err));
-    }
-    return reinterpret_cast<jint>(cenrep);
-}
-
-/**
- * Close
- */
-void CloseCentralRepository(CJavaCentralRepository* aCenRep)
-{
-    aCenRep->Close();
-}
-
-/*
- * Class:     com_nokia_mj_impl_cenrep_CentralRepositoryImpl
- * Method:    _close
- * Signature: (II)I
- */
-JNIEXPORT void JNICALL Java_com_nokia_mj_impl_cenrep_CentralRepositoryImpl__1close
-(JNIEnv *, jobject, jint aFunctionSourceHandle, jint aCenrepHandle)
-{
-    java::centrep::CentrepFunctionServer* mFunctionServer =
-        reinterpret_cast< java::centrep::CentrepFunctionServer*>(
-            aFunctionSourceHandle);
-
-    CJavaCentralRepository* cenrep =
-        reinterpret_cast<CJavaCentralRepository *>(aCenrepHandle);
-
-    CallMethod(CloseCentralRepository, cenrep, mFunctionServer);
-}
-
-/**
- * Dispose
- */
-void Dispose(CJavaCentralRepository* aCenRep)
-{
-    delete aCenRep;
-    aCenRep = NULL;
-}
-
-/*
- * Class:     com_nokia_mj_impl_cenrep_CentralRepositoryImpl
- * Method:    _dispose
- * Signature: (II)V
- */
-JNIEXPORT void JNICALL Java_com_nokia_mj_impl_cenrep_CentralRepositoryImpl__1dispose
-(JNIEnv *, jobject, jint aFunctionSourceHandle, jint aCenrepHandle)
-{
-    java::centrep::CentrepFunctionServer* mFunctionServer =
-        reinterpret_cast< java::centrep::CentrepFunctionServer*>(
-            aFunctionSourceHandle);
-
-    CJavaCentralRepository* cenrep =
-        reinterpret_cast<CJavaCentralRepository *>(aCenrepHandle);
-
-    CallMethod(Dispose, cenrep, mFunctionServer);
-    delete mFunctionServer;
-}
-
-/*
- * Class:     com_nokia_mj_impl_cenrep_CentralRepositoryImpl
- * Method:    _getString
- * Signature: (IIJLcom/nokia/mj/impl/cenrep/CentralRepositoryImpl$StringValue;)I
- */
-JNIEXPORT jstring JNICALL Java_com_nokia_mj_impl_cenrep_CentralRepositoryImpl__1getString
-(JNIEnv * aJni, jobject, jint aFunctionSourceHandle, jint aCenrepHandle,
- jlong aKey)
-{
-    java::centrep::CentrepFunctionServer* mFunctionServer =
-        reinterpret_cast< java::centrep::CentrepFunctionServer*>(
-            aFunctionSourceHandle);
-
-    CJavaCentralRepository* cenrep =
-        reinterpret_cast<CJavaCentralRepository *>(aCenrepHandle);
-
-    HBufC* buf = NULL;
-
-    TUint32 key = (TUint32)aKey;
-    TRAPD(err, CallMethodL(buf, cenrep, &CJavaCentralRepository::GetStringL, key, mFunctionServer));
-
-    jstring val = NULL;
-    if (err == KErrNone && buf)
-    {
-        val = java::util::S60CommonUtils::NativeToJavaString(*aJni, *buf);
-    }
-    else
-    {
-        JniUtils::throwNewException(aJni, "com/nokia/mid/cenrep/CentralRepositoryException" ,
-                                    JavaCommonUtils::intToString(err));
-    }
-
-    delete buf;
-    return val;
-}
-
-
-/*
- * Class:     com_nokia_mj_impl_cenrep_CentralRepositoryImpl
- * Method:    _getInt
- * Signature: (IIJLcom/nokia/mj/impl/cenrep/CentralRepositoryImpl$IntValue;)I
- */
-JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_cenrep_CentralRepositoryImpl__1getInt
-(JNIEnv * aJni, jobject, jint aFunctionSourceHandle, jint aCenrepHandle,
- jlong aKey)
-{
-    java::centrep::CentrepFunctionServer* mFunctionServer =
-        reinterpret_cast< java::centrep::CentrepFunctionServer*>(
-            aFunctionSourceHandle);
-
-    CJavaCentralRepository* cenrep =
-        reinterpret_cast<CJavaCentralRepository *>(aCenrepHandle);
-
-    TInt val = 0;
-    TUint32 key = (TUint32)aKey;
-
-    TRAPD(err, CallMethodL(val, cenrep, &CJavaCentralRepository::GetIntL, key, mFunctionServer));
-
-    if (err != KErrNone)
-    {
-        JniUtils::throwNewException(aJni, "com/nokia/mid/cenrep/CentralRepositoryException" ,
-                                    JavaCommonUtils::intToString(err));
-    }
-    return val;
-}
-
-/**
- * SetStringL
- */
-void SetStringL(CJavaCentralRepository* aCenRep, TUint32 aKey, TDesC* aValue)
-{
-    aCenRep->SetL(aKey, *aValue);
-}
-
-/*
- * Class:     com_nokia_mj_impl_cenrep_CentralRepositoryImpl
- * Method:    _setString
- * Signature: (IIJLjava/lang/String;)I
- */
-JNIEXPORT void JNICALL Java_com_nokia_mj_impl_cenrep_CentralRepositoryImpl__1setString
-(JNIEnv *aJni, jobject, jint aFunctionSourceHandle, jint aCenrepHandle,
- jlong aKey, jstring aValue)
-{
-    java::centrep::CentrepFunctionServer* mFunctionServer =
-        reinterpret_cast< java::centrep::CentrepFunctionServer*>(
-            aFunctionSourceHandle);
-
-    CJavaCentralRepository* cenrep =
-        reinterpret_cast<CJavaCentralRepository *>(aCenrepHandle);
-
-    JStringUtils string(*aJni, aValue);
-    TUint32 key = (TUint32)aKey;
-
-    TDesC* tstring = (TDesC*) &string;
-    TRAPD(err, CallMethodL(SetStringL, cenrep, key, tstring, mFunctionServer));
-
-    if (err != KErrNone)
-    {
-        JniUtils::throwNewException(aJni, "com/nokia/mid/cenrep/CentralRepositoryException" ,
-                                    JavaCommonUtils::intToString(err));
-    }
-}
-
-/**
- * SetIntL
- */
-void SetIntL(CJavaCentralRepository* aCenRep, TUint32 aKey, TInt aValue)
-{
-    aCenRep->SetL(aKey, aValue);
-}
-
-/*
- * Class:     com_nokia_mj_impl_cenrep_CentralRepositoryImpl
- * Method:    _setInt
- * Signature: (IIJI)I
- */
-JNIEXPORT void JNICALL Java_com_nokia_mj_impl_cenrep_CentralRepositoryImpl__1setInt
-(JNIEnv *aJni, jobject, jint aFunctionSourceHandle, jint aCenrepHandle,
- jlong aKey, jint aValue)
-{
-    java::centrep::CentrepFunctionServer* mFunctionServer =
-        reinterpret_cast< java::centrep::CentrepFunctionServer*>(
-            aFunctionSourceHandle);
-
-    CJavaCentralRepository* cenrep =
-        reinterpret_cast<CJavaCentralRepository *>(aCenrepHandle);
-
-    TUint32 key = (TUint32)aKey;
-    TInt value = (TInt)aValue;
-
-    TRAPD(err, CallMethodL(SetIntL, cenrep, key, value, mFunctionServer));
-    if (err != KErrNone)
-    {
-        JniUtils::throwNewException(aJni, "com/nokia/mid/cenrep/CentralRepositoryException" ,
-                                    JavaCommonUtils::intToString(err));
-    }
-}
-
-
--- a/javaextensions/comm/build/javacomm_0x2002DCA5.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/comm/build/javacomm_0x2002DCA5.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc
@@ -106,7 +106,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/datagram/datagram/build/javadatagram_0x2002DCA9.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/datagram/datagram/build/javadatagram_0x2002DCA9.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../inc
@@ -106,7 +106,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/datagram/datagram/javasrc/com/nokia/mj/impl/datagram/UDPDatagramConnectionImpl.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/datagram/datagram/javasrc/com/nokia/mj/impl/datagram/UDPDatagramConnectionImpl.java	Wed Oct 13 14:23:59 2010 +0300
@@ -134,7 +134,7 @@
 
             /* security related stuff */
             ApplicationUtils appUtils = ApplicationUtils.getInstance();
-            DatagramPermissionImpl per = new DatagramPermissionImpl(DatagramPermissionImpl.SERVER_TARGET);
+            DatagramPermissionImpl per = new DatagramPermissionImpl("datagram://");
             Logger.LOG(Logger.ESOCKET, Logger.EInfo,
                        "calling check permissions from UDPDatagramConnectionImpl");
             appUtils.checkPermission(per);
@@ -171,7 +171,7 @@
             {
                 /* security related stuff, server mode datagram connection */
                 ApplicationUtils appUtils = ApplicationUtils.getInstance();
-                DatagramPermissionImpl per = new DatagramPermissionImpl(DatagramPermissionImpl.SERVER_TARGET);
+                DatagramPermissionImpl per = new DatagramPermissionImpl("datagram://");
                 Logger.LOG(Logger.ESOCKET, Logger.EInfo,
                            "calling check permissions from UDPDatagramConnectionImpl");
                 appUtils.checkPermission(per);
@@ -183,7 +183,7 @@
             {
                 /* security related stuff, client mode datagram connection */
                 ApplicationUtils appUtils = ApplicationUtils.getInstance();
-                DatagramPermissionImpl per = new DatagramPermissionImpl(DatagramPermissionImpl.CLIENT_TARGET);
+                DatagramPermissionImpl per = new DatagramPermissionImpl("datagram://*");
                 Logger.LOG(Logger.ESOCKET, Logger.EInfo,
                            "calling check permissions from UDPDatagramConnectionImpl");
                 appUtils.checkPermission(per);
--- a/javaextensions/datagram/datagram/javasrc/com/nokia/mj/impl/gcf/protocol/datagram/DatagramPermissionImpl.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/datagram/datagram/javasrc/com/nokia/mj/impl/gcf/protocol/datagram/DatagramPermissionImpl.java	Wed Oct 13 14:23:59 2010 +0300
@@ -25,13 +25,6 @@
 
 public class DatagramPermissionImpl extends PermissionBase
 {
-    /**
-     * Constants for identifying the target/uri of connection: client or server
-     */
-     public static String CLIENT_TARGET = "datagram://*";
-     public static String SERVER_TARGET = "datagram://";
-
-     private String iTarget;
 
     /**
      * Returns the question (as localized text) associated with the security
@@ -44,7 +37,6 @@
     public DatagramPermissionImpl(String uri)
     {
         super(uri);
-        iTarget = uri;
     }
 
     public String getSecurityPromptQuestion(int aInteractionMode)
@@ -64,10 +56,6 @@
 
     public String toString()
     {
-        if (SERVER_TARGET.equals(iTarget))
-        {
-            return "javax.microedition.io.Connector.datagramreceiver";
-        }
         return "javax.microedition.io.Connector.datagram";
     }
 
@@ -75,12 +63,7 @@
     {
         if (p instanceof DatagramPermissionImpl)
         {
-            DatagramPermissionImpl o = (DatagramPermissionImpl)p;
-            if ((iTarget != null && iTarget.equals(o.getTarget()))
-                || (iTarget == null && o.getTarget() == null))
-            {
-                return true;
-            }
+            return true;
         }
         return false;
     }
@@ -105,8 +88,4 @@
         return null;
     }
 
-    String getTarget()
-    {
-        return iTarget;
-    }
 }
\ No newline at end of file
--- a/javaextensions/datagram/datagram/javasrc/com/nokia/mj/impl/gcf/protocol/datagram/PushValidatorImpl.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/datagram/datagram/javasrc/com/nokia/mj/impl/gcf/protocol/datagram/PushValidatorImpl.java	Wed Oct 13 14:23:59 2010 +0300
@@ -125,7 +125,7 @@
         /* security check */
         Logger.LOG(Logger.ESOCKET, Logger.EInfo,"datagram - push validator : before security check");
         ApplicationUtils appUtils = ApplicationUtils.getInstance();
-        DatagramPermissionImpl per = new DatagramPermissionImpl(DatagramPermissionImpl.SERVER_TARGET);
+        DatagramPermissionImpl per = new DatagramPermissionImpl("datagram://");
         appUtils.checkPermission(per);
         /* security check */
         Logger.LOG(Logger.ESOCKET, Logger.EInfo,"datagram - push validator : after security check");
--- a/javaextensions/datagram/datagram/src.s60/apnsettings.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/datagram/datagram/src.s60/apnsettings.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -42,7 +42,6 @@
             char * fret = if_indextoname(aApn,interfacename);
             strcpy(ifr.ifr_name, interfacename);
             ILOG1(ESOCKET, "interface name is %s",interfacename);
-            delete interfacename;
         }
         else
         {
--- a/javaextensions/datagram/datagram/src/nativedatagramconnection.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/datagram/datagram/src/nativedatagramconnection.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -133,7 +133,6 @@
         writeBuffer = new char[requiredNativeBufferLength + 1];
     }
     /* Copy the data to be written from java buffer to the native buffer.  */
-    if (writeBuffer != NULL)
     JNIArrayUtils::CopyToNative(aJni, aJavaBuffer, aOffset,
                                 requiredNativeBufferLength, writeBuffer);
 
--- a/javaextensions/datagram/serverconnection/build/javadatagramscplugin_0x2002DCAA.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/datagram/serverconnection/build/javadatagramscplugin_0x2002DCAA.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc
@@ -104,7 +104,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/globalindicators/build/javaglobalindicators_0x2002DCAF.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/globalindicators/build/javaglobalindicators_0x2002DCAF.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc
@@ -102,7 +102,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/iapinfo/build/javaiapinfo_0x2002DCB3.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/iapinfo/build/javaiapinfo_0x2002DCB3.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc.s60
@@ -105,7 +105,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/javaextensions.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/javaextensions.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -15,7 +15,7 @@
 #
 TEMPLATE = subdirs
 SUBDIRS += iapinfo/build/javaiapinfo.pro 
-SUBDIRS += mobinfo/build/javamobinfo.pro 
+SUBDIRS += mobinfo/build/mobinfo.pro 
 SUBDIRS += comm/build/javacomm.pro 
 SUBDIRS += globalindicators/build/javaglobalindicators.pro 
 SUBDIRS += webservices/build/javawebservices.pro 
@@ -23,7 +23,6 @@
 SUBDIRS += location/build/javalocation.pro 
 SUBDIRS += sensor/build/javasensor.pro 
 SUBDIRS += broadcast_stub/build/javabroadcast.pro 
-SUBDIRS += centralrepository/build/javacentrep.pro 
 SUBDIRS += midppush 
 SUBDIRS += bluetooth 
 SUBDIRS += datagram 
--- a/javaextensions/location/build/javalocation_0x2002DCBC.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/location/build/javalocation_0x2002DCBC.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../common/inc
@@ -146,7 +146,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/location/position/src/cpositioner.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/location/position/src/cpositioner.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -156,9 +156,10 @@
     case KErrAccessDenied: // Fallthrough
     case KErrUnknown: // Used in MLFW
         // Position request was canceled
-    case KErrCancel: // Fallthrough 
-        // Partial update feature is not supported. So Java tries to obtain
-        // location fixes until time specified in Java-side expires
+    case KErrCancel: // Fallthrough
+        // Bad implementation but due to partial fixes this cannot be fixed
+        // at the moment. Correct when partial fixes are supported. Java tries
+        // to obtain location fixes until time specified in Java-side expires
         // Delay response so that repeated calls to getLocation do not steal
         // all CPU time
     default:
--- a/javaextensions/midppush/build/javapushregistry_0x2002DCC9.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/midppush/build/javapushregistry_0x2002DCC9.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../pushcontroller/src
@@ -100,7 +100,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/midppush/pushcontroller/build/javapushcontroller_0x2002DCC8.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/midppush/pushcontroller/build/javapushcontroller_0x2002DCC8.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../../../../javaruntime/inc
@@ -107,7 +107,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/midppush/pushregistryplugin/build/javacaptain_ext_pushregistryplugin_0x2002DCA2.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/midppush/pushregistryplugin/build/javacaptain_ext_pushregistryplugin_0x2002DCA2.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc
@@ -112,7 +112,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/midprms_db/build/javarms_0x2002DCCB.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/midprms_db/build/javarms_0x2002DCCB.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../inc
@@ -97,7 +97,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/midprms_db/javasrc/com/nokia/mj/impl/rms/RecordIdCache.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/midprms_db/javasrc/com/nokia/mj/impl/rms/RecordIdCache.java	Wed Oct 13 14:23:59 2010 +0300
@@ -88,8 +88,8 @@
     private void insertRecordId(int aRecordId)
     {
         int[] temp = new int[iRecordIds.length + 1];
-        temp[iRecordIds.length] = aRecordId;
-        System.arraycopy(iRecordIds, 0, temp, 0, iRecordIds.length);
+        temp[0] = aRecordId;
+        System.arraycopy(iRecordIds, 0, temp, 1, iRecordIds.length);
         iRecordIds = temp;
     }
 
--- a/javaextensions/midprms_db/javasrc/com/nokia/mj/impl/rms/RmsFileInfo.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/midprms_db/javasrc/com/nokia/mj/impl/rms/RmsFileInfo.java	Wed Oct 13 14:23:59 2010 +0300
@@ -71,7 +71,7 @@
 
     private long getSize()
     {
-        long size = -1;
+        long size = 0;
         try
         {
             size = iFile.fileSize();
@@ -82,7 +82,6 @@
         }
         if (size < 0)
         {
-            Logger.WLOG(Logger.EMidpRms, "fileSize = " + size);
             size = 0;
         }
         return size;
@@ -103,19 +102,18 @@
 
     private long getFreeSpace()
     {
-        long size = -1;
+        long size = 0;
         try
         {
             size = iFile.availableSize();
         }
         catch (Exception e)
         {
-            Logger.ELOG(Logger.EMidpRms, "availableSize() failed" , e);
+            Logger.ELOG(Logger.EMidpRms, "availableSize()" , e);
         }
         if (size < 0)
         {
-            Logger.WLOG(Logger.EMidpRms, "availableSize = " + size);
-            size = MAX_RMS_SIZE;
+            size = 0;
         }
         return size;
     }
--- a/javaextensions/midprms_db/rmsplugin/build/javacaptain_ext_ondemand_2_0x2002DD01.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/midprms_db/rmsplugin/build/javacaptain_ext_ondemand_2_0x2002DD01.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../../inc
@@ -101,7 +101,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/midprms_db/tsrc/build/rmsintersuite.jad	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/midprms_db/tsrc/build/rmsintersuite.jad	Wed Oct 13 14:23:59 2010 +0300
@@ -4,6 +4,6 @@
 MicroEdition-Profile: MIDP-2.0
 MIDlet-1: InterSuite,,j2meunitomj.MIDletTestRunner
 MIDlet-Name: InterSuite
-MIDlet-Jar-Size: 70421
+MIDlet-Jar-Size: 69754
 MIDlet-Jar-URL: rmsintersuite.jar
 J2MEUnitTestClasses: com.nokia.mj.test.rms.TestInterSuiteAccess
--- a/javaextensions/midprms_db/tsrc/build/rmssharedtests.jad	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/midprms_db/tsrc/build/rmssharedtests.jad	Wed Oct 13 14:23:59 2010 +0300
@@ -4,6 +4,6 @@
 MicroEdition-Profile: MIDP-2.0
 MIDlet-1: SharedStore,,j2meunitomj.MIDletTestRunner
 MIDlet-Name: SharedStore
-MIDlet-Jar-Size: 70423
+MIDlet-Jar-Size: 69757
 MIDlet-Jar-URL: rmssharedtests.jar
 J2MEUnitTestClasses: com.nokia.mj.test.rms.CreateSharedStore
--- a/javaextensions/midprms_db/tsrc/build/rmstests.jad	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/midprms_db/tsrc/build/rmstests.jad	Wed Oct 13 14:23:59 2010 +0300
@@ -4,7 +4,7 @@
 MicroEdition-Profile: MIDP-2.0
 MIDlet-1: RmsUnitTests,,j2meunitomj.MIDletTestRunner
 MIDlet-Name: RmsUnitTests
-MIDlet-Jar-Size: 70423
+MIDlet-Jar-Size: 69757
 MIDlet-Jar-URL: rmstests.jar
 J2MEUnitTestClasses: com.nokia.mj.test.rms.AllTests
 
--- a/javaextensions/midprms_db/tsrc/javasrc/com/nokia/mj/test/rms/TestRecordEnumeration.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/midprms_db/tsrc/javasrc/com/nokia/mj/test/rms/TestRecordEnumeration.java	Wed Oct 13 14:23:59 2010 +0300
@@ -139,14 +139,6 @@
             }
         }));
 
-        aSuite.addTest(new TestRecordEnumeration("testEnumerationOrder", new TestMethod()
-        {
-            public void run(TestCase tc)
-            {
-                ((TestRecordEnumeration) tc).testEnumerationOrder();
-            }
-        }));
-
         return aSuite;
     }
 
@@ -1155,56 +1147,5 @@
         }
     }
 
-    public void testEnumerationOrder()
-    {
-        // This test checks that record enumeration returns records in FIFO order
-        // if null RecordComparator is provided
-        // MIDP spec says that order is undefined in this case but many acceptance tests
-        // assume this order
-        System.out.println("TestRecordEnumeration.testEnumerationOrder()");
-        RecordStore store = null;
-        String rec_store_name = "testEnumerationOrder";
-
-        try
-        {
-            // 0: Init
-            System.out.println("0: Init");
-            try
-            {
-                RecordStore.deleteRecordStore(rec_store_name);
-            }
-            catch (Exception e) {}
-            store = RecordStore.openRecordStore(rec_store_name, true);
-            populateRecordStore(store);
-
-            // 1: check order
-            System.out.println("1: check order");
-            RecordEnumeration enumeration = store.enumerateRecords(null, null, false);
-            for(int i = 0; enumeration.hasNextElement(); i++)
-            {
-                byte[] r = enumeration.nextRecord();
-                assertEquals(r, iData[i].getBytes());
-            }
-        }
-        catch (Exception e)
-        {
-            e.printStackTrace();
-            fail("Unexpected exception " + e);
-        }
-        finally
-        {
-            try
-            {
-                store.closeRecordStore();
-            }
-            catch (Exception e) {}
-            try
-            {
-                RecordStore.deleteRecordStore(rec_store_name);
-            }
-            catch (Exception e) {}
-        }
-    }
-
 }
 
--- a/javaextensions/mobinfo/build/bld.inf	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/mobinfo/build/bld.inf	Wed Oct 13 14:23:59 2010 +0300
@@ -19,4 +19,4 @@
 default
 
 PRJ_MMPFILES  
-javamobinfo_0x2002DCC3.mmp 
+mobinfo_0x2002DCC3.mmp 
--- a/javaextensions/mobinfo/build/javamobinfo.pro	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-#
-# 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: 
-#
-
-TARGET=javamobinfo
-TEMPLATE=lib
-CONFIG += omj java stl
-CONFIG -= qt
-
-symbian {
-    LIBS += -leuser -letel -letelmm -lesock -lconnmon -lcommdb -lcommsdat -lcmmanager -ljavaconnectionmanager  
-}
-
-include(../../../build/omj.pri)
--- a/javaextensions/mobinfo/build/javamobinfo_0x2002DCC3.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,151 +0,0 @@
-/*
-* 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: Generated file - do not edit manually
-*
-*/
-
-// ==============================================================================
-// Generated by qmake (2.01a) (Qt 4.6.4) on: (date)
-// This file is generated by qmake and should not be modified by the
-// user.
-//  Name        : javamobinfo.mmp
-// ==============================================================================
-
-TARGET		javamobinfo.dll
-TARGETTYPE		DLL
-
-UID		0x1000008d 0x2002DCC3
-SECUREID		0x2002DCC3
-
-EPOCALLOWDLLDATA
-
-
-// Qt Macros
-MACRO		UNICODE
-MACRO		QT_KEYPAD_NAVIGATION
-MACRO		QT_SOFTKEYS_ENABLED
-MACRO		QT_USE_MATH_H_FLOATS
-MACRO		RD_JAVA_SYMBIAN_TARGET
-MACRO		RD_JAVA_S60_RELEASE_9_2
-MACRO		RD_JAVA_S60_RELEASE_9_2_ONWARDS
-MACRO		RD_JAVA_S60_RELEASE_5_0_ONWARDS
-MACRO		RD_JAVA_STDCPPV5
-MACRO		RD_JAVA_EPOCALLOWDLLDATA_FIX
-MACRO		RD_JAVA_HTTP_EMC_ENABLED
-MACRO		RD_JAVA_NGA_ENABLED
-MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
-MACRO		RD_JAVA_OPENC_BETA_PATCH
-MACRO		RD_JAVA_INSTALLERUI_ENABLED
-MACRO		RD_JAVA_PREWARM
-MACRO		RD_JAVA_ADVANCED_TACTILE_FEEDBACK
-MACRO		RD_JAVA_MIDPRMS_DB
-MACRO		__SYMBIAN32__
-MACRO		J9EPOC32
-
-SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
-SYSTEMINCLUDE		../../inc
-SYSTEMINCLUDE		../../../inc
-SYSTEMINCLUDE		../src.s60
-SYSTEMINCLUDE		/epoc32/include/stdapis/stlportv5
-SYSTEMINCLUDE		/epoc32/include/mw
-SYSTEMINCLUDE		.
-
-SOURCEPATH 	../src.s60
-SOURCE		javamobinfo.cpp
-
-
-LIBRARY		euser.lib
-LIBRARY		etel.lib
-LIBRARY		etelmm.lib
-LIBRARY		esock.lib
-LIBRARY		connmon.lib
-LIBRARY		commdb.lib
-LIBRARY		commsdat.lib
-LIBRARY		cmmanager.lib
-LIBRARY		javaconnectionmanager.lib
-LIBRARY		javautils.lib
-LIBRARY		libpthread.lib
-LIBRARY		libstdcppv5.lib
-LIBRARY		libc.lib
-LIBRARY		libm.lib
-LIBRARY		libdl.lib
-LIBRARY		cone.lib
-LIBRARY		eikcore.lib
-LIBRARY		mediaclientaudio.lib
-LIBRARY		eikcoctl.lib
-LIBRARY		eiksrv.lib
-LIBRARY		apparc.lib
-LIBRARY		avkon.lib
-LIBRARY		efsrv.lib
-LIBRARY		charconv.lib
-LIBRARY		ws32.lib
-LIBRARY		hal.lib
-LIBRARY		gdi.lib
-LIBRARY		apgrfx.lib
-
-CAPABILITY		all -tcb 
-
-OPTION CW -wchar_t on
-OPTION ARMCC --visibility_inlines_hidden
-#if defined(ARMCC_4_0)
-OPTION ARMCC --import_all_vtbl
-#endif
-OPTION GCCE -fvisibility-inlines-hidden
-
-VERSION 10.525
-
-ARMFPU softvfp
-
-PAGED
-
-BYTEPAIRCOMPRESSTARGET
-
-USERINCLUDE .
-
-#include <platform_paths.hrh>
-
- APP_LAYER_SYSTEMINCLUDE
-
- OS_LAYER_LIBC_SYSTEMINCLUDE
-
- OS_LAYER_SSL_SYSTEMINCLUDE
-
-deffile ./~/javamobinfo.def
-
- SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlportv5)
-
-SYSTEMINCLUDE /epoc32/build/jrt/javabuild/inc.javah
-
-SOURCEPATH /epoc32/build/jrt/javabuild/javamobinfo
-
-SOURCE lookup.cpp
-
-SOURCEPATH /epoc32/build/jrt/javabuild/javamobinfo
-
-SOURCE jxe.c
-
-#ifdef WINSCW
-
-LIBRARY ewsd.lib
-
-#endif
-
-STDCPP
-
-#ifdef WINSCW
-DEFFILE ./bwins/javamobinfo.def
-#elif defined EABI
-DEFFILE ./eabi/javamobinfo.def
-#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javaextensions/mobinfo/build/mobinfo.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -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: 
+#
+
+TARGET=javamobinfo
+TEMPLATE=lib
+CONFIG += omj java stl
+CONFIG -= qt
+
+symbian {
+    LIBS += -leuser -letel -letelmm -lesock -lconnmon -lcommdb -lcommsdat -lcmmanager -ljavaconnectionmanager  
+}
+
+include(../../../build/omj.pri)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javaextensions/mobinfo/build/mobinfo_0x2002DCC3.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,151 @@
+/*
+* 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: Generated file - do not edit manually
+*
+*/
+
+// ==============================================================================
+// Generated by qmake (2.01a) (Qt 4.6.4) on: (date)
+// This file is generated by qmake and should not be modified by the
+// user.
+//  Name        : mobinfo.mmp
+// ==============================================================================
+
+TARGET		javamobinfo.dll
+TARGETTYPE		DLL
+
+UID		0x1000008d 0x2002DCC3
+SECUREID		0x2002DCC3
+
+EPOCALLOWDLLDATA
+
+
+// Qt Macros
+MACRO		UNICODE
+MACRO		QT_KEYPAD_NAVIGATION
+MACRO		QT_SOFTKEYS_ENABLED
+MACRO		QT_USE_MATH_H_FLOATS
+MACRO		RD_JAVA_SYMBIAN_TARGET
+MACRO		RD_JAVA_S60_RELEASE_9_2
+MACRO		RD_JAVA_S60_RELEASE_9_2_ONWARDS
+MACRO		RD_JAVA_S60_RELEASE_5_0_ONWARDS
+MACRO		RD_JAVA_STDCPPV5
+MACRO		RD_JAVA_EPOCALLOWDLLDATA_FIX
+MACRO		RD_JAVA_HTTP_EMC_ENABLED
+MACRO		RD_JAVA_NGA_ENABLED
+MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
+MACRO		RD_JAVA_OPENC_BETA_PATCH
+MACRO		RD_JAVA_INSTALLERUI_ENABLED
+MACRO		RD_JAVA_PREWARM
+MACRO		RD_JAVA_ADVANCED_TACTILE_FEEDBACK
+MACRO		RD_JAVA_MIDPRMS_DB
+MACRO		__SYMBIAN32__
+MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
+
+SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
+SYSTEMINCLUDE		../../inc
+SYSTEMINCLUDE		../../../inc
+SYSTEMINCLUDE		../src.s60
+SYSTEMINCLUDE		/epoc32/include/stdapis/stlportv5
+SYSTEMINCLUDE		/epoc32/include/mw
+SYSTEMINCLUDE		.
+
+SOURCEPATH 	../src.s60
+SOURCE		javamobinfo.cpp
+
+
+LIBRARY		euser.lib
+LIBRARY		etel.lib
+LIBRARY		etelmm.lib
+LIBRARY		esock.lib
+LIBRARY		connmon.lib
+LIBRARY		commdb.lib
+LIBRARY		commsdat.lib
+LIBRARY		cmmanager.lib
+LIBRARY		javaconnectionmanager.lib
+LIBRARY		javautils.lib
+LIBRARY		libpthread.lib
+LIBRARY		libstdcppv5.lib
+LIBRARY		libc.lib
+LIBRARY		libm.lib
+LIBRARY		libdl.lib
+LIBRARY		cone.lib
+LIBRARY		eikcore.lib
+LIBRARY		mediaclientaudio.lib
+LIBRARY		eikcoctl.lib
+LIBRARY		eiksrv.lib
+LIBRARY		apparc.lib
+LIBRARY		avkon.lib
+LIBRARY		efsrv.lib
+LIBRARY		charconv.lib
+LIBRARY		ws32.lib
+LIBRARY		hal.lib
+LIBRARY		gdi.lib
+LIBRARY		apgrfx.lib
+
+CAPABILITY		all -tcb 
+
+OPTION CW -wchar_t on
+OPTION ARMCC --visibility_inlines_hidden
+#if defined(ARMCC_4_0)
+OPTION ARMCC --import_all_vtbl
+#endif
+OPTION GCCE -fvisibility-inlines-hidden
+
+VERSION 10.0
+
+ARMFPU softvfp
+
+PAGED
+
+BYTEPAIRCOMPRESSTARGET
+
+USERINCLUDE .
+
+#include <platform_paths.hrh>
+
+ APP_LAYER_SYSTEMINCLUDE
+
+ OS_LAYER_LIBC_SYSTEMINCLUDE
+
+ OS_LAYER_SSL_SYSTEMINCLUDE
+
+deffile ./~/javamobinfo.def
+
+ SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlportv5)
+
+SYSTEMINCLUDE /epoc32/build/jrt/javabuild/inc.javah
+
+SOURCEPATH /epoc32/build/jrt/javabuild/javamobinfo
+
+SOURCE lookup.cpp
+
+SOURCEPATH /epoc32/build/jrt/javabuild/javamobinfo
+
+SOURCE jxe.c
+
+#ifdef WINSCW
+
+LIBRARY ewsd.lib
+
+#endif
+
+STDCPP
+
+#ifdef WINSCW
+DEFFILE ./bwins/javamobinfo.def
+#elif defined EABI
+DEFFILE ./eabi/javamobinfo.def
+#endif
--- a/javaextensions/pim/agnadapter/inc.s60/cpimagnlistadapter.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/agnadapter/inc.s60/cpimagnlistadapter.h	Wed Oct 13 14:23:59 2010 +0300
@@ -225,8 +225,7 @@
     GetExternalItemModificationsByEntryTypeL(
         CCalEntry::TType aEntryType);
 
-    void CPIMAgnListAdapter::DoExternalItemModificationsByEntryTypeL(
-        CCalEntry::TType aEntryType);
+    void DoExternalItemModificationsByEntryTypeL(CCalEntry::TType aEntryType);
 
     /**
      * Fetches a CAgnEntry from the native Agenda Model.
@@ -268,8 +267,7 @@
      *
      * @param aEntryType Entry type for change callbacks (ToDo/Event/all).
      */
-    void ConstructL(MCalChangeCallBack::TChangeEntryType aEntryType,
-                    CCalSession* aCalSession);
+    void ConstructL(MCalChangeCallBack::TChangeEntryType aEntryType);
 
     void DoClose();
 
--- a/javaextensions/pim/agnadapter/inc.s60/cpimeventadapteraccess.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/agnadapter/inc.s60/cpimeventadapteraccess.h	Wed Oct 13 14:23:59 2010 +0300
@@ -73,17 +73,13 @@
         MPIMLocalizationData** aRetLocalizationData);
 
     TBool OpenEventListL(
-        CCalSession* aCalSession,
-
-        const TDesC* aCalNameArg,
+        const TDesC* aListName,
         MPIMEventAdapterManager** aRetAdapterManager,
         MPIMEventListAdapter** aRetListAdapter,
         MPIMLocalizationData** aRetLocalizationData);
 
     TBool OpenToDoListL(
-        CCalSession* aCalSession,
-
-        const TDesC* aCalNameArg,
+        const TDesC* aListName,
         MPIMToDoAdapterManager** aRetAdapterManager,
         MPIMToDoListAdapter** aRetListAdapter,
         MPIMLocalizationData** aRetLocalizationData);
--- a/javaextensions/pim/agnadapter/inc.s60/cpimeventlistadapter.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/agnadapter/inc.s60/cpimeventlistadapter.h	Wed Oct 13 14:23:59 2010 +0300
@@ -27,7 +27,6 @@
 // FORWARD DECLARATIONS
 class MPIMEventItem;
 class CPIMAgnEventAdapter;
-class CCalSession;
 
 // CLASS DECLARATION
 
@@ -48,8 +47,7 @@
     static CPIMEventListAdapter* NewL(
         CCalEntry::TType aEntryType,
         CPIMAgnEventAdapter* aEventAdapter,
-        java::util::FunctionServer* aFuncServer,
-        CCalSession *aCalSession);
+        java::util::FunctionServer* aFuncServer);
 
     /**
      * Destructor.
@@ -139,8 +137,7 @@
      */
     void CreateEventItemL(MPIMEventItem& aEventItem);
 
-    void CPIMEventListAdapter::DoCreateEventItemL(
-        MPIMEventItem& aEventItem);
+    void DoCreateEventItemL(MPIMEventItem& aEventItem);
 
     /**
      * Reads an existing event item from the Agenda File.
@@ -165,8 +162,7 @@
      */
     void ReadEventItemL(MPIMEventItem& aEventItem);
 
-    void CPIMEventListAdapter::DoReadEventItemL(
-        MPIMEventItem& aEventItem);
+    void DoReadEventItemL(MPIMEventItem& aEventItem);
 
     /**
      * Writes an existing event item to the native Agenda File.
@@ -192,8 +188,7 @@
      */
     void WriteEventItemL(MPIMEventItem& aEventItem);
 
-    void CPIMEventListAdapter::DoWriteEventItemL(
-        MPIMEventItem& aEventItem);
+    void DoWriteEventItemL(MPIMEventItem& aEventItem);
 
     /**
      * Removes an existing event from the native Agenda File.
@@ -213,8 +208,7 @@
      */
     void RemoveEventItemL(TPIMItemID aItemID);
 
-    void CPIMEventListAdapter::DoRemoveEventItemL(
-        TPIMItemID aItemID);
+    void DoRemoveEventItemL(TPIMItemID aItemID);
 
 protected:
 
@@ -228,9 +222,7 @@
      */
     void ConstructL(
         CCalEntry::TType aEntryType,
-
-        CPIMAgnEventAdapter* aEventAdapter,
-        TInt aCalSessionInt);
+        CPIMAgnEventAdapter* aEventAdapter);
 
 private: // Member data
 
--- a/javaextensions/pim/agnadapter/inc.s60/cpimtodoadapteraccess.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/agnadapter/inc.s60/cpimtodoadapteraccess.h	Wed Oct 13 14:23:59 2010 +0300
@@ -67,17 +67,13 @@
         MPIMLocalizationData** aRetLocalizationData);
 
     TBool OpenEventListL(
-        CCalSession* aCalSession,
-
-        const TDesC* aCalNameArg,
+        const TDesC* aListName,
         MPIMEventAdapterManager** aRetAdapterManager,
         MPIMEventListAdapter** aRetListAdapter,
         MPIMLocalizationData** aRetLocalizationData);
 
     TBool OpenToDoListL(
-        CCalSession* aCalSession,
-
-        const TDesC* aCalNameArg,
+        const TDesC* aListName,
         MPIMToDoAdapterManager** aRetAdapterManager,
         MPIMToDoListAdapter** aRetListAdapter,
         MPIMLocalizationData** aRetLocalizationData);
--- a/javaextensions/pim/agnadapter/inc.s60/cpimtodolistadapter.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/agnadapter/inc.s60/cpimtodolistadapter.h	Wed Oct 13 14:23:59 2010 +0300
@@ -44,8 +44,7 @@
     /**
      * Two-phased constructor.
      */
-    static CPIMToDoListAdapter* NewL(java::util::FunctionServer* aFuncServer,
-    CCalSession *aCalSession);
+    static CPIMToDoListAdapter* NewL(java::util::FunctionServer* aFuncServer);
 
     /**
      * Destructor.
@@ -135,8 +134,7 @@
      */
     void CreateToDoItemL(MPIMToDoItem& aToDoItem);
 
-    void CPIMToDoListAdapter::DoCreateToDoItemL(
-        MPIMToDoItem& aToDoItem);
+    void DoCreateToDoItemL(MPIMToDoItem& aToDoItem);
 
     /**
      * Reads an existing To-Do item from the Agenda File.
@@ -161,8 +159,7 @@
      */
     void ReadToDoItemL(MPIMToDoItem& aToDoItem);
 
-    void CPIMToDoListAdapter::DoReadToDoItemL(
-        MPIMToDoItem& aToDoItem);
+    void DoReadToDoItemL(MPIMToDoItem& aToDoItem);
 
     /**
      * Writes an existing To-Do item to the native Agenda File.
@@ -188,8 +185,7 @@
      */
     void WriteToDoItemL(MPIMToDoItem& aToDoItem);
 
-    void CPIMToDoListAdapter::DoWriteToDoItemL(
-        MPIMToDoItem& aToDoItem);
+    void DoWriteToDoItemL(MPIMToDoItem& aToDoItem);
 
     /**
      * Removes an existing To-Do from the native Agenda File.
@@ -209,8 +205,7 @@
      */
     void RemoveToDoItemL(TPIMItemID aItemID);
 
-    void CPIMToDoListAdapter::DoRemoveToDoItemL(
-        TPIMItemID aItemID);
+    void DoRemoveToDoItemL(TPIMItemID aItemID);
 
 protected:
 
@@ -222,7 +217,7 @@
     /**
      * By default Symbian 2nd phase constructor is private.
      */
-    void ConstructL(TInt aCalSessionInt);
+    void ConstructL();
 
 private: // Member data
 
--- a/javaextensions/pim/agnadapter/src.s60/cpimagnapptadapter.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/agnadapter/src.s60/cpimagnapptadapter.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -46,7 +46,6 @@
     CPIMAgnApptAdapter* self = new(ELeave) CPIMAgnApptAdapter(aFuncServer);
     CleanupStack::PushL(self);
     CallMethodL(self, &CPIMAgnApptAdapter::ConstructL, self->iFuncServer);
-
     CleanupStack::Pop(self);
     return self;
 }
--- a/javaextensions/pim/agnadapter/src.s60/cpimagnlistadapter.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/agnadapter/src.s60/cpimagnlistadapter.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -19,7 +19,7 @@
 // INCLUDE FILES
 #include "cpimagnlistadapter.h"
 #include "mpimitemdata.h"
-#include "cleanupresetanddestroy.h"
+#include "javasymbianoslayer.h"
 #include "cpimagnserverwait.h"
 #include "logger.h"
 
@@ -54,14 +54,12 @@
 // -----------------------------------------------------------------------------
 //
 void CPIMAgnListAdapter::ConstructL(
-
-    MCalChangeCallBack::TChangeEntryType aEntryType,
-    CCalSession* aCalSession)
+    MCalChangeCallBack::TChangeEntryType aEntryType)
 {
     JELOG2(EPim);
-
     iServerWait = CPIMAgnServerWait::NewL();
-    iCalSession = aCalSession;
+    iCalSession = CCalSession::NewL();
+    iCalSession->OpenL(iCalSession->DefaultFileNameL());
     iCalEntryView = CCalEntryView::NewL(*iCalSession, *iServerWait);
     iServerWait->WaitCompleteL(KServerMaxWait);
 
@@ -287,9 +285,10 @@
 void CPIMAgnListAdapter::CloseAgendaSession()
 {
     JELOG2(EPim);
-    iCalSession->StopChangeNotification();
     delete iCalEntryView;
     iCalEntryView = NULL;
+
+    delete iCalSession;
     iCalSession = NULL;
 
     iChangesRead = ETrue;
--- a/javaextensions/pim/agnadapter/src.s60/cpimeventadapteraccess.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/agnadapter/src.s60/cpimeventadapteraccess.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -139,8 +139,7 @@
     return EFalse;
 }
 
-TBool CPIMEventAdapterAccess::OpenEventListL(CCalSession* aCalSession,
-        const TDesC* aListName,
+TBool CPIMEventAdapterAccess::OpenEventListL(const TDesC* aListName,
         MPIMEventAdapterManager** aRetAdapterManager,
         MPIMEventListAdapter** aRetListAdapter,
         MPIMLocalizationData** aRetLocalizationData)
@@ -182,8 +181,8 @@
         CPIMAgnApptAdapter* adapter = CPIMAgnApptAdapter::NewL(iFuncServer);
         CleanupStack::PushL(adapter);
 
-        listAdapter = CPIMEventListAdapter::NewL(CCalEntry::EAppt,adapter,
-                      iFuncServer, aCalSession);
+        listAdapter = CPIMEventListAdapter::NewL(CCalEntry::EAppt, adapter,
+                      iFuncServer);
 
         CleanupStack::Pop(adapter);
         CleanupStack::Pop(adapterManager);
@@ -201,8 +200,8 @@
         CPIMAgnMemoAdapter* adapter = CPIMAgnMemoAdapter::NewL(iFuncServer);
         CleanupStack::PushL(adapter);
 
-        listAdapter = CPIMEventListAdapter::NewL(CCalEntry::EEvent,adapter,
-                      iFuncServer, aCalSession);
+        listAdapter = CPIMEventListAdapter::NewL(CCalEntry::EEvent, adapter,
+                      iFuncServer);
 
         CleanupStack::Pop(adapter);
         CleanupStack::Pop(adapterManager);
@@ -220,8 +219,8 @@
         CPIMAgnAnnivAdapter* adapter = CPIMAgnAnnivAdapter::NewL(iFuncServer);
         CleanupStack::PushL(adapter);
 
-        listAdapter = CPIMEventListAdapter::NewL(CCalEntry::EAnniv,adapter,
-                      iFuncServer, aCalSession);
+        listAdapter = CPIMEventListAdapter::NewL(CCalEntry::EAnniv, adapter,
+                      iFuncServer);
 
         CleanupStack::Pop(adapter);
         CleanupStack::Pop(adapterManager);
@@ -245,11 +244,9 @@
     return ETrue;
 }
 
-TBool CPIMEventAdapterAccess::OpenToDoListL(CCalSession* /*aCalSession*/,
-        const TDesC* /*aListName*/,
+TBool CPIMEventAdapterAccess::OpenToDoListL(const TDesC* /*aListName*/,
         MPIMToDoAdapterManager** /*aRetAdapterManager*/,
-        MPIMToDoListAdapter** /*aRetListAdapter*/,
-        MPIMLocalizationData** /*aRetLocalizationData*/)
+        MPIMToDoListAdapter** /*aRetListAdapter*/, MPIMLocalizationData** /*aRetLocalizationData*/)
 {
     JELOG2(EPim);
     // no ToDo lists
--- a/javaextensions/pim/agnadapter/src.s60/cpimeventlistadapter.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/agnadapter/src.s60/cpimeventlistadapter.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -49,13 +49,10 @@
 // -----------------------------------------------------------------------------
 //
 void CPIMEventListAdapter::ConstructL(CCalEntry::TType aEntryType,
-
-                                      CPIMAgnEventAdapter* aEventAdapter,
-                                      TInt aCalSessionInt)
+                                      CPIMAgnEventAdapter* aEventAdapter)
 {
     JELOG2(EPim);
-    CCalSession* calSession = reinterpret_cast <CCalSession*>(aCalSessionInt);
-    CPIMAgnListAdapter::ConstructL(MCalChangeCallBack::EChangeEntryEvent, calSession);
+    CPIMAgnListAdapter::ConstructL(MCalChangeCallBack::EChangeEntryEvent);
     iEntryType = aEntryType;
     iAgnAdapter = aEventAdapter;
 }
@@ -66,17 +63,13 @@
 // -----------------------------------------------------------------------------
 //
 CPIMEventListAdapter* CPIMEventListAdapter::NewL(CCalEntry::TType aEntryType,
-        CPIMAgnEventAdapter* aEventAdapter,
-        java::util::FunctionServer* aFuncServer, CCalSession *aCalSession
-                                                )
+        CPIMAgnEventAdapter* aEventAdapter, java::util::FunctionServer* aFuncServer)
 {
     JELOG2(EPim);
     CPIMEventListAdapter* self = new(ELeave) CPIMEventListAdapter(aFuncServer);
     CleanupStack::PushL(self);
-    TInt calSessionInt = reinterpret_cast <TInt>(aCalSession);
     CallMethodL(self, &CPIMEventListAdapter::ConstructL, aEntryType,
-                aEventAdapter, calSessionInt,self->iFuncServer);
-
+                aEventAdapter, self->iFuncServer);
     CleanupStack::Pop(self);
     return self;
 }
--- a/javaextensions/pim/agnadapter/src.s60/cpimtodoadapteraccess.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/agnadapter/src.s60/cpimtodoadapteraccess.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -106,20 +106,16 @@
     return EFalse;
 }
 
-TBool CPIMToDoAdapterAccess::OpenEventListL(CCalSession* /*aCalSession*/,
-        const TDesC* /*aListName*/,
+TBool CPIMToDoAdapterAccess::OpenEventListL(const TDesC* /*aListName*/,
         MPIMEventAdapterManager** /*aRetAdapterManager*/,
-        MPIMEventListAdapter** /*aRetListAdapter*/,
-        MPIMLocalizationData** /*aRetLocalizationData*/
-                                           )
+        MPIMEventListAdapter** /*aRetListAdapter*/, MPIMLocalizationData** /*aRetLocalizationData*/)
 {
     JELOG2(EPim);
     // no Event lists
     return EFalse;
 }
 
-TBool CPIMToDoAdapterAccess::OpenToDoListL(CCalSession* aCalSession,
-        const TDesC* aListName,
+TBool CPIMToDoAdapterAccess::OpenToDoListL(const TDesC* aListName,
         MPIMToDoAdapterManager** aRetAdapterManager,
         MPIMToDoListAdapter** aRetListAdapter,
         MPIMLocalizationData** aRetLocalizationData)
@@ -140,7 +136,7 @@
                 (*iToDoListNames)[0]);
     CleanupDeletePushL(adapterManager);
 
-    MPIMToDoListAdapter* listAdapter = CPIMToDoListAdapter::NewL(iFuncServer, aCalSession);
+    MPIMToDoListAdapter* listAdapter = CPIMToDoListAdapter::NewL(iFuncServer);
     CleanupStack::Pop(adapterManager);
 
     MPIMLocalizationData* localizationData = iToDoLocalizationData;
--- a/javaextensions/pim/agnadapter/src.s60/cpimtodolistadapter.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/agnadapter/src.s60/cpimtodolistadapter.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -49,11 +49,10 @@
 // Symbian 2nd phase constructor can leave.
 // -----------------------------------------------------------------------------
 //
-void CPIMToDoListAdapter::ConstructL(TInt aCalSessionInt)
+void CPIMToDoListAdapter::ConstructL()
 {
     JELOG2(EPim);
-    CCalSession* calSession = reinterpret_cast <CCalSession*>(aCalSessionInt);
-    CPIMAgnListAdapter::ConstructL(MCalChangeCallBack::EChangeEntryTodo, calSession);
+    CPIMAgnListAdapter::ConstructL(MCalChangeCallBack::EChangeEntryTodo);
     iAgnToDoAdapter = CPIMAgnToDoAdapter::NewL(iFuncServer);
 }
 
@@ -62,14 +61,13 @@
 // Two-phased constructor.
 // -----------------------------------------------------------------------------
 //
-CPIMToDoListAdapter* CPIMToDoListAdapter::NewL(java::util::FunctionServer* aFuncServer,
-        CCalSession *aCalSession)
+CPIMToDoListAdapter* CPIMToDoListAdapter::NewL(
+    java::util::FunctionServer* aFuncServer)
 {
     JELOG2(EPim);
     CPIMToDoListAdapter* self = new(ELeave) CPIMToDoListAdapter(aFuncServer);
     CleanupStack::PushL(self);
-    TInt calSessionInt = reinterpret_cast <TInt>(aCalSession);
-    CallMethodL(self, &CPIMToDoListAdapter::ConstructL,calSessionInt,self->iFuncServer);
+    CallMethodL(self, &CPIMToDoListAdapter::ConstructL, self->iFuncServer);
     CleanupStack::Pop(self);
     return self;
 }
--- a/javaextensions/pim/build/build.xml	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/build/build.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -39,7 +39,6 @@
   
   <target name="system.properties">
     <properties>
-    	com.nokia.mid.calendars=:pim.DynamicPropertyHandler
       microedition.pim.version=1.0
     </properties>
   </target>
--- a/javaextensions/pim/build/javapim.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/build/javapim.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -44,21 +44,21 @@
     
     
     LIBS += -lbafl \
-            -lbitmaptransforms \
+            -lBitmapTransforms \
             -lcaleninterimutils2 \
             -lcalinterimapi \
             -lcntmodel \
             -lefsrv \
             -lestor \
             -lfbscli \
-            -limageconversion \
+            -lImageConversion \
             -ltzclient \
             -lvcal \
             -lversit \
             -lvcard \
             -lefsrv \
-            -lCommonEngine \
-            -lplatformenv
+            -lcommonengine \
+            -lPlatformEnv
             
             
 # Resource files
--- a/javaextensions/pim/build/javapim_0x2002DCC5.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/build/javapim_0x2002DCC5.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../framework/inc.s60
@@ -172,20 +172,20 @@
 
 
 LIBRARY		bafl.lib
-LIBRARY		bitmaptransforms.lib
+LIBRARY		BitmapTransforms.lib
 LIBRARY		caleninterimutils2.lib
 LIBRARY		calinterimapi.lib
 LIBRARY		cntmodel.lib
 LIBRARY		efsrv.lib
 LIBRARY		estor.lib
 LIBRARY		fbscli.lib
-LIBRARY		imageconversion.lib
+LIBRARY		ImageConversion.lib
 LIBRARY		tzclient.lib
 LIBRARY		vcal.lib
 LIBRARY		versit.lib
 LIBRARY		vcard.lib
-LIBRARY		CommonEngine.lib
-LIBRARY		platformenv.lib
+LIBRARY		commonengine.lib
+LIBRARY		PlatformEnv.lib
 LIBRARY		javautils.lib
 LIBRARY		libpthread.lib
 LIBRARY		libstdcppv5.lib
@@ -215,7 +215,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/pim/cntadapter/inc.s60/cpimcmadapteraccess.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/cntadapter/inc.s60/cpimcmadapteraccess.h	Wed Oct 13 14:23:59 2010 +0300
@@ -26,7 +26,6 @@
 // FORWARD DECLARATIONS
 class MPIMLocalizationManager;
 class MPIMLocalizationData;
-class CCalSession;
 
 // CLASS DECLARATION
 /**
@@ -64,14 +63,12 @@
         MPIMLocalizationData** aRetLocalizationData);
 
     TBool OpenEventListL(
-        CCalSession* aCalSession,
         const TDesC* aListName,
         MPIMEventAdapterManager** aRetAdapterManager,
         MPIMEventListAdapter** aRetListAdapter,
         MPIMLocalizationData** aRetLocalizationData);
 
     TBool OpenToDoListL(
-        CCalSession* aCalSession,
         const TDesC* aListName,
         MPIMToDoAdapterManager** aRetAdapterManager,
         MPIMToDoListAdapter** aRetListAdapter,
--- a/javaextensions/pim/cntadapter/inc.s60/cpimcontactlistadapter.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/cntadapter/inc.s60/cpimcontactlistadapter.h	Wed Oct 13 14:23:59 2010 +0300
@@ -195,7 +195,7 @@
      */
     void Close();
 
-    void CPIMContactListAdapter::DoClose();
+    void DoClose();
 
 public: // MPIMContactListAdapter
 
@@ -223,8 +223,7 @@
      */
     void CreateContactItemL(MPIMContactItem& aContactItem);
 
-    void CPIMContactListAdapter::DoCreateContactItemL(
-        MPIMContactItem& aContactItem);
+    void DoCreateContactItemL(MPIMContactItem& aContactItem);
 
     /**
      * Reads an existing contact item from the native database.
@@ -249,8 +248,7 @@
      */
     void ReadContactItemL(MPIMContactItem& aContactItem);
 
-    void CPIMContactListAdapter::DoCallReadContactItemL(
-        MPIMContactItem& aContactItem);
+    void DoCallReadContactItemL(MPIMContactItem& aContactItem);
 
     /**
      * Reads an existing contact item from the native database
@@ -271,11 +269,9 @@
      *        native database.
      * @li Other - The list adapter is non-functional.
      */
-    void ReadMinimalContactItemL(
-        MPIMContactItem& aContactItem);
+    void ReadMinimalContactItemL(MPIMContactItem& aContactItem);
 
-    void CPIMContactListAdapter::DoCallReadMinimalContactItemL(
-        MPIMContactItem& aContactItem);
+    void DoCallReadMinimalContactItemL(MPIMContactItem& aContactItem);
 
     /**
      * Reads an existing contact item from the native database
@@ -315,7 +311,7 @@
     void ReadContactFieldL(MPIMContactItem& aContactItem,
                            TPIMContactField aContactField);
 
-    void CPIMContactListAdapter::DoReadContactFieldL(
+    void DoReadContactFieldL(
         MPIMContactItem& aContactItem,
         TPIMContactField aContactField);
 
@@ -343,8 +339,7 @@
      */
     void WriteContactItemL(MPIMContactItem& aContactItem);
 
-    void CPIMContactListAdapter::DoWriteContactItemL(
-        MPIMContactItem& aContactItem);
+    void DoWriteContactItemL(MPIMContactItem& aContactItem);
 
     /**
      * Removes an existing contact from the native database.
@@ -415,7 +410,7 @@
      * @param aContactItemViewDef View definition which is used for
      *        reading the contact item from the database
      */
-    void CPIMContactListAdapter::DoReadContactItemL(
+    void DoReadContactItemL(
         MPIMContactItem& aContactItem,
         const CContactItemViewDef& aContactItemViewDef);
 
--- a/javaextensions/pim/cntadapter/src.s60/cpimcmadapteraccess.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/cntadapter/src.s60/cpimcmadapteraccess.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -75,16 +75,16 @@
     return ETrue;
 }
 
-TBool CPIMCMAdapterAccess::OpenEventListL(CCalSession* /*aCalSession*/, const TDesC* /*aListName*/,
+TBool CPIMCMAdapterAccess::OpenEventListL(const TDesC* /*aListName*/,
         MPIMEventAdapterManager** /*aRetAdapterManager*/,
-        MPIMEventListAdapter** /*aRetListAdapter*/, MPIMLocalizationData** /*aRetLocalizationData*/)
+        MPIMEventListAdapter** /*aRetListAdapter*/, MPIMLocalizationData** /*aRetLocalizationData */)
 {
     JELOG2(EPim);
     // no Event lists
     return EFalse;
 }
 
-TBool CPIMCMAdapterAccess::OpenToDoListL(CCalSession* /*aCalSession*/, const TDesC* /*aListName*/,
+TBool CPIMCMAdapterAccess::OpenToDoListL(const TDesC* /*aListName*/,
         MPIMToDoAdapterManager** /*aRetAdapterManager*/,
         MPIMToDoListAdapter** /*aRetListAdapter*/, MPIMLocalizationData** /*aRetLocalizationData */)
 {
--- a/javaextensions/pim/cntadapter/src.s60/cpimcontactlistadapter.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/cntadapter/src.s60/cpimcontactlistadapter.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -809,7 +809,8 @@
                                         EPIMPanicInvalidItemID));
     // Read contact item using the item view definition
     CContactCard* contactItem =
-        static_cast<CContactCard*>(iDatabase->ReadContactLC(id,aContactItemViewDef));
+        static_cast<CContactCard*>(iDatabase->ReadContactLC(id,
+                                   aContactItemViewDef));
     // Set date and fill the PIM item
     TTime lastModified = contactItem->LastModified();
     aContactItem.SetLastModifiedL(lastModified);
--- a/javaextensions/pim/common/inc.s60/mpimadapteraccess.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/common/inc.s60/mpimadapteraccess.h	Wed Oct 13 14:23:59 2010 +0300
@@ -31,7 +31,6 @@
 class MPIMToDoAdapterManager;
 class MPIMToDoListAdapter;
 class MPIMLocalizationData;
-class CCalSession;
 
 // CLASS DECLARATION
 
@@ -130,9 +129,7 @@
      * @li \c KErrNotFound - The native database does not exist any more.
      * @li Other - The system is non-functional.
      */
-    virtual TBool OpenEventListL(CCalSession* aCalSession,
-                                 const TDesC* aListName,
-                                 //const TDesC* aCalNameArg,
+    virtual TBool OpenEventListL(const TDesC* aListName,
                                  MPIMEventAdapterManager** aRetAdapterManager,
                                  MPIMEventListAdapter** aRetListAdapter,
                                  MPIMLocalizationData** aRetLocalizationData) = 0;
@@ -166,9 +163,7 @@
      * @li \c KErrNotFound - The native database does not exist any more.
      * @li Other - The system is non-functional.
      */
-    virtual TBool OpenToDoListL(CCalSession* aCalSession,
-                                const TDesC* aListName,
-                                //const TDesC* aCalNameArg,
+    virtual TBool OpenToDoListL(const TDesC* aListName,
                                 MPIMToDoAdapterManager** aRetAdapterManager,
                                 MPIMToDoListAdapter** aRetListAdapter,
                                 MPIMLocalizationData** aRetLocalizationData) = 0;
--- a/javaextensions/pim/framework/inc.s60/cleanupresetanddestroy.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +0,0 @@
-/*
-* 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:  Cleanup Stack "reset and destroy" push operation.
- *
-*/
-
-
-#ifndef CLEANUPRESETANDDESTROY_H
-#define CLEANUPRESETANDDESTROY_H
-
-//  INCLUDE FILES
-#include <e32base.h>
-
-/**
- * An operation for pushing objects to cleanup stack with \c TCleanupItems
- * that will perform a \c ResetAndDestroy() operation on the pushed object
- * if a leave occurs.
- *
- * Note that the object itself will not be deleted.
- *
- * @par Example:
- * Here is an example of using \c CleanupResetAndDestroy with a dynamically
- * allocated \c RPointerArray. \c RPointerArray clears its contents with a
- * \cResetAndDestroy() operation.
- * @code
- *
- *  // A function which creates a pointer array with couple of initialized
- *  // CThings. The function must return a pointer to the pointer array,
- *  // because the array has to be allocated dynamically. CThing is some
- *  // simple CBase-derived class.
- *
- *  RPointerArray< CThing >* CreateThingArrayL( )
- *      {
- *      // Create an array of pointers to CThings with granularity of 4
- *
- *      RPointerArray< CThing >* things =
- *          new( ELeave ) RPointerArray< CThing >( 4 );
- *
- *      // Push pointer to the array to the cleanup stack; then push reference
- *      // to the array and a ResetAndDestroy operation to the cleanup stack.
- *
- *      // (Note that order of these operations matters: the ResetAndDestroy
- *      // operation must be performed before the array itself is deleted.)
- *
- *      CleanupStack::PushL( things );
- *      CleanupResetAndDestroyPushL( *things );
- *
- *      // Add couple of CThings with magic numbers to the array.
- *      // If any of the NewL() operations leaves, the array will be cleared
- *      // with ResetAndDestroy() and the array itself will destroyed.
- *
- *      User::LeaveIfError( things->Append( CThing::NewL( 7 ) ) );
- *      User::LeaveIfError( things->Append( CThing::NewL( 96 ) ) );
- *      User::LeaveIfError( things->Append( CThing::NewL( 999 ) ) );
- *
- *      // Pop the array reference with ResetAndDestroy from cleanup stack
- *      // then pop the pointer to the array itself.
- *
- *      CleanupStack::Pop(); // *things
- *      CleanupStack::Pop(); // things
- *
- *      // Now we're ready to return the results (a pointer to the array)
- *      return things;
- *      }
- *
- * @endcode
- */
-template<class T>
-inline void CleanupResetAndDestroyPushL(T& aRef);
-
-/**
- *  <em>See \ref CleanupResetAndDestroyPushL() documentation.</em>
- */
-template<class T>
-class CleanupResetAndDestroy
-{
-public:
-    inline static void PushL(T& aRef);
-
-private:
-    static void ResetAndDestroy(TAny *aPtr);
-};
-
-template<class T>
-inline void CleanupResetAndDestroy<T>::PushL(T& aRef)
-{
-    CleanupStack::PushL(TCleanupItem(&ResetAndDestroy, &aRef));
-}
-
-template<class T>
-void CleanupResetAndDestroy<T>::ResetAndDestroy(TAny *aPtr)
-{
-    static_cast<T*>(aPtr)->ResetAndDestroy();
-}
-
-template<class T>
-inline void CleanupResetAndDestroyPushL(T& aRef)
-{
-    CleanupResetAndDestroy<T>::PushL(aRef);
-}
-
-#endif // CLEANUPRESETANDDESTROY_H
-// End of File
--- a/javaextensions/pim/framework/inc.s60/cpimmanager.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/framework/inc.s60/cpimmanager.h	Wed Oct 13 14:23:59 2010 +0300
@@ -43,7 +43,6 @@
 class CPIMEventValidator;
 class CPIMToDoValidator;
 class MPIMAdapterAccess;
-class CCalSession;
 
 // CLASS DECLARATION
 
@@ -78,7 +77,6 @@
      * Destructor.
      */
     virtual ~CPIMManager();
-    void DeleteSessions();
 
 public: // New functions
 
@@ -115,8 +113,6 @@
      * @param aPimListName Name of the list. The name must be valid list
      *        name. If not present, name is resolved to the default list
      *        of the given type.
-     * @param aCalName Name of the Canlendar. The name must be valid Canlendar
-     *        name. If not present, name is resolved to the default Canlendar.
      *
      * @return PIM list. Type of the list corresponds to
      *         \a aPimListType argument.
@@ -134,7 +130,6 @@
     pimbaselist* openPimList(
         const TPIMListType& aPimListType,
         jstring aPimListName,
-        jstring aCalName,
         JNIEnv* aJniEnv);
 
     /**
@@ -154,48 +149,6 @@
         const TPIMListType& aPimListType,
         jintArray aError,
         JNIEnv* aJniEnv);
-    /**
-     * Lists list of Calendars existsing the mobile database.
-     *
-     * @return Array of list names.
-     *         Caller takes the ownership of the returned object.
-     *
-     */
-    jobjectArray listCalendars(jintArray aError, JNIEnv* aJniEnv);
-
-    /**
-     * Lists list of Calendars names existsing the mobile database.
-     *
-     * @return Array of list names.
-     *         Caller takes the ownership of the returned object.
-     */
-    jobjectArray listCalendarNames(jintArray aError, JNIEnv* aJniEnv);
-
-    /**
-     * create new calendar which you given name.
-     *
-     * @param calendar name Sting type this is used as filename.
-     *
-     * @param calendar name Sting type this is used as diaplay to the user.
-     *
-     * @return void.
-     *
-     * @par Leaving:
-     * @li \c KErrArgument - \if name already exists
-     */
-    void createCalendar(jstring aCalName, jstring aDisplayName, JNIEnv* aJniEnv);
-
-    /**
-    * delete the calendar which you given name.
-    *
-    * @param calendar name Sting type this is used as canlader filename
-    *        which it will delete.
-    * @return void.
-    *
-    * @par Leaving:
-    * @li \c KErrArgument - \a calendar name is not valid or not exists.
-    */
-    void deleteCalendar(jstring aCalName, JNIEnv* aJniEnv);
 
     /**
      * Provides a Contact validator.
@@ -234,102 +187,28 @@
      * @return A new list or NULL if no matching list was found.
      */
     CPIMEventList* DoOpenEventListL(
-        const TDesC* aListName, const TDesC* aCalName);
+        const TDesC* aListName);
 
     /**
      * Opens a to-do list.
      *
      * @param aListName Name of the list or NULL to indicate
      *        default list.
-     * @param aCalName Name of the calendar or NULL to indicate
-     *        default calendar.
-     * @return A new list or NULL if no matching list and calendar was found.
+     *
+     * @return A new list or NULL if no matching list was found.
      */
-    CPIMToDoList* DoOpenToDoListL(const TDesC* aListName, const TDesC* aCalName);
-
+    CPIMToDoList* DoOpenToDoListL(
+        const TDesC* aListName);
 
-    /**
-    * Opens a to-do list.
-    *
-    * @param aPimListType Name of the list or NULL to indicate
-    *        default list.
-    * @return A new list or NULL if no matching list and calendar was found.
-    */
-    CDesCArray* CPIMManager::DoListPimListsL(
+    CDesCArray* DoListPimListsL(
         const TPIMListType& aPimListType);
 
-    /**
-     * list all the calendars this function will call by ListCalendars function
-     *
-     * @return void.
-     */
-    void CPIMManager::DoListCalendarsL();
-
-    /**
-     * list all the calendars names this function will call by ListCalendatNames function
-     *
-     * @return void.
-     */
-    void CPIMManager::DoListCalendarNamesL();
-
-
-    /**
-     * creates the new calendar by given name.
-     *
-     * @param aFileName name of the calendar file this is string type.
-     *
-     * @param aDisplayName name of the calendar to display this is string type
-     *
-     * @return void.
-     */
-    void CPIMManager::DoCreateCalFileL(const TDesC &aFileName,const TDesC &aDisplayName);
-
-    /**
-     * delets the calendar by given name.
-     *
-     * @param aFileName name of the calendar file this is string type.
-     *
-     * @return void.
-     */
-    void CPIMManager::DoDeleteCalFileL(const TDesC& aFileName);
-
-    /**
-    * Opens a PIM list of given type.
-    *
-    * @param aPimListType List type.
-    * @param aPimListName Name of the list. The name must be valid list
-    *        name. If not present, name is resolved to the default list
-    *        of the given type.
-    * @param aCalName Name of the Canlendar. The name must be valid Canlendar
-    *        name. If not present, name is resolved to the default Canlendar.
-    *
-    * @return PIM list. Type of the list corresponds to
-    *         \a aPimListType argument.
-    *
-    * @par Leaving:
-    * The method leaves on error. Error codes should be interpreted as
-    * follows:
-    * @li \c KErrArgument - \a aPimListType is invalid.
-    * @li \c KErrNotSupported - \a aPimListType is not supported.
-    * @li \c KErrNotFound - No list was found by \a aPimListName.
-    * @li \c KErrAlreadyExists - The list was already opened and multiple
-    *     instances of the list are not supported.
-    * @li Other - Internal error.
-    */
-    pimbaselist* CPIMManager::DoOpenPimListL(
+    pimbaselist* DoOpenPimListL(
         const TPIMListType& aPimListType,
-        const TDesC* aPimListName,
-        const TDesC* aCalName);
-    /**
-     * this method will create the Sessions with every calendar using file server.
-     *
-     */
-
-    void CPIMManager::createCalSessionL();
+        const TDesC* aPimListName);
 
     void dispose();
 
-
 private: // Constructors
 
     /**
@@ -361,23 +240,6 @@
     /** Owned. */
     CPIMToDoValidator* iToDoValidator;
 
-    /** (Owned.) */
-    RLibrary iLocalizationLibrary;
-
-    CDesCArray* iCalList;
-    /** Session to calendar server. Owned. */
-    //CCalSession* iCalSession;
-
-    RPointerArray<CCalSession> iCalSessions;
-
-    CDesCArray* iCalendarNamesDesCArray;
-
-    CDesCArray* iCalSessionArray;
-
-    CDesCArray* iCalListName;
-    CDesCArrayFlat* iDesCArray;
-    CCalSession* iCalSession;
-
 
 };
 
--- a/javaextensions/pim/framework/inc/pimbasemanager.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/framework/inc/pimbasemanager.h	Wed Oct 13 14:23:59 2010 +0300
@@ -35,22 +35,13 @@
     virtual MPIMLocalizationManager* localizationManager() const = 0;
 
     virtual pimbaselist* openPimList(const TPIMListType& aPimListType,
-                                     jstring aPimListName, jstring aCalName,
-                                     JNIEnv* aJniEnv) = 0;
+                                     jstring aPimListName, JNIEnv* aJniEnv) = 0;
 
     virtual jobjectArray listPimLists(const TPIMListType& aPimListType,
                                       jintArray aError, JNIEnv* aJniEnv) = 0;
-    virtual jobjectArray listCalendars(jintArray aError,
-                                       JNIEnv* aJniEnv) = 0;
-    virtual jobjectArray listCalendarNames(jintArray aError,
-                                           JNIEnv* aJniEnv) = 0;
 
     virtual void dispose()= 0;
 
-    virtual void createCalendar(jstring aCalName, jstring aDisplayName, JNIEnv* aJniEnv) = 0;
-
-    virtual void deleteCalendar(jstring aCalName, JNIEnv* aJniEnv) = 0;
-
     static pimbasemanager* getInstance();
 };
 
--- a/javaextensions/pim/framework/src.s60/cpimeventlist.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/framework/src.s60/cpimeventlist.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -29,7 +29,7 @@
 #include  "pimjnitools.h"
 #include  "pimutils.h"
 #include  "s60commonutils.h"
-#include  "cleanupresetanddestroy.h"
+#include  "javasymbianoslayer.h"
 #include  "logger.h"
 
 CPIMEventList::CPIMEventList(const CPIMEventValidator& aValidator) :
--- a/javaextensions/pim/framework/src.s60/cpimlist.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/framework/src.s60/cpimlist.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -25,7 +25,7 @@
 #include  "cpimitem.h"
 #include  "cpimitemmatcher.h"
 #include  "cpimstringmatcher.h"
-#include  "cleanupresetanddestroy.h"
+#include  "javasymbianoslayer.h"
 #include  "pimexternalchanges.h"
 #include  "pimpanics.h"
 #include  "pimjnitools.h"
@@ -927,9 +927,9 @@
         User::LeaveIfError(newAndRemovedItems->Append(
                                tempRemovedItems[i]));
     }
-
+		CleanupStack::Pop(newAndRemovedItems);
     CleanupStack::Pop(); // newAndRemovedItems cleanup close
-    CleanupStack::Pop(newAndRemovedItems);
+    
 
     CleanupStack::PopAndDestroy(); // tempRemovedItems cleanup close
     CleanupStack::PopAndDestroy(); // tempNewItems cleanup close
@@ -1163,7 +1163,6 @@
                                     RPointerArray<CPIMItem>& aTempNewItems, CPIMItem* aMatchingItem)
 {
     JELOG2(EPim);
-
     // Create new item
     CPIMItem* newItem = NULL;
     TRAPD(errCreateItem, newItem = DoCreateItemL(aNewItemId,
@@ -1180,10 +1179,13 @@
     {
         User::LeaveIfError(errCreateItem);
     }
+
+    // OK
     newItem->SetModified(EFalse);
     CleanupStack::PushL(newItem);
     User::LeaveIfError(iItems.Append(newItem));
     CleanupStack::Pop(newItem);
+
     // Add to list of new items
     CleanupClosePushL(aTempNewItems);
     TInt errAddToNewItems = aTempNewItems.Append(newItem);
@@ -1215,6 +1217,8 @@
     {
         User::LeaveIfError(errUpdateItem);
     }
+
+    // OK
     aModifiedItem.SetModified(EFalse);
 }
 
--- a/javaextensions/pim/framework/src.s60/cpimmanager.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/framework/src.s60/cpimmanager.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -17,44 +17,35 @@
 
 
 // INCLUDE FILES
-
+#include "cpimmanager.h"
 #include <e32std.h>
 #include <badesca.h>
-#include <calsession.h>
-#include <flogger.h>
-#ifdef RD_JAVA_PIM_MULTICAL_ENABLED
-#include <calcalendarinfo.h>
-#include <calenmulticaluids.hrh>
-#endif
-#include "cpimmanager.h"
-#include "cpimcontactlist.h"
-#include "cpimcontactvalidator.h"
-#include "cpimeventvalidator.h"
-#include "cpimtodovalidator.h"
-#include "cpimeventlist.h"
-#include "cpimtodolist.h"
-#include "cpimversit.h"
-#include "cpimcmadapteraccess.h"
-#include "cpimeventadapteraccess.h"
-#include "cpimtodoadapteraccess.h"
-#include "cpimlocalizationmanager.h"
-#include "fs_methodcall.h"
-#include "jstringutils.h"
-#include "logger.h"
+#include "pimcommon.h"
 #include "mpimcontactadaptermanager.h"
 #include "mpimeventadaptermanager.h"
 #include "mpimtodoadaptermanager.h"
 #include "mpimcontactlistadapter.h"
 #include "mpimeventlistadapter.h"
 #include "mpimtodolistadapter.h"
+#include "cpimversit.h"
 #include "mpimlocalizationmanager.h"
 #include "mpimlocalizationdata.h"
+#include "cpimcontactlist.h"
+#include "cpimeventlist.h"
+#include "cpimtodolist.h"
+#include "cpimcontactvalidator.h"
+#include "cpimeventvalidator.h"
+#include "cpimtodovalidator.h"
 #include "mpimadapteraccess.h"
-#include "pimcommon.h"
+#include "cpimcmadapteraccess.h"
+#include "cpimeventadapteraccess.h"
+#include "cpimtodoadapteraccess.h"
 #include "pimpanics.h"
 #include "pimjnitools.h"
 #include "pimutils.h"
-#include "s60commonutils.h"
+#include "jstringutils.h"
+#include "logger.h"
+#include "cpimlocalizationmanager.h"
 
 // CONSTANTS
 
@@ -64,12 +55,10 @@
  * low, at the time of writing 1 to 4.
  */
 const TInt KManagerArrayGranularity = 2;
-#ifdef RD_JAVA_PIM_MULTICAL_ENABLED
-const TInt KBuffLength = 24;
-#endif
+
 
 CPIMManager::CPIMManager() :
-        java::util::FunctionServer("CPIMManager"), iAdapterAccesses(), iCalSessions()
+        java::util::FunctionServer("CPIMManager"), iAdapterAccesses()
 {
     JELOG2(EPim);
 }
@@ -80,86 +69,18 @@
     iContactValidator = CPIMContactValidator::NewL();
     iEventValidator = CPIMEventValidator::NewL();
     iToDoValidator = CPIMToDoValidator::NewL();
-    iDesCArray = new(ELeave) CDesCArrayFlat(KManagerArrayGranularity);
+
     iLocalizationManager
     = (MPIMLocalizationManager*)(CPIMLocalizationManager::NewL());
 
     createServerToNewThread();
-    CallMethodL(this, &CPIMManager::createCalSessionL, this);
-}
-
-void CPIMManager::createCalSessionL()
-{
-    iCalSession = CCalSession::NewL();
-    //CleanupStack::PushL(iCalSession);
-    iCalSessionArray = iCalSession->ListCalFilesL();
-
-    TInt index = 0;
-    TInt find = iCalSessionArray->Find(iCalSession->DefaultFileNameL(),index);
-
-    if (!find)
-    {
-        iCalSessionArray->Delete(index);
-    }
-
-    TRAPD(err, iCalSession->OpenL(iCalSession->DefaultFileNameL()));
-    if (KErrNotFound == err)
-    {
-        iCalSession->CreateCalFileL(iCalSession->DefaultFileNameL());
-        iCalSession->OpenL(iCalSession->DefaultFileNameL());
-    }
-    else
-    {
-        User::LeaveIfError(err);
-    }
-    //CleanupStack::Pop(iCalSession);
-
-#ifdef RD_JAVA_PIM_MULTICAL_ENABLED
-    TInt iterate = 0;
-    TBool softDelete = EFalse;
-
-    while (iterate < iCalSessionArray->Count())
-    {
-        CCalSession* aCalSession = CCalSession::NewL(*iCalSession);
-        CleanupStack::PushL(aCalSession);
-        aCalSession->OpenL(iCalSessionArray->MdcaPoint(iterate));
-        CCalCalendarInfo* caleninfo = aCalSession->CalendarInfoL();
-        CleanupStack::PushL(caleninfo);
-        aCalSession->SetCalendarInfoL(*caleninfo);
-
-        TBuf8<KBuffLength> keyBuff;
-        keyBuff.Zero();
-        keyBuff.AppendNum(EMarkAsDelete);
-        TPckgC<TBool> pkgSoftDelete(softDelete);
-        TRAPD(err,pkgSoftDelete.Set(caleninfo->PropertyValueL(keyBuff)));
-        if (KErrNone == err)
-        {
-            softDelete = pkgSoftDelete();
-        }
-
-        if (softDelete)
-        {
-
-            CleanupStack::PopAndDestroy(caleninfo);
-            CleanupStack::PopAndDestroy(aCalSession);
-        }
-        else
-        {
-            iCalSessions.AppendL(aCalSession);
-            iDesCArray->AppendL(iCalSessionArray->MdcaPoint(iterate));
-            CleanupStack::PopAndDestroy(caleninfo);
-            CleanupStack::Pop(aCalSession);
-        }
-        iterate++;
-    }
-    delete iCalSessionArray;
-    iCalSessionArray = NULL;
-#endif
 }
 
 pimbasemanager* pimbasemanager::getInstance()
 {
     JELOG2(EPim);
+    // Create CPIMManager
+
     CPIMManager* self = NULL;
     TInt error = KErrNone;
     TRAP(error, self = CPIMManager::NewL());
@@ -214,18 +135,9 @@
     delete iEventValidator;
     iEventValidator = NULL;
     delete iToDoValidator;
-    CallMethod(this, &CPIMManager::DeleteSessions, this);
-    delete iDesCArray;
     iToDoValidator = NULL;
     stopServer();
 }
-void CPIMManager::DeleteSessions()
-{
-    JELOG2(EPim);
-    iCalSessions.ResetAndDestroy();
-    delete iCalSession;
-    iCalSession = NULL;
-}
 
 void CPIMManager::dispose()
 {
@@ -251,24 +163,21 @@
 }
 
 pimbaselist* CPIMManager::openPimList(const TPIMListType& aPimListType,
-                                      jstring aPimListName, jstring aCalName,
-                                      JNIEnv* aJniEnv)
+                                      jstring aPimListName, JNIEnv* aJniEnv)
 {
     JELOG2(EPim);
     const JStringUtils listName(*aJniEnv, aPimListName);
     const TDesC* listNameArg = (aPimListName ? &listName : NULL);
-    const JStringUtils calName(*aJniEnv, aCalName);
-    const TDesC* calNameArg = (aCalName ? &calName : NULL);
     pimbaselist* list = NULL;
     TInt error = KErrNone;
-    TRAP(error, list = DoOpenPimListL(aPimListType, listNameArg, calNameArg));
+    TRAP(error, list = DoOpenPimListL(aPimListType, listNameArg));
     if (error != KErrNone)
         throw error;
     return list;
 }
 
 pimbaselist* CPIMManager::DoOpenPimListL(const TPIMListType& aPimListType,
-        const TDesC* aPimListName, const TDesC* aCalNameArg)
+        const TDesC* aPimListName)
 {
     JELOG2(EPim);
     pimbaselist* list = NULL;
@@ -279,18 +188,20 @@
     }
     else if (aPimListType == EPIMEventList)
     {
-        list = DoOpenEventListL(aPimListName, aCalNameArg);
+        list = DoOpenEventListL(aPimListName);
     }
     else if (aPimListType == EPIMToDoList)
     {
-        list = DoOpenToDoListL(aPimListName, aCalNameArg);
+        list = DoOpenToDoListL(aPimListName);
     }
     else
     {
         // invalid list type
         User::Leave(KErrArgument);
     }
+
     // Check results
+
     if (!list)
     {
         if (aPimListName)
@@ -330,6 +241,9 @@
             retVal->AppendL(lists[listIndex]);
         }
     }
+
+    // Done
+
     CleanupStack::Pop(retVal);
     return retVal;
 
@@ -362,276 +276,6 @@
     return javaStringArray;
 }
 
-
-
-
-
-void CPIMManager::DoListCalendarsL()
-{
-
-#ifdef RD_JAVA_PIM_MULTICAL_ENABLED
-    iCalList = iCalSession->ListCalFilesL();
-
-    TInt index = 0;
-    TInt find = iCalList->Find(iCalSession->DefaultFileNameL(),index);
-
-    if (!find)
-    {
-        iCalList->Delete(index);
-    }
-    iCalSessionArray = iCalList;
-    TInt iterate = 0;
-    TInt aPosition = 0;
-    while (iterate < iCalList->Count())
-    {
-        aPosition = 0;
-
-        TInt findInCurrentArray = iDesCArray->Find(iCalList->MdcaPoint(iterate),aPosition, ECmpNormal16);
-        CCalSession* aCalSession;
-        if (findInCurrentArray == 0)
-        {
-            aCalSession = iCalSessions[aPosition];
-        }
-        else
-        {
-            aCalSession = CCalSession::NewL(*iCalSession);
-            CleanupStack::PushL(aCalSession);
-            aCalSession->OpenL(iCalList->MdcaPoint(iterate));
-        }
-        // check for soft deleted calendars, incase of calendars being held by other applications, this will be followed.
-        CCalCalendarInfo* caleninfo = aCalSession->CalendarInfoL();
-        CleanupStack::PushL(caleninfo);
-        aCalSession->SetCalendarInfoL(*caleninfo);
-        TBool softDelete = EFalse;
-        TBuf8<KBuffLength> keyBuff;
-        keyBuff.Zero();
-        keyBuff.AppendNum(EMarkAsDelete);
-
-        TPckgC<TBool> pkgSoftDelete(softDelete);
-
-        TRAPD(err,pkgSoftDelete.Set(caleninfo->PropertyValueL(keyBuff)));
-
-        if (KErrNone == err)
-        {
-            softDelete = pkgSoftDelete();
-        }
-
-        if (!softDelete && findInCurrentArray != 0)
-        {
-            iCalSessions.AppendL(aCalSession);
-            CleanupStack::Pop(aCalSession);
-            iDesCArray->AppendL(iCalList->MdcaPoint(iterate));
-        }
-        else if (softDelete && findInCurrentArray == 0)
-        {
-            CleanupStack::PopAndDestroy(caleninfo);
-            caleninfo = NULL;
-            delete aCalSession;
-            iCalSessions[aPosition] = NULL;
-            iCalSessions.Remove(aPosition);
-            iDesCArray->Delete(aPosition);
-
-        }
-        else if (softDelete && findInCurrentArray != 0)
-        {
-            CleanupStack::PopAndDestroy(caleninfo);
-            CleanupStack::PopAndDestroy(aCalSession);
-            caleninfo=NULL;
-            aCalSession = NULL;
-        }
-        if (caleninfo != NULL)
-        {
-            CleanupStack::PopAndDestroy(caleninfo);
-            caleninfo = NULL;
-        }
-        iterate++;
-
-    }
-
-    iCalList = iDesCArray;
-    iCalList->AppendL(iCalSession->DefaultFileNameL());
-    delete iCalSessionArray;
-    iCalSessionArray = NULL;
-#endif
-
-}
-
-
-jobjectArray CPIMManager::listCalendars(jintArray aError,
-                                        JNIEnv* aJniEnv)
-{
-
-    jobjectArray javaStringArray = NULL;
-    TInt error = KErrNone;
-    TRAP(error, CallMethodL(this, &CPIMManager::DoListCalendarsL, this));
-    if (error == KErrNone)
-    {
-        javaStringArray = CreateJavaStringArray(aJniEnv, *iCalList, EFalse);
-        if (!javaStringArray)
-        {
-            SetJavaErrorCode(aJniEnv, aError, KErrNoMemory);
-        }
-        iCalList = NULL;
-        TInt index = 0;
-        TInt find = 0;
-        TRAPD(error,find = iDesCArray->Find(iCalSession->DefaultFileNameL(),index));
-        if (error == KErrNone)
-            if (!find)
-            {
-                iDesCArray->Delete(index);
-            }
-            else
-            {
-                SetJavaErrorCode(aJniEnv, aError, error);
-            }
-    }
-    else
-    {
-
-        SetJavaErrorCode(aJniEnv, aError, error);
-    }
-    return javaStringArray;
-}
-
-jobjectArray CPIMManager::listCalendarNames(jintArray aError,
-        JNIEnv* aJniEnv)
-{
-    jobjectArray javaStringArray = NULL;
-    TInt error = KErrNone;
-    TRAP(error, CallMethodL(this, &CPIMManager::DoListCalendarNamesL, this));
-    if (error == KErrNone)
-    {
-        javaStringArray = CreateJavaStringArray(aJniEnv, *iCalListName, EFalse);
-        if (!javaStringArray)
-        {
-            SetJavaErrorCode(aJniEnv, aError, KErrNoMemory);
-        }
-        delete iCalListName;
-        iCalListName = NULL;
-    }
-    else
-    {
-        SetJavaErrorCode(aJniEnv, aError, error);
-    }
-    return javaStringArray;
-}
-
-void CPIMManager::DoListCalendarNamesL()
-{
-#ifdef RD_JAVA_PIM_MULTICAL_ENABLED
-    iCalListName = new(ELeave) CDesCArrayFlat(KManagerArrayGranularity);
-    //CleanupStack::PushL(iCalListName);
-    for (int iterate = 0; iterate < iDesCArray->Count(); iterate++)
-    {
-        CCalCalendarInfo* caleninfo = iCalSessions[iterate]->CalendarInfoL();
-        CleanupStack::PushL(caleninfo);
-        iCalListName->AppendL(caleninfo->NameL());
-
-        CleanupStack::PopAndDestroy(caleninfo);
-    }
-    CCalCalendarInfo* caleninfo = iCalSession->CalendarInfoL();
-    CleanupStack::PushL(caleninfo);
-    iCalListName->AppendL(caleninfo->NameL());
-
-    CleanupStack::PopAndDestroy(caleninfo);
-    //CleanupStack::Pop(iCalListName);
-#endif
-}
-void CPIMManager::createCalendar(jstring aCalName,jstring aDisplayName, JNIEnv* aJniEnv)
-{
-    const JStringUtils calName(*aJniEnv, aCalName);
-    const JStringUtils displayName(*aJniEnv, aDisplayName);
-    const TDesC* displayNameArg = (aDisplayName ? &displayName : NULL);
-    const TDesC* calNameArg = (aCalName ? &calName : NULL);
-    TInt error = KErrNone;
-    TRAP(error, CallMethodL(this, &CPIMManager::DoCreateCalFileL, *calNameArg,*displayNameArg, this));
-    if (error != KErrNone)
-        throw error;
-}
-
-void CPIMManager::DoCreateCalFileL(const TDesC& aFileName, const TDesC& aDisplayName)
-{
-    #ifdef RD_JAVA_PIM_MULTICAL_ENABLED
-
-    CCalSession* aCalSession = CCalSession::NewL(*iCalSession);
-    CleanupStack::PushL(aCalSession);
-    CCalCalendarInfo* calendarInfo = CCalCalendarInfo::NewL();
-    CleanupStack::PushL(calendarInfo);
-
-    aCalSession->CreateCalFileL(aFileName,*calendarInfo);
-    CleanupStack::PopAndDestroy(calendarInfo);
-    aCalSession->OpenL(aFileName);
-    CCalCalendarInfo* calendarinfostack = aCalSession->CalendarInfoL();
-    CleanupStack::PushL(calendarinfostack);
-
-    calendarinfostack->SetNameL(aDisplayName);
-    calendarinfostack->SetEnabled(ETrue);
-    aCalSession->SetCalendarInfoL(*calendarinfostack);
-    CleanupStack::PopAndDestroy(calendarinfostack);
-    iCalSessions.AppendL(aCalSession);
-    iDesCArray->AppendL(aFileName);
-    CleanupStack::Pop(aCalSession);
-
-    #endif
-}
-
-void CPIMManager::deleteCalendar(jstring aCalName, JNIEnv* aJniEnv)
-{
-    const JStringUtils calName(*aJniEnv, aCalName);
-    const TDesC* calNameArg = (aCalName ? &calName : NULL);
-    TInt error = KErrNone;
-    TRAP(error, CallMethodL(this, &CPIMManager::DoDeleteCalFileL, *calNameArg, this));
-    if (error != KErrNone)
-        throw error;
-
-}
-
-
-void CPIMManager::DoDeleteCalFileL(const TDesC& aFileName)
-{
-	  #ifdef RD_JAVA_PIM_MULTICAL_ENABLED
-
-    if (aFileName != iCalSession->DefaultFileNameL())
-    {
-        TInt aPosition = 0;
-        TInt findInCurrentArray = iDesCArray->Find(aFileName, aPosition, ECmpNormal16);
-        if (findInCurrentArray == 0)
-        {
-            CCalCalendarInfo* caleninfo = iCalSessions[aPosition]->CalendarInfoL();
-            CleanupStack::PushL(caleninfo);
-
-            caleninfo->SetEnabled(EFalse);
-
-            TBuf8<KBuffLength> keyBuff;
-
-            keyBuff.Zero();
-            keyBuff.AppendNum(EMarkAsDelete);
-            TPckgC<TBool> pkgSoftDelete(ETrue);
-            caleninfo->SetPropertyL(keyBuff, pkgSoftDelete);
-
-            CleanupStack::PopAndDestroy(caleninfo);
-            TRAP_IGNORE(iCalSessions[aPosition]->DeleteCalFileL(aFileName));
-
-            delete iCalSessions[aPosition];
-            iCalSessions[aPosition]= NULL;
-            iCalSessions.Remove(aPosition);
-
-            iDesCArray->Delete(aPosition);
-        }
-        else
-        {
-            User::Leave(KErrNotFound);
-        }
-
-    }
-    else
-    {
-        User::Leave(KErrAccessDenied);
-    }
-
-    #endif
-}
-
 const CPIMContactValidator& CPIMManager::ContactValidator()
 {
     JELOG2(EPim);
@@ -665,20 +309,26 @@
         if (iAdapterAccesses[i]->OpenContactListL(aListName,
                 &contactAdapterManager, &contactListAdapter, &localizationData))
         {
+            // got one
             CleanupDeletePushL(contactAdapterManager);
             CleanupDeletePushL(contactListAdapter);
+
             contactList = CPIMContactList::NewL(contactAdapterManager,
                                                 contactListAdapter, localizationData, *iContactValidator);
+
             CleanupStack::Pop(contactListAdapter);
             CleanupStack::Pop(contactAdapterManager);
+
             break;
         }
+
+        // else try next Adapter Access
     }
 
     return contactList;
 }
 
-CPIMEventList* CPIMManager::DoOpenEventListL(const TDesC* aListName, const TDesC* aCalNameArg)
+CPIMEventList* CPIMManager::DoOpenEventListL(const TDesC* aListName)
 {
     JELOG2(EPim);
     CPIMEventList* eventList = NULL;
@@ -687,40 +337,22 @@
     MPIMEventListAdapter* eventListAdapter = NULL;
     MPIMLocalizationData* localizationData = NULL;
 
-
-    CCalSession* calSession = NULL;
-    TInt findInCurrentArray = 0;
-    TInt aPosition = 0;
-    if (aCalNameArg == NULL || *aCalNameArg == iCalSession->DefaultFileNameL())
-    {
-        calSession = iCalSession;
-    }
-    else
-    {
-        findInCurrentArray = iDesCArray->Find(*aCalNameArg, aPosition);
-
-        if (findInCurrentArray == 0)
-        {
-            calSession = iCalSessions[aPosition];
-        }
-        else
-        {
-            User::Leave(KErrNotFound);
-        }
-    }
-
     const TInt n = iAdapterAccesses.Count();
     for (TInt i = 0; i < n; i++)
     {
-        if (iAdapterAccesses[i]->OpenEventListL(calSession, aListName,
+        if (iAdapterAccesses[i]->OpenEventListL(aListName,
                                                 &eventAdapterManager, &eventListAdapter, &localizationData))
         {
+            // got one
             CleanupDeletePushL(eventAdapterManager);
             CleanupDeletePushL(eventListAdapter);
+
             eventList = CPIMEventList::NewL(eventAdapterManager,
                                             eventListAdapter, localizationData, *iEventValidator);
+
             CleanupStack::Pop(eventListAdapter);
             CleanupStack::Pop(eventAdapterManager);
+
             break;
         }
 
@@ -730,7 +362,7 @@
     return eventList;
 }
 
-CPIMToDoList* CPIMManager::DoOpenToDoListL(const TDesC* aListName, const TDesC* aCalNameArg)
+CPIMToDoList* CPIMManager::DoOpenToDoListL(const TDesC* aListName)
 {
     JELOG2(EPim);
     CPIMToDoList* toDoList = NULL;
@@ -738,34 +370,12 @@
     MPIMToDoAdapterManager* toDoAdapterManager = NULL;
     MPIMToDoListAdapter* toDoListAdapter = NULL;
     MPIMLocalizationData* localizationData = NULL;
-    TInt aPosition = 0;
-    TInt findInCurrentArray = 0;
 
-
-    CCalSession* calSession = NULL;
-
-    if (aCalNameArg == NULL || *aCalNameArg == iCalSession->DefaultFileNameL())
-    {
-        calSession = iCalSession;
-    }
-    else
-    {
-        findInCurrentArray = iDesCArray->Find(*aCalNameArg, aPosition);
-
-        if (findInCurrentArray == 0)
-        {
-            calSession = iCalSessions[aPosition];
-        }
-        else
-        {
-            User::Leave(KErrNotFound);
-        }
-    }
     const TInt n = iAdapterAccesses.Count();
     for (TInt i = 0; i < n; i++)
     {
-        if (iAdapterAccesses[i]->OpenToDoListL(calSession, aListName,
-                                               &toDoAdapterManager, &toDoListAdapter,&localizationData))
+        if (iAdapterAccesses[i]->OpenToDoListL(aListName, &toDoAdapterManager,
+                                               &toDoListAdapter, &localizationData))
         {
             // got one
             CleanupDeletePushL(toDoAdapterManager);
--- a/javaextensions/pim/framework/src.s60/cpimtodolist.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/framework/src.s60/cpimtodolist.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -24,7 +24,7 @@
 #include  "cpimtodoitem.h"
 #include  "mpimadaptermanager.h"
 #include  "pimtodo.h"
-#include  "cleanupresetanddestroy.h"
+#include  "javasymbianoslayer.h"
 #include  "pimjnitools.h"
 #include "pimutils.h"
 #include  "s60commonutils.h"
--- a/javaextensions/pim/framework/src.s60/pimjnitools.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/framework/src.s60/pimjnitools.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -174,12 +174,10 @@
     JELOG2(EPim);
     const TInt numElems = aNativeArray.Count();
 
-
     // Initializes the array with NULLs
     jobjectArray javaStringArray = aJniEnv->NewObjectArray(numElems,
                                    aJniEnv->FindClass("java/lang/String"), NULL);
 
-
     if (!javaStringArray)
     {
         return NULL;
@@ -210,6 +208,7 @@
         // Avoid running out of local references
         aJniEnv->DeleteLocalRef(javaElem);
     }
+
     return javaStringArray;
 }
 
--- a/javaextensions/pim/inc.s60/mpimlocalizationdata.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-/*
-* Copyright (c) 2004 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:  Access interface to list-specific localization data.
-*
-*/
-
-#ifndef MPIMLOCALIZATIONDATA_H
-#define MPIMLOCALIZATIONDATA_H
-
-// INCLUDES
-#include "pimtypes.h"
-
-// CLASS DECLARATION
-
-/**
-*  Provides localized strings for the various labels used in the PIM API
-*/
-class MPIMLocalizationData
-{
-public: // destructor
-    /**
-     * Destructor is public virtual in order to allow deletion through
-     * M-class
-     */
-    virtual ~MPIMLocalizationData() { }
-
-public: // New functions
-
-    /**
-     * Provides a string label associated with the given field. The caller
-     * takes ownership of the returned object.
-     *
-     * @param aField The field for which the label is being queried.
-     *
-     * @return String label for the field. The label is locale specific.
-     */
-    virtual HBufC* GetFieldLabelL(TPIMField aField) = 0;
-
-    /**
-     * Provides a string label associated with the given attribute.
-     * The caller takes ownership of the returned object.
-     *
-     * @param aAttribute The attribute for which the label is being queried.
-     *
-     * @return String label for the attribute. The label is locale specific.
-     */
-    virtual HBufC* GetAttributeLabelL(TPIMAttribute aAttribute) = 0;
-
-    /**
-     * Provides a string label associated with the given array element.
-     * The caller takes ownership of the returned object.
-     *
-     * @param aStringArrayField The field which has a EPIMFieldStringArray
-     * data type.
-     * @param aArrayElement The element in the array.
-     *
-     * @return String label for the array element
-     */
-    virtual HBufC* GetArrayElementLabelL(TPIMField aStringArrayField,
-                                         TPIMArrayElement aArrayElement) = 0;
-    /**
-     * Provides the name of the list.
-     * The caller takes ownership of the returned object.
-     *
-     * @return the list name.
-     */
-    virtual HBufC* GetListNameL() = 0;
-
-};
-
-
-
-#endif // MPIMLOCALIZATIONDATA_H
--- a/javaextensions/pim/inc.s60/mpimlocalizationmanager.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-/*
-* Copyright (c) 2004-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:  Access interface to different list localization data sets.
-*
-*/
-
-#ifndef MPIMLOCALIZATIONMANAGER_H
-#define MPIMLOCALIZATIONMANAGER_H
-
-// INCLUDES
-#include "pimtypes.h"
-#include <badesca.h>
-
-// FORWARD DECLARATIONS
-class MPIMLocalizationData;
-class MPIMConfirmationDialogue;
-
-/**
- * PIM Item and category operations
- */
-enum TPIMOperationType
-{
-    EPIMOperationItemDeletion = 1,
-    EPIMOperationItemCommit,
-    EPIMOperationCategoryDeletion,
-    EPIMOperationContactListRead,
-    EPIMOperationContactListWrite,
-    EPIMOperationEventListRead,
-    EPIMOperationEventListWrite,
-    EPIMOperationToDoListRead,
-    EPIMOperationToDoListWrite
-};
-
-// CLASS DECLARATION
-/**
- * A Factory class for MPIMLocalizationData objects
- */
-class MPIMLocalizationManager
-{
-public: // destructor
-    /**
-     * Destructor is public virtual in order to allow deletion through
-     * M-class
-     */
-    virtual ~MPIMLocalizationManager() { }
-
-public:
-    /**
-     * Creates an instance of MPIMLocalizationData.
-     * Caller takes ownership of the returned object.
-     *
-     * @param aType Type of the list, which of data to localize.
-     *              This can be KPIMLocalizationIdContact,
-     *              KPIMLocalizationIdSIM, KPIMLocalizationIdEvent or
-     *              KPIMLocalizationidToDo
-     *
-     * @return MPIMLocalizationData object for the requested list type.
-     * @par Leaving:
-     * The method leaves on error. Error codes should be interpreted as
-     * follows:
-     * @li \c KErrArgument - \a aType is not valid
-     * @li \c KErrNotFound - The resource file cannot be read
-     */
-    virtual MPIMLocalizationData* GetPIMLocalizationDataL(
-        TPIMLocalizationDataID aType) = 0;
-
-    /**
-     * Creates an instance of MPIMLocalizationData.
-     * Caller takes ownership of the returned object.
-     *
-     * @param aType Type of the list, which of data to localize.
-     *              This can be KPIMLocalizationIdContact,
-     *              KPIMLocalizationIdSIM, KPIMLocalizationIdEvent or
-     *              KPIMLocalizationidToDo
-     *
-     * @param aSubType List name identifier. Currently only Event lists
-     *              can have list name identifiers (all other list should
-     *              use zero).
-     *
-     * @return MPIMLocalizationData object for the requested list type.
-     * @par Leaving:
-     * The method leaves on error. Error codes should be interpreted as
-     * follows:
-     * @li \c KErrArgument - \a aType is not valid, or \a aSubType is not
-     * valid for \a aType.
-     * @li \c KErrNotFound - The resource file cannot be read
-     */
-    virtual MPIMLocalizationData* GetPIMLocalizationDataL(
-        TPIMLocalizationDataID aType,
-        TPIMLocalizationDataID aSubType) = 0;
-
-
-
-};
-
-
-
-#endif // MPIMLOCALIZATIONMANAGER_H
-
-// End of file
--- a/javaextensions/pim/inc.s60/pimlocalizationids.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-/*
-* Copyright (c) 2004 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:  Localization data identifiers.
-*
-*/
-
-
-
-#ifndef PIMLOCALIZATIONIDS_H
-#define PIMLOCALIZATIONIDS_H
-
-// INCLUDE FILES
-#include "pimtypes.h"
-
-/**
-* @file
-* This file contains constants that map the lists provided by adapters
-* with label sets provided with the localization module. A constant may
-* apply to one or several related lists.
-*
-* There are two types of IDs:
-* @li Localization IDs
-* @li List name IDs
-* Both of them are of type TPIMLocalizationDataID.
-*
-* Localization IDs define a set of localized labels for fields, attributes
-* and array elements and a default name for the list.
-*
-* List name IDs specify a name among a set of localized labels defined by
-* a localization ID. The default list name can be thus overridden using
-* a list name ID. A localization set may or may not define several list name
-* IDs. If only single name is defined for a localization set, it may not be
-* documented but it can be used using the localization operations that rely
-* on the default list name id.
-*
-* Naming:
-* @li Localization IDs are of form \c KPIMLocalizationIDXXX.
-* @li List name IDs are of form \c KPIMListNameIdYYY.
-*/
-
-// CONSTANTS
-
-
-//  Localization data IDs
-
-/**
-* Localization data identifier for Contacts Model contact list. The labels
-* associated with this identifier apply only on that list.
-*/
-const TPIMLocalizationDataID KPIMLocalizationIdContacts = 1;
-
-/**
-* Localization data identifier for SIM contact list. The labels associated
-* with this identifier apply only on that list.
-*
-* NOTE: Currently unused, defined for future purposes.
-*/
-const TPIMLocalizationDataID KPIMLocalizationIdSIM = 2;
-
-/**
-* Localization data identifier for all Agenda Event lists (Meeting, Memo and
-* Anniversary). The labels are valid for any of those lists. Each of the lists
-* uses only a subset of the labels associated with this identifier.
-*/
-const TPIMLocalizationDataID KPIMLocalizationIdEvent = 3;
-
-/**
-* Localization data identifier for Agenda to-do list. The labels associated
-* with this identifier apply only on that list.
-*/
-const TPIMLocalizationDataID KPIMLocalizationIdToDo = 4;
-
-
-//  List name IDs
-//  NOTE! It is essential that these IDs are sequential and start from zero.
-
-/**
-* List name identifier for "Appointment" Agenda Event list.
-* Applies with the localization data identifier \c KPIMLocalizationIdEvent.
-*/
-const TPIMLocalizationDataID KPIMListNameIdAppointment = 0;
-
-/**
-* List name identifier for "Event" Agenda Event list.
-* Applies with the localization data identifier \c KPIMLocalizationIdEvent.
-*/
-const TPIMLocalizationDataID KPIMListNameIdEvent = 1;
-
-/**
-* List name identifier for "Anniversary" Agenda Event list.
-* Applies with the localization data identifier \c KPIMLocalizationIdEvent.
-*/
-const TPIMLocalizationDataID KPIMListNameIdAnniversary = 2;
-
-
-#endif // PIMLOCALIZATIONIDS_H
-
-
-// End of File
--- a/javaextensions/pim/javasrc.s60/com/nokia/mj/impl/pim/utils/NativeError.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/javasrc.s60/com/nokia/mj/impl/pim/utils/NativeError.java	Wed Oct 13 14:23:59 2010 +0300
@@ -644,81 +644,7 @@
         }
         }
     }
-    public static void handleCreateCalendarError(int aNativeErrorCode, String aCalName)
-    {
 
-
-        if (aNativeErrorCode == OsErrorMessage.SUCCESS)
-        {
-            return; // OK
-        }
-
-        switch (aNativeErrorCode)
-        {
-        case OsErrorMessage.KERR_ARGUMENT:
-        {
-            throw new IllegalArgumentException(
-                "Creation of calendar failed: calendar name is invalid"
-                + aCalName);
-        }
-        case OsErrorMessage.KERR_BAD_NAME:
-        {
-            throw new IllegalArgumentException(
-                "Creation of calendar failed: calendar name is not valid "
-                + aCalName);
-        }
-        case OsErrorMessage.KERR_ALREADY_EXISTS:
-        {
-            throw new RuntimeException(ErrorString.CALENDAR_ALREADY_EXISTS);
-        }
-        default:
-        {
-            throw new GenericException(ErrorString.GENERAL_ERROR_COLON + aNativeErrorCode);
-        }
-        }
-    }
-
-    public static void handleDeleteCalendarError(int aNativeErrorCode, String aCalName)
-    {
-
-
-        if (aNativeErrorCode == OsErrorMessage.SUCCESS)
-        {
-            return; // OK
-        }
-
-        switch (aNativeErrorCode)
-        {
-        case OsErrorMessage.KERR_ACCESS_DENIED:
-        {
-            throw new IllegalArgumentException(
-                "Deletion of calendar failed: phone default calendar cannot be deleted");
-        }
-        case OsErrorMessage.KERR_ARGUMENT:
-        {
-            // we should never end up here since the calendar name is
-            // verified to be not empty before making   the native call
-            throw new IllegalArgumentException(
-                "Deletion of calendar failed: calendar name is null");
-        }
-        case OsErrorMessage.KERR_NOT_FOUND:
-        {
-            throw new IllegalArgumentException(
-                "Deletion of calendar failed: calendar by name "
-                + aCalName + " cannot be found");
-        }
-        case OsErrorMessage.KERR_BAD_NAME:
-        {
-            throw new IllegalArgumentException(
-                "Deletion of calendar failed: calendar name "
-                + aCalName + " includes a path explicitly");
-        }
-        default:
-        {
-            throw new GenericException(ErrorString.GENERAL_ERROR_COLON + aNativeErrorCode);
-        }
-        }
-    }
     /**
      * Construction prohibited.
      */
--- a/javaextensions/pim/javasrc/com/nokia/mj/impl/pim/Calendar.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-/*
-* 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:  Abstract PIMExtension class.
- *
-*/
-
-// PACKAGE
-package com.nokia.mj.impl.pim;
-
-// CLASS DEFINITION
-/**
- * <p>
- * Nokia propritery class for holding the calendar file name and calendar display name.
- * </p>
-
- * <h3>General</h3>
- * The object of the class will be returned to user when listcalendars is called from the MIDlet.
- * Using the object user can obtain either calendar file name or calendar display name. These names should be used in appropriate places.
- * <ul>
- * <li>
- * <h3>Sample MIDlet code snippet</h3>
- *
- * <h4>Opening a Memo List from a calendar name Personal available on C drive</h4>
- *
- * <code>
- * import javax.microedition.pim.*; <br>
- * import com.nokia.mid.pimextension.PIMExtension; <br>
- * import com.nokia.mid.pimextension.calendar;<br>
- * <pre>
- *     ...
- *     // Gets a PIMExtended class instance
- *     PIM pim = PIM.getInstance();
- *     try {
- *     PIMExtension pimExtension = (PIMExtension) pim;
- *     }
- *     catch (ClassCastException e){
- *     // extension is not avaialable
- *     }
- *
- *     // Gets the list of calendars available on the device
- *     calendar[] calList = pimExtension.listCalendars();
- *
- *     // Opens the memo list from the "Personal" calendar
- *     EventList memoList = ( EventList )
- *         calPIM.openPIMList(PIM.EVENT_LIST, PIM.READ_WRITE, "Memos", calList.getCalendarFileName);
- *  ...
- *  </pre>
- * </code>
- */
-public final class Calendar
-{
-    /*
-    *
-    * two strings to hold calendar File Name and Calendar name. These should not be accesible, hence they are private.
-    *
-    */
-    private String calendarFileName;
-    private String calendarName;
-    /*
-    *
-    *constructor accessed by jrt implementation to construct the object with the 2 different names of the calendar.
-    *
-    */
-    public Calendar(String fileName, String userName)
-    {
-        calendarFileName = fileName;
-        calendarName = userName;
-    }
-    /*
-    *
-    *
-    * This functions getCalendarFileName() returns the calendar file name in the database.
-    * This string should be passed to all the operations on calendar.
-    *
-    */
-    public String getCalendarFileName()
-    {
-        return calendarFileName;
-    }
-
-    /*
-    *
-    *
-    * This functions getCalendarName() returns the display name of the calendar.
-    * This should be used for user display purposes.
-    * Note: When user creates a calendar from java side, both the names will be same.
-    * The file created will be named as the string passed by user.
-    * The calendar will also be named with the string.
-    *
-    */
-    public String getCalendarName()
-    {
-        return calendarName;
-    }
-}
\ No newline at end of file
--- a/javaextensions/pim/javasrc/com/nokia/mj/impl/pim/ErrorString.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/javasrc/com/nokia/mj/impl/pim/ErrorString.java	Wed Oct 13 14:23:59 2010 +0300
@@ -217,7 +217,4 @@
 
     /** Error description. */
     public final static String SEARCHING_FAILED_COLON = "Searching failed:";
-
-    /** Error description. */
-    public final static String CALENDAR_ALREADY_EXISTS = "Calendar already Exists:";
 }
\ No newline at end of file
--- a/javaextensions/pim/javasrc/com/nokia/mj/impl/pim/PIMListImpl.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/javasrc/com/nokia/mj/impl/pim/PIMListImpl.java	Wed Oct 13 14:23:59 2010 +0300
@@ -111,14 +111,12 @@
     PIMListImpl(int aListHandle, int aMode)
     {
         iListHandle = aListHandle;
-        iMode = aMode;
         Logger.LOG(Logger.EPim,Logger.EInfo,"+PIMListImpl() = iListHandle = "+iListHandle);
-        if (iListHandle != 0)
-        {
-            iItems = new ItemTable();
-        }
         setShutdownListener();
         iFinalizer = registerForFinalization();
+        iMode = aMode;
+
+        iItems = new ItemTable();
     }
 
     public Finalizer registerForFinalization()
@@ -361,11 +359,8 @@
         if (iIsOpen == true)
         {
             iIsOpen = false;
-            if (iListHandle != 0)
-            {
-                int err = _close(iListHandle);
-                NativeError.handlePIMListCloseError(err);
-            }
+            int err = _close(iListHandle);
+            NativeError.handlePIMListCloseError(err);
             iItems = null;
         }
         else
--- a/javaextensions/pim/javasrc/com/nokia/mj/impl/pim/PIMManager.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/javasrc/com/nokia/mj/impl/pim/PIMManager.java	Wed Oct 13 14:23:59 2010 +0300
@@ -20,13 +20,12 @@
 package com.nokia.mj.impl.pim;
 
 // IMPORTS
+
 import javax.microedition.pim.PIM;
 import javax.microedition.pim.PIMException;
 import javax.microedition.pim.PIMItem;
 import javax.microedition.pim.PIMList;
 import java.io.UnsupportedEncodingException;
-import java.util.Enumeration;
-import java.util.Vector;
 import com.nokia.mj.impl.pim.ErrorString;
 import com.nokia.mj.impl.pim.GenericException;
 import com.nokia.mj.impl.rt.support.ApplicationUtils;
@@ -34,8 +33,7 @@
 import com.nokia.mj.impl.rt.support.ShutdownListener;
 import com.nokia.mj.impl.security.utils.SecurityPromptMessage;
 import com.nokia.mj.impl.pim.utils.NativeError;
-import com.nokia.mj.impl.utils.Tokenizer;
-import com.nokia.mj.impl.pim.Calendar;
+
 
 // CLASS DEFINITION
 /**
@@ -74,7 +72,6 @@
 
     /** Serializer. */
     private Serializer iSerializer;
-    private Vector iCalInfo;
 
     // Methods
 
@@ -101,7 +98,7 @@
      * Creates PIMManager.
      * Direct creation of a PIMManager is prohibited.
      */
-    public PIMManager()
+    private PIMManager()
     {
         super();
         setShutdownListener();
@@ -114,7 +111,6 @@
         }
 
         iSerializer = new Serializer(iManagerHandle);
-        iCalInfo = new Vector();
     }
 
     /**
@@ -168,6 +164,7 @@
                     iManagerHandle = 0;
                 }
             }
+
         });
     }
 
@@ -181,18 +178,13 @@
     }
 
     // Methods from PIM
+
     public synchronized PIMList openPIMList(int aPimListType, int aMode)
     throws PIMException
     {
-        return doOpenPIMList(aPimListType, aMode, null, null);
+        return doOpenPIMList(aPimListType, aMode, null);
     }
 
-
-    /**
-     * this method is used to open existsing calendar, create new calendar and delete existsing calendar by passing string  as name.
-     * function will parse the string and do the operation.
-     * user as to pass the string in given format only
-     */
     public synchronized PIMList openPIMList(int aPimListType, int aMode,
                                             String aName) throws PIMException
     {
@@ -201,130 +193,17 @@
             throw new NullPointerException(ErrorString.OPENING_LISTS_FAILED_COLON +
                                            ErrorString.LIST_NAME_IS_NULL);
         }
-        //Check if the aName is as per the MultipleCalendar Parameter definition
-        //aName = [calendarname "/"] listname ["?operation=" ["create" | "delete"]]
-        if (isMultiCalendarParam(aName))
-        {
 
-            String calendarName = null;
-            String operation = null;
-            String listName = null;
-
-            listName = getListName(aName);
-            operation = getOperation(aName);
-            calendarName = aName.substring(0, aName.indexOf("/"));
-            if (isListNameValid(listName))
-            {
-                if (operation == null)
-                {
-                    if (calendarName != null)
-                    {
-                        //This is the case of opening an existing calendar
-                        return doOpenPIMList(aPimListType, aMode, listName, "C:" + calendarName);
-                    }
-                    else
-                    {
-                        //This is the case with IllegalArgumentException
-                        throw new IllegalArgumentException("Calendar Name is NULL");
-                    }
-                }
-                else if (operation.equals("create"))
-                {
-                    createCalendar(calendarName);
-                    int[] error = new int[1];
-                    int listHandle = _openPIMList(iManagerHandle, aPimListType, listName, calendarName, error);
-                    PIMListImpl pimList = new EventListImpl(listHandle, aMode);
-                    return pimList;
-                }
-                else if (operation.equals("delete"))
-                {
-                    deleteCalendar(calendarName);
-                    int listHandle = 0;
-                    PIMListImpl pimList = new EventListImpl(listHandle, aMode);
-                    return pimList;
-                }
-                else
-                {
-                    throw new IllegalArgumentException("Invalid operation");
-                }
-            } // if isListNameValid(listName) block ends here
-            else
-            {
-                throw new IllegalArgumentException("Invalid List name");
-            }
-        } // if isMultiCalendarParam(aName) block ends here
-        else
-        {
-            //This is not the case of Multiple Calendar, so follow the default calendar path
-            return doOpenPIMList(aPimListType, aMode, aName);
-        }
-    }
-
-    private boolean isMultiCalendarParam(String aListTypeName)
-    {
-        //If there is "?" and/or "=" is present in aListTypeName
-        //return true
-        boolean ret = false;
-        if ((aListTypeName.indexOf("/") != -1) || (aListTypeName.indexOf("?") != -1) || (aListTypeName.indexOf("=") != -1))
-        {
-            ret = true;
-        }
-        return ret;
-    }
-
-    private String getListName(String aName)
-    {
-        // Get Operation
-        String operation = "?operation=";
-        int operationIndex = aName.indexOf(operation);
-
-        if (operationIndex == -1)
-        {
-            operationIndex = aName.length();
-        }
-
-        return aName.substring(aName.indexOf("/") + 1, operationIndex);
-    }
-
-    private boolean isListNameValid(String aListName)
-    {
-        String lists[] = listPIMLists(PIM.EVENT_LIST);
-        boolean listExist = false;
-
-        for (int i = 0; i < lists.length; i++)
-        {
-            if (aListName.trim().equalsIgnoreCase(lists[i]))
-            {
-                listExist = true;
-                break;
-            }
-        }
-
-        return listExist;
-    }
-
-    private String getOperation(String aName)
-    {
-        String aOperation = null;
-        String operation = "?operation=";
-        int operationIndex = aName.indexOf(operation);
-
-        if (operationIndex != -1)
-        {
-            aOperation = aName.substring(operationIndex + operation.length());
-        }
-
-
-        return aOperation;
-
+        return doOpenPIMList(aPimListType, aMode, aName);
     }
 
     public synchronized String[] listPIMLists(int aPimListType)
     {
-
-        if (aPimListType != PIM.CONTACT_LIST && aPimListType != PIM.EVENT_LIST && aPimListType != PIM.TODO_LIST)
+        if (aPimListType != PIM.CONTACT_LIST && aPimListType != PIM.EVENT_LIST
+                && aPimListType != PIM.TODO_LIST)
         {
-            throw new java.lang.IllegalArgumentException(ErrorString.LISTING_FAILED_DOT + ErrorString.INVALID_LIST_TYPE_COLON + aPimListType);
+            throw new java.lang.IllegalArgumentException(ErrorString.LISTING_FAILED_DOT +
+                    ErrorString.INVALID_LIST_TYPE_COLON + aPimListType);
         }
         // Ensure permission
         getPermission(aPimListType, PIM.READ_ONLY);
@@ -354,121 +233,7 @@
     {
         return iSerializer.supportedSerialFormats(aPimListType);
     }
-    /**
-        * Enumerates the calendars currently present in the device.
-        *
-        * @return A list of Calendar names
-        * @throws java.lang.SecurityException
-        *             if the application is not given permission to read PIM lists
-        */
-    public synchronized Calendar[] listCalendars()
-    {
-        // security check
-        ApplicationUtils appUtils = ApplicationUtils.getInstance();
-        PIMPermissionImpl per = new PIMPermissionImpl("pim://*", PIMPermissionImpl.ACTION_READ_EVENTS + "," + PIMPermissionImpl.ACTION_READ_TODOS);
-        appUtils.checkPermission(per);
-        int[] error = new int[1];
 
-        String[] calendarFileLists = _listCalendars(iManagerHandle, error);
-        String[] calendarNameLists = _listCalendarNames(iManagerHandle, error);
-        if (!NativeError.checkSuccess(error[0]))
-        {
-            throw new GenericException(ErrorString.GENERAL_ERROR_COLON + error[0]);
-        }
-        Vector tokens = new Vector();
-        Vector tokenNames = new Vector();
-        int length = calendarFileLists.length;
-        for (int i = 0; i < length; i++)
-        {
-            String str[] = Tokenizer.split(calendarFileLists[i], ":");
-            String strname[] = Tokenizer.split(calendarNameLists[i], ":");
-
-
-            if (str[0].equals("C"))
-            {
-                tokens.addElement(str[1]);
-
-            }
-            if (strname[0].equals("C"))
-            {
-
-                tokenNames.addElement(strname[1]);
-            }
-            else
-            {
-
-                tokenNames.addElement(strname[0]);
-            }
-        }
-        String[] calendarLists = new String[tokens.size()];
-        String[] calendarNames = new String[tokenNames.size()];
-        tokens.copyInto(calendarLists);
-        tokenNames.copyInto(calendarNames);
-        Calendar[] calendarobjlist = new Calendar[calendarLists.length];
-        for (int i = 0; i < calendarLists.length; i++)
-        {
-            Calendar cal = new Calendar(calendarLists[i], calendarNames[i]);
-            calendarobjlist[i] = cal;
-        }
-        //return calendarLists;
-        return calendarobjlist;
-    }
-
-
-    private synchronized void createCalendar(String aCalName)
-    {
-
-        String displayName = aCalName;
-        // security check
-        ApplicationUtils appUtils = ApplicationUtils.getInstance();
-        PIMPermissionImpl per = new PIMPermissionImpl("pim://*", PIMPermissionImpl.ACTION_WRITE_EVENTS + "," +  PIMPermissionImpl.ACTION_WRITE_TODOS);
-        appUtils.checkPermission(per);
-        String fileName = "C:" + aCalName;
-        int error = _createCalendar(iManagerHandle, fileName,displayName);
-        NativeError.handleCreateCalendarError(error, aCalName);
-    }
-
-    private synchronized void deleteCalendar(String aCalName)
-    {
-        // security check
-        ApplicationUtils appUtils = ApplicationUtils.getInstance();
-        PIMPermissionImpl per = new PIMPermissionImpl(PIMPermissionImpl.ACTION_WRITE_EVENTS + "," + PIMPermissionImpl.ACTION_WRITE_TODOS, aCalName, null, -1);
-        appUtils.checkPermission(per);
-
-        boolean isCalPresent = false;
-        String fileName = "C:" + aCalName;
-        int index;
-        for (index = 0; index < iCalInfo.size(); index++)
-        {
-            CalendarListInfo calList = (CalendarListInfo) iCalInfo.elementAt(index);
-            String calName = calList.iCalName;
-            if (calName.equals(fileName))
-            {
-                Enumeration e = calList.iList.elements();
-                while (e.hasMoreElements())
-                {
-                    PIMList list = (PIMList) e.nextElement();
-                    try
-                    {
-                        list.close();
-                    }
-                    catch (PIMException ex)
-                    {
-                        //throw new GenericException("Delete entry failed. " + ex.toString());
-                    }
-                }
-                calList.iList.removeAllElements();
-                isCalPresent = true;
-                break;
-            }
-        }
-        int error = _deleteCalendar(iManagerHandle, fileName);
-        NativeError.handleDeleteCalendarError(error, aCalName);
-        if (isCalPresent)
-        {
-            iCalInfo.removeElementAt(index);
-        }
-    }
 
     /**
      * getPermission
@@ -532,17 +297,27 @@
         appUtils.checkPermission(per);
     }
 
+
+    // New private methods
+    /**
+     * Common implementation of the list opening. Arguments and permissions are
+     * pre-checked.
+     *
+     * @param aName
+     *            If null, default list is opened.
+     */
     private PIMList doOpenPIMList(int aPimListType, int aMode, String aName)
     throws PIMException
     {
-
-        if (aPimListType != PIM.CONTACT_LIST && aPimListType != PIM.EVENT_LIST && aPimListType != PIM.TODO_LIST)
+        if (aPimListType != PIM.CONTACT_LIST && aPimListType != PIM.EVENT_LIST
+                && aPimListType != PIM.TODO_LIST)
         {
             throw new java.lang.IllegalArgumentException(
                 ErrorString.INVALID_LIST_TYPE_COLON + aPimListType);
         }
 
-        if (aMode != PIM.READ_ONLY && aMode != PIM.WRITE_ONLY && aMode != PIM.READ_WRITE)
+        if (aMode != PIM.READ_ONLY && aMode != PIM.WRITE_ONLY
+                && aMode != PIM.READ_WRITE)
         {
             throw new java.lang.IllegalArgumentException(
                 ErrorString.INVALID_MODE_COLON + aMode);
@@ -564,7 +339,8 @@
         }
         int[] error = new int[1];
         int listHandle = _openPIMList(
-                             iManagerHandle, aPimListType, aName, null, error); // if null, open default
+
+                             iManagerHandle, aPimListType, aName, error); // if null, open default
         // list
         NativeError.handleOpenPIMListError(error[0], aPimListType, aName);
 
@@ -602,86 +378,6 @@
 
         return pimList;
     }
-///////////////////////
-    // New private methods
-
-    /**
-     * Common implementation of the list opening. Arguments and permissions are
-     * pre-checked.
-     *
-     * @param aName
-     *            If null, default list is opened.
-     */
-    private PIMList doOpenPIMList(int aPimListType, int aMode, String aName, String aCalName)
-    throws PIMException
-    {
-
-        if (aPimListType != PIM.CONTACT_LIST && aPimListType != PIM.EVENT_LIST && aPimListType != PIM.TODO_LIST)
-        {
-            throw new java.lang.IllegalArgumentException(
-                ErrorString.INVALID_LIST_TYPE_COLON + aPimListType);
-        }
-
-        if (aMode != PIM.READ_ONLY && aMode != PIM.WRITE_ONLY && aMode != PIM.READ_WRITE)
-        {
-            throw new java.lang.IllegalArgumentException(
-                ErrorString.INVALID_MODE_COLON + aMode);
-        }
-
-        // Both permissions must be checked separately if aMode is
-        // PIM.READ_WRITE
-        if (aMode == PIM.READ_WRITE)
-        {
-            // First ensure read access permission
-            // Get localized text info for the security dialog
-            getPermission(aPimListType, PIM.READ_ONLY);
-            getPermission(aPimListType, PIM.WRITE_ONLY);
-
-        }
-        else
-        {
-            getPermission(aPimListType, aMode);
-        }
-        int[] error = new int[1];
-
-        int listHandle = _openPIMList(
-                             iManagerHandle, aPimListType, aName, aCalName, error);
-        // list
-        NativeError.handleOpenPIMListError(error[0], aPimListType, aName);
-
-        // Create new pim list of right type
-        PIMListImpl pimList = null;
-
-        switch (aPimListType)
-        {
-        case PIM.CONTACT_LIST:
-        {
-            pimList = new ContactListImpl(listHandle, aMode);
-            break;
-        }
-
-        case PIM.EVENT_LIST:
-        {
-            pimList = new EventListImpl(listHandle, aMode);
-            break;
-        }
-
-        case PIM.TODO_LIST:
-        {
-            pimList = new ToDoListImpl(listHandle, aMode);
-            break;
-        }
-
-        default:
-        {
-            // We should never end up here
-            throw new PIMException(ErrorString.GENERAL_ERROR,
-                                   PIMException.GENERAL_ERROR);
-        }
-        }
-
-        return pimList;
-    }
 
 
     // Native operations
@@ -702,33 +398,11 @@
      *         value on error.
      */
     private native int _openPIMList(int aManagerHandle, int aPimListType,
-                                    String aPimListName, String aCalName,
-                                    int[] aError);
+                                    String aPimListName, int[] aError);
 
     private native String[] _listPIMLists(int aManagerHandle, int aPimListType,
                                           int[] aError);
 
-    private native String[] _listCalendars(int aManagerHandle, int[] aError);
-
-    private native String[] _listCalendarNames(int aManagerHandle, int[] aError);
-
-    private native int _createCalendar(int aManagerHandle, String aCalName, String aDisplayName);
-
-    private native int _deleteCalendar(int aManagerHandle, String aCalName);
-
-    class CalendarListInfo
-    {
-
-        String iCalName;
-        Vector iList;
-
-        CalendarListInfo(String aCalName, PIMList aPIMList)
-        {
-            iCalName = aCalName;
-            iList = new Vector();
-            iList.addElement(aPIMList);
-        }
-    }
 }
 
 // End of file
--- a/javaextensions/pim/javasrc/com/nokia/mj/impl/pim/PIMPermissionImpl.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/javasrc/com/nokia/mj/impl/pim/PIMPermissionImpl.java	Wed Oct 13 14:23:59 2010 +0300
@@ -96,7 +96,7 @@
             {
                 return (SecurityPromptMessage.getInstance()).getText(
                            SecurityPromptMessage.QUESTION_ID_DELETING_ITEM,
-                           new String[] {iItemInfo, iListName});
+                           new String[] {iListName});
             }
         }
         else if (iOperation == OPERATION_ITEM_COMMIT)
@@ -111,7 +111,7 @@
             {
                 return (SecurityPromptMessage.getInstance()).getText(
                            SecurityPromptMessage.QUESTION_ID_UPDATING_ITEM,
-                           new String[] {iItemInfo, iListName});
+                           new String[] {iListName});
             }
         }
         else if (iOperation == OPERATION_CATEGORY_DELETION)
--- a/javaextensions/pim/javasrc/com/nokia/mj/impl/properties/pim/DynamicPropertyHandler.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-/*
-* 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:
-*
-*/
-
-
-package com.nokia.mj.impl.properties.pim;
-
-import com.nokia.mj.impl.pim.PIMManager;
-import com.nokia.mj.impl.pim.Calendar;
-import com.nokia.mj.impl.rt.support.SystemPropertyProvider;
-
-/**
- * This class implements SystemPropertyProvider and provides getProperty to
- * retrieve dynamic system property.
- */
-public final class DynamicPropertyHandler implements SystemPropertyProvider
-{
-
-    public String getProperty(String key)
-    {
-
-        //Code for list calendars - Call Open PIM List
-        // MIDlet should know about its own calendars, but we could offer also system property (e.g.) com.nokia.mid.calendars, which lists comma-separated local calendarnames:
-        // String calendarNames = System.getProperty("com.nokia.mid.calendars");
-
-        PIMManager pim = new PIMManager();
-
-        Calendar calendarList[] = pim.listCalendars();
-
-        StringBuffer calendarListString = new StringBuffer();;
-
-        if (calendarList != null)
-        {
-            for (int i = 0; i < calendarList.length; i++)
-            {
-                calendarListString.append(calendarList[i].getCalendarName()+",");
-
-            }
-        }
-        else
-        {
-            return null;
-        }
-        pim = null;
-        calendarListString.deleteCharAt(calendarListString.length() - 1);
-        return calendarListString.toString();
-    }
-
-    public boolean isStatic(String key)
-    {
-        return false;
-    }
-
-}
\ No newline at end of file
--- a/javaextensions/pim/javasrc/javax/microedition/pim/PIM.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/javasrc/javax/microedition/pim/PIM.java	Wed Oct 13 14:23:59 2010 +0300
@@ -80,63 +80,20 @@
     {
     }
 
-    /**
-     * @param aPimListType which list user want to open Ex.CONTACT_LIST, EVENT_LIST, or TODO_LIST.
-     * @param aMode list open mode  READ_ONLY or  WRITE_ONLY or READ_WRITE
-     * @return PIMList
-     * @throws javax.microedition.pim.PIMException
-     */
     public abstract PIMList openPIMList(int aPimListType, int aMode)
     throws PIMException;
 
-    /**
-     *
-     * @param aPimListType aPimListType which list user want to open Ex.CONTACT_LIST, EVENT_LIST, or TODO_LIST.
-     * @param aMode list open mode  READ_ONLY or  WRITE_ONLY or READ_WRITE
-     * @param aName List name
-     * @return  PIMList
-     * @throws javax.microedition.pim.PIMException
-     */
     public abstract PIMList openPIMList(int aPimListType, int aMode,
                                         String aName) throws PIMException;
 
-    /**
-     *
-     * @param aPimListType  aPimListType which list user want to open Ex.CONTACT_LIST, EVENT_LIST, or TODO_LIST.
-     * @return String which contains list of PIMList names
-     */
     public abstract String[] listPIMLists(int aPimListType);
 
-    /**
-     * @param aIs an inputstream object containing PIM information
-     * @param aEnc encoding of the characters in the input stream
-     * @return PIMItem Array
-     * @throws javax.microedition.pim.PIMException
-     * @throws java.io.UnsupportedEncodingException
-     */
     public abstract PIMItem[] fromSerialFormat(java.io.InputStream aIs,
             String aEnc) throws PIMException, UnsupportedEncodingException;
 
-    /**
-     *
-     * @param aItem the item to export
-     * @param aOs the OutputStream object that where is written to as a character stream.
-     * @param aEnc  encoding of the characters in the input stream
-     * @param aDataFormat PIM data format to use
-     * @throws javax.microedition.pim.PIMException
-     * @throws java.io.UnsupportedEncodingException
-     */
     public abstract void toSerialFormat(PIMItem aItem,
                                         java.io.OutputStream aOs, String aEnc, String aDataFormat)
     throws PIMException, UnsupportedEncodingException;
 
-    /**
-     *
-     * @param aPimListType which list user want to open Ex.CONTACT_LIST, EVENT_LIST, or TODO_LIST.
-     * @return String object
-     */
     public abstract String[] supportedSerialFormats(int aPimListType);
-
-
-
 }
--- a/javaextensions/pim/jni/src/pimmanager.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/jni/src/pimmanager.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -69,7 +69,6 @@
     jint aManagerHandle,
     jint aPimListType,
     jstring aPimListName,
-    jstring aCalName,
     jintArray aError)
 {
     JELOG2(EPim);
@@ -78,15 +77,13 @@
     int error = 0;
     try
     {
-
         list = manager->openPimList(
-                   static_cast< TPIMListType>(aPimListType),aPimListName,aCalName, aJniEnv);
+                   static_cast< TPIMListType>(aPimListType),aPimListName, aJniEnv);
     }
     catch (int aError)
     {
         error = aError;
     }
-
     SetJavaErrorCode(aJniEnv, aError, error);
 
     // We now own the list (through the handle). The ownership of
@@ -117,86 +114,6 @@
     return javaStringArray;
 }
 
-JNIEXPORT jint
-JNICALL Java_com_nokia_mj_impl_pim_PIMManager__1createCalendar(
-    JNIEnv* aJniEnv,
-    jobject /*aPeer*/,
-    jint aManagerHandle,
-    jstring aCalName,
-    jstring aDisplayName)
-{
-    JELOG2(EPim);
-    pimbasemanager* manager =
-        reinterpret_cast< pimbasemanager *>(aManagerHandle);
-    TInt error = 0;
-    try
-    {
-        manager->createCalendar(aCalName, aDisplayName,aJniEnv);
-    }
-    catch (int aError)
-    {
-        error = aError;
-    }
-    return error;
 
-}
-
-JNIEXPORT jint
-JNICALL Java_com_nokia_mj_impl_pim_PIMManager__1deleteCalendar(
-    JNIEnv* aJniEnv,
-    jobject /*aPeer*/,
-    jint aManagerHandle,
-    jstring aCalName)
-{
-    JELOG2(EPim);
-    pimbasemanager* manager =
-        reinterpret_cast< pimbasemanager *>(aManagerHandle);
-    TInt error = 0;
-
-    try
-    {
-        manager->deleteCalendar(aCalName,aJniEnv);
-    }
-    catch (int aError)
-    {
-        error = aError;
-    }
-
-    return error;
-
-}
-
-JNIEXPORT jobjectArray
-JNICALL Java_com_nokia_mj_impl_pim_PIMManager__1listCalendars(
-    JNIEnv* aJniEnv,
-    jobject /*aPeer*/,
-    jint aManagerHandle,
-    jintArray aError)
-{
-    JELOG2(EPim);
-    pimbasemanager* manager =
-        reinterpret_cast< pimbasemanager *>(aManagerHandle);
-    jobjectArray javaStringArray = NULL;
-    javaStringArray = manager->listCalendars(aError,
-                      aJniEnv);
-    return javaStringArray;
-}
-
-JNIEXPORT jobjectArray
-JNICALL Java_com_nokia_mj_impl_pim_PIMManager__1listCalendarNames(
-    JNIEnv* aJniEnv,
-    jobject /*aPeer*/,
-    jint aManagerHandle,
-    jintArray aError)
-{
-    JELOG2(EPim);
-    pimbasemanager* manager =
-        reinterpret_cast< pimbasemanager *>(aManagerHandle);
-
-    jobjectArray javaStringArray = NULL;
-    javaStringArray = manager->listCalendarNames(aError,
-                      aJniEnv);
-    return javaStringArray;
-}
 
 // End of File
--- a/javaextensions/pim/versit/src.s60/cpimcalendarconverter.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/versit/src.s60/cpimcalendarconverter.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -30,7 +30,7 @@
 #include "cpimeventpropertyconverter.h"
 #include "fs_methodcall.h"
 #include "logger.h"
-#include "cleanupresetanddestroy.h"
+#include "javasymbianoslayer.h"
 
 // EXTERNAL INCLUDES
 #include <vcal.h>
@@ -165,6 +165,8 @@
         RPointerArray<CPIMItem>& aItemArray, Versit::TVersitCharSet aCharset)
 {
     JELOG2(EPim);
+
+
     CParserVCal* parser = CParserVCal::NewL();
     CleanupStack::PushL(parser);
     parser->SetDefaultCharSet(aCharset);
@@ -199,6 +201,8 @@
         }
     }
     CleanupStack::PopAndDestroy(3, parser); // parser, eventArray, todoArray
+
+
 }
 
 // -----------------------------------------------------------------------------
@@ -238,7 +242,7 @@
         RPointerArray<CPIMItem>& aItemArray)
 {
     JELOG2(EPim);
-    CleanupClosePushL(aItemArray);
+   
     CPIMEventItem* item = CPIMEventItem::NewLC(iEventValidator);
     TPIMDate alarm(TInt64(0));
     // We don't take the ownership of the propertyArray, so the properties
@@ -265,6 +269,7 @@
             item->addInt(EPIMEventAlarm, KPIMAttrNone, interval.Int());
         }
     }
+	CleanupClosePushL(aItemArray);
     User::LeaveIfError(aItemArray.Append(item));
     CleanupStack::Pop(item); // item
     CleanupStack::Pop(&aItemArray);
@@ -279,7 +284,7 @@
         RPointerArray<CPIMItem>& aItemArray)
 {
     JELOG2(EPim);
-    CleanupClosePushL(aItemArray);
+    
     CPIMToDoItem* item = CPIMToDoItem::NewLC(iToDoValidator);
     TPIMDate alarm(TInt64(0));
     // We don't take the ownership of the propertyArray, so the properties
@@ -314,6 +319,7 @@
     {
         item->AddBooleanL(EPIMToDoCompleted, KPIMAttrNone, ETrue);
     }
+    CleanupClosePushL(aItemArray);
     User::LeaveIfError(aItemArray.Append(item));
     CleanupStack::Pop(item); // item
     CleanupStack::Pop(&aItemArray);
--- a/javaextensions/pim/versit/src.s60/cpimcardconverter.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/versit/src.s60/cpimcardconverter.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -26,7 +26,7 @@
 #include "cpimcardpropertyconverter.h"
 #include "fs_methodcall.h"
 #include "logger.h"
-#include "cleanupresetanddestroy.h"
+#include "javasymbianoslayer.h"
 #include <vcard.h>
 
 // ============================ MEMBER FUNCTIONS ===============================
--- a/javaextensions/pim/versit/src.s60/cpimeventpropertyconverter.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/versit/src.s60/cpimeventpropertyconverter.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -27,7 +27,7 @@
 #include "cpimitem.h"
 #include "cpimeventitem.h"
 #include "mpimrepeatruledata.h"
-#include "cleanupresetanddestroy.h"
+#include "javasymbianoslayer.h"
 #include "logger.h"
 
 // EXTERNAL INCLUDES
--- a/javaextensions/pim/versit/src.s60/cpimversit.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/pim/versit/src.s60/cpimversit.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -22,7 +22,7 @@
 #include "cpimcardconverter.h"
 #include "cpimcalendarconverter.h"
 #include "cpimitem.h"
-#include "cleanupresetanddestroy.h"
+#include "javasymbianoslayer.h"
 #include "logger.h"
 #include <s32mem.h> // RBufWriteStream
 #include <vtoken.h>
--- a/javaextensions/satsa/build/javasatsa.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/satsa/build/javasatsa.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -11,47 +11,33 @@
 #
 # Contributors:
 #
-# Description:
+# Description: 
 #
 
-include(../../../inc/build_defines.pri)
-
 TARGET=javasatsa
 TEMPLATE=lib
-CONFIG += omj java stl
-
-contains(PROJECT_DEFINES,RD_JAVA_S60_RELEASE_5_0) {
-    CONFIG -= qt
-}
-contains(PROJECT_DEFINES,RD_JAVA_S60_RELEASE_9_2) {
-    CONFIG -= qt
-}
-contains(PROJECT_DEFINES,RD_JAVA_S60_RELEASE_10_1_ONWARDS) {
-    CONFIG += hb
-}
+CONFIG += omj java  stl
+CONFIG -= qt
 
 symbian {
-
-
  			INCLUDEPATH +=  ../framework/inc	\
                             ../pki/inc	\
                             ../apdu/inc	\
  							../../inc	\
  							../../../inc \
-
-
-
+                   	 
+ 										  			
  			SOURCES +=  ../pki/src.s60/*.cpp \
                         ../crypto/src/*.cpp \
                         ../apdu/src/*.cpp	\
                         ../apdu/src.s60/*.cpp   \
                         ../framework/src/satsajnitools.cpp \
-
-
+                 							  								 
+ 								  			
  			LIBS +=    -ljavastorage	\
  								 -lCommonUI \
  								 -lrandom \
- 								 -lx509	\
+								 -lx509	\
 								 -lx500	\
 								 -llibcrypto \
 								 -lasn1	\
@@ -62,8 +48,10 @@
 								 -lcertstore \
 								 -lcharconv \
 								 -lcms \
+								 -laknnotify \
 								 -leiksrv \
 								 -lctframework \
+								 -lctsecdlgs \ 
 								 -lcustomapi \
 								 -lefsrv \
 								 -letel \
@@ -73,18 +61,9 @@
 								 -lhash \
 								 -lWimClient	\
 								 -lestlib	\
-								 -lcryptography \
-
-
-contains(PROJECT_DEFINES,RD_JAVA_S60_RELEASE_5_0) {
-        LIBS +=    -laknnotify \
-        					 -lctsecdlgs \
-    }
-contains(PROJECT_DEFINES,RD_JAVA_S60_RELEASE_9_2) {
-        LIBS +=    -laknnotify \
-        					 -lctsecdlgs \
-    }
-		
+								 -lcryptography \		
+								   
+ 
  }
 
 include(../../../build/omj.pri)
--- a/javaextensions/satsa/build/javasatsa_0x2002DCCE.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/satsa/build/javasatsa_0x2002DCCE.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../framework/inc
@@ -164,8 +164,10 @@
 LIBRARY		certstore.lib
 LIBRARY		charconv.lib
 LIBRARY		cms.lib
+LIBRARY		aknnotify.lib
 LIBRARY		eiksrv.lib
 LIBRARY		ctframework.lib
+LIBRARY		ctsecdlgs.lib
 LIBRARY		customapi.lib
 LIBRARY		efsrv.lib
 LIBRARY		etel.lib
@@ -176,8 +178,6 @@
 LIBRARY		WimClient.lib
 LIBRARY		estlib.lib
 LIBRARY		cryptography.lib
-LIBRARY		aknnotify.lib
-LIBRARY		ctsecdlgs.lib
 LIBRARY		javautils.lib
 LIBRARY		libpthread.lib
 LIBRARY		libstdcppv5.lib
@@ -204,7 +204,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/satsa/pki/src.s60/cstscredentialmanager.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/satsa/pki/src.s60/cstscredentialmanager.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -32,11 +32,7 @@
 #include <charconv.h>
 #include <pkcs10.h>
 #include <secdlg.h>
-
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
 #include <PKIDlg.h>
-#endif
-
 #include <securityerr.h>
 
 
@@ -71,12 +67,10 @@
 {
     delete iEncodedCert;
     delete iIssuerAndSerialNumber;
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS	
     if (iPKIDialog)
     {
         iPKIDialog->Release();
     }
-#endif
     delete iDistinguishedName;
     delete iDisplayName;
     delete iRequestEncoded;
@@ -539,9 +533,8 @@
 //
 void CSTSCredentialManager::ConstructL()
 {
-	#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
     iPKIDialog = PKIDialogFactory::CreateNoteL();
- #endif
+
     User::LeaveIfError(iFileServer.Connect());
     iWait = new(ELeave) CActiveSchedulerWait;
     iStore = CUnifiedCertStore::NewL(iFileServer, ETrue);
@@ -626,10 +619,8 @@
     {
         // not found, ok to add
         iState = EAddDialog;
-        #ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
         iPKIDialog->SaveCertificate(EX509Certificate, EUserCertificate,
                                     iSubject, iStatus);
-        #endif
         SetActive();
         return;
     }
@@ -729,9 +720,7 @@
     CCTCertInfo* certInfo = (*iCertInfoArray)[ 0 ];
     iState = ERemoveDialog;
     iHandle = certInfo->Handle();
-    #ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
     iPKIDialog->DeleteCertificate(iHandle, iStatus);
-    #endif
     SetActive();
 }
 
@@ -793,9 +782,8 @@
     }
     iState = ECSRDialog;
     iHandle = iKeyInfo->Handle();
-		#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
+
     iPKIDialog->CreateCSR(*iDisplayName, iHandle, iStatus);
-    #endif
     SetActive();
 
 }
@@ -1039,3 +1027,5 @@
     FunctionServer::doServerSideInit();
 
 }
+
+
--- a/javaextensions/satsa/pki/src.s60/cstscredentialmanager.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/satsa/pki/src.s60/cstscredentialmanager.h	Wed Oct 13 14:23:59 2010 +0300
@@ -31,9 +31,7 @@
 
 // FORWARD DECLARATIONS
 class CCTKeyInfo;
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS 
 class MPKIDialog;
-#endif
 class CUnifiedCertStore;
 class CUnifiedKeyStore;
 class CX500DistinguishedName;
@@ -350,11 +348,9 @@
 
     // internal error variable
     TInt iError;
-    
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
+
     // PKI Dialog, owned
     MPKIDialog* iPKIDialog;
-#endif
 
     // The actual store, owned
     CUnifiedCertStore* iStore;
--- a/javaextensions/satsa/pki/src.s60/cstsseprompt.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/satsa/pki/src.s60/cstsseprompt.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -18,24 +18,11 @@
 
 
 // INCLUDE FILES
-
-
-
 #include "cstsseprompt.h"
-
-#ifdef RD_JAVA_S60_RELEASE_10_1_ONWARDS
-
-#include <hbdevicedialog.h>
-#include <QtCore\qvariant.h>
-const QString KMessageTextKey = "text";
-
-#else 
-
 #include <AknGlobalNote.h>
 #include <avkon.rsg>
 #include <caosynchronizer.h>
 
-#endif 
 
 
 // ============================ MEMBER FUNCTIONS ===============================
@@ -56,10 +43,8 @@
 // Destructor
 CSTSSEPrompt::~CSTSSEPrompt()
 {
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
     delete iGlobalNote;
     delete iSynchronizer;
-#endif
 }
 
 // -----------------------------------------------------------------------------
@@ -69,26 +54,11 @@
 //
 void CSTSSEPrompt::DisplayPromptL(const TDesC& aPrompt)
 {
-    #ifdef RD_JAVA_S60_RELEASE_10_1_ONWARDS
-            HbDeviceDialog* dialog;
-            dialog = new(ELeave) HbDeviceDialog();
-            
-            QVariantMap parameters;
-            QString qString((QChar*)aPrompt.Ptr(),aPrompt.Length());
-            parameters[QString(KMessageTextKey)] = qString;
-            
-            dialog->show("com.nokia.hb.devicemessagebox/1.0", parameters);
-            
-            delete dialog;
-    #else
-            
     iGlobalNote->ShowNoteL(
         iSynchronizer->iStatus,
-        EAknGlobalConfirmationNote, 
+        EAknGlobalConfirmationNote,
         aPrompt);
     iSynchronizer->ExecuteL((TTimeIntervalMicroSeconds32) 0);
-            
-    #endif
 }
 
 // -----------------------------------------------------------------------------
@@ -107,11 +77,9 @@
 // -----------------------------------------------------------------------------
 void CSTSSEPrompt::ConstructL()
 {
-    #ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
     iGlobalNote = CAknGlobalNote::NewL();
     iGlobalNote->SetSoftkeys(R_AVKON_SOFTKEYS_OK_EMPTY);
     iSynchronizer = CAOSynchronizer::NewL();
-    #endif
 }
 
 
--- a/javaextensions/satsa/pki/src.s60/cstsseprompt.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/satsa/pki/src.s60/cstsseprompt.h	Wed Oct 13 14:23:59 2010 +0300
@@ -22,13 +22,13 @@
 // INCLUDE
 #include <e32base.h>
 
+
+
+
 // FORWARD DECLARATIONS
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
-
+class CAknGlobalNote;
 class CAOSynchronizer;
-class CAknGlobalNote;
 
-#endif
 // CLASS DECLARATION
 
 /**
@@ -71,14 +71,11 @@
 
 
 private: // data
-    #ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
+
     // displays the prompt asynchronously, owned
     CAknGlobalNote* iGlobalNote;
     // waits for the prompt to finish, owned
     CAOSynchronizer* iSynchronizer;
-    
-    #endif
-    
 
 };
 
--- a/javaextensions/satsa/pki/src.s60/cstssignatureservice.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/satsa/pki/src.s60/cstssignatureservice.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -15,6 +15,8 @@
  *
 */
 
+
+// INCLUDE FILES
 #include "cstssignatureservice.h"
 #include "tstsdistinguishednameconverter.h"
 #include "secdlg.h"
@@ -30,11 +32,7 @@
 #include <CCMSSignerInfo.h>
 #include <CCMSEncapsulatedContentInfo.h>
 #include <CCMSSignedData.h>
-
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
 #include <PKIDlg.h>
-#endif
-
 #include "cstsseprompt.h"
 
 #include <hash.h>
@@ -44,7 +42,7 @@
 #include "logger.h"
 #include "jstringutils.h"
 
-
+// CONSTANTS
 const TInt KDefaultGranularity = 1;
 
 const TInt KOptionIncludeContent = 1;
@@ -82,12 +80,10 @@
     {
         iDialog->Release(); // Release deletes the object
     }
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS	
     if (iPKIDialog)
     {
         iPKIDialog->Release();
     }
-#endif	
     iCertificateArray.Close();
     iCertInfos.Close();
     delete iFilter;
@@ -130,12 +126,14 @@
         TInt aOptions, const CDesCArray& aCaNames,
         const TDesC& asecurityElementPrompt, TBool aShowData)
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::AuthenticateL");
     if (iState != EReady)
     {
         ELOG(ESATSA, "CSTSSignatureService::AuthenticateL: Not Ready");
         User::Leave(KErrNotReady);
     }
 
+    LOG(ESATSA, EInfo, "CSTSSignatureService::AuthenticateL:After convertions");
     // First we need to convert the data to unicode, if we have to display it
     HBufC* textToDisplay = NULL;
     if (aShowData)
@@ -157,9 +155,14 @@
     iOptions = aOptions;
 
     iShowNotes = EFalse;
+
+    LOG(ESATSA, EInfo, "CSTSSignatureService::AuthenticateL:Going to call CreateSignatureL");
     // get handles to applicable certificates
     HBufC8* retVal = CreateSignatureL(aCaNames, EX509UsageDigitalSignature,
                                       asecurityElementPrompt);
+    LOG(ESATSA, EInfo, "CSTSSignatureService::AuthenticateL:After call to CreateSignatureL");
+
+    LOG(ESATSA, EInfo, "-- CSTSSignatureService::AuthenticateL");
     return retVal;
 }
 
@@ -168,6 +171,7 @@
         jint aOptions, jobjectArray aCaNames, jstring aSecurityElementPrompt,
         jboolean aShowData, HBufC8** aRetVal)
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::StaticAuthenticateL");
     const TInt byteArrayLength = aJniEnv->GetArrayLength(
                                      aByteArrayToAuthenticate);
     jbyte* bytesToAuthenticate = aJniEnv->GetByteArrayElements(
@@ -185,15 +189,20 @@
     CDesCArrayFlat* nativeCaNames = STSCreateNativeStringArrayL(aJniEnv,
                                     aCaNames);
 
+    LOG(ESATSA, EInfo,  "CSTSSignatureService::StaticAuthenticateL: prepare se prompt");
     const JStringUtils securityElementPrompt(*aJniEnv, aSecurityElementPrompt);
 
+    LOG(ESATSA, EInfo,  "CSTSSignatureService::StaticAuthenticateL: start convertions to TInt");
     TBool ShowData = static_cast<TBool>(aShowData);
     const TDesC* sec = static_cast<const TDesC*>(&securityElementPrompt);
 
+    LOG(ESATSA, EInfo, "CSTSSignatureService::StaticAuthenticateL: After convertions,going to call CallMethodL");
     TRAPD(err, CallMethodL(*aRetVal, service,
                            &CSTSSignatureService::AuthenticateL, desToAuthenticate, aOptions,
                            *nativeCaNames, *sec, ShowData, service));
 
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::StaticAuthenticateL:After CallmethodL");
+    LOG(ESATSA, EInfo, "-- return CSTSSignatureService::StaticAuthenticateL");
     return err;
 
 }
@@ -207,12 +216,15 @@
 HBufC8* CSTSSignatureService::SignL(const TDesC8& aBytesToSign, TInt aOptions,
                                     const CDesCArray& aCaNames, const TDesC& aSecurityElementPrompt)
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::SignL");
     if (iState != EReady)
     {
         ELOG(ESATSA, "CSTSSignatureService::SignL: Not Ready");
         User::Leave(KErrNotReady);
     }
 
+    LOG(ESATSA, EInfo, "CSTSSignatureService::SignL: start convertions!");
+    LOG(ESATSA, EInfo, "CSTSSignatureService::SignL: After convertions");
     // convert text from UTF8
     HBufC* textToDisplay = ConvertUTF8ToUnicodeL(aBytesToSign);
     delete iTextToDisplay;
@@ -226,10 +238,12 @@
 
     iShowNotes = ETrue;
 
+    LOG(ESATSA, EInfo, "CSTSSignatureService::SignL: Before call to CreateSignatureL");
     // get handles to applicable certificates
     HBufC8* retVal = CreateSignatureL(aCaNames, EX509UsageNonRepudiation,
                                       aSecurityElementPrompt);
 
+    LOG(ESATSA, EInfo, "-- return CSTSSignatureService::SignL");
     return retVal;
 }
 
@@ -242,12 +256,13 @@
                                        CSTSSignatureService* service, jbyteArray aBytesToSign, jint aOptions,
                                        jobjectArray aCaNames, jstring aSecurityElementPrompt, HBufC8** aRetVal)
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::StaticSignL");
     const TInt byteArrayLength = aJniEnv->GetArrayLength(aBytesToSign);
     jbyte* bytesToSign = aJniEnv->GetByteArrayElements(aBytesToSign, NULL);
 
     if (!bytesToSign)
     {
-        ELOG(ESATSA, "CSTSSignatureService::StaticSignL: No memory");
+        LOG(ESATSA, EInfo, "CSTSSignatureService::StaticSignL: No memory");
         return NULL;
     }
 
@@ -258,12 +273,15 @@
 
     const JStringUtils securityElementPrompt(*aJniEnv, aSecurityElementPrompt);
 
-    
+    LOG(ESATSA, EInfo, "CSTSSignatureService::StaticSignL: Start convertions");
+    LOG(ESATSA, EInfo, "CSTSSignatureService::StaticSignL: Before callmethodl");
+
     const TDesC* sec = static_cast<const TDesC*>(&securityElementPrompt);
 
     TRAPD(err, CallMethodL(*aRetVal, service, &CSTSSignatureService::SignL,
                            desToSign, aOptions, *nativeCaNames, *sec, service));
 
+    LOG(ESATSA, EInfo, "-- ret CSTSSignatureService::StaticSignL");
     return err;
 }
 
@@ -274,25 +292,28 @@
 //
 void CSTSSignatureService::RunL()
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::RunL");
     if (iStatus == KErrCancel)
     {
+        LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: KErrCancel");
         if (iShowNotes)
         {
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: ShowNote");
             iState = EFinalNote;
             iStatus = KErrNone;
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS			
             iPKIDialog->Note(MPKIDialog::ESigningCancelled, iStatus);
-#endif			
             SetActive();
-         }
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: Done ShowNote");
+        }
         else
         {
-             Complete(KErrNone);
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: Complete");
+            Complete(KErrNone);
         }
     }
     else if (iStatus != KErrNone)
     {
-        ELOG(ESATSA, "CSTSSignatureService::RunL: Error occured");
+        LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: Error occured");
         // Error has occured; inform java
         Complete(iStatus.Int());
     }
@@ -302,23 +323,29 @@
         {
         case EInitialising:
         {
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: case EInitialising");
             iState = EKeyStoreInit;
             iKeyStore->Initialize(iStatus);
             SetActive();
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: over case EInitialising");
             break;
         }
         case EKeyStoreInit:
         {
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: case EKeyStoreInit");
             Complete(KErrNone);
             break;
         }
         case EListing:
         {
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: case EListing");
             HandlesFromCertInfosL();
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: over case EListing");
             break;
         }
         case EDialog:
         {
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: case EDialog");
             iState = EGetCert;
             if (iCertificate)
             {
@@ -333,10 +360,12 @@
 
             iCertStore->GetCert(iCertificate, iCertificateHandle, iStatus);
             SetActive();
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: over case EDialog");
             break;
         }
         case EGetCert:
         {
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: case EGetCert");
             if (iX509Certificate)
             {
                 delete iX509Certificate;
@@ -345,35 +374,44 @@
             iState = ERetrieveCert;
             iCertStore->Retrieve(*iCertificate, iX509Certificate, iStatus);
             SetActive();
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: over case EGetCert");
             break;
         }
         case ERetrieveCert:
         {
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: case ERetrieveCert");
             FindKeyL();
             break;
         }
         case EFindKey:
         {
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: case EFindKey");
             OpenSignerL();
             break;
         }
         case EOpenSigner:
         {
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: case EOpenSigner");
             SignL();
             break;
         }
         case ESign:
         {
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: case ESign");
             CreateSignedDataL();
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: over case ESign");
             break;
         }
         case EFinalNote:
         {
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: case EFinalNote");
             Complete(KErrNone);
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: over case EFinalNote");
             break;
         }
         default:
         {
+            LOG(ESATSA, EInfo, "CSTSSignatureService::RunL: case default");
             Complete(KErrGeneral);
         }
         }
@@ -387,6 +425,7 @@
 //
 TInt CSTSSignatureService::RunError(TInt aError)
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::RunError");
     Complete(aError);
     return KErrNone;
 }
@@ -485,9 +524,8 @@
 {
     User::LeaveIfError(iFileServer.Connect());
     iDialog = SecurityDialogFactory::CreateL();
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS	
     iPKIDialog = PKIDialogFactory::CreateNoteL();
-#endif
+
     iFilter = CCertAttributeFilter::NewL();
 
     iWait = new(ELeave) CActiveSchedulerWait;
@@ -504,6 +542,7 @@
 //
 void CSTSSignatureService::Complete(TInt aError)
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::Complete");
     if (KErrNone == aError)
     {
         iState = EReady;
@@ -514,7 +553,7 @@
         iError = aError;
     }
     iWait->AsyncStop();
-    
+    LOG(ESATSA, EInfo, "-- ret CSTSSignatureService::Complete");
 }
 
 // -----------------------------------------------------------------------------
@@ -524,14 +563,17 @@
 //
 void CSTSSignatureService::WaitForCompletionL()
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::WaitForCompletionL");
     SetActive();
     iWait->Start();
     if (iState != EReady)
     {
         // we need to be ready for the next request
         iState = EReady;
+
         User::Leave(iError);
     }
+    LOG(ESATSA, EInfo, "- ret CSTSSignatureService::WaitForCompletionL");
 }
 
 // -----------------------------------------------------------------------------
@@ -542,6 +584,7 @@
 HBufC8* CSTSSignatureService::CreateSignatureL(const CDesCArray& aCaNames,
         const TKeyUsageX509 aUsage, const TDesC& aSecurityElementPrompt)
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::CreateSignatureL");
     HBufC* sePrompt = NULL;
     if (aSecurityElementPrompt != KNullDesC())
     {
@@ -549,10 +592,14 @@
     }
     delete iSecurityElementPrompt;
     iSecurityElementPrompt = sePrompt;
+    LOG(ESATSA, EInfo, "CSTSSignatureService::CreateSignatureL: call findcertificates");
     FindCertificatesL(aCaNames, aUsage);
+    LOG(ESATSA, EInfo, "CSTSSignatureService::CreateSignatureL: After call to findcertificates");
     WaitForCompletionL();
+    LOG(ESATSA, EInfo, "CSTSSignatureService::CreateSignatureL: call WaitForCompletion");
     HBufC8* retVal = iSignature;
     iSignature = NULL;
+    LOG(ESATSA, EInfo, "-- ret CSTSSignatureService::CreateSignatureL");
     return retVal;
 }
 // -----------------------------------------------------------------------------
@@ -564,6 +611,7 @@
         const TKeyUsageX509 aUsage)
 {
 
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::FindCertificatesL");
     iFilter->SetKeyUsage(aUsage);
     iFilter->SetOwnerType(EUserCertificate);
     iFilter->SetFormat(EX509Certificate);
@@ -606,7 +654,7 @@
         iState = EListing;
         iCertStore->List(iCertInfos, *iFilter, iDERNames, iStatus);
     }
-    
+    LOG(ESATSA, EInfo, "-- ret CSTSSignatureService::FindCertificatesL");
 }
 
 // -----------------------------------------------------------------------------
@@ -616,6 +664,7 @@
 //
 void CSTSSignatureService::HandlesFromCertInfosL()
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::HandlesFromCertInfosL");
     TInt certificateCount = iCertInfos.Count();
     if (certificateCount == 0)
     {
@@ -626,6 +675,7 @@
     iCertificateArray.Reset();
     for (TInt i = 0; i < certificateCount; i++)
     {
+        LOG(ESATSA, EInfo, "+ CSTSSignatureService::HandlesFromCertInfosL: No Certificates");
         User::LeaveIfError(iCertificateArray.Append(iCertInfos[i]->Handle()));
     }
 
@@ -634,18 +684,18 @@
     {
     case EAuthWithoutText:
     {
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS        
+        LOG(ESATSA, EInfo, "CSTSSignatureService::HandlesFromCertInfosL: case EAuthWithoutText");
         iPKIDialog->UserAuthentication(iCertificateArray, iCertificateHandle,
                                        iStatus);
-#endif 
+        LOG(ESATSA, EInfo, "CSTSSignatureService::HandlesFromCertInfosL: over case EAuthWithoutText");
         break;
     }
     case EAuthWithText:
     {
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
+        LOG(ESATSA, EInfo, "CSTSSignatureService::HandlesFromCertInfosL: case EAuthWithText");
         iPKIDialog->UserAuthenticationText(*iTextToDisplay, iCertificateArray,
                                            iCertificateHandle, iStatus);
-#endif
+        LOG(ESATSA, EInfo, "CSTSSignatureService::HandlesFromCertInfosL: over case EAuthWithText");
         break;
     }
     case ESignWithText:
@@ -671,6 +721,7 @@
 //
 void CSTSSignatureService::FindKeyL()
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::FindKeyL");
     iKeyFilter.iKeyAlgorithm = CKeyInfoBase::EInvalidAlgorithm;
     iKeyFilter.iKeyId = iCertificate->SubjectKeyId();
 
@@ -689,6 +740,7 @@
 //
 void CSTSSignatureService::OpenSignerL()
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::OpenSignerL");
     // if key is not found, display security element prompt and search again
     if (iKeys.Count() == 0)
     {
@@ -751,6 +803,8 @@
 //
 void CSTSSignatureService::SignL()
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::SignL");
+
     // first we create a digest of the message
 
     CSHA1* sha = CSHA1::NewL();
@@ -838,6 +892,7 @@
 //
 void CSTSSignatureService::CreateSignedDataL()
 {
+    LOG(ESATSA, EInfo, "+ CSTSSignatureService::CreateSignedDataL");
     CCTKeyInfo* keyInfo = iKeys[0];
 
     HBufC8* signature = NULL;
@@ -932,16 +987,14 @@
     if (iShowNotes)
     {
         iState = EFinalNote;
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS		
         iPKIDialog->Note(MPKIDialog::ESignatureDone, iStatus);
-#endif		
         SetActive();
     }
     else
     {
         Complete(KErrNone);
     }
-
+    LOG(ESATSA, EInfo, "-- ret CSTSSignatureService::CreateSignedDataL");
 }
 
 // -----------------------------------------------------------------------------
--- a/javaextensions/satsa/pki/src.s60/cstssignatureservice.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/satsa/pki/src.s60/cstssignatureservice.h	Wed Oct 13 14:23:59 2010 +0300
@@ -19,18 +19,19 @@
 #ifndef CSTSSIGNATURESERVICE_H
 #define CSTSSIGNATURESERVICE_H
 
-
-
+//  INCLUDES
 #include <e32base.h>
 #include <badesca.h>
 #include <mctkeystore.h>
 #include "functionserver.h"
 
+// CONSTANTS
+
+
+
 // FORWARD DECLARATIONS
 class MSecurityDialog;
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS 
 class MPKIDialog;
-#endif
 class CUnifiedCertStore;
 class CUnifiedKeyStore;
 class CCTCertInfo;
@@ -265,10 +266,8 @@
     // security dialog, owned
     MSecurityDialog* iDialog;
 
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
     // PKI Dialog, owned
     MPKIDialog* iPKIDialog;
-#endif	
 
     // certificate store, owned
     CUnifiedCertStore* iCertStore;
--- a/javaextensions/sensor/build/javasensor_0x2002DCD0.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/sensor/build/javasensor_0x2002DCD0.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../inc
@@ -118,7 +118,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/sensor/src.s60/cacceleratorsensor.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/sensor/src.s60/cacceleratorsensor.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -297,6 +297,7 @@
 
 void CAcceleratorSensor::OpenChannelL()
 {
+    TInt err;
     JELOG2(ESensor);
     LOG(ESensor,EInfo,"Creating Open Channel");
     iChannel->OpenChannelL();
@@ -305,9 +306,9 @@
     iScaleFactor = 1;
     TInt format(ESensrvChannelDataFormatAbsolute);
     TSensrvProperty property;
-    iChannel->GetPropertyL(KSensrvPropIdChannelDataFormat, KSensrvItemIndexNone,
-                                      property);
-    
+    TRAP(err,iChannel->GetPropertyL(KSensrvPropIdChannelDataFormat, KSensrvItemIndexNone,
+                                      property););
+    LOG1(ESensor,EInfo,"CAcceleratorSensor::OpenChannelL()::GetPropertyL() One = %d",err);
 
     if (property.PropertyType() == ESensrvIntProperty)
     {
@@ -327,17 +328,19 @@
         // Scaled value maximum
         TSensrvProperty property_scaled;
         TInt maxScaled(0);
-       iChannel->GetPropertyL(KSensrvPropIdScaledRange, KSensrvItemIndexNone,
-                                          property_scaled);
-        
+        TRAP(err,iChannel->GetPropertyL(KSensrvPropIdScaledRange, KSensrvItemIndexNone,
+                                          property_scaled););
+        LOG1(ESensor,EInfo,"CAcceleratorSensor::OpenChannelL()::GetPropertyL() Two = %d",err);
 
         if (property_scaled.GetArrayIndex() == ESensrvArrayPropertyInfo)
         {
             LOG(ESensor,EInfo,"CAcceleratorSensor::OpenChannelL()::If");
             //for 2G Accelerometer Sensor index value is 0.
             TInt rangeIndex(0);
-            iChannel->GetPropertyL(KSensrvPropIdScaledRange, KSensrvItemIndexNone,
-                                              rangeIndex, property_scaled);
+            TRAP(err,iChannel->GetPropertyL(KSensrvPropIdScaledRange, KSensrvItemIndexNone,
+                                              rangeIndex, property_scaled););
+            LOG1(ESensor,EInfo,"CAcceleratorSensor::OpenChannelL()::GetPropertyL() Three = %d",err);
+
             property_scaled.GetMaxValue(maxScaled);
 
             LOG1(ESensor,EInfo,"property_scaled::maxValue = %d",maxScaled);
@@ -350,32 +353,36 @@
         }
         // MeasureRange can be an array property
         TReal maxMeasure;
-        
+        TInt err1;
         TSensrvProperty property_Measured;
-        iChannel->GetPropertyL(KSensrvPropIdMeasureRange, KSensrvItemIndexNone,
-                                          property_Measured);
-             
-        TInt arrayIndex = property_Measured.GetArrayIndex();
-        LOG1(ESensor,EInfo,"CAcceleratorSensor::OpenChannelL()::KSensrvPropIdMeasureRange::arrayIndex = %d",arrayIndex);
+        TRAP(err1,iChannel->GetPropertyL(KSensrvPropIdMeasureRange, KSensrvItemIndexNone,
+                                          property_Measured););
+        LOG1(ESensor,EInfo,"CAcceleratorSensor::OpenChannelL()::GetPropertyL() Four = %d",err1);
 
-        if (property_Measured.GetArrayIndex() == ESensrvArrayPropertyInfo)
+        if (err1 == KErrNone)
         {
-            LOG(ESensor,EInfo,"CAcceleratorSensor::OpenChannelL()::If");
+            TInt arrayIndex = property_Measured.GetArrayIndex();
+            LOG1(ESensor,EInfo,"CAcceleratorSensor::OpenChannelL()::KSensrvPropIdMeasureRange::arrayIndex = %d",arrayIndex);
+
+            if (property_Measured.GetArrayIndex() == ESensrvArrayPropertyInfo)
+            {
+                LOG(ESensor,EInfo,"CAcceleratorSensor::OpenChannelL()::If");
 
-            TInt index2g = 0;
-            LOG1(ESensor,EInfo,"CAcceleratorSensor::OpenChannelL()::Getting RangeIndex = %f",index2g);
-            //We need to TypeCast variable rangeIndex to TInt for
-            iChannel->GetPropertyL(KSensrvPropIdMeasureRange, KSensrvItemIndexNone,
-                                              index2g, property_Measured);
-            property_Measured.GetMaxValue(maxMeasure);
+                TInt index2g = 0;
+                LOG1(ESensor,EInfo,"CAcceleratorSensor::OpenChannelL()::Getting RangeIndex = %f",index2g);
+                //We need to TypeCast variable rangeIndex to TInt for
+                TRAP(err,iChannel->GetPropertyL(KSensrvPropIdMeasureRange, KSensrvItemIndexNone,
+                                                  index2g, property_Measured););
+                LOG1(ESensor,EInfo,"CAcceleratorSensor::OpenChannelL()::GetPropertyL() Five = %d",err);
+                property_Measured.GetMaxValue(maxMeasure);
+            }
+            else
+            {
+                LOG(ESensor,EInfo,"CAcceleratorSensor::OpenChannelL()::else");
+                property_Measured.GetMaxValue(maxMeasure);
+            }
+
         }
-        else
-        {
-            LOG(ESensor,EInfo,"CAcceleratorSensor::OpenChannelL()::else");
-            property_Measured.GetMaxValue(maxMeasure);
-        }
-
-        
         iScaleFactor = maxMeasure / maxScaled ;
         LOG1(ESensor,EInfo,"CAcceleratorSensor::OpenChannelL()::iScaleFactor = %f",iScaleFactor);
     }
--- a/javaextensions/sensor/src.s60/cnetworkfieldintensitysensor.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/sensor/src.s60/cnetworkfieldintensitysensor.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -146,16 +146,15 @@
     SensorData* data = iData[ KNISensorChannel ];
 
     TTime currentTime;
-   
-        if ((data->iTimeStampsIncluded) || (iBufferingPeriod > 0))
+    if (data->iTimeStamps || (iBufferingPeriod > 0))
+    {
+        currentTime.UniversalTime();
+        if (iStartTime == KErrNotFound)
         {
-            currentTime.UniversalTime();
-            if (iStartTime == KErrNotFound)
-            {
-                iStartTime = currentTime;
-            }
+            iStartTime = currentTime;
         }
-    
+    }
+
     // P&S sensors are assumed to have one channel only
     TInt interpretedValue = InterpretValue(aLevel);
 
--- a/javaextensions/sensor/src.s60/csensorbase.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/sensor/src.s60/csensorbase.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -139,14 +139,7 @@
 void CSensorBase::AsyncCallback(TMethod aMethod)
 {
     JELOG2(ESensor);
-    TInt err = iMethodArray.Append(aMethod);
-    // if there was error when adding the method to array then just return
-    if ( err  )
-    {
-        ELOG2(ESensor, "CSensorBase::AsyncCallback - Error (code = %d) when "
-              "adding method (type = %d) to method buffer.", err, aMethod.iMethodType);
-        return;
-    }
+    iMethodArray.Append(aMethod);
 
     // If there is old request ongoing, wait it for completion
     if (iMethodArray.Count() > 1)
@@ -249,13 +242,14 @@
             matched = ETrue;
             CSensorConditionBase *condition = iConditions[i];
             iConditions.Remove(i);
-
-            iSensorListener->ConditionMet(
-                condition,
-                condition->GetChannelId(),
-                currentValue,
-                javaTime);
-          
+            if (iSensorListener)
+            {
+                iSensorListener->ConditionMet(
+                    condition,
+                    condition->GetChannelId(),
+                    currentValue,
+                    javaTime);
+            }
             delete condition;
         }
     }
@@ -263,7 +257,6 @@
     // Also send all values separately if we have java side custom conditions
     if (iJavaConditionEval)
     {
-        if (iSensorListener != NULL)
         iSensorListener->ConditionMet(0, aChannelId, currentValue, javaTime);
     }
     return matched;
--- a/javaextensions/subsystem.mk	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/subsystem.mk	Wed Oct 13 14:23:59 2010 +0300
@@ -44,10 +44,6 @@
     wma \
     pim
 
-ifdef RD_JAVA_S60_RELEASE_9_2_ONWARDS
-    COMPONENTS += centralrepository/build
-endif
-
 ifdef RD_JAVA_MIDPRMS_DB
     SUBSYSTEMS += midprms_db
 else
--- a/javaextensions/webservices/build/javawebservices_0x2002DCDB.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/webservices/build/javawebservices_0x2002DCDB.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../inc
@@ -92,7 +92,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/wma/mms/build/javawmamms.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/wma/mms/build/javawmamms.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -27,7 +27,7 @@
                ../src.s60/*.cpp 
     
      LIBS += -lapmime \
-             -lplatformenv \
+             -lPlatformEnv \
              -lcharconv \
              -lCommonUI \ 
              -lefsrv \
--- a/javaextensions/wma/mms/build/javawmamms_0x2002DCDD.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/wma/mms/build/javawmamms_0x2002DCDD.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc.s60
@@ -79,7 +79,7 @@
 
 
 LIBRARY		apmime.lib
-LIBRARY		platformenv.lib
+LIBRARY		PlatformEnv.lib
 LIBRARY		charconv.lib
 LIBRARY		CommonUI.lib
 LIBRARY		efsrv.lib
@@ -117,7 +117,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/wma/mms/javasrc/com/nokia/mj/impl/gcf/protocol/mms/PushValidatorImpl.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/wma/mms/javasrc/com/nokia/mj/impl/gcf/protocol/mms/PushValidatorImpl.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -18,6 +18,7 @@
 package com.nokia.mj.impl.gcf.protocol.mms;
 
 import java.lang.String;
+import java.io.IOException;
 import com.nokia.mj.impl.utils.Uid;
 import com.nokia.mj.impl.gcf.PushValidator;
 import com.nokia.mj.impl.mms.MMSPermissionImpl;
@@ -43,6 +44,7 @@
      */
     public void validate(String aUri, String aFilter, Uid aSuiteUid,
                          String aMidletName, boolean aIsStaticRegistration)
+                         throws IOException
     {
         if (!(aUri.startsWith(MMS_PREFIX)))
         {
@@ -67,6 +69,29 @@
             throw new IllegalArgumentException("Invalid Filter");
 
         }
+        Uid suiteUid = null;
+        String commsName = null;
+        if (aIsStaticRegistration)
+        {
+            suiteUid = aSuiteUid;
+            commsName = PushValidator.INSTALLER_COMMS;
+        }
+        else
+        {
+            commsName = PushValidator.RUNTIME_COMMS;
+        }
+        if (PushValidator.isRegisteredPushUriStartingWith(aUri, suiteUid,
+                commsName))
+        {
+            if (aIsStaticRegistration)
+            {
+                throw new IllegalArgumentException();
+            }
+            else
+            {
+                throw new IOException("connection already exists");
+            }
+        }
         ApplicationUtils appUtils = ApplicationUtils.getInstance();
         MMSPermissionImpl permission = new MMSPermissionImpl("mms://*","open");
         appUtils.checkPermission(permission);
--- a/javaextensions/wma/mms/javasrc/com/nokia/mj/impl/mms/MMSConnectionImpl.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/wma/mms/javasrc/com/nokia/mj/impl/mms/MMSConnectionImpl.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -21,10 +21,14 @@
 import java.io.IOException;
 import java.io.InterruptedIOException;
 import javax.wireless.messaging.*;
+import java.lang.ref.WeakReference;
 
 import com.nokia.mj.impl.utils.Logger;
+import com.nokia.mj.impl.gcf.PushValidator;
+import com.nokia.mj.impl.rt.support.Finalizer;
 import com.nokia.mj.impl.mms.MmsPropertyRetriever;
 import com.nokia.mj.impl.rt.support.ShutdownListener;
+import com.nokia.mj.impl.rt.support.ApplicationInfo;
 import com.nokia.mj.impl.rt.support.ApplicationUtils;
 
 public final class MMSConnectionImpl implements MessageConnection
@@ -78,7 +82,10 @@
 
     // Application Id
     private String iAppID = null;
+    
+    private Finalizer iFinalizer;
 
+    private ShutdownListener iShutDownListener;
     // the listener used for messages receiving notifications
     private MessageListener iMessageListener;
 
@@ -90,6 +97,18 @@
         iUri = aUri;
         iState = INITIAL;
         iServerConnection = aServerConnection;
+        if (iServerConnection)
+        {
+            // Check if this url is push registered by other application 
+            // Get the insatnce of ApplicationInfo.
+            ApplicationInfo appInfo = ApplicationInfo.getInstance();
+            if (PushValidator.isRegisteredPushUriStartingWith(aUri, 
+                 appInfo.getSuiteUid(), PushValidator.RUNTIME_COMMS))
+            {
+                throw new IOException("Connection already exists");
+            }
+            iAppID = aUri.substring("mms://:".length());
+        }
         // create the native side peer
         iNativeHandle = _createPeer(iServerConnection, iUri);
         iReadLock = new Object();
@@ -98,30 +117,21 @@
         iMessageLock = new Object();
         iSendLock = new Object();
         // register for shutdown listening
-        setShutdownListener();
-        if (iServerConnection)
-        {
-            iAppID = aUri.substring("mms://:".length());
-        }
+        iShutDownListener = new MmsShutDownListener(this);
+        // register for finalization
+        iFinalizer = registerForFinalization();
         Logger.LOG(Logger.EWMA, Logger.EInfo,
                    "- MMSConnectionImpl::MMSConnectionImpl()");
     }
 
     /*
-    * This function registers this object for shutDown.
-    */
-    private void setShutdownListener()
+    * This function registers this object for Finalization.
+    */ 
+    public Finalizer registerForFinalization()
     {
-        Logger.LOG(Logger.EWMA, Logger.EInfo,
-                   "+ MMSConnectionImpl::setShutdownListener()");
-        // Get the insatnce of ApplicationUtils.
-        ApplicationUtils appUtils = ApplicationUtils.getInstance();
-
-        // Get the name of the application.
-        appUtils.addShutdownListener(new ShutdownListener()
+        return new Finalizer()
         {
-            //The method that gets called when Application is shutting down
-            public void shuttingDown()
+            public void finalizeImpl()
             {
                 try
                 {
@@ -133,9 +143,45 @@
                     Logger.LOG(Logger.EWMA, Logger.EInfo, e.toString());
                 }
             }
-        });
-        Logger.LOG(Logger.EWMA, Logger.EInfo,
-                   "- MMSConnectionImpl::setShutdownListener()");
+        };
+    }
+    
+    /*
+    * Registering for shutDown Listener.
+    */
+    private static class MmsShutDownListener implements ShutdownListener
+    {
+        private final WeakReference iImpl;
+
+        private MmsShutDownListener(MMSConnectionImpl impl)
+        {
+            // Get the instance of ApplicationUtils.
+            ApplicationUtils appUtils = ApplicationUtils.getInstance();
+            
+            // Add the listener.
+            appUtils.addShutdownListener(this);
+            
+            // Create weak reference to impl object.
+            iImpl = new WeakReference(impl);
+        }
+
+        public void shuttingDown()
+        {
+            // Get a strong reference to impl class if it is not yet GC'ed.
+            MMSConnectionImpl impl = (MMSConnectionImpl)iImpl.get();
+            if (impl != null)
+            {
+                try
+                {
+                    impl.close();
+                }
+                catch (IOException e)
+                {
+                    //Nothing to do, just ignore
+                    Logger.LOG(Logger.EWMA, Logger.EInfo, e.toString());
+                }
+            }
+        }
     }
 
     /**
@@ -197,6 +243,9 @@
                     iReadLock.notify();
                 }
                 _dispose(iNativeHandle);
+                // Remove the shutdown listener.
+                ApplicationUtils.getInstance().removeShutdownListener(
+                                                          iShutDownListener);
             }
         }
         Logger.LOG(Logger.EWMA, Logger.EInfo,
--- a/javaextensions/wma/mms/pushplugin/build/eabi/javammsscpluginu.def	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/wma/mms/pushplugin/build/eabi/javammsscpluginu.def	Wed Oct 13 14:23:59 2010 +0300
@@ -24,11 +24,4 @@
 	_ZThn28_N4java3wma22S60MmsServerConnection9setFilterERKSbIwSt11char_traitsIwESaIwEE @ 23 NONAME ; #<thunk>#
 	_ZThn28_NK4java3wma22S60MmsServerConnection6getUriEv @ 24 NONAME ; #<thunk>#
 	_ZThn28_NK4java3wma22S60MmsServerConnection9getFilterEv @ 25 NONAME ; #<thunk>#
-	_ZN4java3wma22S60MmsServerConnection5closeEv @ 26 NONAME
-	_ZThn28_N4java3wma22S60MmsServerConnection5closeEv @ 27 NONAME
-	_ZN4java3wma22S60MmsServerConnectionD0Ev @ 28 NONAME
-	_ZN4java3wma22S60MmsServerConnectionD1Ev @ 29 NONAME
-	_ZN4java3wma22S60MmsServerConnectionD2Ev @ 30 NONAME
-	_ZThn28_N4java3wma22S60MmsServerConnectionD0Ev @ 31 NONAME
-	_ZThn28_N4java3wma22S60MmsServerConnectionD1Ev @ 32 NONAME
 
--- a/javaextensions/wma/mms/pushplugin/build/javammsscplugin_0x2002DCC1.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/wma/mms/pushplugin/build/javammsscplugin_0x2002DCC1.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc.s60
@@ -107,7 +107,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/wma/mms/pushplugin/src.s60/s60mmsserverconnection.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/wma/mms/pushplugin/src.s60/s60mmsserverconnection.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -55,7 +55,7 @@
     return mmsConn;
 }
 
-OS_EXPORT S60MmsServerConnection::~S60MmsServerConnection()
+S60MmsServerConnection::~S60MmsServerConnection()
 {
     JELOG2(EWMA);
     delete mOpenMonitor;
@@ -270,7 +270,7 @@
     return mFilter;
 }
 
-OS_EXPORT void S60MmsServerConnection::close()
+void S60MmsServerConnection::close()
 {
     JELOG2(EWMA);
     // the close and RunL are synchronized to make it SMP safe.
--- a/javaextensions/wma/mms/src.s60/cjavammsmessagehandler.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/wma/mms/src.s60/cjavammsmessagehandler.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -790,6 +790,8 @@
         {
             // get cc length
             aHeaderLengths[KCcFieldIndex] = ReadIntL(aReadStream);
+            if (div == 0)
+                break;
             mmsMap = div;
         }
         break;
--- a/javaextensions/wma/sms_cbs/build/javawma_0x2002DCDC.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/wma/sms_cbs/build/javawma_0x2002DCDC.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../inc
@@ -113,7 +113,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/wma/sms_cbs/javasrc/com/nokia/mj/impl/sms/SMSConnectionImpl.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/wma/sms_cbs/javasrc/com/nokia/mj/impl/sms/SMSConnectionImpl.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -28,7 +28,7 @@
 
 import com.nokia.mj.impl.utils.Logger;
 import com.nokia.mj.impl.smscbs.utils.WmaUrl;
-import com.nokia.mj.impl.rt.support.ShutdownListener;
+import com.nokia.mj.impl.rt.support.Finalizer;
 import com.nokia.mj.impl.rt.support.ApplicationUtils;
 /**
  * The SMSConnectionImpl used for sending and receiving Binary/Text Messages. It
@@ -96,6 +96,8 @@
     private MessageListener iMessageListener;
 
     private WmaUrl iUri;
+    
+    private Finalizer iFinalizer;
 
     public SMSConnectionImpl(WmaUrl aMsgUri, boolean aServerMode)
     throws IOException
@@ -113,41 +115,34 @@
         iCloseLock = new Object();
         iMessageLock = new Object();
         iSendLock = new Object();
-        //register for shutdown listening
-        setShutdownListener();
+        //register for Finalization
+        iFinalizer = registerForFinalization();
         Logger.LOG(Logger.EWMA, Logger.EInfo,
                    "- SMSConnectionImpl::SMSConnectionImpl");
     }
 
     /*
-     * This function registers this object for shutDown.
+     * This function registers for Finalization.
      */
-    private void setShutdownListener()
+
+
+    public Finalizer registerForFinalization()
     {
-        Logger.LOG(Logger.EWMA, Logger.EInfo,
-                   "+ SMSConnectionImpl::setShutdownListener");
-        // Get the insatnce of ApplicationUtils.
-        ApplicationUtils appUtils = ApplicationUtils.getInstance();
-
-        // Get the name of the application.
-        appUtils.addShutdownListener(new ShutdownListener()
+        return new Finalizer()
         {
-            //The method that gets called when Application is shutting down
-            public void shuttingDown()
+            public void finalizeImpl()
             {
                 try
                 {
                     close();
                 }
-                catch (IOException ex)
+                catch (IOException e)
                 {
                     //Nothing to do, just ignore
-                    Logger.ELOG(Logger.EWMA, ex.toString(), ex);
+                    Logger.LOG(Logger.EWMA, Logger.EInfo, e.toString());
                 }
             }
-        });
-        Logger.LOG(Logger.EWMA, Logger.EInfo,
-                   "- SMSConnectionImpl::setShutdownListener");
+        };
     }
 
     /**
--- a/javaextensions/wma/sms_cbs/pushplugin/cbs/build/eabi/javacbsscpluginu.def	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/wma/sms_cbs/pushplugin/cbs/build/eabi/javacbsscpluginu.def	Wed Oct 13 14:23:59 2010 +0300
@@ -24,16 +24,4 @@
 	_ZTVN4java3wma19CbsServerConnectionE @ 23 NONAME ; #<VT>#
 	_ZTVN4java3wma20ServerConnectionBaseE @ 24 NONAME ; #<VT>#
 	_ZThn28_N4java3wma19CbsServerConnection4openEPNS_4push18ConnectionListenerE @ 25 NONAME ; #<thunk>#
-	_ZN4java3wma19CbsServerConnection15retrieveMessageER8TPckgBufI22TJavaMessageParametersE @ 26 NONAME
-	_ZN4java3wma19CbsServerConnection4openEPNS_4push18ConnectionListenerEb @ 27 NONAME
-	_ZN4java3wma19CbsServerConnection5closeEv @ 28 NONAME
-	_ZN4java3wma19CbsServerConnectionD0Ev @ 29 NONAME
-	_ZN4java3wma19CbsServerConnectionD1Ev @ 30 NONAME
-	_ZN4java3wma19CbsServerConnectionD2Ev @ 31 NONAME
-	_ZThn28_N4java3wma19CbsServerConnection15retrieveMessageER8TPckgBufI22TJavaMessageParametersE @ 32 NONAME
-	_ZThn28_N4java3wma19CbsServerConnection4openEPNS_4push18ConnectionListenerEb @ 33 NONAME
-	_ZThn28_N4java3wma19CbsServerConnection5closeEv @ 34 NONAME
-	_ZThn28_N4java3wma19CbsServerConnectionD0Ev @ 35 NONAME
-	_ZThn28_N4java3wma19CbsServerConnectionD1Ev @ 36 NONAME
 
-
--- a/javaextensions/wma/sms_cbs/pushplugin/cbs/build/javacbsscplugin_0x2002DCA4.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/wma/sms_cbs/pushplugin/cbs/build/javacbsscplugin_0x2002DCA4.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc
@@ -118,7 +118,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/wma/sms_cbs/pushplugin/cbs/src.s60/cbsserverconnection.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/wma/sms_cbs/pushplugin/cbs/src.s60/cbsserverconnection.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -58,10 +58,9 @@
     return cbsConn;
 }
 
-OS_EXPORT CbsServerConnection::~CbsServerConnection()
+CbsServerConnection::~CbsServerConnection()
 {
     JELOG2(EWMA);
-    removeDir(mMessageStoreDirName);
 }
 
 void CbsServerConnection::initializeL()
@@ -128,7 +127,7 @@
     }
 }
 
-OS_EXPORT void CbsServerConnection::open(ConnectionListener* aListener,
+void CbsServerConnection::open(ConnectionListener* aListener,
                                bool aIsAppLaunched)
 {
     JELOG2(EWMA);
@@ -192,7 +191,8 @@
         const java::runtime::ApplicationInfo& appInf =
             java::runtime::ApplicationInfo::getInstance();
         const std::wstring& root = appInf.getRootPath();
-        error = createMessageStore(root + CBS_STORE_PATH);
+        // At this point mIsAppLaunched will be true if it not push connection.
+        error = createMessageStore(root + CBS_STORE_PATH, mIsAppLaunched);
         if (error != KErrNone)
         {
             ELOG1(EWMA,"CBS : create message store failed : %d",error);
@@ -214,12 +214,6 @@
         }
 
         mOpenMonitor->wait();
-        // If there are any messages already available in the message store
-        // notify the listener
-        if (mMessagesOnStore > 0)
-        {
-            mListener->msgArrived();
-        }
         mIsListening = true;
     }
 }
@@ -282,7 +276,7 @@
     }
 }
 
-OS_EXPORT int CbsServerConnection::retrieveMessage(TJavaMessageParametersBuf& aCbsBuf)
+int CbsServerConnection::retrieveMessage(TJavaMessageParametersBuf& aCbsBuf)
 {
     JELOG2(EWMA);
     TCBSParametersBuf cbsParametersBuf;
@@ -328,7 +322,7 @@
 }
 
 
-OS_EXPORT void CbsServerConnection::close()
+void CbsServerConnection::close()
 {
     JELOG2(EWMA);
     // the close and RunL are synchronized to make it SMP safe.
@@ -524,7 +518,7 @@
         }
         // Store the received page number, such that the message can
         // be reconstructed in the correct order later
-        mCbsMessagePagesRef.AppendL(currentPage);
+        mCbsMessagePagesRef.Append(currentPage);
 
         // Store the actual content of the message
         mCbsMessagePagesData->AppendL(messageData);
--- a/javaextensions/wma/sms_cbs/pushplugin/inc/serverconnectionbase.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/wma/sms_cbs/pushplugin/inc/serverconnectionbase.h	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -109,7 +109,7 @@
      * @param path:the message store path
      * @returns SUCCESS or FAILURE
      */
-    int createMessageStore(std::wstring aPath);
+    int createMessageStore(std::wstring aPath, bool aDeleteStore);
 
     /**
      * Removes the directory specified.
--- a/javaextensions/wma/sms_cbs/pushplugin/sms/build/eabi/javasmsscpluginu.def	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/wma/sms_cbs/pushplugin/sms/build/eabi/javasmsscpluginu.def	Wed Oct 13 14:23:59 2010 +0300
@@ -10,28 +10,23 @@
 	_ZN26SmsServerConnectionFactoryD2Ev @ 9 NONAME
 	_ZN4java3wma19SmsServerConnection15retrieveMessageER8TPckgBufI22TJavaMessageParametersE @ 10 NONAME
 	_ZN4java3wma19SmsServerConnection4openEPNS_4push18ConnectionListenerE @ 11 NONAME
-	_ZN4java3wma19SmsServerConnection4openEPNS_4push18ConnectionListenerEb @ 12 NONAME
-	_ZN4java3wma19SmsServerConnection5closeEv @ 13 NONAME
-	_ZN4java3wma19SmsServerConnectionC1ERKSbIwSt11char_traitsIwESaIwEES7_ @ 14 NONAME
-	_ZN4java3wma19SmsServerConnectionC2ERKSbIwSt11char_traitsIwESaIwEES7_ @ 15 NONAME
-	_ZN4java3wma19SmsServerConnectionD0Ev @ 16 NONAME
-	_ZN4java3wma19SmsServerConnectionD1Ev @ 17 NONAME
-	_ZN4java3wma19SmsServerConnectionD2Ev @ 18 NONAME
-	_ZN4java3wma20ServerConnectionBase9setFilterERKSbIwSt11char_traitsIwESaIwEE @ 19 NONAME
-	_ZNK4java3wma20ServerConnectionBase18getMessagesOnStoreEv @ 20 NONAME
-	_ZNK4java3wma20ServerConnectionBase6getUriEv @ 21 NONAME
-	_ZNK4java3wma20ServerConnectionBase9getFilterEv @ 22 NONAME
-	_ZTI26SmsServerConnectionFactory @ 23 NONAME
-	_ZTIN4java3wma19SmsServerConnectionE @ 24 NONAME
-	_ZTIN4java3wma20ServerConnectionBaseE @ 25 NONAME
-	_ZTV26SmsServerConnectionFactory @ 26 NONAME
-	_ZTVN4java3wma19SmsServerConnectionE @ 27 NONAME
-	_ZTVN4java3wma20ServerConnectionBaseE @ 28 NONAME
-	_ZThn28_N4java3wma19SmsServerConnection15retrieveMessageER8TPckgBufI22TJavaMessageParametersE @ 29 NONAME
-	_ZThn28_N4java3wma19SmsServerConnection4openEPNS_4push18ConnectionListenerE @ 30 NONAME
-	_ZThn28_N4java3wma19SmsServerConnection4openEPNS_4push18ConnectionListenerEb @ 31 NONAME
-	_ZThn28_N4java3wma19SmsServerConnection5closeEv @ 32 NONAME
-	_ZThn28_N4java3wma19SmsServerConnectionD0Ev @ 33 NONAME
-	_ZThn28_N4java3wma19SmsServerConnectionD1Ev @ 34 NONAME
+	_ZN4java3wma19SmsServerConnectionC1ERKSbIwSt11char_traitsIwESaIwEES7_ @ 12 NONAME
+	_ZN4java3wma19SmsServerConnectionC2ERKSbIwSt11char_traitsIwESaIwEES7_ @ 13 NONAME
+	_ZN4java3wma19SmsServerConnectionD0Ev @ 14 NONAME
+	_ZN4java3wma19SmsServerConnectionD1Ev @ 15 NONAME
+	_ZN4java3wma19SmsServerConnectionD2Ev @ 16 NONAME
+	_ZN4java3wma20ServerConnectionBase9setFilterERKSbIwSt11char_traitsIwESaIwEE @ 17 NONAME
+	_ZNK4java3wma20ServerConnectionBase18getMessagesOnStoreEv @ 18 NONAME
+	_ZNK4java3wma20ServerConnectionBase6getUriEv @ 19 NONAME
+	_ZNK4java3wma20ServerConnectionBase9getFilterEv @ 20 NONAME
+	_ZTI26SmsServerConnectionFactory @ 21 NONAME ; #<TI>#
+	_ZTIN4java3wma19SmsServerConnectionE @ 22 NONAME ; #<TI>#
+	_ZTIN4java3wma20ServerConnectionBaseE @ 23 NONAME ; #<TI>#
+	_ZTV26SmsServerConnectionFactory @ 24 NONAME ; #<VT>#
+	_ZTVN4java3wma19SmsServerConnectionE @ 25 NONAME ; #<VT>#
+	_ZTVN4java3wma20ServerConnectionBaseE @ 26 NONAME ; #<VT>#
+	_ZThn28_N4java3wma19SmsServerConnection15retrieveMessageER8TPckgBufI22TJavaMessageParametersE @ 27 NONAME ; #<thunk>#
+	_ZThn28_N4java3wma19SmsServerConnection4openEPNS_4push18ConnectionListenerE @ 28 NONAME ; #<thunk>#
+	_ZThn28_N4java3wma19SmsServerConnectionD0Ev @ 29 NONAME ; #<thunk>#
+	_ZThn28_N4java3wma19SmsServerConnectionD1Ev @ 30 NONAME ; #<thunk>#
 
-
--- a/javaextensions/wma/sms_cbs/pushplugin/sms/build/javasmsscplugin_0x2002DCD3.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/wma/sms_cbs/pushplugin/sms/build/javasmsscplugin_0x2002DCD3.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc.s60
@@ -115,7 +115,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaextensions/wma/sms_cbs/pushplugin/sms/src.s60/smsserverconnection.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/wma/sms_cbs/pushplugin/sms/src.s60/smsserverconnection.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -64,15 +64,13 @@
 OS_EXPORT SmsServerConnection::~SmsServerConnection()
 {
     JELOG2(EWMA);
-    // As per internal spec the message store should be removed only when
-    // Application is uninstalled / UnRegistered from push
-    removeDir(mMessageStoreDirName);
+
     delete mMessage;
     delete mFilterDes;
     delete mOpenMonitor;
 }
 
-OS_EXPORT void SmsServerConnection::open(ConnectionListener* aListener,
+void SmsServerConnection::open(ConnectionListener* aListener,
                                bool aIsAppLaunched)
 {
     JELOG2(EWMA);
@@ -148,7 +146,9 @@
                     java::runtime::ApplicationInfo::getInstance();
                 const std::wstring& root = appInf.getRootPath();
                 LOG1(EWMA, EInfo,"SMS Store path %S",root.c_str());
-                error = createMessageStore(root + SMS_STORE_PATH);
+                // At this point mIsAppLaunched will be true if it not
+                // push connection.
+                error = createMessageStore(root + SMS_STORE_PATH , mIsAppLaunched);
                 mState = EReceivingMessageForNotify;
                 if (KErrNone == error)
                 {
@@ -165,10 +165,6 @@
                                 __FUNCTION__,__LINE__);
         }
         mOpenMonitor->wait();
-        if (mMessagesOnStore > 0)
-        {
-            mListener->msgArrived();
-        }
         mIsListening = true;
     }
 }
@@ -301,7 +297,7 @@
 }
 
 
-OS_EXPORT void SmsServerConnection::close()
+void SmsServerConnection::close()
 {
     JELOG2(EWMA);
     // the close and RunL are synchronized to make it SMP safe.
--- a/javaextensions/wma/sms_cbs/pushplugin/src/serverconnectionbase.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/wma/sms_cbs/pushplugin/src/serverconnectionbase.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -82,19 +82,21 @@
     return mMessagesOnStore;
 }
 
-int ServerConnectionBase::createMessageStore(std::wstring aDirectoryPath)
+int ServerConnectionBase::createMessageStore(std::wstring aDirectoryPath, bool aDeleteStore)
 {
     JELOG2(EWMA);
     aDirectoryPath += JavaCommonUtils::intToWstring(mPort);
-    aDirectoryPath +=L"\\" ;
-    mMessageStoreDirName = aDirectoryPath;
+    // If not push connection delete the message store.
+    if (aDeleteStore)
+       removeDir(aDirectoryPath);
+    mMessageStoreDirName = aDirectoryPath + L"\\";
     LOG1(EWMA, EInfo , " Creating message store in path %S",
          mMessageStoreDirName.c_str());
     // See if directory is present
-    if (FileUtilities::isDirectory(mMessageStoreDirName))
+    if (FileUtilities::isDirectory(aDirectoryPath))
     {
         std::list<std::wstring> dirList = FileUtilities::getDirContentsList
-                                          (mMessageStoreDirName);
+                                          (aDirectoryPath);
         mMessagesOnStore = dirList.size();
         if (mMessagesOnStore> 0)
         {
@@ -198,7 +200,7 @@
         {
             for (it = dirList.begin(); it != dirList.end(); it++)
             {
-                std::wstring element(aDirPath);
+                std::wstring element(aDirPath + L"\\");
                 element += *it;
                 char *fileName = JavaCommonUtils::wstringToUtf8(element);
                 if ((error = remove(fileName)) != 0)
--- a/javaextensions/wma/sms_cbs/src.s60/csmsplatformservices60impl.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaextensions/wma/sms_cbs/src.s60/csmsplatformservices60impl.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -48,6 +48,7 @@
     {
         mSmsSendSocket.CancelAll();
         mSmsSendSocket.Close();
+        mSocketServer.Close();
         delete mSendMessage;
     }
     delete mMessageParameters;
--- a/javamanager/bld.inf	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/bld.inf	Wed Oct 13 14:23:59 2010 +0300
@@ -21,12 +21,11 @@
 #include "preinstaller/build/bld.inf"    
 #include "debugapi/build/bld.inf"    
 #include "javalauncher/build/bld.inf"    
-#include "javaupgradeapp/build/bld.inf"    
 #include "javacaptain/bld.inf"    
 #include "javainstaller/bld.inf"    
 #include "javaregistry/bld.inf"    
 #include "javabackup/bld.inf"    
 #include "javasettings/bld.inf"    
+#include "javasidchecker/build/bld.inf"    
 #include "javarecognizer/build/bld.inf"    
-#include "javasidchecker/build/bld.inf"    
 #include "javaappschemeplugin/build/bld.inf"  
--- a/javamanager/debugapi/build/debugapi_0x2002DCAB.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/debugapi/build/debugapi_0x2002DCAB.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../inc
@@ -104,7 +104,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javamanager/javaappschemeplugin/build/javaappschemeplugin.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javaappschemeplugin/build/javaappschemeplugin.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -26,12 +26,6 @@
 // Use bytepair compression to enable code paging
 PAGED
 
-APP_LAYER_SYSTEMINCLUDE
-
-#ifndef RD_JAVA_S60_RELEASE_9_2
-SYSTEMINCLUDE   /epoc32/include/ecom    // Due to SchemeHandler.inl in 5.0 2009w18 and 10.1 builds
-#endif
-
 SOURCEPATH  ../src
 
 SOURCE  javaapphandler.cpp
@@ -40,13 +34,12 @@
 START RESOURCE  ../data/2002875F.rss
 TARGET javaappschemeplugin.rsc
 END
-START RESOURCE  ../data/2002875F_iad.rss
-TARGET javaappschemeplugin.rsc
-TARGETPATH resource/java/iad
-END
 
 USERINCLUDE     ../inc
 
+SYSTEMINCLUDE   /epoc32/include/ecom
+APP_LAYER_SYSTEMINCLUDE
+
 
 LIBRARY     euser.lib
 LIBRARY     ecom.lib
--- a/javamanager/javaappschemeplugin/data/2002875F.rss	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javaappschemeplugin/data/2002875F.rss	Wed Oct 13 14:23:59 2010 +0300
@@ -21,10 +21,6 @@
 
 //  RESOURCE DEFINITIONS
 
-#ifndef ECOM_VERSION_NO
-#define ECOM_VERSION_NO 1
-#endif
-
 RESOURCE REGISTRY_INFO theInfo
     {
     resource_format_version = RESOURCE_FORMAT_VERSION_2;
@@ -46,7 +42,7 @@
                     {
                     // KJavaLocalAppHandlerEcomImplUid
                     implementation_uid = 0x20028767;
-                    version_no   = ECOM_VERSION_NO;
+                    version_no   = 1;
                     display_name = "URL handler for javaapp scheme";
                     default_data = "javaapp";
                     opaque_data  = "";
--- a/javamanager/javaappschemeplugin/data/2002875F_iad.rss	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/*
-* Copyright (c) 2010 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:  ECOM resource definition for IAD
-*
-*/
-
-//  Version for IAD
-#define ECOM_VERSION_NO 2
-
-//  Include actual rss
-#include "2002875F.rss"
-
--- a/javamanager/javabackup/javabackupcore/build/javabackup.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javabackup/javabackupcore/build/javabackup.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -43,14 +43,12 @@
 SOURCE                  jsbcactive.cpp
 SOURCE                  jsbcdataowner.cpp
 
-#ifdef RD_JAVA_S60_RELEASE_5_0
-SYSTEMINCLUDE	/epoc32/include/connect    // Due to abclient.h in S60 5.0
-#endif
-
 USERINCLUDE             ../src.s60
 USERINCLUDE             ../../inc.s60
 USERINCLUDE             ../../../../inc
 
+SYSTEMINCLUDE           /epoc32/include/connect
+
 LIBRARY                 ecom.lib
 LIBRARY                 abclient.lib
 LIBRARY                 javastorage.lib
--- a/javamanager/javabackup/javabackupcore/src.s60/jsbcdataowner.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javabackup/javabackupcore/src.s60/jsbcdataowner.h	Wed Oct 13 14:23:59 2010 +0300
@@ -19,7 +19,7 @@
 #ifndef JSBCDATAOWNER_H
 #define JSBCDATAOWNER_H
 
-#include <connect/abclient.h>
+#include <abclient.h>
 
 namespace java
 {
--- a/javamanager/javabackup/midp2backup/build/midp2backupplugin.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javabackup/midp2backup/build/midp2backupplugin.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -46,20 +46,19 @@
 SOURCE                  javaversionbackuputil.cpp
 SOURCE                  mediaidupdater.cpp
 
+
 USERINCLUDE             ../src.s60
 USERINCLUDE             ../../inc.s60
 USERINCLUDE             ../../../../inc
 
-START RESOURCE          ../data/10282474.rss
+SYSTEMINCLUDE           /epoc32/include/connect
+
+start resource          ../data/10282474.rss
 TARGET                  midp2backupplugin.rsc
-END
-START RESOURCE          ../data/10282474_iad.rss
-TARGET                  midp2backupplugin.rsc
-TARGETPATH              resource/java/iad
-END
+end
 
 LIBRARY                 ecom.lib
-LIBRARY                 estor.lib 
+LIBRARY                 estor.lib
 LIBRARY                 efsrv.lib
 LIBRARY                 javastorage.lib
 LIBRARY                 sysutil.lib
--- a/javamanager/javabackup/midp2backup/data/10282474.rss	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javabackup/midp2backup/data/10282474.rss	Wed Oct 13 14:23:59 2010 +0300
@@ -19,10 +19,6 @@
 #include <ecom/registryinfov2.rh>
 #include "javauids.h"
 
-#ifndef ECOM_VERSION_NO
-#define ECOM_VERSION_NO 1
-#endif
-
 // Declares info for one implementation
 RESOURCE REGISTRY_INFO theInfo
 {
@@ -40,7 +36,7 @@
                                          IMPLEMENTATION_INFO
                                          {
                                              implementation_uid = KBackupEcomImplUid;
-                                             version_no = ECOM_VERSION_NO;
+                                             version_no = 3;
                                              display_name = "MIDP2 Backup Plugin";
                                              default_data = "midp2";
                                              opaque_data = "test_params";
--- a/javamanager/javabackup/midp2backup/data/10282474_iad.rss	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/*
-* Copyright (c) 2010 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:  ECOM resource definition for IAD
-*
-*/
-
-//  Version for IAD
-#define ECOM_VERSION_NO 2
-
-//  Include actual rss
-#include "10282474.rss"
-
--- a/javamanager/javabackup/midp2backup/src.s60/javastoragebackuputil.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javabackup/midp2backup/src.s60/javastoragebackuputil.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -765,7 +765,7 @@
             js->remove(RUNTIME_SETTINGS_TABLE, emptyEntry);
             js->remove(PREINSTALL_TABLE, emptyEntry);
 
-            ELOG(EBackup, "Data removed successfully from table");
+            ILOG(EBackup, "Data removed successfully from table");
         }
         catch (JavaStorageException jse)
         {
--- a/javamanager/javabackup/midp2backup/src.s60/mediaidupdater.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javabackup/midp2backup/src.s60/mediaidupdater.h	Wed Oct 13 14:23:59 2010 +0300
@@ -19,6 +19,8 @@
 #ifndef MEDIAIDUPDATER_H
 #define MEDIAIDUPDATER_H
 
+#include "javaosheaders.h"
+
 #include <string>
 #include <set>
 
@@ -39,7 +41,7 @@
 *   - another memory card is used during restore than originally
 */
 
-class MediaIdUpdater
+OS_NONSHARABLE_CLASS(MediaIdUpdater)
 {
 public:
     MediaIdUpdater();
--- a/javamanager/javabackup/midp2backup/src.s60/midp2backupplugin.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javabackup/midp2backup/src.s60/midp2backupplugin.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -29,7 +29,7 @@
 #include "javacommonutils.h"
 #include "logger.h"
 
-#include <connect/sbdefs.h>
+#include <sbdefs.h>
 #include <s32mem.h>
 #include <s32file.h>
 #include <f32file.h>
--- a/javamanager/javabackup/midp2backup_usif/build/bld.inf	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-/*
-* Copyright (c) 2008-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 file for Midp2BackupPlugin
-*
-*/
-
-
-PRJ_MMPFILES
-midp2backupplugin.mmp
--- a/javamanager/javabackup/midp2backup_usif/build/bwins/backupu.def	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-EXPORTS
-	?ImplementationGroupProxy@@YAPBUTImplementationProxy@@AAH@Z @ 1 NONAME ; struct TImplementationProxy const * ImplementationGroupProxy(int &)
--- a/javamanager/javabackup/midp2backup_usif/build/eabi/backupu.def	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-EXPORTS
-	_Z24ImplementationGroupProxyRi @ 1 NONAME
-	_ZTIN4java6backup17CAppArcBackupUtilE @ 2 NONAME
-	_ZTIN4java6backup18CMidp2BackupPluginE @ 3 NONAME
-	_ZTIN4java6backup18CStorageBackupUtilE @ 4 NONAME
-	_ZTVN4java6backup17CAppArcBackupUtilE @ 5 NONAME
-	_ZTVN4java6backup18CMidp2BackupPluginE @ 6 NONAME
-	_ZTVN4java6backup18CStorageBackupUtilE @ 7 NONAME
-
--- a/javamanager/javabackup/midp2backup_usif/build/midp2backupplugin.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/*
-* Copyright (c) 2008-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:  Project definition file for MIDP2 Backup Plugin
-*
-*/
-
-
-#include <bldvariant.hrh>
-#include <data_caging_paths.hrh>
-#include <platform_paths.hrh>
-
-#include <../../../../inc/java_stdcpp_support_for_dll.hrh>
-#include <../../../../inc/project_defines.hrh>
-
-TARGET                  midp2backupplugin.dll
-TARGETTYPE              plugin
-UID                     0x10009D8D 0x10282474
-
-#ifdef RD_JAVA_S60_RELEASE_9_2_ONWARDS
-CAPABILITY              CAP_ECOM_PLUGIN TrustedUI
-#else
-// SBE has lesser capability set on beta release.
-CAPABILITY              CAP_ECOM_PLUGIN WriteDeviceData
-#endif
-
-VENDORID                VID_DEFAULT
-
-PAGED
-
-SOURCEPATH              ../src.s60
-SOURCE                  proxy.cpp
-SOURCE                  apparcbackuputil.cpp
-SOURCE                  javastoragebackuputil.cpp
-SOURCE                  javaversionbackuputil.cpp
-
-#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-SOURCE                  javascrbackuputil.cpp
-SOURCE                  midp2backuppluginusif.cpp
-#else
-SOURCE                  midp2backupplugin.cpp
-#endif // SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-
-USERINCLUDE             ../src.s60
-USERINCLUDE             ../../inc.s60
-USERINCLUDE             ../../../../inc
-
-START RESOURCE          ../data/10282474.rss
-TARGET                  midp2backupplugin.rsc
-END
-START RESOURCE          ../data/10282474_iad.rss
-TARGET                  midp2backupplugin.rsc
-TARGETPATH              resource/java/iad
-END
-
-LIBRARY                 ecom.lib 
-LIBRARY                 efsrv.lib
-LIBRARY                 javastorage.lib
-LIBRARY                 sysutil.lib
-LIBRARY                 apgrfx.lib
-LIBRARY                 apparc.lib
-LIBRARY                 estlib.lib
-LIBRARY                 javaenvinfo.lib
-LIBRARY                 estor.lib
-LIBRARY                 ipcstream.lib
-
-#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-LIBRARY                 scrclient.lib
-#endif // SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-
-#if defined(WINSCW)
-  deffile ./bwins/backup.def
-#else
-  deffile ./eabi/backup.def
-#endif
--- a/javamanager/javabackup/midp2backup_usif/data/10282474.rss	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
-* Copyright (c) 2008-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:  Resource file for the Ecom plugin of Java Backup
-*
-*/
-
-
-#include <ecom/registryinfov2.rh>
-#include "javauids.h"
-
-#ifndef ECOM_VERSION_NO
-#define ECOM_VERSION_NO 1
-#endif
-
-// Declares info for one implementation
-RESOURCE REGISTRY_INFO theInfo
-{
-    resource_format_version = RESOURCE_FORMAT_VERSION_2;
-    // UID for the DLL
-    dll_uid = KBackupMidp2DllUid;
-    // Declare array of interface info
-    interfaces = {
-                  INTERFACE_INFO
-                  {
-                      // UID of interface that is implemented
-                      interface_uid = KBackupEcomIfUid;
-                      implementations = {
-                                         // Info for CImplementation1
-                                         IMPLEMENTATION_INFO
-                                         {
-                                             implementation_uid = KBackupEcomImplUid;
-                                             version_no = ECOM_VERSION_NO;
-                                             display_name = "MIDP2 Backup Plugin";
-                                             default_data = "midp2";
-                                             opaque_data = "test_params";
-                                             rom_only  =  0;
-                                         }
-                                        };
-                  }
-                 };
-}
-
--- a/javamanager/javabackup/midp2backup_usif/data/10282474_iad.rss	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/*
-* Copyright (c) 2010 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:  ECOM resource definition for IAD
-*
-*/
-
-//  Version for IAD
-#define ECOM_VERSION_NO 2
-
-//  Include actual rss
-#include "10282474.rss"
-
--- a/javamanager/javabackup/midp2backup_usif/src.s60/apparcbackuputil.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,550 +0,0 @@
-/*
-* Copyright (c) 2008-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:  Implementation of CAppArcBackupUtil
-*
-*/
-
-
-#include "apparcbackuputil.h"
-#include "javaapparcutil.h"
-
-#include "javasymbianoslayer.h"
-#include "javauid.h"
-#include "logger.h"
-#include "javacommonutils.h"
-#include "s60commonutils.h"
-
-#include <apgcli.h>
-#include <wchar.h>
-#include <s32mem.h>
-#include <sysutil.h>
-#include <f32file.h>
-
-#include <memory>
-#include <string>
-
-#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
-#include <apgicnfl.h>
-#else
-#include <apgicnflpartner.h>
-#endif
-
-
-using namespace std;
-using namespace java::storage;
-using namespace java::backup;
-
-const TUid  KMidletApplicationTypeUid = { 0x10210E26 };
-_LIT(KDefaultFolder, "");
-
-// ======== MEMBER FUNCTIONS ========
-
-CAppArcBackupUtil::CAppArcBackupUtil()
-{
-    LOG(EBackup, EInfo, "CAppArcBackupUtil constructor");
-}
-
-void CAppArcBackupUtil::ConstructL(RFs& aFs)
-{
-    LOG(EBackup, EInfo, "CAppArcBackupUtil::ConstructL");
-
-    User::LeaveIfError(iApparcServer.Connect());
-
-    iNumberOfIcons = 0;
-    iFs = aFs;
-}
-
-
-CAppArcBackupUtil* CAppArcBackupUtil::NewL(RFs& aFs)
-{
-    LOG(EBackup, EInfo, "CAppArcBackupUtil::NewL");
-
-    CAppArcBackupUtil* self = new(ELeave) CAppArcBackupUtil();
-    CleanupStack::PushL(self);
-    self->ConstructL(aFs);
-    CleanupStack::Pop();
-
-    return self;
-}
-
-
-CAppArcBackupUtil::~CAppArcBackupUtil()
-{
-    LOG(EBackup, EInfo, "CAppArcBackupUtil destructor");
-
-    iApparcServer.Close();
-}
-
-
-void CAppArcBackupUtil::RegisterAppL(TPtr8& aRestoreIconPtr, TDriveNumber& aDrive)
-{
-    LOG(EBackup, EInfo, "CAppArcBackupUtil::RegisterApp");
-
-    RDesReadStream stream(aRestoreIconPtr);
-    CleanupClosePushL(stream);
-
-    // Read Uid
-    int midletUid = stream.ReadUint32L();
-
-    if (!CheckIfAlreadyRegisteredL(midletUid))
-    {
-        // Read filename
-        TInt32 fileNameSize = stream.ReadInt32L();
-        HBufC* fileName = HBufC::NewL(fileNameSize);
-        CleanupStack::PushL(fileName);
-        TPtr16 fileNamePtr = fileName->Des();
-        stream.ReadL(fileNamePtr, fileNameSize / 2);   // half of size
-
-        // Read number of icons
-        TInt numberOfIcons = stream.ReadInt32L();
-//        numberOfIcons = 1;
-        //LOG1(EBackup, EInfo, "Number of Icons = %d", numberOfIcons);
-
-        TInt groupNameSize = stream.ReadInt32L();
-        TBuf<KApaMaxAppGroupName> groupName;
-
-        if (groupNameSize != 0)
-        {
-            stream.ReadL(groupName, groupNameSize / 2);
-        }
-
-        // check disk space
-        TInt index = sizeof(TUint32)    // midletUid
-                     + sizeof(TInt32)                // size of fileNameSize
-                     + fileNameSize                  // size of filename
-                     + sizeof(TInt32)                // size of numberOfIcons
-                     + sizeof(TInt32)                // group name size
-                     + groupNameSize;                // groupname
-
-        if (SysUtil::DiskSpaceBelowCriticalLevelL(&iFs, aRestoreIconPtr.Size() - index, aDrive))
-        {
-            ELOG(EBackup, "Disk space below critical level. Leaving with KErrDiskFull.");
-            User::Leave(KErrDiskFull);
-        }
-
-        // Make directory if necessary
-        iFs.CreatePrivatePath(aDrive);
-
-        // Make full path of temporary icon file
-        TPath tempPath;
-        TPath tempPrivatePath;
-        iFs.PrivatePath(tempPrivatePath);
-
-        TDriveUnit* driveUnit = new(ELeave) TDriveUnit(aDrive);
-        CleanupStack::PushL(driveUnit);
-
-        tempPath.Append(driveUnit->Name().Left(1));
-        tempPath.Append(KDriveDelimiter);
-        tempPath.Append(tempPrivatePath);
-        tempPath.Append(fileNamePtr);
-
-        // Set private session path to point same drive where restoring
-        iFs.SetSessionToPrivate(aDrive);
-
-
-        RFile iconFile;
-        User::LeaveIfError(iconFile.Create(iFs, fileNamePtr, EFileWrite));
-
-        CleanupStack::PopAndDestroy(fileName);
-        CleanupClosePushL(iconFile);
-
-        iconFile.Write(aRestoreIconPtr.Mid(index));
-
-        // Register application
-        LOG1(EBackup,EInfo,"Registering app %d", midletUid);
-        TUid uid = TUid::Uid(midletUid);
-        TBuf<128>   appName;
-        CJavaApparcUtil::AppName(uid, appName);
-
-        CApaRegistrationResourceFileWriter* writer =
-            CApaRegistrationResourceFileWriter::NewL(uid,
-                    appName,
-                    TApaAppCapability::ENonNative);
-        CleanupStack::PushL(writer);
-
-        const TInt  KOpaqueDataLength = 4;
-        TBuf8<KOpaqueDataLength>    opaqueData;
-        RDesWriteStream             writeStream(opaqueData);
-        CleanupClosePushL(writeStream);
-
-        LOG(EBackup, EInfo, "Getting midlet entry");
-
-        JavaStorageApplicationEntry_t appEntries = StorageEntryL(uid);
-
-        if (appEntries.size() == 0)
-        {
-            ELOG(EBackup, "No midlet entry found in Java Storage; Mismatch between AppArc and Storage data. Abort backup");
-            User::Leave(KErrNotFound);
-        }
-
-        JavaStorageEntry attribute;
-        attribute.setEntry(NAME, L"");
-
-        // Get Name attribute from read attributes.
-        JavaStorageApplicationEntry_t::const_iterator findIterator = appEntries.find(attribute);
-        wstring midName;
-
-        if (findIterator != appEntries.end())
-        {
-            midName = (*findIterator).entryValue();
-
-        }
-        else
-        {
-            User::Leave(KErrBadHandle);
-        }
-
-        appEntries.clear();
-
-        HBufC* tempstr = java::util::S60CommonUtils::wstringToDes(midName.c_str());
-        TPtrC midletName = tempstr->Des();
-
-        if (groupNameSize != 0)
-        {
-            writer->SetGroupNameL(groupName);
-        }
-        else
-        {
-            writer->SetGroupNameL(KDefaultFolder);
-        }
-
-        writeStream.WriteUint32L(midletUid);
-        writeStream.CommitL();
-
-        LOG(EBackup, EInfo, "Setting opaque data");
-        writer->SetOpaqueDataL(opaqueData);
-
-        CApaLocalisableResourceFileWriter*  lWriter =
-            CApaLocalisableResourceFileWriter::NewL(KNullDesC,
-                                                    midletName,
-                                                    numberOfIcons,
-                                                    KNullDesC);
-        CleanupStack::PushL(lWriter);
-
-        // Prepare AppArc for deregistration
-        LOG(EBackup, EInfo, "PrepareNonNativeApplicationsUpdatesL");
-        iApparcServer.PrepareNonNativeApplicationsUpdatesL();
-
-        // Register application
-        LOG(EBackup, EInfo, "RegisterNonNativeApplicationL");
-        iApparcServer.RegisterNonNativeApplicationL(KMidletApplicationTypeUid,
-                aDrive,
-                *writer,
-                lWriter,
-                &iconFile);
-
-        // Commit registration changes
-        LOG(EBackup, EInfo, "CommitNonNativeApplicationsUpdatesL");
-        iApparcServer.CommitNonNativeApplicationsUpdatesL();
-
-        delete tempstr;
-        CleanupStack::PopAndDestroy(lWriter);
-        CleanupStack::PopAndDestroy(&writeStream);
-        CleanupStack::PopAndDestroy(writer);
-        iconFile.Close();
-        CleanupStack::PopAndDestroy(&iconFile);
-
-        TInt err = iFs.Delete(tempPath);
-        LOG1(EBackup, EInfo, "iFs.Delete err = %d", err);
-        CleanupStack::PopAndDestroy(driveUnit);
-    }
-
-    CleanupStack::PopAndDestroy(&stream);
-}
-
-
-void CAppArcBackupUtil::DeregisterAppsL(TDriveNumber aDrive)
-{
-    LOG1(EBackup, EInfo, "CAppArcBackupUtil::DeregisterApps, drive: %d", aDrive);
-
-    // Initialise the process of getting apps
-    iApparcServer.GetFilteredApps(TApaAppCapability::ENonNative,
-                                  TApaAppCapability::ENonNative);
-
-    // Getting the apps one-by-one
-    TApaAppInfo* info = new(ELeave) TApaAppInfo();
-    CleanupStack::PushL(info);
-
-    TUid typeUid;
-
-    // Prepare AppArc for deregistration
-    LOG(EBackup, EInfo, "PrepareNonNativeApplicationsUpdatesL");
-    iApparcServer.PrepareNonNativeApplicationsUpdatesL();
-
-    while (!iApparcServer.GetNextApp((*info)))
-    {
-        LOG1(EBackup, EInfo, "Getting Next App from AppArc, UID = %d", info->iUid);
-
-        // Getting the type of the application
-        iApparcServer.GetAppType(typeUid, info->iUid);
-
-        // If it's a MIDlet, check if it has an entry in Java Registry
-        TInt drive = 0;
-        GetDriveOfApp(info->iFullName, drive);
-
-        if (typeUid == KMidletApplicationTypeUid && drive == aDrive)
-        {
-            LOG1(EBackup, EInfo, "Checking registry, midlet id = %d", info->iUid);
-            wstring PackageID;
-            // If there's no entry on the drive, deregister it from AppArc
-            JavaStorageApplicationEntry_t appEntries = StorageEntryL(info->iUid);
-
-            if (appEntries.size() != 0)
-            {
-                JavaStorageEntry attribute;
-                attribute.setEntry(PACKAGE_ID, L"");
-
-                JavaStorageApplicationEntry_t::const_iterator findIterator = appEntries.find(attribute);
-
-                if (findIterator != appEntries.end())
-                {
-                    PackageID = (*findIterator).entryValue();
-                }
-                else
-                {
-                    User::Leave(KErrBadHandle);
-                }
-
-                if (GetDrivefromStorageL(PackageID) != aDrive)
-                {
-                    iApparcServer.DeregisterNonNativeApplicationL(info->iUid);
-                    LOG1(EBackup, EInfo, "Deregistering midlet id = %d", info->iUid);
-                }
-            }
-            else
-            {
-                LOG(EBackup, EInfo, "Midlet entry not found in Java Storage; Deregister the Application");
-                iApparcServer.DeregisterNonNativeApplicationL(info->iUid);
-                LOG1(EBackup, EInfo, "Deregistering midlet id = %d", info->iUid);
-            }
-            appEntries.clear();
-        }
-    }
-
-    // Commit registration changes
-    LOG(EBackup, EInfo, "CommitNonNativeApplicationsUpdatesL");
-    iApparcServer.CommitNonNativeApplicationsUpdatesL();
-    CleanupStack::PopAndDestroy(info);
-}
-
-
-void CAppArcBackupUtil::GetMidletsFromAppArcL(RArray<TUid>& aUidArray, TDriveNumber aDrive)
-{
-    LOG(EBackup, EInfo, "CAppArcBackupUtil::GetMidletsFromAppArc");
-    CleanupClosePushL(aUidArray);
-
-    // Initialise the process of getting apps
-    iApparcServer.GetFilteredApps(TApaAppCapability::ENonNative,
-                                  TApaAppCapability::ENonNative);
-
-    // Getting the apps one-by-one
-    TApaAppInfo* info = new(ELeave) TApaAppInfo();
-    CleanupStack::PushL(info);
-
-    TUid typeUid;
-    LOG1(EBackup, EInfo, "Drive Number aDrive = %d", aDrive);
-
-    while (!iApparcServer.GetNextApp((*info)))
-    {
-        // Getting the type of the application
-        iApparcServer.GetAppType(typeUid, info->iUid);
-
-        // If it's a MIDlet, check if it's registered to this drive
-        if (typeUid == KMidletApplicationTypeUid)
-        {
-            JavaStorageApplicationEntry_t appEntries = StorageEntryL(info->iUid);
-
-            if (appEntries.size() != 0)
-            {
-                JavaStorageEntry attribute;
-                attribute.setEntry(PACKAGE_ID, L"");
-
-                JavaStorageApplicationEntry_t::const_iterator findIterator = appEntries.find(attribute);
-                wstring PackageID;
-
-                if (findIterator != appEntries.end())
-                {
-                    PackageID = (*findIterator).entryValue();
-
-                }
-                else
-                {
-                    User::Leave(KErrBadHandle);
-                }
-                appEntries.clear();
-
-                if (GetDrivefromStorageL(PackageID) == aDrive)
-                {
-                    aUidArray.AppendL(info->iUid);
-                    iNumberOfIcons++;
-                }
-            }
-            else
-            {
-                ELOG(EBackup, "No entries from registry; midlet does not exist");
-            }
-        }
-    }
-    CleanupStack::PopAndDestroy(info);
-    CleanupStack::Pop();
-
-}
-
-
-void CAppArcBackupUtil::GetIconFilename(TUid aUid, HBufC*& aFullFileName)
-{
-    LOG(EBackup, EInfo, "CAppArcBackupUtil::GetIconFilename");
-
-    iApparcServer.GetAppIcon(aUid, aFullFileName);
-}
-
-TInt CAppArcBackupUtil::NumberOfIcons()
-{
-    LOG(EBackup, EInfo, "CAppArcBackupUtil::NumberOfIcons");
-
-    return iNumberOfIcons;
-}
-
-void CAppArcBackupUtil::NumberOfOwnDefinedIcons(TUid aUid, TInt& aIconCount)
-{
-    LOG(EBackup, EInfo, "CAppArcBackupUtil::NumberOfOwnDefinedIcons");
-
-    iApparcServer.NumberOfOwnDefinedIcons(aUid, aIconCount);
-}
-
-TBool CAppArcBackupUtil::CheckIfAlreadyRegisteredL(TInt& aUid)
-{
-    LOG(EBackup, EInfo, "CAppArcBackupUtil::CheckIfAlreadyRegisteredL");
-
-    TApaAppInfo* info = new(ELeave) TApaAppInfo();
-
-    TInt err = iApparcServer.GetAppInfo(*info, TUid::Uid(aUid));
-    delete info;
-    if (err == KErrNone)
-    {
-        return ETrue;
-    }
-    else
-    {
-        return EFalse;
-    }
-
-
-}
-
-void CAppArcBackupUtil::GetDriveOfApp(TFileName aPath, TInt& aDrive)
-{
-    LOG(EBackup, EInfo, "CAppArcBackupUtil::DriveOfApp");
-
-    iFs.CharToDrive(aPath[0], aDrive);
-}
-
-
-TApaAppGroupName CAppArcBackupUtil::GetMidletGroupName(TUid aUid)
-{
-    TApaAppCapabilityBuf cap;
-
-    TInt err = iApparcServer.GetAppCapability(cap, aUid);
-    return cap().iGroupName;
-}
-
-
-JavaStorageApplicationEntry_t CAppArcBackupUtil::StorageEntryL(const TUid& aMidletUID)
-{
-    auto_ptr<JavaStorage> js(JavaStorage::createInstance());
-
-    try
-    {
-        js->open(JAVA_DATABASE_NAME);
-        LOG(EBackup, EInfo, "Java database opened");
-    }
-    catch (JavaStorageException jse)
-    {
-        ELOG(EBackup, "Opening database connection failed");
-        User::Leave(KErrNotFound);
-    }
-
-    JavaStorageApplicationEntry_t entries;
-
-    java::util::Uid appUid;
-    TUidToUid(aMidletUID, appUid);
-
-    try
-    {
-        js->read(APPLICATION_TABLE, appUid, entries);
-    }
-    catch (JavaStorageException jse)
-    {
-        ELOG(EBackup, "Read in Java Storage failed");
-        js->close();
-        User::Leave(KErrGeneral);
-    }
-    js->close();
-
-    return entries;
-}
-
-TDriveNumber CAppArcBackupUtil::GetDrivefromStorageL(wstring& aPackageID)
-{
-    wchar_t Drive;
-    auto_ptr<JavaStorage> js(JavaStorage::createInstance());
-
-    try
-    {
-        js->open(JAVA_DATABASE_NAME);
-    }
-    catch (JavaStorageException jse)
-    {
-        ELOG(EBackup, "Opening database connection failed");
-        User::Leave(KErrNotFound);
-    }
-
-    JavaStorageApplicationEntry_t entries;
-    java::util::Uid PackageID(aPackageID);
-
-    try
-    {
-        js->read(APPLICATION_PACKAGE_TABLE, PackageID, entries);
-    }
-    catch (JavaStorageException jse)
-    {
-        ELOG(EBackup, "Read in Java Storage failed");
-        js->close();
-        User::Leave(KErrGeneral);
-    }
-
-    js->close();
-
-    JavaStorageEntry attribute;
-    attribute.setEntry(ROOT_PATH, L"");
-
-    JavaStorageApplicationEntry_t::const_iterator findIterator = entries.find(attribute);
-    wstring RootPath;
-
-    if (findIterator != entries.end())
-    {
-        RootPath = (*findIterator).entryValue();
-
-    }
-    else
-    {
-        User::Leave(KErrBadHandle);
-    }
-
-    Drive = (wchar_t)RootPath[0];
-    LOG1(EBackup, EInfo, "Drive = %c", Drive);
-    TInt i = Drive - (wchar_t)'a';
-    LOG1(EBackup, EInfo, "Drive = %d", (TDriveNumber)i);
-    return (TDriveNumber)i;
-}
--- a/javamanager/javabackup/midp2backup_usif/src.s60/apparcbackuputil.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,186 +0,0 @@
-/*
-* Copyright (c) 2008-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:  Header file for CAppArcBackupUtil class
-*
-*/
-
-
-#ifndef APPARCBACKUPUTIL_H
-#define APPARCBACKUPUTIL_H
-
-#include <e32base.h>
-#include <apgcli.h>
-#include <apadef.h>
-
-#include "javastorage.h"
-#include "javastorageentry.h"
-#include "javastoragenames.h"
-
-namespace java
-{
-namespace backup
-{
-
-/**
- *  CAppArcBackupUtil class is handling AppArc registrations during backup
- *  and restore of Java Domain.
- */
-class CAppArcBackupUtil : public CBase
-{
-
-public:
-
-    /**
-     * Instantiates an object of this type
-     */
-    static CAppArcBackupUtil* NewL(RFs& aFs);
-
-    ~CAppArcBackupUtil();
-
-    /**
-     * This method registers applications to AppArc during restore.
-     *
-     * @param restoreIconPtr the buffer which contains the Uid and the
-     *        icon file to be restored
-     * @param aDrive current drive to be restored
-     */
-    void RegisterAppL(TPtr8& aRestoreIconPtr, TDriveNumber& aDrive);
-
-    /**
-     * This method deregisters leftover applications from AppArc during
-     * restore.
-     * @param aDrive current drive to be restored
-     */
-    void DeregisterAppsL(TDriveNumber aDrive);
-
-    /**
-     * This method builds an array of the registered apps in AppArc.
-     *
-     * @param [out] aUidArray array of Midlet uids
-     * @param aDrive current drive to be backed up
-     */
-    void GetMidletsFromAppArcL(RArray<TUid>& aUidArray, TDriveNumber aDrive);
-
-    /**
-     * This method looks up the icon filename of the given midlet
-     *
-     * @param aUid Uid of Midlet
-     * @param [out] aFullFilename filename of icon file
-     */
-    void GetIconFilename(TUid aUid, HBufC*& aFullFilename);
-
-    /**
-     * This method gets the number of MIDlet icons registered to AppArc
-     * restore.
-     *
-     * @return iNumberOfIcons
-     */
-    TInt NumberOfIcons();
-
-    /**
-     * Gets the number of icons defined for a midlet from AppArc
-     *
-     * @param aUid Midlet Id
-     * @param [out] aIconCount number of icons defined for the midlet
-     */
-    void NumberOfOwnDefinedIcons(TUid aUid, TInt& aIconCount);
-
-    /**
-     * Gets an entry from Java Storage for the midlet uid specified
-     *
-     * @param midletUid Uid of the midlet
-     *
-     * @return returns the entry of the midlet
-     */
-    java::storage::JavaStorageApplicationEntry_t StorageEntryL(const TUid& aMidletUID);
-
-    /**
-     * Gets the Drive of the midlet suite for the specified UID
-     *
-     * @param packageID the ID of the application package
-     *
-     * @return returns the drive number of the application package
-     */
-
-    TDriveNumber GetDrivefromStorageL(std::wstring& aPackageID);
-
-    /**
-     * Gets the group name of the midlet for the pecified UID
-     *
-     * @param aUid the UID of the midlet
-     *
-     * @return returns the group name of the midlet
-     */
-
-    TApaAppGroupName GetMidletGroupName(TUid aUid);
-
-private:
-
-    CAppArcBackupUtil();
-
-    void ConstructL(RFs& aFs);
-
-    /**
-     * Checks if midlet is already registered to AppArc.
-     *
-     * @param aUid Uid of Midlet
-     * @return ETrue if midlet is already registered to AppArc
-     */
-    TBool CheckIfAlreadyRegisteredL(TInt& aUid);
-
-    /**
-     * Gets the drive of the Midlet based on the path
-     *
-     * @param aPath Full path of Midlet
-     * @param [out] aDrive the drive where the midlet is registered to
-     */
-    void GetDriveOfApp(TFileName aPath, TInt& aDrive);
-
-    /**
-     * Gets the index of the midlet in its midlet suite
-     *
-     * @param aMidletSuiteEntry Midlet suite
-     * @param aUid Midlet Id
-     * @return index of midlet in the suite
-     */
-    //TInt MidletIndexL( CJavaRegistrySuiteEntry &aMidletSuiteEntry,
-    //                   TUid aUid );
-
-
-private: // data
-
-    /**
-     * File session
-     * Not own.
-     */
-    RFs iFs;
-
-    /**
-     * Number of MIDlet icons registered to AppArc
-     * Own.
-     */
-    TInt iNumberOfIcons;
-
-    /**
-     * ApparcSession
-     * Own.
-     */
-    RApaLsSession iApparcServer;
-
-};
-
-} //namespace backup
-} //namespace java
-
-#endif // APPARCBACKUPUTIL_H
--- a/javamanager/javabackup/midp2backup_usif/src.s60/javaapparcutil.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/*
-* Copyright (c) 2008-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:  CJavaApparcUtil definition.
-*
-*/
-
-
-#ifndef JAVAAPPARCUTIL_H
-#define JAVAAPPARCUTIL_H
-
-#include <e32base.h>
-
-namespace java
-{
-namespace backup
-{
-/**
- * Common utilities for Apparc registration.
- */
-class CJavaApparcUtil : public CBase
-{
-
-public:
-
-    /**
-     * Creates a reasonably unique executable name, since the UI Framework
-     * uses this as a key to look up the application opaque data.
-     *
-     * This name is not actually used to run the application, but it must
-     * look reasonably like an acceptable file name.
-     *
-     * @param aAppUid Uid of the application
-     * @param aAppName On return, it contains an unique executable name.
-     * Maximum length of this descriptor should be >= 20 or the function
-     * panics with USER 11.
-     */
-    static void inline AppName(const TUid aAppUid, TDes& aAppName);
-
-};
-
-} //namespace backup
-} //namespace java
-
-#include "javaapparcutil.inl"
-
-#endif // JAVAAPPARCUTIL_H
-
-// End of File
--- a/javamanager/javabackup/midp2backup_usif/src.s60/javaapparcutil.inl	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
-* Copyright (c) 2008-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:  CJavaApparcUtil inline functions definition
-*
-*/
-
-
-using namespace java::backup;
-
-inline void CJavaApparcUtil::AppName(const TUid aAppUid, TDes& aAppName)
-{
-    _LIT(KPathSeperator, "\\");
-    _LIT(KAppPostfix, ".fakeapp");
-    aAppName.Copy(KPathSeperator);
-    aAppName.AppendNum(aAppUid.iUid);
-    aAppName.Append(KAppPostfix);
-}
-
--- a/javamanager/javabackup/midp2backup_usif/src.s60/javascrbackuputil.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1014 +0,0 @@
-/*
-* 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:  Implementation of CScrBackupUtil
-*
-*/
-
-#include "javascrbackuputil.h"
-#include "midp2backupdataids.h"
-
-#include "logger.h"
-#include "javasymbianoslayer.h" // for CleanupResetAndDestroyPushL
-
-#include <scs/nullstream.h>
-#include <e32cmn.h> 
-#include <apaid.h> //for TApaAppCapability::ENonNative
-#include <e32def.h>
-
-using namespace java::backup;
-using namespace Usif;
-
-// Properties registered to SCR.
-_LIT(KMIDletName, "MIDlet-Name");
-_LIT(KUid, "Uid");
-_LIT(KMediaId, "Media-Id");
-_LIT(KMIDletInfoURL, "MIDlet-Info-URL");
-_LIT(KMIDletDescription, "MIDlet-Description");
-_LIT(KDownloadURL, "Download-URL");
-_LIT(KSettingsPlugin, "SettingsName");
-_LIT(KMIDletDeletionConformation, "MIDlet-Delete-Confirm");
-
-_LIT(KDomainCategory,"Domain-Category");
-
-
-CScrBackupUtil* CScrBackupUtil::NewL()
-    {
-    LOG(EBackup,EInfo," --->  CScrBackupUtil:  NewL()");
-    
-    CScrBackupUtil *self = CScrBackupUtil::NewLC();
-   
-    CleanupStack::Pop(self);
-    
-    LOG(EBackup,EInfo," <--- CScrBackupUtil: NewL()");
-    return self;
-    }
-
-
-CScrBackupUtil* CScrBackupUtil::NewLC()
-    {
-    LOG(EBackup,EInfo," --->  CScrBackupUtil: NewLC");
-    CScrBackupUtil *self = new(ELeave) CScrBackupUtil();
-    CleanupStack::PushL(self); 
-    self->ConstructL();
-    LOG(EBackup,EInfo," <--- CScrBackupUtil: NewLC");
-    return self;
-    }
-
-CScrBackupUtil::CScrBackupUtil():iPtrToWriteBuffer(NULL,0)
-    {
-    LOG(EBackup,EInfo," --->  CScrBackupUtil: CScrBackupUtil");
-    LOG(EBackup,EInfo," <---  CScrBackupUtil: CScrBackupUtil");
-    }
-
-
-void CScrBackupUtil::ConstructL()
-    {
-        LOG(EBackup,EInfo," ---> CScrBackupUtil: ConstructL ");
-        
-        //will be incremented as and when needed
-        iRemainingInfo = HBufC8::NewL(4096);//TODO :need to change it to the total size of the the attribute
-        //iPtrToWriteBuffer = ((const_cast<TUint8*>(iRemainingInfo->Ptr())));// need to do this coz when fun end and goes to fetch next 4096 bytes i lose it
-        iPtrToWriteBuffer.Set(iRemainingInfo->Des());
-        iIsFristCall = ETrue;
-        
-        iState = EIsFetchCompleteInfo;
-        iIsToWriteInStream = ETrue;
-        LOG(EBackup,EInfo," <--- CScrBackupUtil: ConstructL()");
-    }
-void CScrBackupUtil::ConnectScrL()
-    {
-            LOG(EBackup,EInfo," ---> CScrBackupUtil: ConnectScrL()");
-            iScr = new RSoftwareComponentRegistry();
-            if (NULL == iScr)
-            {
-                ELOG(EBackup,"Creating RSoftwareComponentRegistry failed");
-                User::Leave(KErrGeneral);
-            }
-            
-            TInt err = iScr->Connect();
-            if (KErrNone != err)
-            {
-                ELOG1(EBackup,"Connecting to RSoftwareComponentRegistry failed, error %d",err);
-                //TODO need to see can we afford leaving here ;)
-                User::Leave(err);
-            }
-            LOG(EBackup,EInfo," <--- CScrBackupUtil: ConnectScrL()");
-    }
-void CScrBackupUtil::ExtractUidAndComponentIdL(RArray<Usif::TComponentId>& componentIds,RArray<TInt>& uids,TInt& ComponentsCount)
-    {
-        LOG(EBackup,EInfo," ---> CScrBackupUtil: ExtractUidAndComponentId()");
-        CComponentFilter* filter;
-        CPropertyEntry* property;
-        filter = CComponentFilter::NewLC();
-        //Set the filter for software type Usif::KSoftwareTypeJava and ftech the Ids
-        filter->SetSoftwareTypeL(Usif::KSoftwareTypeJava);
-        TRAPD(error,iScr->GetComponentIdsL(componentIds,filter));
-        if(error)
-            {
-            ELOG(EBackup,"Failed to get the components ID");
-            }
-        CleanupStack::PopAndDestroy(filter);
-        // fetch the no. of component from the given RArray
-        ComponentsCount = componentIds.Count();
-        // No use of Component Ids as such as they are used by SCR internally 
-        //so exctracted the UID of of each component
-        for(TInt i = 0 ;i < ComponentsCount ; i++)
-            {
-        
-                property = iScr->GetComponentPropertyL(componentIds.operator [](i),KUid());
-                if (property->PropertyType() == CPropertyEntry::EIntProperty)
-                        {
-                           TInt uid = ((CIntPropertyEntry*)property)->IntValue();
-                           uids.AppendL(uid);
-                             
-                        }
-                        else
-                        {
-                                 //Error
-                        }  
-                        
-                        delete property;
-                        property = NULL;
-                    
-            }
-        LOG(EBackup,EInfo," <--- CScrBackupUtil: ExtractUidAndComponentId()");
-    }
-void CScrBackupUtil::BackupScrDataL(RDesWriteStream& aStream, TBool& aBackupNotFinished, TInt& aBufferSpaceLeft)
-    {
-        LOG(EBackup,EInfo," ---> CScrBackupUtil: BackupScrDataL()");
-        
-        iBufferSpaceLeft = aBufferSpaceLeft ;
-        
-        if(iIsFristCall)
-            {
-               
-                // to get no. of components need to keep a flag that its called only once
-                ConnectScrL();
-                
-                ExtractUidAndComponentIdL(iComponentIds,iUids,iNumberOfComponents);
-                
-                //write the no. of components so that it will help us in restoration time
-                aStream.WriteInt32L(iNumberOfComponents);
-                iBufferSpaceLeft -= sizeof(TInt32);
-                              
-                //all the ids of the midlets that are to be backedup and the size of the rarray with holds the Ids 
-                TPckgBuf<RArray<TInt> > ids(iUids);
-                TInt size = ComputeSizeL(ids);
-                aStream.WriteInt32L(size);
-                iBufferSpaceLeft -= sizeof(TInt32);
-                
-                aStream.WriteL(ids);
-                
-                iBufferSpaceLeft = iBufferSpaceLeft - size;
-        
-                iIsFristCall = EFalse;
-            }    
-                
-            for( i ; i < iComponentIds.Count() ;)
-                {
-                    if(iState == EIsFetchCompleteInfo)
-                        {
-                            
-                            TInt at = iComponentIds.operator[](i);
-                            
-                            //Temp stream in which all attributes are backed up 
-                            RDesWriteStream writeStream;
-                            writeStream.Open(iPtrToWriteBuffer);
-                            
-                            GetComponentInfoL(at,writeStream);
-                            
-                            writeStream.CommitL();
-                            iLengthOfString = iPtrToWriteBuffer.Length();
-                            
-                            iWriteToStream = ETrue;
-                            
-                            // write the size, Used while restoring
-                            aStream.WriteInt32L(iLengthOfString);
-                            iBufferSpaceLeft = iBufferSpaceLeft - sizeof(TInt);
-                            
-                            
-                        }
-                    if(iState == EIsWriteCompleteInfo)
-                        {                           
-                         
-                            //writing the remaining information into the new buffer
-                            if(iBufferToWriteNextTime)
-                            {
-                                aStream.WriteL(iPtrToWriteBuffer,iRemainingBuffer);
-                                aStream.CommitL();
-                                LOG(EBackup, EInfo, "attributes written fully in the stream fetching for next component");
-                                    
-                                iBufferSpaceLeft = iBufferSpaceLeft - iRemainingBuffer;
-                                
-                                iBufferToWriteNextTime = EFalse;
-                                iState = EIsFetchCompleteInfo;
-                                
-                                iLengthOfString = 0; // to maintain the loop
-                                
-                                iWriteToStream = EFalse;
-                                i++;
-                            }
-                            // if the whole string cannot be writen, write part of it
-                            if (iLengthOfString > iBufferSpaceLeft && !iBufferToWriteNextTime)
-                            {
-                                
-                                iRemainingBuffer = iLengthOfString - iBufferSpaceLeft;
-                                
-                                aStream.WriteL(iPtrToWriteBuffer,iBufferSpaceLeft);
-                                aStream.CommitL();
-                                
-                                iBufferToWriteNextTime = ETrue;
-                                break;
-                            }
-                            // else write the complete string
-                            else if(iWriteToStream)
-                            {       aStream.WriteL(iPtrToWriteBuffer,iLengthOfString);
-                                    
-                                    aStream.CommitL();
-                                    iBufferSpaceLeft = iBufferSpaceLeft - iLengthOfString;
-                                    iState = EIsFetchCompleteInfo;
-                                    iLengthOfString = 0; // to maintain the loop 
-                                    i++;
-                            }
-                            
-                        }
-                }
-            // making it false to backup next component next time
-            if(i >= iComponentIds.Count())
-                aBackupNotFinished = EFalse; 
-            
-    }
-
-template <typename T>
-TInt CScrBackupUtil::ComputeSizeL(const T &aObject)
-    {
-        LOG(EBackup,EInfo," ---> computeSize() ");
-        TInt size(0);
-        RNullWriteStream nullstream;
-        CleanupClosePushL(nullstream);
-        nullstream << aObject;
-        nullstream.CommitL();
-        size = nullstream.BytesWritten();
-     
-        CleanupStack::PopAndDestroy(&nullstream);
-        LOG(EBackup,EInfo," <--- computeSize() ");
-        return size;
-       
-        
-    }
-void CScrBackupUtil::GetComponentInfoL(TComponentId aComponentId ,RDesWriteStream& aStream )
-    {
-        
-        LOG(EBackup,EInfo," ---> GetComponentInfo() ");
-        
-        TInt j = 0 ;
-        CPropertyEntry* property;
-        CComponentEntry* entries = CComponentEntry::NewL();
-        CleanupStack::PushL(entries);
-        TLanguage language =KNonLocalized;
-        
-        TBool result = iScr->GetComponentL(aComponentId,*entries,language);
-        entries->ExternalizeL(aStream);
-        
-        CleanupStack::PopAndDestroy(entries);
-        TBool isComponentPresent = iScr->IsComponentPresentL(aComponentId);
-        aStream.WriteInt8L(isComponentPresent);
-        
-        
-        // Localizable Component info 
-        RPointerArray<CLocalizableComponentInfo> localizableComponentInfo;
-        iScr->GetComponentLocalizedInfoL(aComponentId,localizableComponentInfo);
-        aStream.WriteInt32L(localizableComponentInfo.Count());
-        
-        
-        for(j ; j < localizableComponentInfo.Count(); j++)
-            {
-                    (localizableComponentInfo.operator [](j))->ExternalizeL(aStream);
-                     
-            }
-        
-        // Properties
-        // extracted the UID
-        property = iScr->GetComponentPropertyL(aComponentId,KUid());
-        if (NULL != property)
-            {  
-                 property->ExternalizeL(aStream);
-                
-                  
-                delete property;
-                property = NULL;
-            }
-        else 
-            {
-                // need to return or have to proceed
-            }
-        // Exctracted Domain - Category
-        property = iScr->GetComponentPropertyL(aComponentId,KDomainCategory());
-        if (NULL != property)
-            {
-                property->ExternalizeL(aStream);
-                                
-                delete property;
-                property = NULL;
-            }
-        // Exctracted Media ID
-        property = iScr->GetComponentPropertyL(aComponentId,KMediaId());
-        if (NULL != property)
-            {
-                property->ExternalizeL(aStream);
-                
-    
-                delete property;
-                property = NULL;
-            }
-        // Exctracted Setings plugin name
-        property = iScr->GetComponentPropertyL(aComponentId,KSettingsPlugin());
-        if (NULL != property)
-            {
-                property->ExternalizeL(aStream);
-                
-                
-                delete property;
-                property = NULL;
-            }
-        
-        // Optional Properties
-        // extracted info URL
-        property = iScr->GetComponentPropertyL(aComponentId,KMIDletInfoURL());
-        if (NULL != property)
-            {
-                property->ExternalizeL(aStream);
-                
-                
-                delete property;
-                property = NULL;
-            }
-        else // as its optional property so could be NULL 
-            {
-                aStream.WriteInt8L(NULL);
-            }
-    
-        // extracted midlet description
-        property = iScr->GetComponentPropertyL(aComponentId,KMIDletDescription());
-        if (NULL != property)
-            {
-                property->ExternalizeL(aStream);
-                
-                
-                delete property;
-                property = NULL;
-            }
-        else // as its optional property so could be NULL 
-           {
-               aStream.WriteInt8L(NULL);
-           }
-        // extracted midlet DeletionConformation
-        property = iScr->GetComponentPropertyL(aComponentId,KMIDletDeletionConformation());
-        if (NULL != property)
-            {
-                property->ExternalizeL(aStream);
-                
-                
-                delete property;
-                property = NULL;
-            }
-        else // as its optional property so could be NULL 
-           {
-               aStream.WriteInt8L(NULL);
-           }
-        //extracted midlet DN URL
-        property = iScr->GetComponentPropertyL(aComponentId,KDownloadURL());
-        if (NULL != property)
-            {  
-              property->ExternalizeL(aStream);
-              
-              
-              delete property;
-              property = NULL;
-            }
-        else // as its optional property so could be NULL 
-           {
-               aStream.WriteInt8L(NULL);
-           }
-        
-        
-        // backing up files corresponds to component
-        RSoftwareComponentRegistryFilesList fileList;
-        CleanupClosePushL(fileList);
-        TInt count = iScr->GetComponentFilesCountL(aComponentId); 
-        TInt k = 0;
-        RPointerArray<HBufC> files;
-        fileList.OpenListL(*iScr,aComponentId);
-        fileList.NextFileSetL(count,files);        
-        aStream.WriteInt32L(files.Count());
-        CleanupStack::PopAndDestroy(&fileList);//filelist
-        
-        for( k ; k < files.Count(); k++)
-            {
-               HBufC* temp =  files.operator [](k);
-               aStream.WriteInt32L(temp->Length());
-               aStream.WriteL(temp->Des());                                    
-            }
-        
-        
-        RArray<TUid> noOfApps; 
-        HBufC* appIcon;
-        TAppRegInfo appInfo;
-        iScr->GetAppUidsForComponentL(aComponentId,noOfApps); 
-        RRegistrationInfoForApplication regInfoIcon;
-        CleanupClosePushL(regInfoIcon);
-        RApplicationRegistrationInfo regInfoCaption;
-        CleanupClosePushL(regInfoCaption);
-       
-        
-       //backing up the no. of apps
-       aStream.WriteInt32L(noOfApps.Count()); 
-               
-        
-        for(j = 0 ; j < noOfApps.Count(); j++ )
-            {
-                regInfoIcon.OpenL(*iScr,noOfApps.operator [](j));
-                regInfoCaption.OpenL(*iScr);
-                
-               //check if language is imp to give as an argument\
-               // Language extracted
-               TLanguage language = regInfoIcon.ApplicationLanguageL();
-               // Language backed up
-               aStream.WriteInt32L(language);
-                                     
-               // AppUID extracted
-               TUid appUid = noOfApps[j];               
-               // AppUID backed up
-               aStream.WriteInt32L(appUid.iUid);
-              
-               //App caption extracted 
-               regInfoCaption.GetAppInfoL(appUid,appInfo,language);
-               TAppCaption caption = appInfo.Caption();
-               caption.Trim();// would give the acctual size of content
-               //App caption backed up
-               aStream.WriteL(caption);
-               
-               //AppIcon path extracted
-               regInfoIcon.GetAppIconL(appIcon);
-               //AppIcon path backed up
-               aStream.WriteL(appIcon->Des());
-                     
-            
-               //need to backup no. of icons to needed for registrating application
-               TInt noOfIcons = regInfoIcon.NumberOfOwnDefinedIconsL();
-               aStream.WriteInt32L(noOfIcons);
-            }
-               CleanupStack::PopAndDestroy();//regInfoIcon
-               CleanupStack::PopAndDestroy();//regInfoCaption
-               //regInfoIcon.Close();
-               //regInfoCaption.Close();
-
-        iState = EIsWriteCompleteInfo;
-        
-        LOG(EBackup,EInfo," <--- GetComponentInfo() ");
-            
-    }
-void CScrBackupUtil::RestoreScrDataL(RDesReadStream& aStream, TInt& aRestoreState, TInt& aBufferSpaceLeft)
-    {
-		LOG(EBackup,EInfo," ---> RestoreScrDataL() ");
-        if(iIsFristCall)
-            {
-                ConnectScrL();
-                TInt j = 0;
-                TInt presentComponentsCount;
-                RArray<Usif::TComponentId> presentComponentsIds;
-                iBufferSpaceLeft = aBufferSpaceLeft;
-                //aStream.r
-                //reading components count
-                iNumberOfComponents = aStream.ReadInt32L();
-                iBufferSpaceLeft = iBufferSpaceLeft - sizeof(TInt32);
-                
-                //reading the size of the TPckgBuf<RArray<TComponentId>>
-                TInt size = aStream.ReadInt32L();
-                iBufferSpaceLeft = iBufferSpaceLeft - sizeof(TInt32);
-                
-                //reading TPckgBuf<RArray<TComponentId>> 
-                HBufC* temp = HBufC::NewLC(aStream , size);
-                
-                TPckgBuf<RArray<TInt> > ids;
-                //extracting RArray from TPckgBuf<RArray<TUids>>
-                ids.Append(temp->Des());
-                CleanupStack::PopAndDestroy(temp);
-                iUids = ids.operator ()();// populated iUids
-                iBufferSpaceLeft = iBufferSpaceLeft - size;
-                iNumberOfComponents = iUids.Count();
-                
-                
-                ExtractUidAndComponentIdL(presentComponentsIds,iPresentUids,presentComponentsCount);
-                                
-                // calculating the midlets to be deleted from SCR
-                for(j ; j <= iNumberOfComponents ; j++ )
-                    {
-                          TInt id = NULL;
-                          TInt index = 0;
-                          id = iUids.operator [](j);
-                          index = iPresentUids.Find(iUids.operator [](j));
-                          if(index != NULL)
-                              {
-                                  presentComponentsIds.Remove(index);// removeing the app that is present in SCr and backed up too
-                                  iPresentUids.Remove(index);// TODO : check if right component Id is removed
-                              }       
-                    }
-
-                
-                   iPresentUids.Compress();  // need to see if this works
-                   presentComponentsIds.Compress();// contains the uids that has to be deleted
-                   //Updated the count
-                   presentComponentsCount = iPresentUids.Count();
-                   for(j = 0 ; j <= presentComponentsCount ; j++ )
-                       {       
-                           TRAPD(err ,iScr->DeleteApplicationEntriesL(presentComponentsIds.operator [](j)));
-                           if (KErrNone == err)
-                               {
-                                   iScr->DeleteComponentL(presentComponentsIds.operator [](j));
-                               }
-                            
-                       }
-                   
-                   
-            }
-        RDesReadStream readStream;
-        readStream.Open(iPtrToWriteBuffer);
-        for( i ; i < iComponentIds.Count() ;)
-            {
-                if(iState == EIsFetchCompleteInfo)
-                    {   
-                        TUid uid ;
-                        uid.iUid = iUids.operator [](i);
-                        SetDataInScrL(uid,readStream);
-                        i++;
-                    }
-                if(iState == EIsWriteCompleteInfo)
-                    {                           
-                        RDesReadStream readStream;
-                        readStream.Open(iPtrToWriteBuffer);
-                        iLengthOfString = aStream.ReadInt32L();
-                        
-                         
-                        //Reading the remaining information into the new buffer
-                        if(iBufferToWriteNextTime)
-                            {
-                            //appened it in the remaing
-                             HBufC* remainingBuff = HBufC::NewL(iRemainingBuffer);
-                             TPtr ptr(remainingBuff->Des());            
-                             aStream.ReadL(ptr,iRemainingBuffer);
-                             iPtrToWriteBuffer.Append(ptr);
-                             iState = EIsFetchCompleteInfo;                     
-                             iLengthOfString = 0; // to maintain the loop
-                             iWriteToStream = EFalse;
-                                                       
-                            
-                            }
-                        if (iLengthOfString > iBufferSpaceLeft && !iBufferToWriteNextTime)
-                        {  
-                        iRemainingBuffer = iLengthOfString - iBufferSpaceLeft;
-                        aStream.ReadL(iPtrToWriteBuffer,iBufferSpaceLeft);
-                        iBufferToWriteNextTime = ETrue;
-                        break ;
-                        }
-                        // Read the complete string
-                        else if(iWriteToStream)
-                        {       
-                            aStream.ReadL(iPtrToWriteBuffer,iLengthOfString);
-                            iBufferSpaceLeft = iBufferSpaceLeft - iLengthOfString;
-                            iState = EIsFetchCompleteInfo;
-                            iLengthOfString = 0; // to maintain the loop 
-                            
-                        }
-                                                
-                    }
-            }
-        //take care of restorestate
-        // SCR restore is over; Set state to EAppArc
-        if(i >= iComponentIds.Count())
-            {
-                aRestoreState = EAppArc;
-                aBufferSpaceLeft = iBufferSpaceLeft;// need to to this coz of last iteration
-            }
-              
-        LOG(EBackup,EInfo," <--- RestoreScrDataL() ");
-    }
-void CScrBackupUtil::SetDataInScrL(TUid aUid , RDesReadStream& aStream)
-    {
-		LOG(EBackup,EInfo," ---> SetDataInScrL() ");
-        TInt tempSize = NULL;
-        TInt j = 0;
-        tempSize = aStream.ReadInt32L();
-        CComponentEntry* entries;
-        entries = CComponentEntry::NewL();
-        CleanupStack::PushL( entries);
-        entries->InternalizeL(aStream);
-        
-        
-        TBool isComponentPresent = aStream.ReadInt8L();
-        
-        // Localizable Component info 
-        RPointerArray<CLocalizableComponentInfo> localizableComponentInfoArray; // Not owned by me nee to delete in last 
-        TInt temp = aStream.ReadInt32L();
-        for(j ; j <= temp; j++)
-            {
-                CLocalizableComponentInfo* componentinfo = CLocalizableComponentInfo::NewL(aStream);
-                localizableComponentInfoArray.Append(componentinfo);
-            }
- 
-        // now need to set all the properties
-        // extracted the UID
-        CIntPropertyEntry* property;
-        property = (CIntPropertyEntry*)CPropertyEntry::NewL(aStream);
-        TInt64 id = property->Int64Value();
-        delete property;
-        
-        //extracted midlet Domain-Catogary
-        CLocalizablePropertyEntry* propertyString;
-        propertyString =(CLocalizablePropertyEntry*) CPropertyEntry::NewL(aStream);
-        HBufC* domainCategory  = (propertyString->StrValue()).Alloc();
-        delete propertyString;
-        
-        // Exctracted Media ID
-        property = (CIntPropertyEntry*)CPropertyEntry::NewL(aStream);
-        TInt64 mediaID = property->Int64Value();
-        delete property;
-        
-        //extracted midlet SettingsValue
-        propertyString =(CLocalizablePropertyEntry*) CPropertyEntry::NewL(aStream);
-        HBufC* SettingsValue  = (propertyString->StrValue()).Alloc();
-        delete propertyString;
-        
-        // Optional Properties
-        // extracted info URL
-        propertyString = propertyString = (CLocalizablePropertyEntry*)CPropertyEntry::NewL(aStream);  
-        HBufC* url = (propertyString->StrValue()).Alloc();
-        delete propertyString;
-                    
-               
-        // extracted midlet description
-        propertyString = (CLocalizablePropertyEntry*)CPropertyEntry::NewL(aStream);
-        HBufC* midletDescription  = (propertyString->StrValue()).Alloc();
-        delete propertyString;
-        
-        // midlet deletion conformation has to be here
-        CBinaryPropertyEntry* propertyBinary = (CBinaryPropertyEntry*)CPropertyEntry::NewL(aStream);
-        HBufC8* midletDeletionConformation  = (propertyBinary->BinaryValue()).Alloc();
-        delete propertyBinary;
-        
-        //extracted midlet DN URL
-        propertyString =(CLocalizablePropertyEntry*) CPropertyEntry::NewL(aStream);
-        HBufC* dnUrl  = (propertyString->StrValue()).Alloc();
-        delete propertyString;
-        
-        //Extracting no. of files registered with a component
-        //1st the no. of files
-        RPointerArray<HBufC> componentFilesArray;
-        
-        TInt fileCount = aStream.ReadInt32L();
-       //now the files 
-        for(TInt k = 0 ; k < fileCount ; k++)
-            {   
-                TInt size = aStream.ReadInt32L();
-                HBufC* componentFile = HBufC::NewL(aStream,size);
-                CleanupStack::PushL( componentFile);
-                componentFilesArray.AppendL(componentFile);
-                CleanupStack::Pop( componentFile);
-            }
-        
-        //Extracting no. of apps with a component
-        TInt noOfApps = aStream.ReadInt32L();
-        RPointerArray<CAppInfo> appinfoArray;
-        for(j = 0 ; j < noOfApps ; j++ )
-            {
-                   CAppInfo* appinfo = CAppInfo::NewL();
-                   CleanupStack::PushL( appinfo);// i will not own it after using has to be destroyed  
-                   TLanguage language;
-                   language = (TLanguage)(aStream.ReadInt32L());
-                   TUid uid;
-                   uid.Uid(aStream.ReadInt32L());
-                   
-                   TAppCaption caption ;
-                   aStream.ReadL(caption);
-                   HBufC* appIcon ;
-                   TPtr temp(appIcon->Des());
-                   aStream.ReadL(temp);
-                   TInt noOfIcons = aStream.ReadInt32L();
-                   
-                   appinfo->Set(language,uid,caption,temp,noOfIcons);// TODO: check if it works
-                   appinfoArray.Append(appinfo);
-                   
-                   
-                   
-            }
-        
-         
-        TInt index =  iPresentUids.Find(aUid.iUid);
-        if(index != NULL)
-            {           CComponentEntry* entry = CComponentEntry::NewLC();
-                        TUid uid ;
-                        uid.Uid(iPresentUids.operator [](index));
-                        TComponentId componentId = iScr->GetComponentIdForAppL(uid);
-                        iScr->GetComponentL(componentId,*entry);
-                        HBufC* versionPresent = entry->Version().AllocLC();
-                        CleanupStack::PopAndDestroy(entry);
-                        HBufC* versionBackUpComponent = entries->Version().AllocLC();
-                       if((versionPresent->CompareC(versionBackUpComponent->Des())))//check version
-                           {
-                                   //ignore  Write a log statement as the midlet is same no need to do any thing :)
-                           }    
-                       else 
-                           {
-                             //  delete it and thn register it 
-                             TRAPD(err ,iScr->DeleteApplicationEntriesL(componentId));
-                             if (KErrNone == err)
-                                  {
-                                      iScr->DeleteComponentL(componentId);
-                                  }
-                            // call register
-                            TComponentId newComponentId = RegisterComponentL(*entries,uid,url->Des(),midletDescription->Des(),midletDeletionConformation->Des(),dnUrl->Des(),mediaID,domainCategory->Des(),SettingsValue->Des(),componentFilesArray,isComponentPresent,localizableComponentInfoArray);
-                             for(j=0; j < appinfoArray.Count() ; j++)
-                                 {
-                                     CAppInfo* appInfo = appinfoArray.operator [](j);
-                                     
-                                     RegisterApplicationL(newComponentId,appInfo->GetAppUid(),appInfo->GetCaption(),appInfo->GetAppIcon()->Des(),appInfo->NoOfIcons(),appInfo->GetLanguage());
-                                     CleanupStack::PopAndDestroy(appInfo);
-                                 }
-                           }
-                       CleanupStack::PopAndDestroy(versionPresent);
-                       CleanupStack::PopAndDestroy(versionBackUpComponent);
-            }
-        else
-            {
-                //just go register it as its not there in the phone 
-                TComponentId newComponentId = RegisterComponentL(*entries,aUid,url->Des(),midletDescription->Des(),midletDeletionConformation->Des(),dnUrl->Des(),mediaID,domainCategory->Des(),SettingsValue->Des(),componentFilesArray,isComponentPresent,localizableComponentInfoArray);
-                 for(j=0; j < appinfoArray.Count() ; j++)
-                     {
-                         CAppInfo* appInfo = appinfoArray.operator [](j);
-                         
-                         RegisterApplicationL(newComponentId,appInfo->GetAppUid(),appInfo->GetCaption(),appInfo->GetAppIcon()->Des(),appInfo->NoOfIcons(),appInfo->GetLanguage());
-                         CleanupStack::PopAndDestroy(appInfo);
-                     }
-            }
-        
-        //CleanupStack::Pop();//componentFilesArray
-        CleanupStack::PopAndDestroy( entries);
-        
-        LOG(EBackup,EInfo," <--- SetDataInScrL() ");
-    }
-
-
-TComponentId CScrBackupUtil::RegisterComponentL(CComponentEntry& aEntry ,TUid aUid,TPtr aMidletInfoUrl,
-        TPtr aMidletDescription,TPtr8 aMidletDeletionConformation, TPtr aDownloadUrl,TInt64 aMediaId,TPtr aDomainCatogary , TPtr aSettingValue,
-        RPointerArray<HBufC>& aComponentFilesArray, TBool aIsComponentPresent,RPointerArray<CLocalizableComponentInfo>& aLocalizableComponentInfoArray)
-{
-	LOG(EBackup,EInfo," ---> RegisterComponentL() ");
-    HBufC* globalId =( aEntry.GlobalId()).AllocLC();
-   
-    TComponentId componentId = iScr->AddComponentL(aLocalizableComponentInfoArray,Usif::KSoftwareTypeJava,globalId);
-   
-    
-    
-    iScr->SetComponentVersionL(componentId, aEntry.Version());
-    //LOG1(EJavaInstaller, EInfo, "RegisterComponentL: version set %s",*version);
-    
-    iScr->SetIsComponentRemovableL(componentId, aEntry.IsRemovable());
-    
-    
-    iScr->SetIsComponentDrmProtectedL(componentId, aEntry.IsDrmProtected());
-    
-    
-    iScr->SetIsComponentKnownRevokedL(componentId,aEntry.IsKnownRevoked());
-    
-    
-    iScr->SetIsComponentOriginVerifiedL(componentId, aEntry.IsOriginVerified());
-    
-    
-    iScr->SetComponentSizeL(componentId, aEntry.ComponentSize());
-    
-    
-    iScr->SetScomoStateL(componentId,aEntry.ScomoState());
-    
-    
-    iScr->SetIsComponentPresentL(componentId,aIsComponentPresent);
-    
-    
-    
-    iScr->SetComponentPropertyL(componentId,KUid(), aUid.iUid);
-    
-    
-    iScr->SetComponentPropertyL(componentId,KMIDletInfoURL(),aMidletInfoUrl);
-    
-    iScr->SetComponentPropertyL(componentId, KMIDletDescription(), aMidletDescription);
-    
-    iScr->SetComponentPropertyL(componentId,KMIDletDeletionConformation(),aMidletDeletionConformation);
-        
-    iScr->SetComponentPropertyL(componentId, KDownloadURL(), aDownloadUrl);
-    
-    iScr->SetComponentPropertyL(componentId,KDomainCategory(),aDomainCatogary);
-    
-    iScr->SetComponentPropertyL(componentId, KMediaId(), aMediaId);
-    
-    
-    iScr->SetComponentPropertyL(componentId, KSettingsPlugin(), aSettingValue);
-    
-
-    CleanupStack::PopAndDestroy(globalId);
-  
-    TInt fileCount = aComponentFilesArray.Count();
-    for (TInt i = 0; i < fileCount; i++)
-    {
-        HBufC *componentFile = aComponentFilesArray.operator [](i);
-        iScr->RegisterComponentFileL(componentId, *componentFile);
-        CleanupStack::PopAndDestroy(componentFile);
-    }
-    LOG(EBackup,EInfo," <--- RegisterComponentL() ");
-    return componentId;
-}
-
-void CScrBackupUtil::RegisterApplicationL(TInt aComponentId, TUid aAppUid,
-        TAppCaption aAppName, TDesC aIconFilename, TInt aNumberOfIcons,
-        TLanguage aLanguages)
-    {
-		LOG(EBackup,EInfo," ---> RegisterApplicationL() ");
-        TFileName appName;
-        RPointerArray<HBufC> ownedFileArray; // codescanner::resourcenotoncleanupstack
-        RPointerArray<Usif::CServiceInfo> serviceArray; // codescanner::resourcenotoncleanupstack
-        RPointerArray<Usif::CPropertyEntry> appPropertiesArray; // codescanner::resourcenotoncleanupstack
-        RPointerArray<Usif::CAppViewData> viewDataList; // codescanner::resourcenotoncleanupstack
-
-        RPointerArray<Usif::COpaqueData> opaqueDataArray;
-        CleanupResetAndDestroyPushL(opaqueDataArray);
-        // Write application Uid to opaque data (needed by MIDlet launcher).
-        TBuf8<4> opaqueDataBuf; // Opaque data will contain one signed 32-bit int.
-        RDesWriteStream writeStream(opaqueDataBuf);
-        writeStream.WriteInt32L(aAppUid.iUid);
-        writeStream.CommitL();
-        
-       
-        
-        COpaqueData *opaqueData = COpaqueData::NewLC(opaqueDataBuf, KUnspecifiedLocale);
-        opaqueDataArray.AppendL(opaqueData);
-        CleanupStack::Pop(opaqueData);
-
-        RPointerArray<Usif::CLocalizableAppInfo> localizableAppInfoList;
-        CleanupResetAndDestroyPushL(localizableAppInfoList);
-        // Add non-localized application name (caption) and icon.
-
-        CCaptionAndIconInfo *captionAndIconInfo = CCaptionAndIconInfo::NewLC(aAppName,aIconFilename,aNumberOfIcons);
-        
-        CLocalizableAppInfo *locAppInfo = CLocalizableAppInfo::NewLC(/*aShortCaption=*/ KNullDesC,KNonLocalized,
-            /*aGroupName=*/ KNullDesC,captionAndIconInfo,viewDataList);
-        localizableAppInfoList.AppendL(locAppInfo);
-        
-        CleanupStack::Pop(locAppInfo);
-        CleanupStack::Pop(captionAndIconInfo);
-               
-    CCaptionAndIconInfo *tmpCaptionAndIconInfo =CCaptionAndIconInfo::NewLC(aAppName,/*aIconFileName=*/ KNullDesC,/*aNumOfAppIcons=*/ 0);
-    CLocalizableAppInfo *tmpLocAppInfo = CLocalizableAppInfo::NewLC(/*aShortCaption=*/ KNullDesC,aLanguages,/*aGroupName=*/ KNullDesC,
-                                                                        tmpCaptionAndIconInfo,/*aViewDataList=*/ viewDataList);
-                localizableAppInfoList.AppendL(tmpLocAppInfo);
-               
-                CleanupStack::Pop(tmpLocAppInfo);
-                CleanupStack::Pop(tmpCaptionAndIconInfo);
-            
-            
-        
-        // Create application registration data objects.
-        TApplicationCharacteristics appCharacteristics;
-        appCharacteristics.iAttributes = TApaAppCapability::ENonNative;
-        appCharacteristics.iEmbeddability = TApplicationCharacteristics::ENotEmbeddable;
-        appCharacteristics.iSupportsNewFile = EFalse;
-        appCharacteristics.iAppIsHidden = EFalse;
-        appCharacteristics.iLaunchInBackground = EFalse;
-        
-        CApplicationRegistrationData *appRegData =
-        CApplicationRegistrationData::NewLC(ownedFileArray, serviceArray,localizableAppInfoList,appPropertiesArray,opaqueDataArray,
-                /*aAppUid=*/ aAppUid, /*aAppFile=*/ appName,/*aCharacteristics=*/ appCharacteristics,/*aDefaultScreenNumber=*/ 0);
-        
-        LOG(EJavaInstaller, EInfo,"RegisterApplicationL : Called AddApplicationEntryL  >>>>>>>>>>>> ");
-        iScr->AddApplicationEntryL(aComponentId, *appRegData);
-        CleanupStack::PopAndDestroy(appRegData);
-
-      
-        CleanupStack::Pop(&localizableAppInfoList); // deleted in appRegData destructor
-        CleanupStack::Pop(&opaqueDataArray); // deleted in appRegData destructor
-
-        LOG(EBackup,EInfo," <--- RegisterApplicationL() ");
-    }
-
-CScrBackupUtil::~CScrBackupUtil()
-    {
-    LOG(EBackup,EInfo," ---> ~CScrBackupUtil() ");
-    
-    if(iScr)
-        {
-            iScr->Close();
-            delete iScr;
-            iScr = NULL;
-        }
-    if(iRemainingInfo)
-        {
-            delete iRemainingInfo;
-            iRemainingInfo = NULL;
-        }
-            
-    LOG(EBackup,EInfo," <--- ~CScrBackupUtil() ");
-    }
-
-CAppInfo* CAppInfo::NewL()
-    {
-    LOG(EBackup,EInfo," ---> CAppInfo:NewL()");
-    CAppInfo *self = CAppInfo::NewLC();
-    CleanupStack::Pop(self);
-    LOG(EBackup,EInfo," <--- CAppInfo:NewL()");
-    return self;
-    }
-
-
-CAppInfo* CAppInfo::NewLC()
-    {
-    LOG(EBackup,EInfo," ---> CAppInfo:NewLC");
-    CAppInfo *self = new(ELeave) CAppInfo();
-    CleanupStack::PushL(self); 
-    self->ConstructL();
-    LOG(EBackup,EInfo," <---CAppInfo:NewLC");
-    return self;
-    }
-CAppInfo::CAppInfo()
-    {
-
-    }
-void CAppInfo::ConstructL()
-    {
-        LOG(EBackup,EInfo," ---> CAppInfo:ConstructL ");
-        
-        
-        
-        LOG(EBackup,EInfo," <--- CAppInfo:ConstructL()");
-    }
-CAppInfo::~CAppInfo()
-    {
-    LOG(EBackup,EInfo," ---> CAppInfo:~CAppInfo() ");
-    if(iAppIcon)
-        {
-            delete iAppIcon;
-        }
-    LOG(EBackup,EInfo," <--- CAppInfo:~CAppInfo() ");
-    }
-    
-void CAppInfo::Set(TLanguage language,TUid appUid,Usif::TAppCaption caption,TDesC& appIcon,TInt aNoOfIcons)
-    {
-        LOG(EBackup,EInfo," ---> CAppInfo:Set() ");
-        iLanguage = language;
-        iAppUid = appUid;
-        iCaption = caption;
-        iAppIcon->Des().Copy(appIcon);
-        iNoOfIcons = aNoOfIcons;
-        LOG(EBackup,EInfo," <--- CAppInfo:Set() ");
-        
-    }
-TLanguage CAppInfo::GetLanguage()
-    {
-    LOG(EBackup,EInfo," ---> CAppInfo:GetLanguage() ");
-    LOG(EBackup,EInfo," <--- CAppInfo:GetLanguage() ");
-    return iLanguage;
-    }
-TUid CAppInfo::GetAppUid()
-    {
-    LOG(EBackup,EInfo," ---> CAppInfo:GetAppUid() ");
-    LOG(EBackup,EInfo," <--- CAppInfo:GetAppUid() ");
-    return iAppUid;
-    }
-Usif::TAppCaption CAppInfo::GetCaption()
-    {
-    LOG(EBackup,EInfo," ---> CAppInfo:GetCaption() ");
-    LOG(EBackup,EInfo," <--- CAppInfo:GetCaption() ");
-    return iCaption;
-   
-    }
-HBufC* CAppInfo::GetAppIcon()
-    {
-    LOG(EBackup,EInfo," ---> CAppInfo:GetAppIcon() ");
-    LOG(EBackup,EInfo," <--- CAppInfo:GetAppIcon() ");
-    return iAppIcon;
-    
-    }
-
-TInt CAppInfo::NoOfIcons()
-    {
-    LOG(EBackup,EInfo," ---> CAppInfo:NoOfIcons() ");
-    LOG(EBackup,EInfo," <--- CAppInfo:NoOfIcons() ");
-    return iNoOfIcons;
-    }
--- a/javamanager/javabackup/midp2backup_usif/src.s60/javascrbackuputil.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,266 +0,0 @@
-/*
-* 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:  Header file for CScrBackupUtil class
-*
-*/
-
-#ifndef JAVASCRBACKUPUTIL_H_
-#define JAVASCRBACKUPUTIL_H_
-
-
-#include <e32base.h>
-#include <s32strm.h>
-#include <f32file.h> 
-#include <e32cmn.h>
-#include <s32mem.h>
-#include <S32BUF.H>  
-
-#include <mw/usif/usifcommon.h>
-#include <mw/usif/scr/scr.h>
-#include <mw/usif/scr/screntries.h>
-#include <mw/usif/scr/appreginfo.h> //for TAppCaption
-#include <e32lang.h>
-
-#include <string>
-#include <vector>
-
-namespace java
-    {
-namespace  backup
-    {
-
-class CScrBackupUtil : public CBase
-    {
-public:
-    static CScrBackupUtil* NewL();
-
-    ~CScrBackupUtil();
-    
-    static CScrBackupUtil* NewLC();
-    
-    /*
-     * filling the data with the SCR value one by one 
-     */
-    void BackupScrDataL(RDesWriteStream& aStream, TBool& aBackupNotFinished, TInt& aBufferSpaceLeft);
-    
-    void GetComponentInfoL(Usif::TComponentId aComponentId,RDesWriteStream& aStream);
-    void WriteToActualStream(RDesWriteStream& aStream);
-    
-    void RestoreScrDataL(RDesReadStream& aStream, TInt& aRestoreState, TInt& aBufferSpaceLeft);
-    void SetDataInScrL(TUid aUid ,RDesReadStream& aStream);
-    
-private: //fun
-    void ConstructL();
-    void ConnectScrL();
-    void writeRemainingData();
-    void RegisterApplicationL(TInt aComponentId, TUid aAppUid,
-            Usif::TAppCaption aAppName, TDesC aIconFilename, TInt aNumberOfIcons,
-            TLanguage aLanguages);
-    
-    template <typename T>
-    TInt ComputeSizeL(const T &aObject);
-    void ExtractUidAndComponentIdL(RArray<Usif::TComponentId>& componentIds,RArray<TInt>& uids,TInt& ComponentsCount);   
-    Usif::TComponentId RegisterComponentL(Usif::CComponentEntry& aEntry ,TUid aUid,TPtr aMidletInfoUrl, TPtr aMidletDescription, TPtr8 aMidletDeletionConformation,TPtr aDownloadUrl,TInt64 aMediaId,TPtr aDomainCatogary , TPtr aSettingValue,RPointerArray<HBufC>& aComponentFilesArray, TBool aIsComponentPresent,RPointerArray<Usif::CLocalizableComponentInfo>& aLocalizableComponentInfoArray);
-    CScrBackupUtil();
-private://members
-      
-     enum TState
-         {
-         EIsFetchCompleteInfo,
-         EIsWriteCompleteInfo
-         };
-     TState iState;
-     HBufC8* iRemainingInfo;
-     // to check if the previous attribte claims that he cant 
-     //write in stream because of space so all other attribute 
-     //down the lane should be in the remaining info buffer to maintain the sequence
-     TBool iIsToWriteInStream;
-     TBool iBufferToWriteNextTime;
-     TBool iWriteToStream;
-    TInt i ;
-    TInt iLengthOfString;
-    Usif::RSoftwareComponentRegistry* iScr;
-    RArray<Usif::TComponentId> iComponentIds;
-    RArray<TInt> iUids;
-    RArray<TInt> iPresentUids;
-    
-    TInt iNumberOfComponents;
-    TInt iBufferSpaceLeft;
-    
-    TInt iRemainingBuffer;
-    TPtr8 iPtrToWriteBuffer;
-    
-    TBool iIsFristCall;
-  
-    };
-
-// Helper class pass the info of midlet with in midletSuite 
-class CAppInfo : public CBase
-    {
-public:
-    static CAppInfo* NewL();
-
-    ~CAppInfo();
-
-    static CAppInfo* NewLC();
-    void ConstructL();
-    void Set(TLanguage language,TUid appUid,Usif::TAppCaption caption,TDesC& appIcon,TInt aNoOfIcons);
-    TLanguage GetLanguage();
-    TUid GetAppUid();
-    Usif::TAppCaption GetCaption();
-    HBufC* GetAppIcon();
-    TInt NoOfIcons();
-protected:
-        
-    CAppInfo();
-    
-    
-private:
-    TLanguage iLanguage;
-    TUid iAppUid;
-    Usif::TAppCaption iCaption;
-    HBufC* iAppIcon;
-    TInt iNoOfIcons;
-    };
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-class CJavaBackupEntries : public CBase
-    {
-public:
-    ~CJavaBackupEntries();
-    static CJavaBackupEntries* NewL(Usif::TComponentId aId); 
-    
-    static CJavaBackupEntries* NewLC(Usif::TComponentId aId);
-    
-    
-    //used to get the below info
-    /*
-     * will get all the entries in this API
-     * called when restoring
-     */
-    void GetEntries();
-    
-    /*
-     * to set all the entries
-     * 
-     */
-    void SetEntries();
-private :
-    
-    void ConstructL(Usif::TComponentId aId);
-    
-private:
-            //check if this duplication can be removed as the same variable is in ccomponentEntry
-    Usif::TComponentId iComponentId;   ///< The unique id of the software component.
-            //HBufC* iName;                ///< Name of the software component.
-            //HBufC* iVendor;              ///< Vendor of the software component.
-            //HBufC* iSwType;              ///< Software type name of the component.
-            //HBufC* iGlobalId;            ///< Globally unique component identifier.
-            //TBool iRemovable;            ///< Whether the component is removable.
-            //TInt64 iSize;                ///< The total size of the component at installation time in bytes.
-            //TScomoState iScomoState;     ///< SCOMO state of the component.
-            //TDriveList iInstalledDrives; ///< The set of drives that files for the software component were installed to.
-            //HBufC* iVersion;             ///< Version identifier of the software component
-                //HBufC* iInstallTime;         ///< The install time of the component. 
-            //TBool iDrmProtected;         ///< Whether the component is DRM protected.
-                //TBool iHidden;               ///< Whether the component is hidden in the list of installed components.
-            //TBool iKnownRevoked;         ///< Whether the component has been revoked.
-            //TBool iOriginVerified;       ///< Whether the installer has verified the originator of the component.
-            
-            
-            // TODO Can we keep a pointer here 
-    Usif::CComponentEntry iEntries;
-            TBool iIsComponentPresent;
-            // component property
-            TInt  iMidletSuitId;
-            HBufC *iMidletInfoUrl;
-            HBufC *iMidletDescription;
-            TBool iMidletDeletetionConfirmation; // Didnt got any thing for it 
-            HBufC *iMidletDownloadUrl;
-            HBufC *iDomainCatagory;// didnt got any thing for it 
-            TInt iMediaId;
-            //addtion to CcomponentEntry Class
-            RPointerArray<Usif::CLocalizableComponentInfo> &iCompLocalizedInfoArray;
-            
-            
-            Usif::RSoftwareComponentRegistry *iScr;
-            
-            
-            
-    };
-   }
-
-   }
-
-
-
-#endif /* JAVASCRBACKUPUTIL_H_ */
--- a/javamanager/javabackup/midp2backup_usif/src.s60/javastoragebackuputil.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2084 +0,0 @@
-/*
-* Copyright (c) 2008-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:  Implementation of CStorageBackupUtil
-*
-*/
-
-
-#include "javastoragebackuputil.h"
-#include "midp2backupplugin.h"
-#include "midp2backupdataids.h"
-
-#include "javastorageentry.h"
-#include "javastorage.h"
-#include "javastoragenames.h"
-
-#include "logger.h"
-#include "javauid.h"
-#include "javaoslayer.h"
-#include "javacommonutils.h"
-#include "s60commonutils.h"
-#include "javasymbianoslayer.h"
-
-#include <memory>
-#include <s32mem.h>
-
-using namespace std;
-using namespace java::storage;
-using namespace java::backup;
-
-// ======== MEMBER FUNCTIONS ========
-
-CStorageBackupUtil::CStorageBackupUtil()
-{
-    LOG(EBackup, EInfo, "CStorageBackupUtil constructor");
-}
-
-void CStorageBackupUtil::ConstructL()
-{
-    LOG(EBackup, EInfo, "CStorageBackupUtil::ConstructL");
-
-    iFirstCalltoBackupStorageData = ETrue;
-    iFirstCalltoRestoreStorageData = ETrue;
-
-    iBufferSpaceLeft = 0;
-
-    iRemainingString = EFalse;
-    iStrCount = 0;
-
-    for (int tableNumber = 0; tableNumber < NUMBER_OF_TABLES; tableNumber++)
-    {
-        iTableSize[tableNumber] = 0;
-    }
-}
-
-CStorageBackupUtil* CStorageBackupUtil::NewL()
-{
-    LOG(EBackup, EInfo, "CStorageBackupUtil::NewL");
-
-    CStorageBackupUtil* self = new(ELeave) CStorageBackupUtil();
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop();
-
-    return self;
-}
-
-CStorageBackupUtil::~CStorageBackupUtil()
-{
-    LOG(EBackup, EInfo, "CStorageBackupUtil Destructor");
-
-    // clear the vectors to free all the heap data.
-    iStringVector.clear();
-}
-
-
-void CStorageBackupUtil::BackupStorageDataL(RDesWriteStream& aStream, TBool& aBackupNotFinished, TInt& aBufferSpaceLeft)
-{
-    LOG(EBackup, EInfo, "CStorageBackupUtil::BackupStorageDataL");
-
-    iBufferSpaceLeft = aBufferSpaceLeft;
-
-    if (iFirstCalltoBackupStorageData)
-    {
-        int err = FillVectorWithStorageData();
-
-        if (err != KErrNone)
-        {
-            User::Leave(err);
-        }
-        LOG1(EBackup, EInfo, "Total no of rows in vector: %d", iStringVector.size());
-
-        // First write the total no of rows in the vector to the stream
-
-        aStream.WriteInt32L(iStringVector.size());
-        iBufferSpaceLeft -= sizeof(TInt32);
-
-        /* Then write the number of rows in each table to the stream.
-           This will be used while writing the data to storage. */
-
-        for (int tableNumber = 0; tableNumber < NUMBER_OF_TABLES; tableNumber++)
-        {
-            aStream.WriteInt16L(iTableSize[tableNumber]);
-            iBufferSpaceLeft -= sizeof(TInt16);
-        }
-
-        iFirstCalltoBackupStorageData = EFalse;
-    }
-
-    // Now write the actual string data into the stream.
-
-    while (iBufferSpaceLeft > 0 && iStrCount < iStringVector.size())
-    {
-        WriteStringtoStreamL(aStream, iStringVector[iStrCount]);
-        LOG1(EBackup, EInfo, "StrCount = %d", iStrCount);
-    }
-
-    if (iStrCount >= iStringVector.size())
-    {
-        LOG(EBackup, EInfo, "Backup of storage data finished");
-        aBackupNotFinished = EFalse;
-    }
-}
-
-void CStorageBackupUtil::RestoreStorageDataL(RDesReadStream& aStream, TInt& aRestoreState, TInt& aBufferSpaceLeft)
-{
-    LOG(EBackup, EInfo, "CStorageBackupUtil::RestoreStorageDataL()");
-
-    iBufferSpaceLeft = aBufferSpaceLeft;
-
-    if (iFirstCalltoRestoreStorageData)
-    {
-        // the no of strings in the stream
-        iStrCount = aStream.ReadInt32L();
-        iBufferSpaceLeft -= sizeof(TInt32);
-
-        // read the number of rows in each table
-        for (int tableNumber = 0; tableNumber < NUMBER_OF_TABLES; tableNumber++)
-        {
-            iTableSize[tableNumber] = aStream.ReadInt16L();
-            iBufferSpaceLeft -= sizeof(TInt16);
-        }
-        iFirstCalltoRestoreStorageData = EFalse;
-    }
-
-    while (iBufferSpaceLeft > 0 && iStrCount > 0)
-    {
-        ReadStringfromStreamL(aStream);
-    }
-
-    if (iStrCount == 0)
-    {
-        LOG1(EBackup, EInfo, "Finished reading from stream, row count = %d", iStringVector.size());
-
-
-        int err = WriteDataToStorage();
-
-        if (err != KErrNone)
-        {
-            CleanupStack::PopAndDestroy(&aStream);
-            User::Leave(KErrGeneral);
-        }
-
-        // Storage restore is over; Change the state 
-#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-        aRestoreState = EScr;
-#else
-        aRestoreState = EAppArc;
-#endif // SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-     
-        aBufferSpaceLeft = iBufferSpaceLeft;
-    }
-}
-
-
-void CStorageBackupUtil::WriteStringtoStreamL(RDesWriteStream& aStream, wstring aStr)
-{
-    iLenOfString = aStr.length();
-
-    // if length of string is 0, do not write any string to the stream.
-    if (iLenOfString == 0)
-    {
-        aStream.WriteInt16L(iLenOfString*2);
-        iBufferSpaceLeft -= sizeof(TInt16);
-        iStrCount++;
-    }
-
-    else
-    {
-        /* if space is not enough for writing the complete string,
-           do not write it. Could be written next time.  */
-        if (((iLenOfString*2) + sizeof(TInt16)) > iBufferSpaceLeft)
-        {
-            LOG(EBackup, EInfo, "Stream size is not enough to hold the string");
-            // set the bufferspaceleft to zero
-            iBufferSpaceLeft = 0;
-        }
-        // stream has enough space for the length and the string data.
-        else
-        {
-            aStream.WriteInt16L(iLenOfString*2);
-            iBufferSpaceLeft -= sizeof(TInt16);
-
-            HBufC* tempstr = java::util::S60CommonUtils::wstringToDes(aStr.c_str());
-            TPtrC tempStr = tempstr->Des();
-            aStream.WriteL(tempStr);
-            iBufferSpaceLeft -= (iLenOfString*2);
-            delete tempstr;
-
-            iStrCount++;
-        }
-    }
-}
-
-void CStorageBackupUtil::ReadStringfromStreamL(RDesReadStream& aStream)
-{
-    wstring emptyString;
-
-    /* if only part of the string was read last time,
-       read the remaining and append it to that string.  */
-    if (iRemainingString)
-    {
-        // if the whole string cannot be read, read part of it and store it.
-        if (iLenOfString > iBufferSpaceLeft)
-        {
-            LOG(EBackup, EInfo, "Cant read the full string; read only part of it");
-
-            HBufC* data = HBufC::NewL(iBufferSpaceLeft/2+1);
-            TPtr pdata = data->Des();
-
-            aStream.ReadL(pdata, iBufferSpaceLeft/2);
-            iLenOfString -= iBufferSpaceLeft;
-            iBufferSpaceLeft = 0;
-
-            wchar_t* str = desToWstring(pdata);
-            wstring stringData(str);
-            iHalfReadString += stringData;
-
-            delete data;
-            iRemainingString = ETrue;
-        }
-        // else read the complete string
-        else
-        {
-            HBufC* data = HBufC::NewL(iLenOfString/2+1);
-            TPtr pdata = data->Des();
-
-            aStream.ReadL(pdata, iLenOfString/2);
-            iBufferSpaceLeft -= (iLenOfString);
-
-            wchar_t* str = desToWstring(pdata);
-            wstring stringData(str);
-            iHalfReadString += stringData;
-
-            iStringVector.push_back(iHalfReadString);
-
-            delete data;
-            iStrCount--;
-            iRemainingString = EFalse;
-            iHalfReadString = emptyString;
-        }
-    }
-
-    else
-    {
-        iLenOfString = aStream.ReadInt16L();
-        iBufferSpaceLeft -= sizeof(TInt16);
-
-        if (iLenOfString > 0)
-        {
-            // if full string cannot be read, read only part of it.
-            if (iLenOfString > iBufferSpaceLeft)
-            {
-                /* if the stream does not have even part of the string,
-                   just set the iRemainingFlag to ETrue so that the
-                   string can be read next time. */
-
-                if (iBufferSpaceLeft == 0)
-                {
-                    iRemainingString = ETrue;
-                    iHalfReadString = emptyString;
-                }
-                // else stream contains part of the stream. Read it
-                else
-                {
-                    LOG(EBackup, EInfo, "Cant read the full string; read only part of it");
-
-                    HBufC* data = HBufC::NewL(iBufferSpaceLeft/2+1);
-                    TPtr pdata = data->Des();
-
-                    aStream.ReadL(pdata, iBufferSpaceLeft/2);
-                    iLenOfString -= iBufferSpaceLeft;
-                    iBufferSpaceLeft = 0;
-
-                    wchar_t* str = desToWstring(pdata);
-                    wstring stringData(str);
-                    iHalfReadString = stringData;
-                    delete data;
-                    iRemainingString = ETrue;
-                }
-            }
-            // else full string can be read
-            else
-            {
-                HBufC* data = HBufC::NewL(iLenOfString/2+1);
-                TPtr pdata = data->Des();
-
-                aStream.ReadL(pdata, iLenOfString/2);
-                iBufferSpaceLeft -= (iLenOfString);
-
-                wchar_t* str = desToWstring(pdata);
-                wstring stringData(str);
-
-                iStringVector.push_back(stringData);
-                iStrCount--;
-                delete data;
-            }
-        }
-        /* if length of string is 0, do not read anything from the stream;
-           just push an empty string into the vector */
-        else
-        {
-            iStringVector.push_back(emptyString);
-            iStrCount--;
-        }
-    }
-}
-
-
-int CStorageBackupUtil::FillVectorWithStorageData()
-{
-    // get data from storage
-
-    LOG(EBackup, EInfo, "CStorageBackupUtil::FillVectorsWithData");
-
-    auto_ptr<JavaStorage> js(JavaStorage::createInstance());
-    LOG(EBackup, EInfo, "Opening connection to JAVA_DATABASE");
-
-    try
-    {
-        js->open(JAVA_DATABASE_NAME);
-        LOG(EBackup, EInfo, "Opening commection succeeded");
-    }
-    catch (JavaStorageException jse)
-    {
-        ELOG1(EBackup, "Opening JAVA_DATABASE failed; %S", jse.toString().c_str());
-        return KErrGeneral;
-    }
-
-    JavaStorageEntry attribute;
-    JavaStorageApplicationEntry_t findPattern;
-    JavaStorageApplicationList_t foundEntries;
-
-
-    // table 1 : Application package table
-    {
-        LOG(EBackup, EInfo, "Read entries from APPLICATION_PACKAGE_TABLE");
-
-        try
-        {
-            js->search(APPLICATION_PACKAGE_TABLE, findPattern, foundEntries);
-            LOG(EBackup, EInfo, "Search in Java Storage succeded");
-        }
-        catch (JavaStorageException jse)
-        {
-            ELOG1(EBackup, "Search in Java Storage failed; %S", jse.toString().c_str());
-            js->close();
-            return KErrGeneral;
-        }
-
-        iTableSize[0] = FillVectorwithAppPackageTableData(foundEntries);
-        foundEntries.clear();
-
-        if (iTableSize[0] == 0)
-        {
-            LOG(EBackup, EInfo,  "No data in Storage; So no midlets in system;");
-            return KErrGeneral;
-        }
-    }
-
-
-    // table 2: Application table
-    {
-        LOG(EBackup, EInfo,  "Read entries from APPLICATION_TABLE");
-
-        try
-        {
-            js->search(APPLICATION_TABLE, findPattern, foundEntries);
-            LOG(EBackup, EInfo,  "Search in Java Storage succeded");
-        }
-        catch (JavaStorageException jse)
-        {
-            ELOG1(EBackup, "Search in Java Storage failed; %S", jse.toString().c_str());
-            js->close();
-            return KErrGeneral;
-        }
-
-        iTableSize[1] = FillVectorwithAppTableData(foundEntries);
-
-        foundEntries.clear();
-    }
-
-    // table 3: Application package attributes table
-
-    /* for this table, since there are very large number of rows,
-       read the data from the table suite-by-suite
-       ie. read entries for the first suite, then read entries for the
-       second suite. This would prevent stack overflow  */
-    {
-        LOG(EBackup, EInfo,  "Read entries from APPLICATION_PACKAGE_ATTRIBUTES_TABLE");
-
-        int rowCount = 0;
-
-        for (int suiteNumber = 0; suiteNumber < iTableSize[0]; suiteNumber++)
-        {
-            attribute.setEntry(ID, iStringVector[suiteNumber*14]);
-            findPattern.insert(attribute);
-
-            try
-            {
-                js->search(APPLICATION_PACKAGE_ATTRIBUTES_TABLE, findPattern, foundEntries);
-                LOG(EBackup, EInfo,  "Search in Java Storage succeded");
-            }
-            catch (JavaStorageException jse)
-            {
-                ELOG1(EBackup, "Search in Java Storage failed; %S", jse.toString().c_str());
-                js->close();
-                return KErrGeneral;
-            }
-
-            rowCount += FillVectorwithAppPackageAttTableData(foundEntries);
-
-            foundEntries.clear();
-            findPattern.clear();
-        }
-        iTableSize[2] = rowCount;
-    }
-
-    // table 4: Midp package table
-    {
-        LOG(EBackup, EInfo,  "Read entries from MIDP_PACKAGE_TABLE");
-
-        try
-        {
-            js->search(MIDP_PACKAGE_TABLE, findPattern, foundEntries);
-            LOG(EBackup, EInfo,  "Search in Java Storage succeded");
-        }
-        catch (JavaStorageException jse)
-        {
-            ELOG1(EBackup, "Search in Java Storage failed; %S", jse.toString().c_str());
-            js->close();
-            return KErrGeneral;
-        }
-
-        iTableSize[3] = FillVectorwithMidpPackageTableData(foundEntries);
-
-        foundEntries.clear();
-    }
-
-    // table 5: Midp permissions table
-
-    /* for this table, since there are very large number of rows,
-       read the data from the table suite-by-suite
-       ie. read entries for the first suite, then read entries for the
-       second suite. This would prevent stack overflow  */
-    {
-        LOG(EBackup, EInfo,  "Read entries from MIDP_PERMISSIONS_TABLE");
-
-        int rowCount = 0;
-
-        for (int suiteNumber = 0; suiteNumber < iTableSize[0]; suiteNumber++)
-        {
-            attribute.setEntry(ID, iStringVector[suiteNumber*14]);
-            findPattern.insert(attribute);
-
-            try
-            {
-                js->search(MIDP_PERMISSIONS_TABLE, findPattern, foundEntries);
-                LOG(EBackup, EInfo,  "Search in Java Storage succeded");
-            }
-            catch (JavaStorageException jse)
-            {
-                ELOG1(EBackup, "Search in Java Storage failed; %S", jse.toString().c_str());
-                js->close();
-                return KErrGeneral;
-            }
-
-            rowCount += FillVectorwithMidpPermTableData(foundEntries);
-
-            foundEntries.clear();
-            findPattern.clear();
-        }
-        iTableSize[4] = rowCount;
-    }
-
-    // table 6: Midp function group settings table
-    {
-        LOG(EBackup, EInfo,  "Read entries from MIDP_FUNC_GRP_SETTINGS_TABLE");
-
-        try
-        {
-            js->search(MIDP_FUNC_GRP_SETTINGS_TABLE, findPattern, foundEntries);
-            LOG(EBackup, EInfo,  "Search in Java Storage succeded");
-        }
-        catch (JavaStorageException jse)
-        {
-            ELOG1(EBackup, "Search in Java Storage failed; %S", jse.toString().c_str());
-            js->close();
-            return KErrGeneral;
-        }
-
-        iTableSize[5] = FillVectorwithMidpFuncGrpSetTableData(foundEntries);
-
-        foundEntries.clear();
-    }
-
-    // table 7: push registration table
-    {
-        LOG(EBackup, EInfo,  "Read entries from PUSH_REGISTRATIONS_TABLE");
-
-        try
-        {
-            js->search(PUSH_REGISTRATIONS_TABLE, findPattern, foundEntries);
-            LOG(EBackup, EInfo,  "Search in Java Storage succeded");
-        }
-        catch (JavaStorageException jse)
-        {
-            ELOG1(EBackup, "Search in Java Storage failed; %S", jse.toString().c_str());
-            js->close();
-            return KErrGeneral;
-        }
-
-        iTableSize[6] = FillVectorwithPushRegTableData(foundEntries);
-
-        foundEntries.clear();
-    }
-
-    // table 8: alarm registration table
-    {
-        LOG(EBackup, EInfo,  "Read entries from ALARM_REGISTRATIONS_TABLE");
-
-        try
-        {
-            js->search(ALARM_REGISTRATIONS_TABLE, findPattern, foundEntries);
-            LOG(EBackup, EInfo,  "Search in Java Storage succeded");
-        }
-        catch (JavaStorageException jse)
-        {
-            ELOG1(EBackup, "Search in Java Storage failed; %S", jse.toString().c_str());
-            js->close();
-            return KErrGeneral;
-        }
-
-        iTableSize[7] = FillVectorwithAlarmRegTableData(foundEntries);
-
-        foundEntries.clear();
-    }
-
-    // table 9: runtime settings table
-    {
-        LOG(EBackup, EInfo,  "Read entries from RUNTIME_SETTINGS_TABLE");
-
-        try
-        {
-            js->search(RUNTIME_SETTINGS_TABLE, findPattern, foundEntries);
-            LOG(EBackup, EInfo,  "Search in Java Storage succeded");
-        }
-        catch (JavaStorageException jse)
-        {
-            ELOG1(EBackup, "Search in Java Storage failed; %S", jse.toString().c_str());
-            js->close();
-            return KErrGeneral;
-        }
-
-        iTableSize[8] = FillVectorwithRuntimeSetTableData(foundEntries);
-
-        foundEntries.clear();
-    }
-
-    // table 10: pre-install table
-    {
-        LOG(EBackup, EInfo,  "Read entries from PREINSTALL_TABLE");
-
-        try
-        {
-            js->search(PREINSTALL_TABLE, findPattern, foundEntries);
-            LOG(EBackup, EInfo,  "Search in Java Storage succeded");
-        }
-        catch (JavaStorageException jse)
-        {
-            ELOG1(EBackup, "Search in Java Storage failed; %S", jse.toString().c_str());
-            js->close();
-            return KErrGeneral;
-        }
-
-        iTableSize[9] = FillVectorwithPreinstallTableData(foundEntries);
-
-        foundEntries.clear();
-    }
-
-    // Data read from JAVA_DATABASE; So close the connection
-    js->close();
-
-    // table 11: ota status table
-    /* Stored in another database called javaotadatabase.
-       so open a new connection to that database.  */
-    {
-        LOG(EBackup, EInfo,  "Read entries from OTA_STATUS_TABLE");
-
-        auto_ptr<JavaStorage> jos(JavaStorage::createInstance());
-
-        try
-        {
-            jos->open(JAVA_OTA_DATABASE_NAME);
-            ILOG(EBackup, "Opening connection to OTA database succeeded");
-        }
-        catch (JavaStorageException jse)
-        {
-            ELOG1(EBackup, "Opening OTA database failed: %s", jse.toString().c_str());
-            return KErrGeneral;
-        }
-
-        try
-        {
-            jos->search(OTA_STATUS_TABLE, findPattern, foundEntries);
-            LOG(EBackup, EInfo,  "Search in Java Storage succeded");
-        }
-        catch (JavaStorageException jse)
-        {
-            ELOG1(EBackup, "Search in Java Storage failed; %s", jse.toString().c_str());
-            jos->close();
-            return KErrGeneral;
-        }
-
-        iTableSize[10] = FillVectorwithOtaStatusTableData(foundEntries);
-
-        foundEntries.clear();
-        jos->close();
-    }
-
-    //################ printing the vectors #############
-    //printVector();
-    //###################################################
-
-    ILOG(EBackup, "Vector filled with data");
-    return KErrNone;
-}
-
-
-int CStorageBackupUtil::WriteDataToStorage()
-{
-    JELOG2(EBackup);
-    ILOG(EBackup, "Create instance of JAVA_DATABASE_NAME and open the database");
-
-    auto_ptr<JavaStorage> js(JavaStorage::createInstance());
-
-    try
-    {
-        js->open(JAVA_DATABASE_NAME);
-        ILOG(EBackup, "Opening database succeded");
-    }
-    catch (JavaStorageException jse)
-    {
-        ELOG1(EBackup, "Opening database failed: %S", jse.toString().c_str());
-        return KErrGeneral;
-    }
-
-    try
-    {
-        js->startTransaction();
-        ILOG(EBackup, "Transaction started");
-    }
-    catch (JavaStorageException jse)
-    {
-        ELOG1(EBackup, "startTransaction() failed: %S", jse.toString().c_str());
-        js->close();
-        return KErrGeneral;
-    }
-
-    ILOG(EBackup, "Before writing data to storage, existing data must be cleared");
-
-    // call delete * from table one-by-one
-    {
-        JavaStorageApplicationEntry_t emptyEntry;
-
-        try
-        {
-            js->remove(APPLICATION_PACKAGE_TABLE, emptyEntry);
-            js->remove(APPLICATION_TABLE, emptyEntry);
-            js->remove(APPLICATION_PACKAGE_ATTRIBUTES_TABLE, emptyEntry);
-            js->remove(MIDP_PACKAGE_TABLE, emptyEntry);
-            js->remove(MIDP_PERMISSIONS_TABLE, emptyEntry);
-            js->remove(MIDP_FUNC_GRP_SETTINGS_TABLE, emptyEntry);
-            js->remove(PUSH_REGISTRATIONS_TABLE, emptyEntry);
-            js->remove(ALARM_REGISTRATIONS_TABLE, emptyEntry);
-            js->remove(RUNTIME_SETTINGS_TABLE, emptyEntry);
-            js->remove(PREINSTALL_TABLE, emptyEntry);
-
-            ILOG(EBackup, "Data removed successfully from table");
-        }
-        catch (JavaStorageException jse)
-        {
-            ELOG1(EBackup, "Failed during removal of entries from table: %S", jse.toString().c_str());
-            js->close();
-            return KErrGeneral;
-        }
-    }
-
-    JavaStorageEntry attribute;
-    JavaStorageApplicationEntry_t insertEntry;
-
-    ILOG(EBackup, "Start transaction for writing into the database");
-
-    int count = 0;
-    // table 1 : Application package table
-    {
-        LOG(EBackup, EInfo,  "Writing to APPLICATION_PACKAGE_TABLE");
-
-        for (int rowNumber = 0; rowNumber < iTableSize[0]; rowNumber++)
-        {
-            attribute.setEntry(ID, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(PACKAGE_NAME, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(VENDOR, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(VERSION, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(ROOT_PATH, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(MEDIA_ID, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(INITIAL_SIZE, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(JAD_PATH, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(JAR_PATH, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(JAD_URL, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(JAR_URL, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(ACCESS_POINT, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(CONTENT_INFO, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(CONTENT_ID, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            try
-            {
-                js->write(APPLICATION_PACKAGE_TABLE, insertEntry);
-                ILOG(EBackup, "Writing to table succeded");
-            }
-            catch (JavaStorageException jse)
-            {
-                ELOG1(EBackup, "Writing to table failed: %S", jse.toString().c_str());
-                js->close();
-                return KErrGeneral;
-            }
-            insertEntry.clear();
-        }
-    }
-
-    // table 2: Application table
-    {
-        LOG(EBackup, EInfo,  "Writing to APPLICATION_TABLE");
-
-        for (int rowNumber = 0; rowNumber < iTableSize[1]; rowNumber++)
-        {
-            attribute.setEntry(ID, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(PACKAGE_ID, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(NAME, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(MAIN_CLASS, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(AUTORUN, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            try
-            {
-                js->write(APPLICATION_TABLE, insertEntry);
-                ILOG(EBackup, "Writing to table succeded");
-            }
-            catch (JavaStorageException jse)
-            {
-                ELOG1(EBackup, "Writing to table failed: %S", jse.toString().c_str());
-                js->close();
-                return KErrGeneral;
-            }
-            insertEntry.clear();
-        }
-    }
-
-    // table 3: Application package attributes table
-    {
-        LOG(EBackup, EInfo,  "Writing to APPLICATION_PACKAGE_ATTRIBUTES_TABLE");
-
-        for (int rowNumber = 0; rowNumber < iTableSize[2]; rowNumber++)
-        {
-            attribute.setEntry(ID, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(NAME, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(VALUE, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(TRUSTED, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            try
-            {
-                js->write(APPLICATION_PACKAGE_ATTRIBUTES_TABLE, insertEntry);
-                ILOG(EBackup, "Writing to table succeded");
-            }
-            catch (JavaStorageException jse)
-            {
-                ELOG1(EBackup, "Writing to table failed: %S", jse.toString().c_str());
-                js->close();
-                return KErrGeneral;
-            }
-            insertEntry.clear();
-        }
-    }
-
-    // table 4: Midp package table
-    {
-        LOG(EBackup, EInfo,  "Writing to MIDP_PACKAGE_TABLE");
-
-        for (int rowNumber = 0; rowNumber < iTableSize[3]; rowNumber++)
-        {
-            attribute.setEntry(ID, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(TYPE, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(SECURITY_DOMAIN, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(SECURITY_DOMAIN_CATEGORY, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(HASH, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(CERT_HASH, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(RMS, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(VALID_CERTS, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(ON_SCREEN_KEYPAD, iStringVector[count++]);
-            insertEntry.insert(attribute);
-            
-            attribute.setEntry(SECURITY_WARNINGS, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            try
-            {
-                js->write(MIDP_PACKAGE_TABLE, insertEntry);
-                ILOG(EBackup, "Writing to table succeded");
-            }
-            catch (JavaStorageException jse)
-            {
-                ELOG1(EBackup, "Writing to table failed: %S", jse.toString().c_str());
-                js->close();
-                return KErrGeneral;
-            }
-            insertEntry.clear();
-        }
-    }
-
-    // table 5: Midp permissions table
-    {
-        LOG(EBackup, EInfo,  "Writing to MIDP_PERMISSIONS_TABLE");
-
-        for (int rowNumber = 0; rowNumber < iTableSize[4]; rowNumber++)
-        {
-            attribute.setEntry(ID, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(CLASS, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(NAME, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(ACTION, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(FUNCTION_GROUP, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            try
-            {
-                js->write(MIDP_PERMISSIONS_TABLE, insertEntry);
-                ILOG(EBackup, "Writing to table succeded");
-            }
-            catch (JavaStorageException jse)
-            {
-                ELOG1(EBackup, "Writing to table failed: %S", jse.toString().c_str());
-                js->close();
-                return KErrGeneral;
-            }
-            insertEntry.clear();
-        }
-    }
-
-    // table 6: Midp function group settings table
-    {
-        LOG(EBackup, EInfo,  "MIDP_FUNC_GRP_SETTINGS_TABLE");
-
-        for (int rowNumber = 0; rowNumber < iTableSize[5]; rowNumber++)
-        {
-            attribute.setEntry(ID, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(FUNCTION_GROUP, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(ALLOWED_SETTINGS, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(CURRENT_SETTING, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(BLANKET_PROMPT, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            try
-            {
-                js->write(MIDP_FUNC_GRP_SETTINGS_TABLE, insertEntry);
-                ILOG(EBackup, "Writing to table succeded");
-            }
-            catch (JavaStorageException jse)
-            {
-                ELOG1(EBackup, "Writing to table failed: %S", jse.toString().c_str());
-                js->close();
-                return KErrGeneral;
-            }
-            insertEntry.clear();
-        }
-    }
-
-    // table 7: push registration table
-    {
-        LOG(EBackup, EInfo,  "Writing to PUSH_REGISTRATIONS_TABLE");
-
-        for (int rowNumber = 0; rowNumber < iTableSize[6]; rowNumber++)
-        {
-            attribute.setEntry(ID, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(URL, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(NAME, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(FILTER, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(REGISTRATION_TYPE, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            try
-            {
-                js->write(PUSH_REGISTRATIONS_TABLE, insertEntry);
-                ILOG(EBackup, "Writing to table succeded");
-            }
-            catch (JavaStorageException jse)
-            {
-                ELOG1(EBackup, "Writing to table failed: %S", jse.toString().c_str());
-                js->close();
-                return KErrGeneral;
-            }
-            insertEntry.clear();
-        }
-    }
-
-    // table 8: alarm registration table
-    {
-        LOG(EBackup, EInfo,  "Writing to ALARM_REGISTRATIONS_TABLE");
-
-        for (int rowNumber = 0; rowNumber < iTableSize[7]; rowNumber++)
-        {
-            attribute.setEntry(ID, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(ALARM_TIME, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            try
-            {
-                js->write(ALARM_REGISTRATIONS_TABLE, insertEntry);
-                ILOG(EBackup, "Writing to table succeded");
-            }
-            catch (JavaStorageException jse)
-            {
-                ELOG1(EBackup, "Writing to table failed: %S", jse.toString().c_str());
-                js->close();
-                return KErrGeneral;
-            }
-            insertEntry.clear();
-        }
-    }
-
-
-    // table 9: runtime settings table
-    {
-        LOG(EBackup, EInfo,  "Writing to RUNTIME_SETTINGS_TABLE");
-
-        for (int rowNumber = 0; rowNumber < iTableSize[8]; rowNumber++)
-        {
-            attribute.setEntry(EXTENSIONS, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            try
-            {
-                js->write(RUNTIME_SETTINGS_TABLE, insertEntry);
-                ILOG(EBackup, "Writing to table succeded");
-            }
-            catch (JavaStorageException jse)
-            {
-                ELOG1(EBackup, "Writing to table failed: %S", jse.toString().c_str());
-                js->close();
-                return KErrGeneral;
-            }
-            insertEntry.clear();
-        }
-    }
-
-    // table 10: pre-install table
-    {
-        LOG(EBackup, EInfo,  "Writing to PREINSTALL_TABLE");
-
-        for (int rowNumber = 0; rowNumber < iTableSize[9]; rowNumber++)
-        {
-            attribute.setEntry(NAME, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(VENDOR, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(VERSION, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(INSTALL_STATE, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            try
-            {
-                js->write(PREINSTALL_TABLE, insertEntry);
-                ILOG(EBackup, "Writing to table succeded");
-            }
-            catch (JavaStorageException jse)
-            {
-                ELOG1(EBackup, "Writing to table failed: %S", jse.toString().c_str());
-                js->close();
-                return KErrGeneral;
-            }
-            insertEntry.clear();
-        }
-    }
-
-    ILOG(EBackup, "Data written to JAVA_DATABASE; So Commit the transaction and close the database");
-    ILOG(EBackup, "Committing the transaction");
-
-    try
-    {
-        js->commitTransaction();
-        ILOG(EBackup, "Transaction committed successfully");
-    }
-    catch (JavaStorageException jse)
-    {
-        ELOG1(EBackup, "Committing the transaction failed: %S", jse.toString().c_str());
-        js->close();
-        return KErrGeneral;
-    }
-
-    ILOG(EBackup, "Close the database");
-
-    // close the JAVA_DATABASE
-    js->close();
-
-
-    // table 11: ota status table
-    /* stored in another database called javaotadatabase.
-       so open a new connection to that database   */
-
-    {
-        ILOG(EBackup, "Create instance of JAVA_OTA_DATABASE_NAME and open the database");
-        auto_ptr<JavaStorage> jos(JavaStorage::createInstance());
-
-        try
-        {
-            jos->open(JAVA_OTA_DATABASE_NAME);
-            ILOG(EBackup, "Opening database succeded");
-        }
-        catch (JavaStorageException jse)
-        {
-            ELOG1(EBackup, "Opening database failed: %S", jse.toString().c_str());
-            return KErrGeneral;
-        }
-
-        ILOG(EBackup, "Start a transaction for writing to this database");
-
-        try
-        {
-            jos->startTransaction();
-            ILOG(EBackup, "Transaction started");
-        }
-        catch (JavaStorageException jse)
-        {
-            ELOG1(EBackup, "startTransaction() failed: %S", jse.toString().c_str());
-            jos->close();
-            return KErrGeneral;
-        }
-
-        ILOG(EBackup, "Before writing data to this database, existing data must be cleared");
-
-        try
-        {
-            JavaStorageApplicationEntry_t emptyEntry;
-            jos->remove(OTA_STATUS_TABLE, emptyEntry);
-        }
-        catch (JavaStorageException jse)
-        {
-            ELOG1(EBackup, "Removing data from OTA database failed: %S", jse.toString().c_str());
-            jos->close();
-            return KErrGeneral;
-        }
-
-        LOG(EBackup, EInfo,  "Writing to OTA_STATUS_TABLE");
-
-        for (int rowNumber = 0; rowNumber < iTableSize[10]; rowNumber++)
-        {
-            attribute.setEntry(ID, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(CREATION_TIME, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(TYPE, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(OTA_CODE, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(URL, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(LATEST_RETRY_TIME, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            attribute.setEntry(RETRY_COUNT, iStringVector[count++]);
-            insertEntry.insert(attribute);
-
-            try
-            {
-                jos->write(OTA_STATUS_TABLE, insertEntry);
-                LOG(EBackup, EInfo,  "Writing to table succeded");
-            }
-            catch (JavaStorageException jse)
-            {
-                ELOG1(EBackup, "Writing to table failed: %S", jse.toString().c_str());
-                jos->close();
-                return KErrGeneral;
-            }
-            insertEntry.clear();
-        }
-
-        ILOG(EBackup, "Data written to JAVA_OTA_DATABASE; commit the transaction and close the database");
-        ILOG(EBackup, "Committing the transaction");
-
-        try
-        {
-            jos->commitTransaction();
-            LOG(EBackup, EInfo, "Transaction committed successfully");
-        }
-        catch (JavaStorageException jse)
-        {
-            ELOG1(EBackup, "Committing the transaction failed: %S", jse.toString().c_str());
-            jos->close();
-            return KErrGeneral;
-        }
-
-        LOG(EBackup, EInfo, "Close the database");
-
-        // close the OTA_DATABASE
-        jos->close();
-    }
-
-    LOG(EBackup, EInfo, "Data written to Storage");
-    return KErrNone;
-}
-
-
-int CStorageBackupUtil::FillVectorwithAppPackageTableData(JavaStorageApplicationList_t& foundEntries)
-{
-    const wstring emptyString;
-    wstring str;
-
-    JavaStorageEntry attribute;
-
-    /* Initialise Iterators to iterate through all applications
-       matched with search patterns.  */
-    JavaStorageApplicationList_t::const_iterator applications;
-    JavaStorageApplicationEntry_t::const_iterator findIterator;
-
-    int rowsCount=0;
-    for (applications = foundEntries.begin(); applications != foundEntries.end(); applications++)
-    {
-        attribute.setEntry(ID, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(PACKAGE_NAME, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(VENDOR, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(VERSION, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(ROOT_PATH, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(MEDIA_ID, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(INITIAL_SIZE, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(JAD_PATH, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(JAR_PATH, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(JAD_URL, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(JAR_URL, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(ACCESS_POINT, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(CONTENT_INFO, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(CONTENT_ID, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        rowsCount++;
-    }
-    ILOG1(EBackup, "for loop crossed with i = %d", rowsCount);
-    return rowsCount;
-}
-
-int CStorageBackupUtil::FillVectorwithAppTableData(JavaStorageApplicationList_t& afoundEntries)
-{
-    const wstring emptyString;
-    wstring str;
-
-    JavaStorageEntry attribute;
-
-    /* Initialise Iterators to iterate through all applications
-       matched with search patterns.  */
-    JavaStorageApplicationList_t::const_iterator applications;
-    JavaStorageApplicationEntry_t::const_iterator findIterator;
-
-    int rowsCount=0;
-    for (applications = afoundEntries.begin(); applications != afoundEntries.end(); applications++)
-    {
-        attribute.setEntry(ID, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(PACKAGE_ID, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(NAME, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(MAIN_CLASS, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(AUTORUN, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        rowsCount++;
-    }
-    ILOG1(EBackup, "for loop crossed with i = %d", rowsCount);
-    return rowsCount;
-}
-
-int CStorageBackupUtil::FillVectorwithAppPackageAttTableData(JavaStorageApplicationList_t& afoundEntries)
-{
-    const wstring emptyString;
-    wstring str;
-
-    JavaStorageEntry attribute;
-
-    /* Initialise Iterators to iterate through all applications
-       matched with search patterns.  */
-    JavaStorageApplicationList_t::const_iterator applications;
-    JavaStorageApplicationEntry_t::const_iterator findIterator;
-
-    int rowsCount=0;
-    for (applications = afoundEntries.begin(); applications != afoundEntries.end(); applications++)
-    {
-        attribute.setEntry(ID, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(NAME, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(VALUE, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(TRUSTED, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        rowsCount++;
-    }
-    ILOG1(EBackup, "for loop crossed with i = %d", rowsCount);
-    return rowsCount;
-}
-
-int CStorageBackupUtil::FillVectorwithMidpPackageTableData(JavaStorageApplicationList_t& afoundEntries)
-{
-    const wstring emptyString;
-    wstring str;
-
-    JavaStorageEntry attribute;
-
-    /* Initialise Iterators to iterate through all applications
-       matched with search patterns.  */
-    JavaStorageApplicationList_t::const_iterator applications;
-    JavaStorageApplicationEntry_t::const_iterator findIterator;
-
-    int rowsCount=0;
-    for (applications = afoundEntries.begin(); applications != afoundEntries.end(); applications++)
-    {
-        attribute.setEntry(ID, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(TYPE, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(SECURITY_DOMAIN, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(SECURITY_DOMAIN_CATEGORY, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(HASH, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(CERT_HASH, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(RMS, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(VALID_CERTS, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(ON_SCREEN_KEYPAD, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-        
-        attribute.setEntry(SECURITY_WARNINGS, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        rowsCount++;
-    }
-    ILOG1(EBackup, "for loop crossed with i = %d", rowsCount);
-    return rowsCount;
-}
-
-int CStorageBackupUtil::FillVectorwithMidpPermTableData(JavaStorageApplicationList_t& afoundEntries)
-{
-    const wstring emptyString;
-    wstring str;
-
-    JavaStorageEntry attribute;
-
-    /* Initialise Iterators to iterate through all applications
-       matched with search patterns.  */
-    JavaStorageApplicationList_t::const_iterator applications;
-    JavaStorageApplicationEntry_t::const_iterator findIterator;
-
-    int rowsCount=0;
-    for (applications = afoundEntries.begin(); applications != afoundEntries.end(); applications++)
-    {
-        attribute.setEntry(ID, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(CLASS, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(NAME, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(ACTION, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(FUNCTION_GROUP, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        rowsCount++;
-    }
-    ILOG1(EBackup, "for loop crossed with i = %d", rowsCount);
-    return rowsCount;
-}
-
-int CStorageBackupUtil::FillVectorwithMidpFuncGrpSetTableData(JavaStorageApplicationList_t& afoundEntries)
-{
-    const wstring emptyString;
-    wstring str;
-
-    JavaStorageEntry attribute;
-
-    /* Initialise Iterators to iterate through all applications
-       matched with search patterns.  */
-    JavaStorageApplicationList_t::const_iterator applications;
-    JavaStorageApplicationEntry_t::const_iterator findIterator;
-
-    int rowsCount=0;
-    for (applications = afoundEntries.begin(); applications != afoundEntries.end(); applications++)
-    {
-        attribute.setEntry(ID, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(FUNCTION_GROUP, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(ALLOWED_SETTINGS, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(CURRENT_SETTING, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(BLANKET_PROMPT, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        rowsCount++;
-    }
-    ILOG1(EBackup, "for loop crossed with i = %d", rowsCount);
-    return rowsCount;
-}
-
-int CStorageBackupUtil::FillVectorwithPushRegTableData(JavaStorageApplicationList_t& afoundEntries)
-{
-    const wstring emptyString;
-    wstring str;
-
-    JavaStorageEntry attribute;
-
-    /* Initialise Iterators to iterate through all applications
-       matched with search patterns.  */
-    JavaStorageApplicationList_t::const_iterator applications;
-    JavaStorageApplicationEntry_t::const_iterator findIterator;
-
-    int rowsCount=0;
-    for (applications = afoundEntries.begin(); applications != afoundEntries.end(); applications++)
-    {
-        attribute.setEntry(ID, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(URL, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(NAME, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(FILTER, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(REGISTRATION_TYPE, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        rowsCount++;
-    }
-    ILOG1(EBackup, "for loop crossed with i = %d", rowsCount);
-    return rowsCount;
-}
-
-int CStorageBackupUtil::FillVectorwithAlarmRegTableData(JavaStorageApplicationList_t& afoundEntries)
-{
-    const wstring emptyString;
-    wstring str;
-
-    JavaStorageEntry attribute;
-
-    /* Initialise Iterators to iterate through all applications
-       matched with search patterns.  */
-    JavaStorageApplicationList_t::const_iterator applications;
-    JavaStorageApplicationEntry_t::const_iterator findIterator;
-
-    int rowsCount=0;
-    for (applications = afoundEntries.begin(); applications != afoundEntries.end(); applications++)
-    {
-        attribute.setEntry(ID, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(ALARM_TIME, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        rowsCount++;
-    }
-    ILOG1(EBackup, "for loop crossed with i = %d", rowsCount);
-    return rowsCount;
-}
-
-int CStorageBackupUtil::FillVectorwithRuntimeSetTableData(JavaStorageApplicationList_t& afoundEntries)
-{
-    const wstring emptyString;
-    wstring str;
-
-    JavaStorageEntry attribute;
-
-    /* Initialise Iterators to iterate through all applications
-       matched with search patterns.  */
-    JavaStorageApplicationList_t::const_iterator applications;
-    JavaStorageApplicationEntry_t::const_iterator findIterator;
-
-    int rowsCount=0;
-    for (applications = afoundEntries.begin(); applications != afoundEntries.end(); applications++)
-    {
-        attribute.setEntry(EXTENSIONS, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        rowsCount++;
-    }
-    ILOG1(EBackup, "for loop crossed with i = %d", rowsCount);
-    return rowsCount;
-}
-
-int CStorageBackupUtil::FillVectorwithPreinstallTableData(JavaStorageApplicationList_t& afoundEntries)
-{
-    const wstring emptyString;
-    wstring str;
-
-    JavaStorageEntry attribute;
-
-    /* Initialise Iterators to iterate through all applications
-       matched with search patterns.  */
-    JavaStorageApplicationList_t::const_iterator applications;
-    JavaStorageApplicationEntry_t::const_iterator findIterator;
-
-    int rowsCount=0;
-    for (applications = afoundEntries.begin(); applications != afoundEntries.end(); applications++)
-    {
-        attribute.setEntry(NAME, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(VENDOR, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(VERSION, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(INSTALL_STATE, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        rowsCount++;
-    }
-    ILOG1(EBackup, "for loop crossed with i = %d", rowsCount);
-    return rowsCount;
-}
-
-int CStorageBackupUtil::FillVectorwithOtaStatusTableData(JavaStorageApplicationList_t& afoundEntries)
-{
-    const wstring emptyString;
-    wstring str;
-
-    JavaStorageEntry attribute;
-
-    /* Initialise Iterators to iterate through all applications
-       matched with search patterns.  */
-    JavaStorageApplicationList_t::const_iterator applications;
-    JavaStorageApplicationEntry_t::const_iterator findIterator;
-
-    int rowsCount=0;
-    for (applications = afoundEntries.begin(); applications != afoundEntries.end(); applications++)
-    {
-        attribute.setEntry(ID, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(CREATION_TIME, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(TYPE, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(OTA_CODE, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(URL, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(LATEST_RETRY_TIME, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        attribute.setEntry(RETRY_COUNT, L"");
-        str = emptyString;
-        findIterator = (*applications).find(attribute);
-
-        if (findIterator != (*applications).end())
-        {
-            str = (*findIterator).entryValue();
-        }
-        iStringVector.push_back(str);
-
-        rowsCount++;
-    }
-    ILOG1(EBackup, "for loop crossed with i = %d", rowsCount);
-    return rowsCount;
-}
-
--- a/javamanager/javabackup/midp2backup_usif/src.s60/javastoragebackuputil.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,404 +0,0 @@
-/*
-* Copyright (c) 2008-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:  Header file for CStorageBackupUtil class
-*
-*/
-
-
-#ifndef JAVASTORAGEBACKUPUTIL_H
-#define JAVASTORAGEBACKUPUTIL_H
-
-#include <string>
-#include <vector>
-
-#include <e32base.h>
-#include <wchar.h>
-#include <s32strm.h>
-
-#include "javastorageentry.h"
-#include "javastorage.h"
-#include "javastoragenames.h"
-
-#define NUMBER_OF_TABLES 11
-
-class RDesWriteStream;
-class RDesReadStream;
-
-namespace java
-{
-namespace backup
-{
-
-
-/**
---------------------------------------------------------------------------------
-
-*  CStorageBackupUtil class is handling backup and restore of Java Storage data
-*  This class is instantiated when a BUR operation is starting.
-
-Example Data that could be present in JavaStorage which is backed up and restored by this class.
-
-Application Package Data
-ID        | PACKAGE_NAME | VENDOR | VERSION | ROOT_PATH                              | MEDIA_ID | INITIAL_SIZE | JAD_PATH                                              | JAR_PATH                                              | JAD_URL                          | JAR_URL                           | ACCESS_POINT | CONTENT_INFO | CONTENT_ID
-788463512 | HelloWorld?  | Nokia  | 1.1     | \C\Private\102033E6\MIDlets\[101e59d8] | 123456   | 200          | \C\Private\102033E6\MIDlets\[101e59d8]\HelloWorld.jad | \C\Private\102033E6\MIDlets\[101e59d8]\HelloWorld.jar | http://getjar.com/MyGreatApp.jad | http://getjar.com/MyGreatApp2.jar | IAP:2        | 0            | 78d78sd89f789
-
-
-Application Data
-ID        | PACKAGE_ID | NAME       | MAIN_CLASS | AUTORUN
-788463616 | 788463512  | HelloWorld | HelloWorld | 0
-
-
-Application Package Attributes Data
-ID        | NAME            | VALUE      | TRUSTED
-788463512 | MIDlet-Name     | HelloWorld | 00
-788463512 | MIDlet-Version  | 1.0        | 10
-788463512 | MIDlet-Vendor   | Nokia      | 10
-
-
-MIDP Application Package Data
-ID        | TYPE         | SECURITY_DOMAIN | HASH      | CERT_HASH | RMS                                                | VALID_CERTS | ON_SCREEN_KEYPAD
-788463512 | MIDletSuite? | Trusted         | 123456789 | 123456789 | \C\Private\102033E6\MIDlets\[101e59d8]\RMSdata.bin | 1,3,5       | 0
-
-
-MIDP Permissions Data
-ID        | CLASS                                        | NAME                     | ACTION | FUNCTION_GROUP
-788463616 | javax.microedition.io.HttpProtocolPermission | http://server/index.html | read   | HTTP
-
-
-MIDP Function Group Settings Data
-ID        | FUNCTION_GROUP | ALLOWED_SETTINGS                     | CURRENT_SETTING | BLANKET_PROMPT
-788463616 | HTTP           | 111 (e.g. BLANKET, SESSION, ONESHOT) | 001 (ONESHOT)   | 0
-
-The allowed settings could be a an encoded integer based on the binary representation of 3 bits (e.g. 100 if only BLANKET is allowed, 011 if SESSION and ONESHOT are allowed).
-
-
-MIDP Push Registrations Data
-ID        | URL                                                                                       | NAME             | FILTER | REGISTRATION_TYPE
-788463616 | sip:*;type=""application/test"", SIPPushReceiver?                                         | SIPPushReceiver? | *      | 1
-788463616 | btspp://localhost:99999999999999999999999999999999;*;authenticated;blacklist=00E001234567 | BTPushReceiver?  | *      | 0
-
-
-MIDP Alarm Push Registrations Data
-ID        | ALARM_TIME
-788463616 | 2008-09-13;15:20:30
-
-
-MIDP Runtime Settings Data
-EXTENSIONS
-\C\Private\102033E6\Extenstions\12345678\Location.jar
-
-
-Preinstall Data
-NAME            | VENDOR     | VERSION | INSTALL_STATE
-TestMIDletSuite | TestVendor | 1.2.3   | 2
-
-
-MIDP OTA Status Data table
-ID        | CREATION_TIME       | TYPE | OTA_CODE | URL                           | LATEST_RETRY_TIME   | RETRY_COUNT
-788463616 | 2008-09-13;12:20:30 | 1    | 900      | http://www.moo.com/MIDLETS.js | 2008-09-13;15:20:30 | 2
-
------------------------------------------------------------------------------------------------------------------------------
-*/
-
-class CStorageBackupUtil : public CBase
-{
-public:
-
-    /**
-     * Instantiates an object of this type
-     */
-    static CStorageBackupUtil* NewL();
-
-    ~CStorageBackupUtil();
-
-    /**
-     * This method requests a section of Java Storage data.
-     * Called by the function GetBackupDataSectionL from midp2backupplugin
-     * The data is filled into the stream till it is full.
-     * The data returned may be base or incremental depending
-     * on the type of backup and the capability of the data owner.
-     *
-     * @param aBuffer a pointer to the base of the location where data
-     *        can be copied.
-     * @param aBackupNotFinished on return EFalse if all data has
-     *        been returned for this drive, else ETrue.
-     */
-    void BackupStorageDataL(RDesWriteStream& aStream, TBool& aBackupNotFinished, TInt& aBufferSpaceLeft);
-
-    /**
-     * This method receives a section of base restore data.
-     * Stores the restore data in the vector so that it can be
-     * written to Java Storage when all data have come.
-     *
-     * @param stream holds the restore data
-     * @param aRestoreState EFirstBuffer if all data has been returned
-     *        for this drive, else remains at EStorage.
-     * @param aBufferSpaceLeft the space left in the buffer
-     */
-    void RestoreStorageDataL(RDesReadStream& aStream, TInt& aRestoreState, TInt& aBufferSpaceLeft);
-
-private:
-
-    // Default constructor for the class
-
-    CStorageBackupUtil();
-
-    // Second phase constructor function
-
-    void ConstructL();
-
-    /**
-     * This method fills the vector with Java Storage data.
-     * Data is read from JavaStorage tables and put inside the vector
-     * which will later be put into the buffer stream.
-     * The reason for having vector to store the data is that connection to
-     * Java Storage cannot be open for a long period of time
-     * ie writing into buffer stream's time
-     *
-     * @return returns an integer value telling whether the operation
-     *         was completed successfully or not.
-     */
-    int FillVectorWithStorageData();
-
-    /**
-     * A utility function which converts a wstring into a TDesC
-     * and writes it into the stream.
-     *
-     * @param stream an RDesWriteStream into which the converted
-     *        string is written
-     * @param tempString the wstring which is to be converted.
-     */
-    void WriteStringtoStreamL(RDesWriteStream& aStream, std::wstring aTempString);
-
-    /**
-     * A utility function which reads a TDesC from the stream, converts it
-     * to a wstring and writes it into the vector.
-     *
-     * @param stream an RDesReadStream from which the TDesC data is read
-     */
-    void ReadStringfromStreamL(RDesReadStream& aStream);
-
-    /**
-     * This method writes the data to storage.
-     * Gets called after FillVectorsWithStreamDataL() function is called.
-     * This function opens a transaction to Storage and writes
-     * the vector's data into storage row-by-row, and then commits
-     * the transaction.
-     *
-     * @return returns an integer specifying whether the operation
-     *         has completed successfully or not.
-     */
-    int WriteDataToStorage();
-public:
-    /**
-     * Utility function which fills the vector with data got from storage.
-     * Handles data of only APPLICATION_PACKAGE_TABLE.
-     *
-     * @param afoundEntries the application entries which match
-     *        the SQL query.
-     * @return an integer representing the number of rows written
-     *         into the vector.
-     */
-    int FillVectorwithAppPackageTableData(java::storage::JavaStorageApplicationList_t& afoundEntries);
-
-    /**
-     * Utility function which fills the vector with data got from storage.
-     * Handles data of only APPLICATION_TABLE.
-     *
-     * @param afoundEntries the application entries which match
-     *        the SQL query.
-     * @return an integer representing the number of rows written
-     *         into the vector.
-     */
-    int FillVectorwithAppTableData(java::storage::JavaStorageApplicationList_t& afoundEntries);
-
-    /**
-     * Utility function which fills the vector with data got from storage.
-     * Handles data of only APPLICATION_PACKAGE_ATTRIBUTES_TABLE.
-     *
-     * @param afoundEntries the application entries which match
-     *        the SQL query.
-     * @return an integer representing the number of rows written
-     *         into the vector.
-     */
-    int FillVectorwithAppPackageAttTableData(java::storage::JavaStorageApplicationList_t& afoundEntries);
-
-    /**
-     * Utility function which fills the vector with data got from storage.
-     * Handles data of only MIDP_PACKAGE_TABLE.
-     *
-     * @param afoundEntries the application entries which match
-     *        the SQL query.
-     * @return an integer representing the number of rows written
-     *         into the vector.
-     */
-    int FillVectorwithMidpPackageTableData(java::storage::JavaStorageApplicationList_t& afoundEntries);
-
-    /**
-     * Utility function which fills the vector with data got from storage.
-     * Handles data of only MIDP_PERMISSIONS_TABLE.
-     *
-     * @param afoundEntries the application entries which match
-     *        the SQL query.
-     * @return an integer representing the number of rows written
-     *         into the vector.
-     */
-    int FillVectorwithMidpPermTableData(java::storage::JavaStorageApplicationList_t& afoundEntries);
-
-    /**
-     * Utility function which fills the vector with data got from storage.
-     * Handles data of only MIDP_FUNCTION_GROUP_SETTINGS_TABLE.
-     *
-     * @param afoundEntries the application entries which match
-     *        the SQL query.
-     * @return an integer representing the number of rows written
-     *         into the vector.
-     */
-    int FillVectorwithMidpFuncGrpSetTableData(java::storage::JavaStorageApplicationList_t& afoundEntries);
-
-    /**
-     * Utility function which fills the vector with data got from storage.
-     * Handles data of only PUSH_REGISTRATION_TABLE.
-     *
-     * @param afoundEntries the application entries which match
-     *        the SQL query.
-     * @return an integer representing the number of rows written
-     *         into the vector.
-     */
-    int FillVectorwithPushRegTableData(java::storage::JavaStorageApplicationList_t& afoundEntries);
-
-    /**
-     * Utility function which fills the vector with data got from storage.
-     * Handles data of only ALARM_REGISTRATION_TABLE.
-     *
-     * @param afoundEntries the application entries which match
-     *        the SQL query.
-     * @return an integer representing the number of rows written
-     *         into the vector.
-     */
-    int FillVectorwithAlarmRegTableData(java::storage::JavaStorageApplicationList_t& afoundEntries);
-
-    /**
-     * Utility function which fills the vector with data got from storage.
-     * Handles data of only RUNTIME_SETTINGS_TABLE.
-     *
-     * @param afoundEntries the application entries which match
-     *        the SQL query.
-     * @return an integer representing the number of rows written
-     *         into the vector.
-     */
-    int FillVectorwithRuntimeSetTableData(java::storage::JavaStorageApplicationList_t& afoundEntries);
-
-    /**
-     * Utility function which fills the vector with data got from storage.
-     * Handles data of only PREINSTALL_TABLE.
-     *
-     * @param afoundEntries the application entries which match
-     *        the SQL query.
-     * @return an integer representing the number of rows written
-     *         into the vector.
-     */
-    int FillVectorwithPreinstallTableData(java::storage::JavaStorageApplicationList_t& afoundEntries);
-
-    /**
-     * Utility function which fills the vector with data got from storage.
-     * Handles data of only OTA_STATUS_TABLE.
-     *
-     * @param afoundEntries the application entries which match
-     *        the SQL query.
-     * @return an integer representing the number of rows written
-     *         into the vector.
-     */
-    int FillVectorwithOtaStatusTableData(java::storage::JavaStorageApplicationList_t& afoundEntries);
-
-    /**
-     * Prints the vectors
-     */
-    void printVector();
-
-private:
-
-    /**
-     * The actual wstring vector which holds the data during a B&R operation.
-     * During a backup, this vector is filled with storage data and then
-     * written to the stream.
-     * During a restore, this vector is filled with data from the stream
-     * before it is written to storage.
-     * Own
-     */
-    std::vector< std::wstring > iStringVector;
-
-    /**
-     * An integer which holds the length of the string.
-     * When only half the data is read from the stream, this holds the
-     * length of the remaining data which is to be read.
-     * Own
-     */
-    int iLenOfString;
-
-    /**
-     * An integer which holds the count of the number of strings
-     * in the vector. Used during a B&R operation.
-     * Own
-     */
-    int iStrCount;
-
-    /**
-     * An integer array which holds the number of rows of each table
-     * present in storage.
-     * This information is written to stream and is used when the
-     * restored data is written back to storage.
-     * Own
-     */
-    int iTableSize[NUMBER_OF_TABLES];
-
-    /**
-     * A Boolean value which says if a string was only
-     * half read during a previous iteration.
-     * Own
-     */
-    TBool iRemainingString;
-
-    /**
-     * A wstring which holds the half read string so that the
-     * completed string can be appended to it during the next iteration
-     * before it is put into the vector.
-     * Own
-     */
-    std::wstring iHalfReadString;
-
-    /**
-     * Shows if it's the fill call to backup storage data.
-     * Vectors filled only at the first call.
-     * Own
-     */
-    TBool iFirstCalltoBackupStorageData;
-
-    /**
-     * Shows if it's the fill call to restore storage data.
-     * Own
-     */
-    TBool iFirstCalltoRestoreStorageData;
-
-    /**
-     * Shows the remaining number of bytes available in the stream.
-     * Own
-     */
-    int iBufferSpaceLeft;
-};
-
-} // namespace backup
-} // namespace java
-
-#endif // JAVASTORAGEBACKUPUTIL_H
--- a/javamanager/javabackup/midp2backup_usif/src.s60/javaversionbackuputil.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,150 +0,0 @@
-/*
-* Copyright (c) 2008-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:  Implementation of JavaVersionBackupUtil
-*
-*/
-
-
-#include <javaenvinfo.h>
-#include "javaversionbackuputil.h"
-#include "logger.h"
-
-
-#include <s32mem.h>
-#include <e32base.h>
-
-#define KOMJIdentifier 0x20000F3D
-
-using namespace Java;
-using namespace java::backup;
-
-// ======== MEMBER FUNCTIONS ========
-
-void JavaVersionBackupUtil::WriteJavaVersionL(RDesWriteStream& aStream)
-{
-    JELOG2(EBackup);
-
-    // Get the Java version number from the environment API's
-
-    TVersion version = Java::JavaEnvInfo::Version();
-
-    PLOG3(EBackup, "JavaEnvInfo::Version: major = %d, minor = %d, build = %d",
-          version.iMajor, version.iMinor, version.iBuild);
-
-    /* Put OMJ Package UID in the front indicating that it is an
-       OMJ environment from which backup was taken.  */
-    aStream.WriteInt32L(KOMJIdentifier);
-
-    // write the version numbers to the stream
-    aStream.WriteInt8L(version.iMajor);
-    aStream.WriteInt8L(version.iMinor);
-    aStream.WriteInt16L(version.iBuild);
-
-    ILOG(EBackup, "Version information written to stream");
-}
-
-TUint JavaVersionBackupUtil::CheckJavaVersionL(RDesReadStream& aStream, TDriveNumber aDrive, TBool versionCheck)
-{
-    JELOG2(EBackup);
-    TInt32 omjID = 0;
-    if (versionCheck)
-    {
-        // Read the OMJSpecific ID only on first call
-        omjID = aStream.ReadInt32L();
-    }
-
-    if (omjID != KOMJIdentifier)
-    {
-        _LIT(KJavaRestoreConverterExe, "javarestoreconverter.exe");
-
-        RProcess rProcess;
-
-        TChar targetDrive;
-        _LIT(KText , "");
-        TBuf<15> commandLine(KText);
-        RFs session;
-        TInt err = session.Connect();
-        if (KErrNone != err)
-        {
-            ELOG1(EBackup,
-                  "JavaVersionBackupUtil::CheckJavaVersionL: Session Connection failed, error %d", err);
-            CleanupStack::PopAndDestroy(&aStream);
-            User::Leave(err);
-        }
-
-        err = session.DriveToChar(aDrive, targetDrive);
-        if (KErrNone == err)
-        {
-            _LIT(KDrive, " -drive");
-            commandLine.Append(KDrive);
-            commandLine.Append(targetDrive);
-        }
-
-        err = rProcess.Create(KJavaRestoreConverterExe, commandLine);
-        if (KErrNone == err)
-        {
-            TRequestStatus status;
-            rProcess.Logon(status);
-            rProcess.Resume();
-
-            // now wait until javarestoreconverter exits
-            User::WaitForRequest(status);
-            if (status.Int() != KErrNone)
-            {
-                // Installing old JRT 1.x MIDlets to JRT 2.x failed
-                err = status.Int();
-                ELOG1(EBackup,
-                      "JavaVersionBackupUtil::CheckJavaVersionL: Installation failed, error %d", err);
-                CleanupStack::PopAndDestroy(&aStream);
-                User::Leave(err);
-            }
-            else
-            {
-                LOG(EBackup,EInfo,
-                    "JavaVersionBackupUtil::CheckJavaVersionL: Installing Midlets successful");
-            }
-        }
-        else
-        {
-            // Cannot even start javarestoreconverter
-            ELOG1(EBackup,
-                  "JavaVersionBackupUtil::CheckJavaVersionL: Cannot start Installer, error %d", err);
-            CleanupStack::PopAndDestroy(&aStream);
-            User::Leave(err);
-        }
-        rProcess.Close();
-        return 1;
-
-    }
-    else
-    {
-        TInt8 major = aStream.ReadInt8L();
-        TInt8 minor = aStream.ReadInt8L();
-        TInt16 build = aStream.ReadInt16L();
-
-        TVersion version(major, minor, build);
-
-        PLOG3(EBackup, "JavaVersion read from Stream: major = %d, minor = %d, build = %d",
-              version.iMajor, version.iMinor, version.iBuild);
-
-        // read current version and compare it with the read version
-        TVersion curVersion = Java::JavaEnvInfo::Version();
-
-        PLOG3(EBackup," Current JavaVersion: major = %d, minor = %d, build = %d",
-              curVersion.iMajor, curVersion.iMinor, curVersion.iBuild);
-        return 0;
-
-    }
-}
-
--- a/javamanager/javabackup/midp2backup_usif/src.s60/javaversionbackuputil.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-/*
-* Copyright (c) 2008-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:  Header file for JavaVersionBackupUtil class
-*
-*/
-
-
-#ifndef JAVAVERSIONBACKUPUTIL_H
-#define JAVAVERSIONBACKUPUTIL_H
-
-#include <e32base.h>
-#include <driveinfo.h>
-#include <javaenvinfo.h>
-
-class RDesReadStream;
-class RDesWriteStream;
-
-namespace java
-{
-namespace backup
-{
-/**
- *  JavaVersionBackupUtil class is used for checking the java version
- *  during a B&R operation. This class writes the current java version
- *  while backing up and then checks whether the backed up version
- *  is compatible with the currnet version while doing a restore.
- *  If it is not compatible, then the backup process is gracefully exited.
- */
-
-class JavaVersionBackupUtil
-{
-
-public:
-
-    /**
-     * This method writes the current java version into the SBE buffer.
-     * This functions is called when a backup process is started.
-     *
-     * @param aBuffer the buffer which is sent by the SBE
-     */
-    static void WriteJavaVersionL(RDesWriteStream& aStream);
-
-    /**
-     * This method reads the java version from the stream. If there is no
-     * Java version or if the Java version is not compatible with the
-     * current version, then the restore process is exited gracefully.
-     *
-     * @param aStream an RDesReadStream on the buffer which is sent
-     *        by the SBE
-     * @param aDrive current drive to be backed up
-     * @return status
-     */
-    static TUint CheckJavaVersionL(RDesReadStream& aStream, TDriveNumber aDrive, TBool versionCheck);
-
-private:
-
-    /**
-     * This method is used to compare the current java version with the
-     * one read from the stream.
-     * This method is not used presently. Logic may be added in the future
-     *
-     * @param aVersion the java version read from the stream
-     * @param aCurVersion the current java version
-     */
-    void CompareL(TVersion aVersion, TVersion aCurVersion);
-
-};
-
-} // namespace backup
-} // namespace java
-
-#endif // JAVAVERSIONBACKUPUTIL_H
--- a/javamanager/javabackup/midp2backup_usif/src.s60/midp2backupdataids.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
-* Copyright (c) 2008-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:  midp2backupdataids definition
-*
-*/
-
-#include <e32base.h>
-
-#ifndef MIDP2BACKUPDATAIDS_H
-#define MIDP2BACKUPDATAIDS_H
-
-namespace java
-{
-namespace backup
-{
-/**
- * State of streaming during restore
- */
-enum TRestoreState
-{
-    EVersion = 0,
-    EStorage,
-    EAppArc,
-    EInIcon,
-    EInSize,
-    EInstall,
-    EScr
-};
-
-} //namespace backup
-} //namespace java
-
-
-#endif // MIDP2BACKUPDATAIDS_H
--- a/javamanager/javabackup/midp2backup_usif/src.s60/midp2backupplugin.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,637 +0,0 @@
-/*
-* Copyright (c) 2008-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:  Implementation of Midp2BackupPlugin
-*
-*/
-
-
-#include "midp2backupplugin.h"
-#include "midp2backupdataids.h"
-#include "apparcbackuputil.h"
-#include "javastoragebackuputil.h"
-#include "javaversionbackuputil.h"
-
-#include "javastoragenames.h"
-#include "javastorageentry.h"
-#include "javastorage.h"
-
-#include "javacommonutils.h"
-#include "logger.h"
-
-#include <connect/sbdefs.h>
-#include <s32mem.h>
-#include <s32file.h>
-#include <f32file.h>
-#include <apgcli.h>
-
-
-using namespace std;
-using namespace java::storage;
-using namespace java::backup;
-
-// ======== MEMBER FUNCTIONS ========
-
-CMidp2BackupPlugin::CMidp2BackupPlugin()
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin constructor");
-}
-
-void CMidp2BackupPlugin::ConstructL()
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::ConstructL");
-
-    iIconDescIndex = 0;
-    iBufferSpaceLeft = 0;
-    iFirstCallToGetBackupDataSection = ETrue;
-    iStorageDataBackup = ETrue;
-    iStorageDataRestore = ETrue;
-    iJavaVersionInfoWritten = EFalse;
-    iRestoreState = EVersion;
-
-    User::LeaveIfError(iFs.Connect());
-    // to share file handles with AppArc
-    User::LeaveIfError(iFs.ShareProtected());
-
-    iStorageBackupUtil = CStorageBackupUtil::NewL();
-    iAppArcUtil = CAppArcBackupUtil::NewL(iFs);
-}
-
-CMidp2BackupPlugin* CMidp2BackupPlugin::NewL()
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::NewL");
-
-    CMidp2BackupPlugin* self = new(ELeave) CMidp2BackupPlugin();
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop();
-
-    return self;
-}
-
-CMidp2BackupPlugin::~CMidp2BackupPlugin()
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin destructor");
-
-    iFs.Close();
-    iIconUidArray.Close();
-    delete iAppArcUtil;
-    delete iIconDesc;
-    delete iRestoreIconDesc;
-    delete iStorageBackupUtil;
-}
-
-// from base class CBackupPlugin
-
-void CMidp2BackupPlugin::PrepareForBURL(TInt aBackupStateValue)
-{
-    (void)aBackupStateValue;  // Just to suppress a warning in release builds
-    LOG1(EBackup, EInfo, "CMidp2BackupPlugin::PrepareForBURL, BUR state: %d", aBackupStateValue);
-}
-
-void CMidp2BackupPlugin::ReceiveSnapshotDataL(TDriveNumber /* aDrive */, TDesC8& /* aBuffer */, TBool /* aLastSection */)
-{
-    JELOG2(EBackup);
-    User::Leave(KErrNotSupported);
-}
-
-TUint CMidp2BackupPlugin::GetExpectedDataSize(TDriveNumber /* aDrive */)
-{
-    JELOG2(EBackup);
-    return 0;
-}
-
-void CMidp2BackupPlugin::GetSnapshotDataL(TDriveNumber /* aDrive */, TPtr8& /* aBuffer */, TBool& /* aFinished */)
-{
-    JELOG2(EBackup);
-    User::Leave(KErrNotSupported);
-}
-
-void CMidp2BackupPlugin::InitialiseGetBackupDataL(TDriveNumber aDrive)
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::InitialiseGetBackupDataL");
-    iDrive = aDrive;
-}
-
-void CMidp2BackupPlugin::GetBackupDataSectionL(TPtr8& aBuffer, TBool& aFinished)
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::GetBackupDataSectionL");
-
-    iBufferSpaceLeft = aBuffer.MaxLength();
-    RDesWriteStream stream(aBuffer);
-    CleanupClosePushL(stream);
-
-    if (!iJavaVersionInfoWritten)
-    {
-        JavaVersionBackupUtil::WriteJavaVersionL(stream);
-        iJavaVersionInfoWritten = ETrue;
-        iBufferSpaceLeft -= 8;
-    }
-
-    if (iStorageDataBackup)
-    {
-        iStorageBackupUtil->BackupStorageDataL(stream, iStorageDataBackup, iBufferSpaceLeft);
-        aFinished = EFalse;
-    }
-
-    else
-    {
-        if (iFirstCallToGetBackupDataSection)
-        {
-            LOG(EBackup, EInfo, "First Call To GetBackupDataSection");
-            // Get the uids of midlets whose icons are to be backed up
-            iIconFilePointer = 0;
-            ResetIconArray();
-            iAppArcUtil->GetMidletsFromAppArcL(iIconUidArray, iDrive);
-
-            /* Streaming MMC's unique Id, if current drive is MMC
-               and there's at least one midlet on the drive*/
-            if (iIconUidArray.Count() > 0 && iDrive >= EDriveE && iDrive <= EDriveZ)
-            {
-                TUint32 mmcId = MmcIdL();
-
-                if (mmcId != 0)
-                {
-                    LOG1(EBackup,EInfo, "Write MMC id: %u", mmcId);
-                    stream.WriteUint32L(mmcId);
-                    iBufferSpaceLeft -= sizeof(mmcId);
-                }
-            }
-            // Setting flag to EFalse
-            iFirstCallToGetBackupDataSection = EFalse;
-        }
-
-        // Next icon uid and filename
-        TUid currentUid;
-        HBufC* fullFileName = NULL;
-
-        // Streaming leftover part of icon file
-        if (iIconDescIndex)
-        {
-            LOG(EBackup, EInfo, "Streaming leftover part of icon file");
-
-            /* if the icon file is bigger than the space in the buffer, write only
-             part of it and fill iLeftover with remaining part. */
-            if (iIconDesc->Size() - iIconDescIndex > iBufferSpaceLeft)
-            {
-                stream.WriteL(iIconDesc->Mid(iIconDescIndex), iBufferSpaceLeft);
-                iIconDescIndex += iBufferSpaceLeft;
-            }
-            else
-            {
-                stream.WriteL(iIconDesc->Mid(iIconDescIndex));
-                iIconDescIndex = 0;
-            }
-
-            aFinished = EFalse;
-        }
-
-        // Get new icon file
-        else if (NextIcon(currentUid, fullFileName))
-        {
-            LOG1(EBackup, EInfo, "New icon file, id: %d", currentUid.iUid);
-
-            // Readstream for icon file
-            RFileReadStream fileStream;
-
-            User::LeaveIfError(fileStream.Open(iFs, *fullFileName, EFileRead));
-            CleanupClosePushL(fileStream);
-
-            TEntry* entry = new(ELeave) TEntry();
-            CleanupStack::PushL(entry);
-
-            iFs.Entry(*fullFileName, *entry);
-            TInt32 size = entry->iSize;
-
-            // Write icon file content into iIconDesc
-            LOG(EBackup, EInfo, "Write icon file content into iIconDesc");
-            delete iIconDesc;
-            iIconDesc = NULL;
-            iIconDesc = HBufC8::NewL(size);
-
-            TPtr8 buf = iIconDesc->Des();
-            fileStream.ReadL(buf, size);
-
-            // get the group name of the midlet from AppArc
-            TBuf< KApaMaxAppGroupName >groupName(iAppArcUtil->GetMidletGroupName(currentUid));
-            TInt groupNameSize = groupName.Size();
-
-            // Write the size of the data
-            LOG(EBackup,EInfo, "Write the size of the data");
-
-            TParsePtrC parse(*fullFileName);
-            TPtrC fileName = parse.NameAndExt();
-            TInt32 fileNameSize = fileName.Size();
-
-            stream.WriteInt32L(sizeof(TUid)    // Uid
-                               + sizeof(TInt32)   // fileNameSize
-                               + fileNameSize // filename
-                               + sizeof(TInt32)   // number of icons
-                               + sizeof(TInt32)   // groupnamesize
-                               + groupNameSize
-                               + size // icon file
-                              );
-            iBufferSpaceLeft -= sizeof(TInt32);
-
-            // Write the Uid of the midlet
-            LOG(EBackup, EInfo, "Write the Uid of the midlet");
-            stream.WriteInt32L(currentUid.iUid);
-            iBufferSpaceLeft -= sizeof(TUid);
-
-            // Write the size of the icon filename
-            LOG(EBackup, EInfo, "Write the size of the icon filename");
-            stream.WriteInt32L(fileNameSize);
-            iBufferSpaceLeft -= sizeof(TInt32);
-
-            // Write icon filename
-            LOG(EBackup, EInfo, "Write icon filename");
-            stream.WriteL(fileName);
-            iBufferSpaceLeft -= fileNameSize;
-
-            // Write number of icons in midlet
-            LOG(EBackup, EInfo, "Write number of icons in midlet");
-            TInt iconCount;
-            iAppArcUtil->NumberOfOwnDefinedIcons(TUid::Uid(currentUid.iUid), iconCount);
-            stream.WriteInt32L(iconCount);
-            iBufferSpaceLeft -= sizeof(TInt32);
-
-            // TPtr8 groupName(iAppArcUtil->GetMidletGroupName(currentUid));
-            LOG(EBackup, EInfo, "Write the size of the Group name of the midlet");
-            stream.WriteInt32L(groupNameSize);
-            iBufferSpaceLeft -= sizeof(TInt32);
-
-            if (groupNameSize != 0)
-            {
-                LOG(EBackup, EInfo, "Write the Group name of the midlet");
-                stream.WriteL(groupName);
-                iBufferSpaceLeft -= groupNameSize;
-            }
-
-            /* if the icon file is bigger than the space in the buffer,
-               write only part of it and fill iLeftover with remaining part */
-            LOG(EBackup, EInfo, "Write icon");
-            if (size > iBufferSpaceLeft)
-            {
-                stream.WriteL(buf, iBufferSpaceLeft);
-                iIconDescIndex = iBufferSpaceLeft;
-            }
-            else
-            {
-                stream.WriteL(buf, size);
-                iIconDescIndex = 0;
-            }
-
-            aFinished = EFalse;
-
-            CleanupStack::PopAndDestroy(&fileStream);
-            CleanupStack::PopAndDestroy(entry);
-        }
-
-        else
-        {
-            aFinished = ETrue;
-            iFirstCallToGetBackupDataSection = ETrue;
-            iStorageDataBackup = ETrue;
-        }
-
-        delete fullFileName;
-    }
-    CleanupStack::PopAndDestroy(&stream);
-}
-
-
-void CMidp2BackupPlugin::InitialiseRestoreBaseDataL(TDriveNumber aDrive)
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::InitialiseRestoreBaseDataL");
-    iDrive = aDrive;
-}
-
-void CMidp2BackupPlugin::RestoreBaseDataSectionL(TDesC8& aBuffer, TBool aFinished)
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::RestoreBaseDataSectionL");
-
-    iBufferSpaceLeft = aBuffer.Size();
-    RDesReadStream stream(aBuffer);
-    CleanupClosePushL(stream);
-    TBool versionCheck = ETrue;
-
-    if (((iRestoreState == EVersion) || (iRestoreState == EInstall)) && iBufferSpaceLeft >= 8)
-    {
-        if (iRestoreState == EInstall)
-        {
-            versionCheck = EFalse;
-        }
-        TUint ret = JavaVersionBackupUtil::CheckJavaVersionL(stream,iDrive,versionCheck);
-        if (1==ret)
-        {
-            // Here set the satus to restore finished, so that control goes back to SBE & SBE calls B&R for another drive
-            iRestoreState = EInstall;
-        }
-        else
-        {
-            /* version information has been written to stream.
-             So change restore state to restore storage data  */
-            iRestoreState = EStorage;
-        }
-        // version information is of length 8 bytes.
-        iBufferSpaceLeft -= 8;
-    }
-
-    if (iRestoreState == EStorage)
-    {
-        iStorageBackupUtil -> RestoreStorageDataL(stream, iRestoreState, iBufferSpaceLeft);
-    }
-
-    // Only at first call
-    if ((iRestoreState != EStorage && iRestoreState != EVersion) && (iRestoreState != EInstall))
-    {
-        if (iRestoreState == EAppArc)
-        {
-            // Making AppArc deregistrations
-            TRAPD(err, iAppArcUtil->DeregisterAppsL(iDrive));
-
-            if (err)
-            {
-                ELOG(EBackup, "Leave in deregistering apps");
-            }
-        }
-
-        // Process the data buffer for restore
-        ProcessBufferL(stream);
-
-        if (aFinished)
-        {
-            // Set state to EStorage
-            iRestoreState = EStorage;
-        }
-    }
-
-    aFinished = ETrue;
-    CleanupStack::PopAndDestroy(&stream);
-}
-
-void CMidp2BackupPlugin::InitialiseRestoreIncrementDataL(TDriveNumber /* aDrive */)
-{
-    JELOG2(EBackup);
-    User::Leave(KErrNotSupported);
-}
-
-void CMidp2BackupPlugin::RestoreIncrementDataSectionL(TDesC8& /* aBuffer */, TBool /* aFinished */)
-{
-    JELOG2(EBackup);
-    User::Leave(KErrNotSupported);
-}
-
-void CMidp2BackupPlugin::RestoreComplete(TDriveNumber /* aDrive */)
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::RestoreComplete");
-}
-
-TUint CMidp2BackupPlugin::MmcIdL()
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::MmcIdL()");
-
-    TVolumeInfo* volumeInfo = new(ELeave) TVolumeInfo();
-
-    TInt err = iFs.Volume(*volumeInfo, iDrive);
-
-    if (!err)
-    {
-        TUint mmcId = volumeInfo->iUniqueID;
-        return mmcId;
-    }
-    else
-    {
-        return 0;
-    }
-
-
-}
-
-void CMidp2BackupPlugin::ProcessBufferL(RDesReadStream& stream)
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::ProcessBuffer()");
-
-    // Cycle until there's data in the buffer
-    while (iBufferSpaceLeft > 0)
-    {
-        switch (iRestoreState)
-        {
-        case EAppArc:
-            ProcessFirstBufferL(stream, iBufferSpaceLeft);
-            break;
-
-        case EInIcon:
-            ProcessInIconL(stream, iBufferSpaceLeft);
-            break;
-
-        case EInSize:
-            ProcessInSizeL(stream, iBufferSpaceLeft);
-            break;
-
-        default:
-            CleanupStack::PopAndDestroy(&stream);
-            User::Leave(KErrNotSupported);
-        }
-    }
-}
-
-
-_LIT(KStarWildCard, "*.*");
-
-void CMidp2BackupPlugin::RestoreMmcRegistryL()
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::RestoreMmcRegistry()");
-
-    /* If backed up MMC is not the same as the current MMC, copy the entries
-       from the directory of the backed up MMC to the directory
-       of the current MMC */
-    TUint32 mmc = MmcIdL();
-
-    if (iBackupMmc != mmc)
-    {
-        // Create path to old place
-        TPath path_old;
-        CreateMmcPath(path_old, iDrive, iBackupMmc);
-
-        // Create path to new place
-        TPath path_new;
-        CreateMmcPath(path_new, iDrive, mmc);
-
-        // Get old files list
-        CFileMan* fileMan = CFileMan::NewL(iFs);
-
-        CleanupStack::PushL(fileMan);
-
-        // Copy to new place
-        iFs.MkDir(path_new);
-        path_old.Append(KStarWildCard);
-        TInt  err = fileMan->Copy(path_old, path_new);
-
-        ILOG1(EBackup, "File copy, status: %d", err);
-
-        User::LeaveIfError(err);
-
-        CleanupStack::PopAndDestroy();
-    }
-}
-
-_LIT(KPrivatePath, "C:\\private\\");
-
-void CMidp2BackupPlugin::CreateMmcPath(TDes& aPathName, TInt aDrive, TUint aUniqueId)
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::CreateMmcPath()");
-
-    aPathName.Zero();
-    aPathName.Append(KPrivatePath);
-    aPathName.AppendNum(KRegistryServerUid, EHex);
-    aPathName.Append(KPathDelimiter);
-
-    // append drive name
-    TDriveUnit driveUnit(aDrive);
-    aPathName.Append(driveUnit.Name().Left(1));
-    aPathName.Append(KPathDelimiter);
-
-    TUint64 id = aUniqueId;
-    aPathName.AppendNum(id, EHex);
-    aPathName.Append(KPathDelimiter);
-}
-
-TBool CMidp2BackupPlugin::NextIcon(TUid& aCurrentUid, HBufC*& aFullFileName)
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::NextIcon()");
-
-    if (iIconUidArray.Count() > iIconFilePointer)
-    {
-        aCurrentUid = iIconUidArray[iIconFilePointer];
-        iAppArcUtil->GetIconFilename(iIconUidArray[iIconFilePointer], aFullFileName);
-        iIconFilePointer++;
-        return ETrue;
-    }
-    else
-    {
-        // There are no more icon files
-        return EFalse;
-    }
-}
-
-void CMidp2BackupPlugin::ProcessFirstBufferL(RDesReadStream& aStream, TInt& aBufferSpaceLeft)
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::ProcessFirstBuffer()");
-
-    if (iDrive >= EDriveE && iDrive <= EDriveZ)
-    {
-        // Read MMC id and restore MMC entries if needed
-        iBackupMmc = aStream.ReadUint32L();
-        aBufferSpaceLeft -= sizeof(iBackupMmc);
-        LOG1(EBackup, EInfo, "Read MMC Id: %u", iBackupMmc);
-        RestoreMmcRegistryL();
-    }
-    if (aBufferSpaceLeft >= sizeof(TInt32))
-    {
-        iIconFileSizeLeft = aStream.ReadInt32L();
-        aBufferSpaceLeft -= sizeof(iIconFileSizeLeft);
-        iRestoreIconDesc = HBufC8::NewL(iIconFileSizeLeft);
-        iRestoreState = EInIcon;
-    }
-    else
-    {
-        // No more data to read
-        aBufferSpaceLeft = 0;
-    }
-}
-
-void CMidp2BackupPlugin::ProcessInIconL(RDesReadStream& aStream, TInt& aBufferSpaceLeft)
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::ProcessInIcon()");
-
-    TPtr8 restoreIconPtr = iRestoreIconDesc->Des();
-    HBufC8* tempDesc = HBufC8::NewL(iIconFileSizeLeft);
-    CleanupStack::PushL(tempDesc);
-    TPtr8 tempPtr = tempDesc->Des();
-
-    // Icon cannot be read fully
-    if (iIconFileSizeLeft > aBufferSpaceLeft)
-    {
-        aStream.ReadL(tempPtr, aBufferSpaceLeft);
-        restoreIconPtr.Append(tempPtr);
-        iIconFileSizeLeft -= aBufferSpaceLeft;
-        aBufferSpaceLeft = 0;
-        iRestoreState = EInIcon;
-    }
-    // Icon can be read fully
-    else
-    {
-        aStream.ReadL(tempPtr, iIconFileSizeLeft);
-        restoreIconPtr.Append(tempPtr);
-        aBufferSpaceLeft -= iIconFileSizeLeft;
-        iRestoreState = EInSize;
-
-        TRAPD(err, iAppArcUtil->RegisterAppL(restoreIconPtr, iDrive));
-
-        if (err)
-        {
-            ELOG(EBackup, "Registerin application to AppArc failed.");
-        }
-    }
-
-    CleanupStack::PopAndDestroy(tempDesc);
-}
-
-void CMidp2BackupPlugin::ProcessInSizeL(RDesReadStream& aStream, TInt& aBufferSpaceLeft)
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::ProcessInSize()");
-
-    if (aBufferSpaceLeft >= sizeof(TInt32))
-    {
-        if (iSizeBuffer.Size() != 0)
-        {
-            // Read leftover part of size
-            TInt readData = sizeof(TInt32) - iSizeBuffer.Size();
-            aStream.ReadL(iSizeBuffer, readData);
-            RMemReadStream sizeStream(iSizeBuffer.Ptr(), 4);
-            CleanupClosePushL(sizeStream);
-            iIconFileSizeLeft = sizeStream.ReadInt32L();
-            CleanupStack::PopAndDestroy(&sizeStream);
-            aBufferSpaceLeft -= sizeof(readData);
-        }
-        else
-        {
-            // Read size in full
-            iIconFileSizeLeft = aStream.ReadInt32L();
-            aBufferSpaceLeft -= sizeof(iIconFileSizeLeft);
-        }
-
-        delete iRestoreIconDesc;
-        iRestoreIconDesc = NULL;
-        iRestoreIconDesc = HBufC8::NewL(iIconFileSizeLeft);
-        iRestoreState = EInIcon;
-    }
-    else
-    {
-        // Read first byte(s) of size
-        aStream.ReadL(iSizeBuffer, aBufferSpaceLeft);
-        aBufferSpaceLeft = 0;
-    }
-}
-
-void CMidp2BackupPlugin::ResetIconArray()
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::ResetIconArray()");
-
-    // Remove all entries
-    while (iIconUidArray.Count())
-    {
-        iIconUidArray.Remove(0);
-    }
-}
--- a/javamanager/javabackup/midp2backup_usif/src.s60/midp2backupplugin.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,412 +0,0 @@
-/*
-* Copyright (c) 2008-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:  Header file for CMidp2BackupPlugin class
-*
-*/
-
-
-#ifndef MIDP2BACKUPPLUGIN_H
-#define MIDP2BACKUPPLUGIN_H
-
-#include "backupplugin.h"
-#include <apadef.h>
-#include "logger.h"
-
-class RDesWriteStream;
-class RDesReadStream;
-
-
-
-namespace java
-{
-namespace backup
-{
-
-class CAppArcBackupUtil;
-class CJavaVersionBackupUtil;
-class CStorageBackupUtil;
-
-
-
-/**
- *  CMidp2BackupPlugin class is handling backup and restore operations
- *  for MIDlets
- *
- *  This class is instantiated when a BUR operation is starting.
- */
-class CMidp2BackupPlugin : public CBackupPlugin
-{
-
-public:
-
-    /**
-     * Instantiates an object of this type
-     */
-    static CMidp2BackupPlugin* NewL();
-
-    ~CMidp2BackupPlugin();
-
-
-    // from base class CBackupPlugin
-
-    /**
-     * This method is called when a backup or restore operation is
-     * starting. Preparations can be done to prepare for BUR.
-     *
-     * @param aBackupStateValue the value of the current backup state
-     */
-    void PrepareForBURL(TInt aBackupStateValue);
-
-    /**
-     * This method receives all or part of a snapshot of data to allow
-     * calculation of an incremental backup.  The snapshot is one that
-     * was previously supplied by the data owner.  The snapshot data
-     * should be read from the location supplied. The snapshot data may
-     * be larger than the location supplied in which case the routine
-     * will be called repeatedly until all data has been supplied.
-     *
-     * Snapshot data will also be supplied as part of a restore operation
-     *
-     * @param aDrive the drive being backed up
-     * @param aBuffer a pointer to the base of the location from whence
-     *        data can be copied.
-     * @param aLastSection ETrue if this is the last section of snapshot
-     *        data, else EFalse.
-     */
-    void ReceiveSnapshotDataL(TDriveNumber aDrive,
-                              TDesC8& aBuffer,
-                              TBool aLastSection);
-
-    /**
-     * This method returns the expected size of backup data that will be
-     * supplied. If an incremental backup is underway then this method
-     * will not be called until after ReceiveSnapshotDataL().
-     * The size data will be used for the purpose of tracking progess
-     * during a backup. If it is inaccurate then the user may see
-     * irregular progress but the actual backup data will not be
-     * affected so it is acceptable to return an estimated value.
-     *
-     * @param aDrive the drive being backed up.
-     * @return the size of the data that will be returned
-     */
-    TUint GetExpectedDataSize(TDriveNumber aDrive);
-
-    /**
-     * This method returns a snapshot of data to accompany a backup. The
-     * snapshot is expected to contain details on files / data being
-     * backed up. The format of the snapshot is only meaningful to the
-     * data owner. The snapshot will be supplied if the data owner is
-     * asked for an incremental backup and for a restore operation. The
-     * snapshot data should be copied to the location supplied.
-     *
-     * The snapshot data may be larger than the location supplied in
-     * which case the routine will be called repeatedly until all data
-     * has been retrieved.
-     *
-     * @param aDrive the drive being backed up
-     * @param aBuffer a pointer to the base of the location where data
-     *        can be copied.
-     * @param aFinished on return ETrue if all data has been returned
-     *        for this drive, else EFalse.
-     */
-    void GetSnapshotDataL(TDriveNumber aDrive,
-                          TPtr8& aBuffer,
-                          TBool& aFinished);
-
-    /**
-     * This method prepares the implementor to return backup data. It
-     * will be followed by a sequence of calls to request the actual
-     * data.
-     *
-     * @param aDrive the drive being backed up.
-     */
-    void InitialiseGetBackupDataL(TDriveNumber aDrive);
-
-    /**
-     * This method requests a section of backup data.
-     * InitialiseGetBackupDataL() will have been called previously to
-     * specify the drive concerned.  The data returned may be base or
-     * incremental depending on the type of backup and the capability of
-     * the data owner.
-     *
-     * @param aBuffer a pointer to the base of the location where data
-     *        can be copied.
-     * @param aFinished on return ETrue if all data has been returned
-     *        for this drive, else EFalse.
-     */
-    void GetBackupDataSectionL(TPtr8& aBuffer,
-                               TBool& aFinished);
-
-    /**
-     * This method prepares the implementor to receive base restore data
-     * for a drive. It will be followed by a sequence of calls to supply
-     * the actual data.
-     *
-     * @param aDrive the drive being restored.
-     */
-    void InitialiseRestoreBaseDataL(TDriveNumber aDrive);
-
-    /**
-     * This method receives a section of base restore data.
-     * InitialiseRestoreBaseDataL() will have been called previously to
-     * specify the drive concerned.
-     *
-     * @param aBuffer a pointer to the base of the location whence data
-     *        can be read.
-     * @param aFinished ETrue if all data has been returned for this
-     *        drive, else EFalse.
-     */
-    void RestoreBaseDataSectionL(TDesC8& aBuffer,
-                                 TBool aFinished);
-
-    /**
-     * This method prepares the implementor to receive incremental
-     * restore data for a drive. It will be followed by a sequence
-     * of calls to supply the actual data.  If multiple increments
-     * are supplied then this methid will be called before each increment
-     *
-     * @param aDrive the drive being restored.
-     */
-    void InitialiseRestoreIncrementDataL(TDriveNumber aDrive);
-
-    /**
-     * This method receives a section of increment restore data.
-     * InitialiseRestoreIncrementDataL() will have been called
-     * previously to specify the drive concerned.
-     *
-     * @param aBuffer a pointer to the base of the location whence data
-     *        can be read.
-     * @param aFinished ETrue if all data has been returned for this
-     *        increment, else EFalse.
-     */
-    void RestoreIncrementDataSectionL(TDesC8& aBuffer,
-                                      TBool aFinished);
-
-    /**
-     * This method is called when all data to be restored has been
-     * supplied.
-     *
-     * @param aDrive the drive being restored.
-     */
-    void RestoreComplete(TDriveNumber aDrive);
-
-private:
-
-    CMidp2BackupPlugin();
-
-    void ConstructL();
-
-    /**
-     * This method is called to get the unique Id of the current MMC
-     *
-     * @return The Id of the MMC, or 0, if no MMC is inserted
-     */
-    TUint MmcIdL();
-
-    /**
-     * This method is called to process the content of the buffer
-     * provided in active phase of restore
-     *
-     * @param aBuffer the buffer to process
-     */
-    void ProcessBufferL(RDesReadStream& stream);
-
-    /**
-     * This method is called to restore the Java Registry entries
-     * on the MMC, if needed
-     */
-    void RestoreMmcRegistryL();
-
-    /**
-     * This method creates the path for the Java Registry entries on
-     * the specified MMC
-     *
-     * @param [out] aPathName path of the entries of the MMC
-     * @param aDrive drive of the MMC
-     * @param aUniqueId Unique Id of the MMC
-     */
-    void CreateMmcPath(TDes& aPathName,
-                       TInt aDrive,
-                       TUint aUniqueId);
-
-    /**
-     * This method gets the path for the next icon file to be backed up
-     *
-     * @param [out] aCurrentUid Uid of the next icon
-     * @param [out] aFullFileName path of the next icon
-     * @return EFalse if there are no more icons in the array, ETrue
-     *         otherwise
-     */
-    TBool NextIcon(TUid& aCurrentUid, HBufC*& aFullFileName);
-
-    /**
-     * Process buffer when restore state is EFirstBuffer
-     *
-     * @param aStream readstream of buffer to process
-     * @param aBufferSpaceLeft space left of buffer to be processed
-     */
-    void ProcessFirstBufferL(RDesReadStream& aStream, TInt& aBufferSpaceLeft);
-
-    /**
-     * Process buffer when restore state is EInIcon
-     *
-     * @param aStream readstream of buffer to process
-     * @param aBufferSpaceLeft space left of buffer to be processed
-     */
-    void ProcessInIconL(RDesReadStream& aStream, TInt& aBufferSpaceLeft);
-
-    /**
-     * Process buffer when restore state is EInSize
-     *
-     * @param aStream readstream of buffer to process
-     * @param aBufferSpaceLeft space left of buffer to be processed
-     */
-    void ProcessInSizeL(RDesReadStream& aStream, TInt& aBufferSpaceLeft);
-
-    /**
-     * Resets the array of icons to be backed up
-     */
-    void ResetIconArray();
-
-private: // data
-
-    /**
-     * File session
-     * Own.
-     */
-    RFs iFs;
-
-    /**
-     * AppArcBackupUtil object for AppArc operations
-     * Own.
-     */
-    CAppArcBackupUtil* iAppArcUtil;
-
-    /**
-     * StorageBackupUtil object for storage B&R
-     * Own.
-     */
-    CStorageBackupUtil* iStorageBackupUtil;
-    /**
-     * The drive that is backed up or restored currently
-     * Own.
-     */
-    TDriveNumber iDrive;
-
-    /**
-     * Id of backed up drive, gets its value from restored data
-     * Own.
-     */
-    TInt32 iBackupDrive;
-
-    /**
-     * Id of backed up MMC, gets its value from restored data
-     * Own.
-     */
-    TUint32 iBackupMmc;
-
-    /**
-     * State of streaming during restore
-     * Own.
-     */
-    TInt iRestoreState;
-
-    /**
-     * Shows if it's the first call to GetBackupDataSectionL
-     * Own.
-     */
-    TBool iFirstCallToGetBackupDataSection;
-
-    /**
-     * Shows if Backup of storage data is finished or not
-     * Own.
-     */
-    TBool iStorageDataBackup;
-
-    /**
-     * Shows if Restore of storage data is finished or not
-     * Own.
-     */
-    TBool iStorageDataRestore;
-
-    /**
-     * Shows if Java version information is already written or not
-     * Own
-     */
-    TBool iJavaVersionInfoWritten;
-
-    /**
-     * Shows if its the first call to restore data or not.
-     * Own.
-     */
-    TBool iFirstCallToRestoreBackupDataSection;
-
-    /**
-     * Stores the uids of the midlets whose icons are to be backed up.
-     * Own.
-     */
-    RArray<TUid> iIconUidArray;
-
-    /**
-     * The current index in the icon file array
-     * Own.
-     */
-    TInt iIconFilePointer;
-
-    /**
-     * Stores the current icon file for streaming
-     * This descriptor will be streamed at subsequent calls of
-     * GetBackupDataSectionL()
-     * Own.
-     */
-    HBufC8* iIconDesc;
-
-    /**
-     * Stores the current icon file being restored
-     * Own.
-     */
-    HBufC8* iRestoreIconDesc;
-
-    /**
-     * Size of the icon to be still read during restore
-     * Own.
-     */
-    TInt32 iIconFileSizeLeft;
-
-    /**
-     * Current index of iIconDesc
-     * Own.
-     */
-    TInt iIconDescIndex;
-
-    /**
-     * Holds the remaining bytes in the buffer
-     * Own
-     */
-
-    TInt iBufferSpaceLeft;
-
-    /**
-     * Buffer for storing data size in restore
-     * Own.
-     */
-    TBuf8<4> iSizeBuffer;
-};
-
-
- 
-} //namespace backup
-} //namespace java
-
-#endif // MIDP2BACKUPPLUGIN_H
--- a/javamanager/javabackup/midp2backup_usif/src.s60/midp2backuppluginusif.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,490 +0,0 @@
-/*
-* 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:  Implementation of Midp2BackupPlugin with USIF 
-*
-*/
-
-#include <connect/sbdefs.h>
-#include <s32mem.h>
-#include <s32file.h>
-#include <f32file.h>
-#include <apgcli.h>
-
-#include "midp2backuppluginusif.h"
-#include "midp2backupdataids.h"
-#include "javastoragebackuputil.h"
-#include "javaversionbackuputil.h"
-#include "javascrbackuputil.h"
-
-#include "javastoragenames.h"
-#include "javastorageentry.h"
-#include "javastorage.h"
-
-
-#include "javacommonutils.h"
-#include "logger.h"
-
-
-using namespace std;
-using namespace java::storage;
-using namespace java::backup;
-
-// ======== MEMBER FUNCTIONS ========
-
-CMidp2BackupPlugin::CMidp2BackupPlugin()
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin constructor");
-}
-
-void CMidp2BackupPlugin::ConstructL()
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::ConstructL");
-
-    iIconDescIndex = 0;
-    iBufferSpaceLeft = 0;
-    iFirstCallToGetBackupDataSection = ETrue;
-    iStorageDataBackup = ETrue;
-    iScrDataBackup = ETrue;
-    iStorageDataRestore = ETrue;
-    iJavaVersionInfoWritten = EFalse;
-    iRestoreState = EVersion;
-
-    User::LeaveIfError(iFs.Connect());
-    // to share file handles with AppArc
-    User::LeaveIfError(iFs.ShareProtected());
-
-    iStorageBackupUtil = CStorageBackupUtil::NewL();
-    
-    //iAppArcUtil = CAppArcBackupUtil::NewL(iFs);
-    
-    iScrBackupUtil = CScrBackupUtil::NewL();
-}
-
-CMidp2BackupPlugin* CMidp2BackupPlugin::NewL()
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::NewL");
-
-    CMidp2BackupPlugin* self = new(ELeave) CMidp2BackupPlugin();
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop();
-
-    return self;
-}
-
-CMidp2BackupPlugin::~CMidp2BackupPlugin()
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin destructor");
-
-    iFs.Close();
-    iIconUidArray.Close();
-    //delete iAppArcUtil;
-    delete iIconDesc;
-    delete iRestoreIconDesc;
-    delete iStorageBackupUtil;
-}
-
-// from base class CBackupPlugin
-
-void CMidp2BackupPlugin::PrepareForBURL(TInt aBackupStateValue)
-{
-    (void)aBackupStateValue;  // Just to suppress a warning in release builds
-    LOG1(EBackup, EInfo, "CMidp2BackupPlugin::PrepareForBURL, BUR state: %d", aBackupStateValue);
-}
-
-void CMidp2BackupPlugin::ReceiveSnapshotDataL(TDriveNumber /* aDrive */, TDesC8& /* aBuffer */, TBool /* aLastSection */)
-{
-    JELOG2(EBackup);
-    User::Leave(KErrNotSupported);
-}
-
-TUint CMidp2BackupPlugin::GetExpectedDataSize(TDriveNumber /* aDrive */)
-{
-    JELOG2(EBackup);
-    return 0;
-}
-
-void CMidp2BackupPlugin::GetSnapshotDataL(TDriveNumber /* aDrive */, TPtr8& /* aBuffer */, TBool& /* aFinished */)
-{
-    JELOG2(EBackup);
-    User::Leave(KErrNotSupported);
-}
-
-void CMidp2BackupPlugin::InitialiseGetBackupDataL(TDriveNumber aDrive)
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::InitialiseGetBackupDataL");
-    iDrive = aDrive;
-}
-
-void CMidp2BackupPlugin::GetBackupDataSectionL(TPtr8& aBuffer, TBool& aFinished)
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::GetBackupDataSectionL");
-
-    iBufferSpaceLeft = aBuffer.MaxLength();
-    RDesWriteStream stream(aBuffer);
-    CleanupClosePushL(stream);
-
-    if (!iJavaVersionInfoWritten)
-    {
-        JavaVersionBackupUtil::WriteJavaVersionL(stream);
-        iJavaVersionInfoWritten = ETrue;
-        iBufferSpaceLeft -= 8;
-    }
-
-    if (iStorageDataBackup)
-    {
-        iStorageBackupUtil->BackupStorageDataL(stream, iStorageDataBackup, iBufferSpaceLeft);
-        aFinished = EFalse;
-    }
-    else if(iScrDataBackup)
-    {
-        iScrBackupUtil->BackupScrDataL(stream,iScrDataBackup,iBufferSpaceLeft);
-        aFinished = EFalse;
-    }
-    
-    CleanupStack::PopAndDestroy(&stream);
-}
-
-
-void CMidp2BackupPlugin::InitialiseRestoreBaseDataL(TDriveNumber aDrive)
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::InitialiseRestoreBaseDataL");
-    iDrive = aDrive;
-}
-
-void CMidp2BackupPlugin::RestoreBaseDataSectionL(TDesC8& aBuffer, TBool aFinished)
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::RestoreBaseDataSectionL");
-
-    iBufferSpaceLeft = aBuffer.Size();
-    RDesReadStream stream(aBuffer);
-    CleanupClosePushL(stream);
-    TBool versionCheck = ETrue;
-
-    if (((iRestoreState == EVersion) || (iRestoreState == EInstall)) && iBufferSpaceLeft >= 8)
-    {
-        if (iRestoreState == EInstall)
-        {
-            versionCheck = EFalse;
-        }
-        TUint ret = JavaVersionBackupUtil::CheckJavaVersionL(stream,iDrive,versionCheck);
-        if (1==ret)
-        {
-            // Here set the satus to restore finished, so that control goes back to SBE & SBE calls B&R for another drive
-            iRestoreState = EInstall;
-        }
-        else
-        {
-            /* version information has been written to stream.
-             So change restore state to restore storage data  */
-            iRestoreState = EStorage;
-        }
-        // version information is of length 8 bytes.
-        iBufferSpaceLeft -= 8;
-    }
-
-    if (iRestoreState == EStorage)
-    {
-        iStorageBackupUtil -> RestoreStorageDataL(stream, iRestoreState, iBufferSpaceLeft);
-    }
-
-    if(iRestoreState == EScr)
-        {
-            iScrBackupUtil->RestoreScrDataL(stream,iRestoreState,iBufferSpaceLeft); 
-        }
-    // Only at first call
-    if ((iRestoreState != EScr && iRestoreState != EVersion) && (iRestoreState != EInstall))
-    {/*
-        if (iRestoreState == EAppArc)
-        {
-            // Making AppArc deregistrations
-            TRAPD(err, iAppArcUtil->DeregisterAppsL(iDrive));
-
-            if (err)
-            {
-                ELOG(EBackup, "Leave in deregistering apps");
-            }
-        }
-
-        // Process the data buffer for restore
-        ProcessBufferL(stream);
-
-        if (aFinished)
-        {
-            // Set state to EStorage
-            iRestoreState = EStorage;
-        }
-   */ }
-
-    aFinished = ETrue;
-    CleanupStack::PopAndDestroy(&stream);
-}
-
-void CMidp2BackupPlugin::InitialiseRestoreIncrementDataL(TDriveNumber /* aDrive */)
-{
-    JELOG2(EBackup);
-    User::Leave(KErrNotSupported);
-}
-
-void CMidp2BackupPlugin::RestoreIncrementDataSectionL(TDesC8& /* aBuffer */, TBool /* aFinished */)
-{
-    JELOG2(EBackup);
-    User::Leave(KErrNotSupported);
-}
-
-void CMidp2BackupPlugin::RestoreComplete(TDriveNumber /* aDrive */)
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::RestoreComplete");
-}
-
-TUint CMidp2BackupPlugin::MmcIdL()
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::MmcIdL()");
-
-    TVolumeInfo* volumeInfo = new(ELeave) TVolumeInfo();
-
-    TInt err = iFs.Volume(*volumeInfo, iDrive);
-
-    if (!err)
-    {
-        TUint mmcId = volumeInfo->iUniqueID;
-        return mmcId;
-    }
-    else
-    {
-        return 0;
-    }
-
-
-}
-/*
-void CMidp2BackupPlugin::ProcessBufferL(RDesReadStream& stream)
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::ProcessBuffer()");
-
-    // Cycle until there's data in the buffer
-    while (iBufferSpaceLeft > 0)
-    {
-        switch (iRestoreState)
-        {
-        case EAppArc:
-            ProcessFirstBufferL(stream, iBufferSpaceLeft);
-            break;
-
-        case EInIcon:
-            ProcessInIconL(stream, iBufferSpaceLeft);
-            break;
-
-        case EInSize:
-            ProcessInSizeL(stream, iBufferSpaceLeft);
-            break;
-
-        default:
-            CleanupStack::PopAndDestroy(&stream);
-            User::Leave(KErrNotSupported);
-        }
-    }
-}
-*/
-
-_LIT(KStarWildCard, "*.*");
-
-void CMidp2BackupPlugin::RestoreMmcRegistryL()
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::RestoreMmcRegistry()");
-
-    /* If backed up MMC is not the same as the current MMC, copy the entries
-       from the directory of the backed up MMC to the directory
-       of the current MMC */
-    TUint32 mmc = MmcIdL();
-
-    if (iBackupMmc != mmc)
-    {
-        // Create path to old place
-        TPath path_old;
-        CreateMmcPath(path_old, iDrive, iBackupMmc);
-
-        // Create path to new place
-        TPath path_new;
-        CreateMmcPath(path_new, iDrive, mmc);
-
-        // Get old files list
-        CFileMan* fileMan = CFileMan::NewL(iFs);
-
-        CleanupStack::PushL(fileMan);
-
-        // Copy to new place
-        iFs.MkDir(path_new);
-        path_old.Append(KStarWildCard);
-        TInt  err = fileMan->Copy(path_old, path_new);
-
-        ILOG1(EBackup, "File copy, status: %d", err);
-
-        User::LeaveIfError(err);
-
-        CleanupStack::PopAndDestroy();
-    }
-}
-
-_LIT(KPrivatePath, "C:\\private\\");
-
-void CMidp2BackupPlugin::CreateMmcPath(TDes& aPathName, TInt aDrive, TUint aUniqueId)
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::CreateMmcPath()");
-
-    aPathName.Zero();
-    aPathName.Append(KPrivatePath);
-    aPathName.AppendNum(KRegistryServerUid, EHex);
-    aPathName.Append(KPathDelimiter);
-
-    // append drive name
-    TDriveUnit driveUnit(aDrive);
-    aPathName.Append(driveUnit.Name().Left(1));
-    aPathName.Append(KPathDelimiter);
-
-    TUint64 id = aUniqueId;
-    aPathName.AppendNum(id, EHex);
-    aPathName.Append(KPathDelimiter);
-}
-/*
-TBool CMidp2BackupPlugin::NextIcon(TUid& aCurrentUid, HBufC*& aFullFileName)
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::NextIcon()");
-
-    if (iIconUidArray.Count() > iIconFilePointer)
-    {
-        aCurrentUid = iIconUidArray[iIconFilePointer];
-        iAppArcUtil->GetIconFilename(iIconUidArray[iIconFilePointer], aFullFileName);
-        iIconFilePointer++;
-        return ETrue;
-    }
-    else
-    {
-        // There are no more icon files
-        return EFalse;
-    }
-}
-
-void CMidp2BackupPlugin::ProcessFirstBufferL(RDesReadStream& aStream, TInt& aBufferSpaceLeft)
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::ProcessFirstBuffer()");
-
-    if (iDrive >= EDriveE && iDrive <= EDriveZ)
-    {
-        // Read MMC id and restore MMC entries if needed
-        iBackupMmc = aStream.ReadUint32L();
-        aBufferSpaceLeft -= sizeof(iBackupMmc);
-        LOG1(EBackup, EInfo, "Read MMC Id: %u", iBackupMmc);
-        RestoreMmcRegistryL();
-    }
-    if (aBufferSpaceLeft >= sizeof(TInt32))
-    {
-        iIconFileSizeLeft = aStream.ReadInt32L();
-        aBufferSpaceLeft -= sizeof(iIconFileSizeLeft);
-        iRestoreIconDesc = HBufC8::NewL(iIconFileSizeLeft);
-        iRestoreState = EInIcon;
-    }
-    else
-    {
-        // No more data to read
-        aBufferSpaceLeft = 0;
-    }
-}
-
-void CMidp2BackupPlugin::ProcessInIconL(RDesReadStream& aStream, TInt& aBufferSpaceLeft)
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::ProcessInIcon()");
-
-    TPtr8 restoreIconPtr = iRestoreIconDesc->Des();
-    HBufC8* tempDesc = HBufC8::NewL(iIconFileSizeLeft);
-    CleanupStack::PushL(tempDesc);
-    TPtr8 tempPtr = tempDesc->Des();
-
-    // Icon cannot be read fully
-    if (iIconFileSizeLeft > aBufferSpaceLeft)
-    {
-        aStream.ReadL(tempPtr, aBufferSpaceLeft);
-        restoreIconPtr.Append(tempPtr);
-        iIconFileSizeLeft -= aBufferSpaceLeft;
-        aBufferSpaceLeft = 0;
-        iRestoreState = EInIcon;
-    }
-    // Icon can be read fully
-    else
-    {
-        aStream.ReadL(tempPtr, iIconFileSizeLeft);
-        restoreIconPtr.Append(tempPtr);
-        aBufferSpaceLeft -= iIconFileSizeLeft;
-        iRestoreState = EInSize;
-
-        TRAPD(err, iAppArcUtil->RegisterAppL(restoreIconPtr, iDrive));
-
-        if (err)
-        {
-            ELOG(EBackup, "Registerin application to AppArc failed.");
-        }
-    }
-
-    CleanupStack::PopAndDestroy(tempDesc);
-}
-
-void CMidp2BackupPlugin::ProcessInSizeL(RDesReadStream& aStream, TInt& aBufferSpaceLeft)
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::ProcessInSize()");
-
-    if (aBufferSpaceLeft >= sizeof(TInt32))
-    {
-        if (iSizeBuffer.Size() != 0)
-        {
-            // Read leftover part of size
-            TInt readData = sizeof(TInt32) - iSizeBuffer.Size();
-            aStream.ReadL(iSizeBuffer, readData);
-            RMemReadStream sizeStream(iSizeBuffer.Ptr(), 4);
-            CleanupClosePushL(sizeStream);
-            iIconFileSizeLeft = sizeStream.ReadInt32L();
-            CleanupStack::PopAndDestroy(&sizeStream);
-            aBufferSpaceLeft -= sizeof(readData);
-        }
-        else
-        {
-            // Read size in full
-            iIconFileSizeLeft = aStream.ReadInt32L();
-            aBufferSpaceLeft -= sizeof(iIconFileSizeLeft);
-        }
-
-        delete iRestoreIconDesc;
-        iRestoreIconDesc = NULL;
-        iRestoreIconDesc = HBufC8::NewL(iIconFileSizeLeft);
-        iRestoreState = EInIcon;
-    }
-    else
-    {
-        // Read first byte(s) of size
-        aStream.ReadL(iSizeBuffer, aBufferSpaceLeft);
-        aBufferSpaceLeft = 0;
-    }
-}
-
-void CMidp2BackupPlugin::ResetIconArray()
-{
-    LOG(EBackup, EInfo, "CMidp2BackupPlugin::ResetIconArray()");
-
-    // Remove all entries
-    while (iIconUidArray.Count())
-    {
-        iIconUidArray.Remove(0);
-    }
-}
-*/
-
--- a/javamanager/javabackup/midp2backup_usif/src.s60/midp2backuppluginusif.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,411 +0,0 @@
-/*
-* 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:  Header file for CMidp2BackupPlugin class with USIF changes
-*
-*/
-#ifndef MIDP2BACKUPPLUGINUSIF_H_
-#define MIDP2BACKUPPLUGINUSIF_H_
-
-#include "backupplugin.h"
-#include <apadef.h>
-#include "logger.h"
-
-class RDesWriteStream;
-class RDesReadStream;
-
-namespace java
-{
-namespace backup
-{
-
-
-class CJavaVersionBackupUtil;
-class CStorageBackupUtil;
-class CScrBackupUtil;
-
-
-/**
- *  CMidp2BackupPlugin class is handling backup and restore operations
- *  for MIDlets
- *
- *  This class is instantiated when a BUR operation is starting.
- */
-class CMidp2BackupPlugin : public CBackupPlugin
-{
-
-public:
-
-    /**
-     * Instantiates an object of this type
-     */
-    static CMidp2BackupPlugin* NewL();
-
-    ~CMidp2BackupPlugin();
-
-
-    // from base class CBackupPlugin
-
-    /**
-     * This method is called when a backup or restore operation is
-     * starting. Preparations can be done to prepare for BUR.
-     *
-     * @param aBackupStateValue the value of the current backup state
-     */
-    void PrepareForBURL(TInt aBackupStateValue);
-
-    /**
-     * This method receives all or part of a snapshot of data to allow
-     * calculation of an incremental backup.  The snapshot is one that
-     * was previously supplied by the data owner.  The snapshot data
-     * should be read from the location supplied. The snapshot data may
-     * be larger than the location supplied in which case the routine
-     * will be called repeatedly until all data has been supplied.
-     *
-     * Snapshot data will also be supplied as part of a restore operation
-     *
-     * @param aDrive the drive being backed up
-     * @param aBuffer a pointer to the base of the location from whence
-     *        data can be copied.
-     * @param aLastSection ETrue if this is the last section of snapshot
-     *        data, else EFalse.
-     */
-    void ReceiveSnapshotDataL(TDriveNumber aDrive,
-                              TDesC8& aBuffer,
-                              TBool aLastSection);
-
-    /**
-     * This method returns the expected size of backup data that will be
-     * supplied. If an incremental backup is underway then this method
-     * will not be called until after ReceiveSnapshotDataL().
-     * The size data will be used for the purpose of tracking progess
-     * during a backup. If it is inaccurate then the user may see
-     * irregular progress but the actual backup data will not be
-     * affected so it is acceptable to return an estimated value.
-     *
-     * @param aDrive the drive being backed up.
-     * @return the size of the data that will be returned
-     */
-    TUint GetExpectedDataSize(TDriveNumber aDrive);
-
-    /**
-     * This method returns a snapshot of data to accompany a backup. The
-     * snapshot is expected to contain details on files / data being
-     * backed up. The format of the snapshot is only meaningful to the
-     * data owner. The snapshot will be supplied if the data owner is
-     * asked for an incremental backup and for a restore operation. The
-     * snapshot data should be copied to the location supplied.
-     *
-     * The snapshot data may be larger than the location supplied in
-     * which case the routine will be called repeatedly until all data
-     * has been retrieved.
-     *
-     * @param aDrive the drive being backed up
-     * @param aBuffer a pointer to the base of the location where data
-     *        can be copied.
-     * @param aFinished on return ETrue if all data has been returned
-     *        for this drive, else EFalse.
-     */
-    void GetSnapshotDataL(TDriveNumber aDrive,
-                          TPtr8& aBuffer,
-                          TBool& aFinished);
-
-    /**
-     * This method prepares the implementor to return backup data. It
-     * will be followed by a sequence of calls to request the actual
-     * data.
-     *
-     * @param aDrive the drive being backed up.
-     */
-    void InitialiseGetBackupDataL(TDriveNumber aDrive);
-
-    /**
-     * This method requests a section of backup data.
-     * InitialiseGetBackupDataL() will have been called previously to
-     * specify the drive concerned.  The data returned may be base or
-     * incremental depending on the type of backup and the capability of
-     * the data owner.
-     *
-     * @param aBuffer a pointer to the base of the location where data
-     *        can be copied.
-     * @param aFinished on return ETrue if all data has been returned
-     *        for this drive, else EFalse.
-     */
-    void GetBackupDataSectionL(TPtr8& aBuffer,
-                               TBool& aFinished);
-
-    /**
-     * This method prepares the implementor to receive base restore data
-     * for a drive. It will be followed by a sequence of calls to supply
-     * the actual data.
-     *
-     * @param aDrive the drive being restored.
-     */
-    void InitialiseRestoreBaseDataL(TDriveNumber aDrive);
-
-    /**
-     * This method receives a section of base restore data.
-     * InitialiseRestoreBaseDataL() will have been called previously to
-     * specify the drive concerned.
-     *
-     * @param aBuffer a pointer to the base of the location whence data
-     *        can be read.
-     * @param aFinished ETrue if all data has been returned for this
-     *        drive, else EFalse.
-     */
-    void RestoreBaseDataSectionL(TDesC8& aBuffer,
-                                 TBool aFinished);
-
-    /**
-     * This method prepares the implementor to receive incremental
-     * restore data for a drive. It will be followed by a sequence
-     * of calls to supply the actual data.  If multiple increments
-     * are supplied then this methid will be called before each increment
-     *
-     * @param aDrive the drive being restored.
-     */
-    void InitialiseRestoreIncrementDataL(TDriveNumber aDrive);
-
-    /**
-     * This method receives a section of increment restore data.
-     * InitialiseRestoreIncrementDataL() will have been called
-     * previously to specify the drive concerned.
-     *
-     * @param aBuffer a pointer to the base of the location whence data
-     *        can be read.
-     * @param aFinished ETrue if all data has been returned for this
-     *        increment, else EFalse.
-     */
-    void RestoreIncrementDataSectionL(TDesC8& aBuffer,
-                                      TBool aFinished);
-
-    /**
-     * This method is called when all data to be restored has been
-     * supplied.
-     *
-     * @param aDrive the drive being restored.
-     */
-    void RestoreComplete(TDriveNumber aDrive);
-
-private:
-
-    CMidp2BackupPlugin();
-
-    void ConstructL();
-
-    /**
-     * This method is called to get the unique Id of the current MMC
-     *
-     * @return The Id of the MMC, or 0, if no MMC is inserted
-     */
-    TUint MmcIdL();
-
-    /**
-     * This method is called to process the content of the buffer
-     * provided in active phase of restore
-     *
-     * @param aBuffer the buffer to process
-     */
-    void ProcessBufferL(RDesReadStream& stream);
-
-    /**
-     * This method is called to restore the Java Registry entries
-     * on the MMC, if needed
-     */
-    void RestoreMmcRegistryL();
-
-    /**
-     * This method creates the path for the Java Registry entries on
-     * the specified MMC
-     *
-     * @param [out] aPathName path of the entries of the MMC
-     * @param aDrive drive of the MMC
-     * @param aUniqueId Unique Id of the MMC
-     */
-    void CreateMmcPath(TDes& aPathName,
-                       TInt aDrive,
-                       TUint aUniqueId);
-
-    /**
-     * This method gets the path for the next icon file to be backed up
-     *
-     * @param [out] aCurrentUid Uid of the next icon
-     * @param [out] aFullFileName path of the next icon
-     * @return EFalse if there are no more icons in the array, ETrue
-     *         otherwise
-     */
-    //TBool NextIcon(TUid& aCurrentUid, HBufC*& aFullFileName);
-
-    /**
-     * Process buffer when restore state is EFirstBuffer
-     *
-     * @param aStream readstream of buffer to process
-     * @param aBufferSpaceLeft space left of buffer to be processed
-     */
-   // void ProcessFirstBufferL(RDesReadStream& aStream, TInt& aBufferSpaceLeft);
-
-    /**
-     * Process buffer when restore state is EInIcon
-     *
-     * @param aStream readstream of buffer to process
-     * @param aBufferSpaceLeft space left of buffer to be processed
-     */
-   // void ProcessInIconL(RDesReadStream& aStream, TInt& aBufferSpaceLeft);
-
-    /**
-     * Process buffer when restore state is EInSize
-     *
-     * @param aStream readstream of buffer to process
-     * @param aBufferSpaceLeft space left of buffer to be processed
-     */
-    //void ProcessInSizeL(RDesReadStream& aStream, TInt& aBufferSpaceLeft);
-
-    /**
-     * Resets the array of icons to be backed up
-     */
-    //void ResetIconArray();
-
-private: // data
-
-    /**
-     * File session
-     * Own.
-     */
-    RFs iFs;
-
-    /**
-     * StorageBackupUtil object for storage B&R
-     * Own.
-     */
-    CStorageBackupUtil* iStorageBackupUtil;
-    /**
-     * CScrBackupUtil object for SCR B&R
-     * Own.
-     */
-    CScrBackupUtil* iScrBackupUtil;
-    /**
-     * The drive that is backed up or restored currently
-     * Own.
-     */
-    TDriveNumber iDrive;
-
-    /**
-     * Id of backed up drive, gets its value from restored data
-     * Own.
-     */
-    TInt32 iBackupDrive;
-
-    /**
-     * Id of backed up MMC, gets its value from restored data
-     * Own.
-     */
-    TUint32 iBackupMmc;
-
-    /**
-     * State of streaming during restore
-     * Own.
-     */
-    TInt iRestoreState;
-
-    /**
-     * Shows if it's the first call to GetBackupDataSectionL
-     * Own.
-     */
-    TBool iFirstCallToGetBackupDataSection;
-
-    /**
-     * Shows if Backup of storage data is finished or not
-     * Own.
-     */
-    TBool iStorageDataBackup;
-    /**
-     * Shows if Backup of SCR is finished or not
-     * Own.
-     */
-    TBool iScrDataBackup;
-
-    /**
-     * Shows if Restore of storage data is finished or not
-     * Own.
-     */
-    TBool iStorageDataRestore;
-
-    /**
-     * Shows if Java version information is already written or not
-     * Own
-     */
-    TBool iJavaVersionInfoWritten;
-
-    /**
-     * Shows if its the first call to restore data or not.
-     * Own.
-     */
-    TBool iFirstCallToRestoreBackupDataSection;
-
-    /**
-     * Stores the uids of the midlets whose icons are to be backed up.
-     * Own.
-     */
-    RArray<TUid> iIconUidArray;
-
-    /**
-     * The current index in the icon file array
-     * Own.
-     */
-    TInt iIconFilePointer;
-
-    /**
-     * Stores the current icon file for streaming
-     * This descriptor will be streamed at subsequent calls of
-     * GetBackupDataSectionL()
-     * Own.
-     */
-    HBufC8* iIconDesc;
-
-    /**
-     * Stores the current icon file being restored
-     * Own.
-     */
-    HBufC8* iRestoreIconDesc;
-
-    /**
-     * Size of the icon to be still read during restore
-     * Own.
-     */
-    TInt32 iIconFileSizeLeft;
-
-    /**
-     * Current index of iIconDesc
-     * Own.
-     */
-    TInt iIconDescIndex;
-
-    /**
-     * Holds the remaining bytes in the buffer
-     * Own
-     */
-
-    TInt iBufferSpaceLeft;
-
-    /**
-     * Buffer for storing data size in restore
-     * Own.
-     */
-    TBuf8<4> iSizeBuffer;
-};
-
-
- 
-} //namespace backup
-} //namespace java
-#endif /* MIDP2BACKUPPLUGINUSIF_H_ */
--- a/javamanager/javabackup/midp2backup_usif/src.s60/proxy.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
-* Copyright (c) 2008-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:  This module contains the ECom plugin UID and mappings.
-*
-*/
-
-
-// system include files
-#include <e32std.h>
-#include <ecom/implementationproxy.h>
-
-#include "midp2backupplugin.h"
-
-
-
-// Map the interface UIDs to implementation factory functions
-const TImplementationProxy ImplementationTable[] =
-{
-    IMPLEMENTATION_PROXY_ENTRY(KBackupEcomImplUid, CMidp2BackupPlugin::NewL)
-};
-
-// Exported proxy for instantiation method resolution
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
-{
-    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-    return ImplementationTable;
-}
-
--- a/javamanager/javacaptain/bld.inf	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javacaptain/bld.inf	Wed Oct 13 14:23:59 2010 +0300
@@ -23,5 +23,4 @@
 #include "extensionplugins/javacertstore/build/bld.inf"    
 #include "extensionplugins/storageserver/build/bld.inf"    
 #include "extensionplugins/settingslistener/build/bld.inf"    
-#include "extensionplugins/preinstallerstarter/build/bld.inf"    
-#include "extensionplugins/autostarter/build/bld.inf"  
+#include "extensionplugins/preinstallerstarter/build/bld.inf"  
--- a/javamanager/javacaptain/build/javacaptain.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javacaptain/build/javacaptain.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -35,7 +35,7 @@
 LIBS +=  -ljavacomms -ljavaipc -ljavafileutils -ljavastorage
 
 symbian {
-    LIBS += -lefsrv
+    LIBS += -lefsrv -lAknNotify
     TARGET.EPOCHEAPSIZE  = 0x2800 0x100000
     TARGET.EPOCSTACKSIZE = 0x2000
     TARGET.UID2          = 0x200211DC
--- a/javamanager/javacaptain/build/javacaptain_0x200211DC.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javacaptain/build/javacaptain_0x200211DC.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -47,7 +47,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -55,6 +54,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../rtcplugins/midp/inc
@@ -100,6 +100,7 @@
 LIBRARY		javafileutils.lib
 LIBRARY		javastorage.lib
 LIBRARY		efsrv.lib
+LIBRARY		AknNotify.lib
 LIBRARY		javautils.lib
 LIBRARY		libpthread.lib
 LIBRARY		libstdcppv5.lib
@@ -130,7 +131,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javamanager/javacaptain/extensionplugins/autostarter/build/bld.inf	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-/*
-* 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: Generated bld.inf -file
-*
-*/
-
-PRJ_PLATFORMS
-default
-
-PRJ_MMPFILES  
-javacaptain_ext_autostarter_0x2002EA7E.mmp 
--- a/javamanager/javacaptain/extensionplugins/autostarter/build/bwins/javacaptain_ext_autostarteru.def	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	?findDllMethod@@YAP6APAXXZPBD@Z @ 1 NONAME ; void * (*)(void) findDllMethod(char const *)
-
--- a/javamanager/javacaptain/extensionplugins/autostarter/build/eabi/javacaptain_ext_autostarteru.def	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	_Z13findDllMethodPKc @ 1 NONAME
-
--- a/javamanager/javacaptain/extensionplugins/autostarter/build/javacaptain_ext_autostarter.pro	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-#
-# Copyright (c) 2010 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: autostarter is plugin for Java Captain that starts auto start
-#   MIDlets
-#
-
-TEMPLATE=lib
-TARGET=javacaptain_ext_autostarter
-CONFIG += omj stl
-CONFIG -= qt
-
-
-LIBS += -ljavacomms -ljavastorage -lapparc -lapgrfx
-
-include(../../../../../build/omj.pri)
--- a/javamanager/javacaptain/extensionplugins/autostarter/build/javacaptain_ext_autostarter_0x2002EA7E.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-/*
-* 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: Generated file - do not edit manually
-*
-*/
-
-// ==============================================================================
-// Generated by qmake (2.01a) (Qt 4.6.4) on: (date)
-// This file is generated by qmake and should not be modified by the
-// user.
-//  Name        : javacaptain_ext_autostarter.mmp
-// ==============================================================================
-
-TARGET		javacaptain_ext_autostarter.dll
-TARGETTYPE		DLL
-
-UID		0x1000008d 0x2002EA7E
-SECUREID		0x2002EA7E
-
-EPOCALLOWDLLDATA
-
-
-// Qt Macros
-MACRO		UNICODE
-MACRO		QT_KEYPAD_NAVIGATION
-MACRO		QT_SOFTKEYS_ENABLED
-MACRO		QT_USE_MATH_H_FLOATS
-MACRO		RD_JAVA_SYMBIAN_TARGET
-MACRO		RD_JAVA_S60_RELEASE_9_2
-MACRO		RD_JAVA_S60_RELEASE_9_2_ONWARDS
-MACRO		RD_JAVA_S60_RELEASE_5_0_ONWARDS
-MACRO		RD_JAVA_STDCPPV5
-MACRO		RD_JAVA_EPOCALLOWDLLDATA_FIX
-MACRO		RD_JAVA_HTTP_EMC_ENABLED
-MACRO		RD_JAVA_NGA_ENABLED
-MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
-MACRO		RD_JAVA_OPENC_BETA_PATCH
-MACRO		RD_JAVA_INSTALLERUI_ENABLED
-MACRO		RD_JAVA_PREWARM
-MACRO		RD_JAVA_ADVANCED_TACTILE_FEEDBACK
-MACRO		RD_JAVA_MIDPRMS_DB
-MACRO		__SYMBIAN32__
-MACRO		J9EPOC32
-
-SYSTEMINCLUDE		../../../../../../../mw/qt/mkspecs/common/symbian
-SYSTEMINCLUDE		../inc
-SYSTEMINCLUDE		../../../inc
-SYSTEMINCLUDE		../../../../inc
-SYSTEMINCLUDE		../../../../../inc
-SYSTEMINCLUDE		../src.s60
-SYSTEMINCLUDE		/epoc32/include/stdapis/stlportv5
-SYSTEMINCLUDE		/epoc32/include/mw
-SYSTEMINCLUDE		.
-
-SOURCEPATH 	../src.s60
-SOURCE		autostarter.cpp
-SOURCE		lookup.cpp
-
-
-LIBRARY		javacomms.lib
-LIBRARY		javastorage.lib
-LIBRARY		apparc.lib
-LIBRARY		apgrfx.lib
-LIBRARY		javautils.lib
-LIBRARY		libpthread.lib
-LIBRARY		libstdcppv5.lib
-LIBRARY		libc.lib
-LIBRARY		libm.lib
-LIBRARY		euser.lib
-LIBRARY		libdl.lib
-LIBRARY		cone.lib
-LIBRARY		eikcore.lib
-LIBRARY		mediaclientaudio.lib
-LIBRARY		eikcoctl.lib
-LIBRARY		eiksrv.lib
-LIBRARY		avkon.lib
-LIBRARY		efsrv.lib
-LIBRARY		charconv.lib
-LIBRARY		ws32.lib
-LIBRARY		hal.lib
-LIBRARY		gdi.lib
-
-CAPABILITY		all -tcb 
-
-OPTION CW -wchar_t on
-OPTION ARMCC --visibility_inlines_hidden
-#if defined(ARMCC_4_0)
-OPTION ARMCC --import_all_vtbl
-#endif
-OPTION GCCE -fvisibility-inlines-hidden
-
-VERSION 10.525
-
-ARMFPU softvfp
-
-PAGED
-
-BYTEPAIRCOMPRESSTARGET
-
-USERINCLUDE .
-
-#include <platform_paths.hrh>
-
- APP_LAYER_SYSTEMINCLUDE
-
- OS_LAYER_LIBC_SYSTEMINCLUDE
-
- OS_LAYER_SSL_SYSTEMINCLUDE
-
-deffile ./~/javacaptain_ext_autostarter.def
-
- SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlportv5)
-
-SYSTEMINCLUDE /epoc32/build/jrt/javabuild/inc.javah
-
-#ifdef WINSCW
-
-LIBRARY ewsd.lib
-
-#endif
-
-STDCPP
-
-#ifdef WINSCW
-DEFFILE ./bwins/javacaptain_ext_autostarter.def
-#elif defined EABI
-DEFFILE ./eabi/javacaptain_ext_autostarter.def
-#endif
--- a/javamanager/javacaptain/extensionplugins/autostarter/inc/autostarter.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-/*
-* Copyright (c) 2010 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:  autostarter is Java Captain Symbian plugin that starts
-*               auto start Java applications after they have been installed
-*               and when the device boots.
-*
-*/
-
-#ifndef AUTOSTARTER_H
-#define AUTOSTARTER_H
-
-#include "javaosheaders.h"
-
-#include "eventconsumerinterface.h"
-#include "extensionplugininterface.h"
-
-namespace java
-{
-
-namespace captain
-{
-
-class CoreInterface;
-
-OS_NONSHARABLE_CLASS(AutoStarter) :  public EventConsumerInterface,
-        public ExtensionPluginInterface
-{
-public:
-    AutoStarter();
-    virtual ~AutoStarter();
-
-    // PluginInterface
-    virtual void startPlugin(CoreInterface* aCore);
-    virtual void stopPlugin();
-
-    // EventConsumerInterface
-    virtual void event(const std::string& eventProvider,
-                       java::comms::CommsMessage& aMsg);
-
-    // ExtensionPluginInterface methods
-    virtual EventConsumerInterface* getEventConsumer();
-
-private:
-    bool isMIDletPresent(const std::wstring& aUid);
-    bool startMIDletL(const std::wstring& aUid);
-    void checkMIDletsToBeStartedL();
-
-    CoreInterface* mCore;
-};
-
-} // namespace captain
-} // namespace java
-
-#endif // AUTOSTARTER_H
--- a/javamanager/javacaptain/extensionplugins/autostarter/src.s60/autostarter.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,328 +0,0 @@
-/*
-* Copyright (c) 2010 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:  autostarter is Java Captain Symbian plugin that starts
-*               auto start Java applications after they have been installed
-*               and when the device boots.
-*
-*/
-
-#include <apgcli.h> // for RApaLsSession
-#include <e32base.h>
-#include <f32file.h>
-#include <javastorage.h>
-#include <javastorageentry.h>
-#include <javastoragenames.h>
-#include <memory>
-
-#include "commsendpoint.h"
-#include "coreinterface.h"
-#include "javaprocessconstants.h"
-#include "javasymbianoslayer.h"
-#include "javauid.h"
-#include "javauids.h"
-#include "logger.h"
-#include "preinstallerstartermessages.h"
-#include "rtcinterface.h"
-#include "rtcmessages.h"
-
-#include "autostarter.h"
-
-
-using namespace java::storage;
-using namespace java::util;
-
-
-/**
- * Return pointer to ExtensionPluginInterface implementation for this
- * extension dll
- */
-java::captain::ExtensionPluginInterface* getExtensionPlugin()
-{
-    return new java::captain::AutoStarter();
-}
-
-namespace java  // codescanner::namespace
-{
-namespace captain  // codescanner::namespace
-{
-
-/**
- * Empty contructor
- */
-AutoStarter::AutoStarter() : mCore(0)
-{
-}
-
-/**
- * Empty destructor
- */
-AutoStarter::~AutoStarter()
-{
-}
-
-/**
- * Implement PluginInterface method
- */
-void AutoStarter::startPlugin(CoreInterface* core)
-{
-    LOG(EJavaCaptain, EInfo, "AutoStarter plugin started");
-
-    mCore = core;
-}
-
-/**
- * Implement PluginInterface method
- */
-void AutoStarter::stopPlugin()
-{
-    mCore = 0;
-}
-
-/**
- * Implement ExtensionPluginInterface method
- */
-EventConsumerInterface* AutoStarter::getEventConsumer()
-{
-    return this;
-}
-
-/**
- * Handle Java Captain events sent by Boot event provider or
- * preinstaller starter
- *
- * Implement EventConsumerInterface method
- */
-void AutoStarter::event(const std::string& eventProvider,
-                       java::comms::CommsMessage& aMsg)
-{
-    LOG1(EJavaCaptain, EInfo, "AutoStarter::event received, id %d", aMsg.getMessageId());
-
-    if (eventProvider == PREINSTALLER_EVENT_PROVIDER)
-    {
-        int exitStatus = 0;
-        getPreinstallerExitedMessageParams(aMsg, exitStatus);
-        LOG1(
-            EJavaCaptain,
-            EInfo,
-            "AutoStarter::event() preinstaller exited event received (status=%d)",
-            exitStatus);
-
-            // Start auto-start MIDlets
-            TRAPD(err, checkMIDletsToBeStartedL())
-            if (KErrNone != err)
-            {
-                ELOG1(EJavaCaptain, "AutoStarter::checkMIDletsToBeStartedL: leaved (%d)", err);
-            }
-    }
-}
-
-/**
- *
- *
- */
-void AutoStarter::checkMIDletsToBeStartedL()
-{
-    // Find all MIDlets with Nokia-MIDlet-auto-start
-    // APPLICATION_TABLE, if (AUTORUN == AUTOSTART_TRUE) || (AUTORUN == AUTOSTART_ONCE),
-    // call startMIDletL(ID)
-
-    LOG(EJavaCaptain, EInfo, "AutoStarter::checkMIDletsToBeStartedL called");
-
-    std::auto_ptr<JavaStorage> js(JavaStorage::createInstance());
-    try
-    {
-        js->open(JAVA_DATABASE_NAME);
-
-        // In Java Storage there is 'APPLICATION_TABLE' table that contains
-        // the Uid of the application in ID column. The value in column AUTORUN is
-        // one of the following AUTOSTART_FALSE (0), AUTOSTART_TRUE (1) or
-        // AUTOSTART_ONCE (2)
-
-        JavaStorageEntry attribute;
-        JavaStorageApplicationEntry_t findPattern;
-        JavaStorageApplicationList_t  foundEntries;
-
-        // Get all IDs from APPLICATION_TABLE where AUTORUN is AUTOSTART_TRUE
-        attribute.setEntry(AUTORUN, L"1");
-        findPattern.insert(attribute);
-        attribute.setEntry(ID, L"");
-        findPattern.insert(attribute);
-
-        js->search(APPLICATION_TABLE, findPattern, foundEntries);
-        findPattern.clear();
-
-        // Iterate through all found applications
-        JavaStorageApplicationList_t::const_iterator appIterator;
-        for (appIterator = foundEntries.begin(); appIterator != foundEntries.end(); ++appIterator)
-        {
-            std::wstring applicationId = appIterator->begin()->entryValue();
-
-            LOG1WSTR(EJavaCaptain, EInfo,
-                "AutoStarter::checkMIDletsToBeStartedL : going to start MIDlet, uid is %s",
-                applicationId);
-
-            startMIDletL(applicationId);
-        }
-        foundEntries.clear();
-
-
-        // Get all IDs from APPLICATION_TABLE where AUTORUN is AUTOSTART_ONCE
-        attribute.setEntry(AUTORUN, L"2");
-        findPattern.insert(attribute);
-        attribute.setEntry(ID, L"");
-        findPattern.insert(attribute);
-
-        js->search(APPLICATION_TABLE, findPattern, foundEntries);
-        findPattern.clear();
-
-        // Iterate through all found applications
-        for (appIterator = foundEntries.begin(); appIterator != foundEntries.end(); ++appIterator)
-        {
-            std::wstring applicationId = appIterator->begin()->entryValue();
-
-            LOG1WSTR(EJavaCaptain, EInfo,
-                "AutoStarter::checkMIDletsToBeStartedL : going to start MIDlet (once), uid is %s",
-                applicationId);
-
-            if (startMIDletL(applicationId))
-            {
-                // after starting MIDlet must set AUTORUN value to AUTOSTART_FALSE
-                JavaStorageApplicationEntry_t matchEntries;
-
-                JavaStorageApplicationEntry_t updateEntries;
-                JavaStorageEntry attribute;
-
-                attribute.setEntry(ID, applicationId);
-                matchEntries.insert(attribute);
-
-                attribute.setEntry(AUTORUN, L"0");
-                updateEntries.insert(attribute);
-
-                js->update(APPLICATION_TABLE, updateEntries, matchEntries);
-            }
-        }
-        foundEntries.clear();
-    }
-    catch (JavaStorageException& e)
-    {
-        ELOG1(EJavaCaptain,
-            "AutoStarter::checkMIDletsToBeStartedL: Java Storage exception %s", e.what());
-    }
-
-    try
-    {
-        js->close();
-    }
-    catch (JavaStorageException& e2)
-    {
-        WLOG1(EJavaCaptain,
-            "AutoStarter::checkMIDletsToBeStartedL: Java Storage exception "
-            "when closing storage %s", e2.what());
-    }
-}
-
-
-/**
- *
- *  @return true if launch succeeded, false is starting failed
- */
-bool AutoStarter::startMIDletL(const std::wstring& aUid)
-{
-    // Try to check whether the MIDlet is present (or whether it has been
-    // installed to a removable media that is not present now)
-    if (!isMIDletPresent(aUid))
-    {
-        return false;
-    }
-
-    // Start MIDlet
-    rtcLaunchInfo launchInfo(aUid);
-
-    bool launchSuccess = mCore->getRtc()->launch(launchInfo);
-    if (!launchSuccess)
-    {
-        ELOG(EJavaCaptain, "AutoStarter::startMIDletL: launching MIDlet failed");
-    }
-
-    return launchSuccess;
-}
-
-
-/**
- * Try to check whether the MIDlet is present (or whether it has been
- * installed to a removable media that is not present now)
- *
- * @return false if it is certain that the MIDlet is not present, true otherwise
- */
-bool AutoStarter::isMIDletPresent(const std::wstring& aUid)
-{
-    RApaLsSession apaSession;
-    TInt err = apaSession.Connect();
-    if (KErrNone != err)
-    {
-        // Cannot check presence from AppArc, try to start the MIDlet anyway
-        ELOG1(EJavaCaptain,
-              "AutoStarter::isMIDletPresent: RApaLsSession Connect error %d", err);
-        return true;
-    }
-    CleanupClosePushL(apaSession);
-
-    TUid appUid;
-    Uid javaUid(aUid);
-    err = uidToTUid(javaUid, appUid);
-    if (KErrNone != err)
-    {
-        WLOG1(EJavaCaptain,
-            "AutoStarter::isMIDletPresent: Cannot convert %S to TUid", aUid.c_str());
-        CleanupStack::PopAndDestroy(&apaSession); // apaSession
-        return true;
-    }
-
-    TUid appTypeUid;
-    err = apaSession.GetAppType(appTypeUid, appUid);
-    if (KErrNone != err)
-    {
-        if (KErrNotFound == err)
-        {
-            // The application is not present
-            WLOG1(EJavaCaptain,
-                "AutoStarter::isMIDletPresent: trying to start MIDlet %S that is not present",
-                aUid.c_str());
-            CleanupStack::PopAndDestroy(&apaSession); // apaSession
-            return false;
-        }
-
-        // Cannot check presence from AppArc, try to start the MIDlet anyway
-        ELOG1(EJavaCaptain,
-            "AutoStarter::isMIDletPresent: RApaLsSession GetAppType error %d", err);
-        CleanupStack::PopAndDestroy(&apaSession); // apaSession
-        return true;
-    }
-    else if (appTypeUid.iUid != KMidletApplicationTypeUid)
-    {
-        // The application is present but it is NOT a MIDlet
-        WLOG1(EJavaCaptain,
-            "AutoStarter::isMIDletPresent: tried to start application %S that is not MIDlet",
-            aUid.c_str());
-        CleanupStack::PopAndDestroy(&apaSession); // apaSession
-        return false;
-    }
-
-    CleanupStack::PopAndDestroy(&apaSession); // apaSession
-    return true;
-}
-
-
-} // namespace captain
-} // namespace java
--- a/javamanager/javacaptain/extensionplugins/autostarter/src.s60/lookup.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
-* Copyright (c) 2010 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:  lookup
-*
-*/
-
-#include <string> //For strcmp
-
-#include "javasymbianoslayer.h"
-#include "logger.h"
-
-#include "extensionplugininterface.h"
-
-using namespace java::captain;
-
-ExtensionPluginInterface* getExtensionPlugin();
-
-EXPORT_C FuncPtr findDllMethod(const char* funcName)
-{
-    FuncPtr ptr = 0;
-    if (funcName)
-    {
-        if (strcmp(funcName, "getExtensionPlugin") == 0)
-        {
-            ptr = (FuncPtr)getExtensionPlugin;
-        }
-    }
-    else
-    {
-        ELOG(EJavaCaptain,
-             "scrupdater extensionplugin findDllMethod() funcName == null");
-    }
-    return ptr;
-}
--- a/javamanager/javacaptain/extensionplugins/boot/src/booteventprovider.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javacaptain/extensionplugins/boot/src/booteventprovider.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -17,8 +17,6 @@
 
 #include <errno.h>
 #include <fcntl.h>
-#include <sys/types.h>
-#include <sys/stat.h>
 #include <unistd.h>
 #include <string.h>
 
--- a/javamanager/javacaptain/extensionplugins/config/build/javacaptain_ext_config_0x2002DC9E.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javacaptain/extensionplugins/config/build/javacaptain_ext_config_0x2002DC9E.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc
@@ -102,7 +102,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javamanager/javacaptain/extensionplugins/config/src/configextensionplugin.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javacaptain/extensionplugins/config/src/configextensionplugin.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -74,9 +74,6 @@
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
     mCore->loadExtensionPlugin("scrupdater");
 #endif // SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-    // This plugin implements support for auto-starting 
-    // Java applications
-    mCore->loadExtensionPlugin("autostarter");
 #endif // __SYMBIAN32__
     mCore->loadExtensionPlugin("boot");
     mCore->loadExtensionPlugin("mmc");
--- a/javamanager/javacaptain/extensionplugins/javacertstore/build/javacaptain_ext_javacertstore_0x2002DC9F.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javacaptain/extensionplugins/javacertstore/build/javacaptain_ext_javacertstore_0x2002DC9F.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc
@@ -111,7 +111,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javamanager/javacaptain/extensionplugins/javacertstore/inc/javacertstore.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javacaptain/extensionplugins/javacertstore/inc/javacertstore.h	Wed Oct 13 14:23:59 2010 +0300
@@ -69,6 +69,7 @@
 {
     std::string full_path;
     std::string hash;
+    std::string pkey;
     int state;
     bool disposable;
     bool disablable;
--- a/javamanager/javacaptain/extensionplugins/javacertstore/src.s60/smartcardcryptotokenreader.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javacaptain/extensionplugins/javacertstore/src.s60/smartcardcryptotokenreader.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -59,7 +59,7 @@
         NextState(Initialize());
         break;
     case EListTokenTypes:
-        NextState(ListTokenTypesL());
+        NextState(ListTokenTypes());
         break;
     case EOpenTokenType:
         NextState(OpenTokenType());
@@ -132,11 +132,11 @@
     return true;
 }
 
-bool SmartCardCryptoTokenReader::ListTokenTypesL()
+bool SmartCardCryptoTokenReader::ListTokenTypes()
 {
     TCTTokenTypeAttribute att = { KCTRemovable , 1 };
-    iSmartCardTokensAttributes.AppendL(att);
-    iSmartCardTokensInterfaces.AppendL(TUid::Uid(KInterfaceCertStore));
+    iSmartCardTokensAttributes.Append(att);
+    iSmartCardTokensInterfaces.Append(TUid::Uid(KInterfaceCertStore));
     TCTFindTokenTypesByInterfaceAndAttribute findByIAndA(
         iSmartCardTokensInterfaces.Array(), iSmartCardTokensAttributes.Array());
     CCTTokenTypeInfo::ListL(iSmartCardTokenTypes, findByIAndA);
--- a/javamanager/javacaptain/extensionplugins/javacertstore/src.s60/smartcardcryptotokenreader.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javacaptain/extensionplugins/javacertstore/src.s60/smartcardcryptotokenreader.h	Wed Oct 13 14:23:59 2010 +0300
@@ -61,7 +61,7 @@
     SmartCardCryptoTokenReader();
     void ConstructL();
     bool Initialize();
-    bool ListTokenTypesL();
+    bool ListTokenTypes();
     bool OpenTokenType();
     bool OpenToken();
     bool GetTokenInterface();
--- a/javamanager/javacaptain/extensionplugins/javacertstore/src/javacertstore.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javacaptain/extensionplugins/javacertstore/src/javacertstore.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -196,7 +196,8 @@
                 || (queryDisabled && iCertsMetadata[i]->state == STATE_DISABLED)
                 || (queryDeleted && iCertsMetadata[i]->state == STATE_DELETED))
                 && (hash.compare("") == 0
-                    || iCertsMetadata[i]->hash.compare(hash) == 0))
+                    || iCertsMetadata[i]->hash.compare(hash) == 0 
+                    || iCertsMetadata[i]->pkey.find(hash) == 0))
         {
             // what we return back depends on what was queried
             switch (query)
@@ -211,7 +212,14 @@
                 if (replyWithContent(replyMsg, *iCertsMetadata[i]))
                 {
                     // add also the ID and the state
-                    replyMsg << iCertsMetadata[i]->hash;
+                    if (iCertsMetadata[i]->pkey.size() > 0)
+                    {
+                        replyMsg << iCertsMetadata[i]->pkey;
+                    }
+                    else
+                    {
+                        replyMsg << iCertsMetadata[i]->hash;
+                    }
                     replyMsg << encodeState(iCertsMetadata[i]->disposable,
                                             iCertsMetadata[i]->disablable,
                                             iCertsMetadata[i]->state);
@@ -366,6 +374,7 @@
             const int READ_HASH = 4;
             const int READ_REMOVABLE = 5;
             const int READ_DISABLABLE = 6;
+            const int READ_PKEY = 7;
 
             // domain_name_info
             int domain_name_index = 0;
@@ -383,6 +392,10 @@
             bool removable = false;
             bool disablable = false;
 
+            // pkey info
+            int pkey_index = 0;
+            char pkey[50];
+
             // start&end separators for the metadata's keys
             bool key_ss = true;
             bool key_es = false;
@@ -417,6 +430,10 @@
                         op = READ_DISABLABLE;
                         key_ss = false;
                         break;
+                    case 'p':
+                        op = READ_PKEY;
+                        key_ss = false;
+                        break;
                     }
                 }
                 else
@@ -462,6 +479,11 @@
                                 disablable = true;
                             }
                             break;
+                        case READ_PKEY:
+                            pkey[pkey_index] = (char)retval;
+                            pkey_index++;
+                            pkey[pkey_index] = '\0';
+                            break;
                         }
                     }
                 }
@@ -470,6 +492,11 @@
                     && domain_category_index > 0
                     && hash_index > 0)
             {
+                if (pkey_index > 0)
+                {
+                    metadata->pkey = string(pkey, pkey_index);
+                    transform(metadata->pkey.begin(), metadata->pkey.end(), metadata->pkey.begin(), (int(*)(int)) tolower);
+                }
                 metadata->prot_domain_name = string(domain_name, domain_name_index);
                 metadata->prot_domain_category = string(domain_category, domain_category_index);
                 metadata->hash = string(hash, hash_index);
@@ -552,7 +579,8 @@
     // go through the certidicates and find the right one
     for (int i=0; i<no_certs; i++)
     {
-        if (cert_id.compare(iCertsMetadata[i]->hash) == 0)
+        if (cert_id.compare(iCertsMetadata[i]->hash) == 0 || 
+            iCertsMetadata[i]->pkey.find(cert_id) == 0)
         {
             switch (state)
             {
@@ -784,7 +812,8 @@
     bool found = false;
     for (int i=0; i<no_certs; i++)
     {
-        if (iCertsMetadata[i]->hash.compare(metadata->hash) == 0)
+        if (iCertsMetadata[i]->hash.compare(metadata->hash) == 0 
+            && iCertsMetadata[i]->pkey.find(metadata->pkey) == 0)
         {
             if (overwrite)
             {
--- a/javamanager/javacaptain/extensionplugins/javacertstore/tsrc.s60/build/javasmartcardcertsunittests.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javacaptain/extensionplugins/javacertstore/tsrc.s60/build/javasmartcardcertsunittests.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -14,8 +14,9 @@
 * Description: 
 *
 */
-
+// #include <oem/bldvariant.hrh>
 #include <data_caging_paths.hrh>
+//#include <domain/osextensions/platform_paths.hrh>
 #include <platform_paths.hrh>
 
 #include <../../../../../../inc/java_stdcpp_support_for_exe.hrh>
--- a/javamanager/javacaptain/extensionplugins/javacertstore/tsrc.s60/build/testsmartcardtokenplugin.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javacaptain/extensionplugins/javacertstore/tsrc.s60/build/testsmartcardtokenplugin.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -29,6 +29,9 @@
 CAPABILITY      CAP_ECOM_PLUGIN
 VENDORID        VID_DEFAULT
 
+systeminclude   /epoc32/include
+systeminclude   /epoc32/include/ecom
+
 sourcepath      ../src
 
 source          testsmartcardtokenplugin.cpp
--- a/javamanager/javacaptain/extensionplugins/javacertstore/tsrc.s60/src/101F5B72.rss	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javacaptain/extensionplugins/javacertstore/tsrc.s60/src/101F5B72.rss	Wed Oct 13 14:23:59 2010 +0300
@@ -14,7 +14,7 @@
 * Description: 
 *
 */
-#include <ecom/RegistryInfoV2.rh>
+#include <RegistryInfoV2.rh>
 #include <ct/InterfaceUID.hrh>
 
 // True
--- a/javamanager/javacaptain/extensionplugins/preinstallerstarter/build/bld.inf	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javacaptain/extensionplugins/preinstallerstarter/build/bld.inf	Wed Oct 13 14:23:59 2010 +0300
@@ -20,4 +20,3 @@
 
 PRJ_MMPFILES  
 javacaptain_ext_preinstallerstarter_0x2002DCA0.mmp 
-#include "exports.inf" 
--- a/javamanager/javacaptain/extensionplugins/preinstallerstarter/build/exports.inf	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-/*
-* Copyright (c) 2010 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: 
-*
-*/
-
-PRJ_EXPORTS
-../inc/preinstallerstartermessages.h    |../../../../../inc/preinstallerstartermessages.h
--- a/javamanager/javacaptain/extensionplugins/preinstallerstarter/build/javacaptain_ext_preinstallerstarter_0x2002DCA0.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javacaptain/extensionplugins/preinstallerstarter/build/javacaptain_ext_preinstallerstarter_0x2002DCA0.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc
@@ -101,7 +101,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javamanager/javacaptain/extensionplugins/preinstallerstarter/inc/preinstallerstarter.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javacaptain/extensionplugins/preinstallerstarter/inc/preinstallerstarter.h	Wed Oct 13 14:23:59 2010 +0300
@@ -33,8 +33,7 @@
 
 class CoreInterface;
 
-OS_NONSHARABLE_CLASS(PreinstallerStarter) :  public CActive,
-        public EventConsumerInterface,
+OS_NONSHARABLE_CLASS(PreinstallerStarter) :  public EventConsumerInterface,
         public ExtensionPluginInterface
 {
 public:
@@ -52,19 +51,11 @@
     // ExtensionPluginInterface methods
     virtual EventConsumerInterface* getEventConsumer();
 
-protected:
-    // CActive
-    virtual void RunL();
-    virtual void DoCancel();
-
 private:
     void startPreinstaller(TBool aIadBoot);
-#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
     void registerMidletApplicationTypeHandler();
-#endif
 
     CoreInterface* mCore;
-    RProcess*      mPreinstaller;
 };
 
 } // namespace captain
--- a/javamanager/javacaptain/extensionplugins/preinstallerstarter/inc/preinstallerstartermessages.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-/*
-* Copyright (c) 2010 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:  PreinstallerStarterMessages
-*
-*/
-
-#ifndef PREINSTALLERSTARTERMESSAGES_H
-#define PREINSTALLERSTARTERMESSAGES_H
-
-#include "logger.h"
-#include "commsmessage.h"
-
-namespace java
-{
-namespace captain
-{
-
-using namespace java::util;
-using namespace java::comms;
-
-// This event is sent when preinstaller process has exited
-const int PREINSTALLER_EVENT_MESSAGE_ID_EXITED_C = 30;
-
-const char PREINSTALLER_EVENT_PROVIDER[] = "preinstaller";
-
-
-inline void setPreinstallerExitedMessageParams(CommsMessage& aMessage, const int& aExitStatus)
-{
-    aMessage.setMessageId(PREINSTALLER_EVENT_MESSAGE_ID_EXITED_C);
-    aMessage << aExitStatus;
-}
-
-inline void getPreinstallerExitedMessageParams(CommsMessage& aMessage, int& aExitStatus)
-{
-    if (aMessage.getMessageId() == PREINSTALLER_EVENT_MESSAGE_ID_EXITED_C)
-    {
-        aMessage >> aExitStatus;
-    }
-    else
-    {
-        ELOG2(EJavaCaptain, "wrong MessageId!: %d should be %d",
-              aMessage.getMessageId(), PREINSTALLER_EVENT_MESSAGE_ID_EXITED_C);
-        aExitStatus = 0;
-    }
-}
-
-
-} // namespace captain
-} // namespace java
-
-#endif // PREINSTALLERSTARTERMESSAGES_H
--- a/javamanager/javacaptain/extensionplugins/preinstallerstarter/src.s60/preinstallerstarter.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javacaptain/extensionplugins/preinstallerstarter/src.s60/preinstallerstarter.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008 - 2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -19,9 +19,7 @@
 
 
 #include <e32base.h>
-#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 #include <apgcli.h> // for RApaLsSession
-#endif
 #include <hal_data.h>
 #include <hal.h>
 #include <sysutil.h>
@@ -33,7 +31,6 @@
 #include "coreinterface.h"
 #include "booteventprovidermessages.h"
 #include "mmceventprovidermessages.h"
-#include "preinstallerstartermessages.h"
 
 #include "preinstallerstarter.h"
 
@@ -55,19 +52,19 @@
 using java::fileutils::DriveListenerInterface;
 
 /**
- * Initialize member varaibles in constructor
+ * Empty contructor
  */
-PreinstallerStarter::PreinstallerStarter() :
-    CActive(EPriorityStandard), mCore(0), mPreinstaller(0)
+PreinstallerStarter::PreinstallerStarter() : mCore(0)
 {
+    JELOG2(EJavaCaptain);
 }
 
 /**
- * Destructor
+ * Empty destructor
  */
 PreinstallerStarter::~PreinstallerStarter()
 {
-    DoCancel();
+    JELOG2(EJavaCaptain);
 }
 
 /**
@@ -75,8 +72,8 @@
  */
 void PreinstallerStarter::startPlugin(CoreInterface* core)
 {
+    JELOG2(EJavaCaptain);
     mCore = core;
-    CActiveScheduler::Add(this);
 }
 
 /**
@@ -84,6 +81,7 @@
  */
 void PreinstallerStarter::stopPlugin()
 {
+    JELOG2(EJavaCaptain);
     mCore = 0;
 }
 
@@ -92,6 +90,7 @@
  */
 EventConsumerInterface* PreinstallerStarter::getEventConsumer()
 {
+    JELOG2(EJavaCaptain);
     return this;
 }
 
@@ -107,6 +106,7 @@
 void PreinstallerStarter::event(const std::string& eventProvider,
                                 java::comms::CommsMessage& aMsg)
 {
+    JELOG2(EJavaCaptain);
     if (eventProvider == BOOT_EVENT_PROVIDER)
     {
         int bootType = NORMAL_BOOT_C;
@@ -133,9 +133,7 @@
         case FIRST_DEVICE_BOOT_C:
         case NORMAL_BOOT_C:
         {
-#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
             registerMidletApplicationTypeHandler();
-#endif
 
             // Start preinstaller normally (without 'iad' option).
             startPreinstaller(EFalse);
@@ -185,6 +183,8 @@
  */
 void PreinstallerStarter::startPreinstaller(TBool aIadBoot)
 {
+    JELOG2(EJavaCaptain);
+
     // Check that the device has enough free memory (800kB) to start preinstaller process
     // and (if needed) also java installer
     TInt freeMemory = 0;
@@ -276,21 +276,17 @@
         }
 
         // start preinstaller
-        mPreinstaller = new RProcess();
+        RProcess preinstaller;
         TBuf<64> preinstallerProcess;  // Actual len of the process name is 9
         len = strlen(java::runtime::JAVA_PROCESS);
         TPtr8 ptr8Process((TUint8 *)java::runtime::JAVA_PROCESS, len, len);
         preinstallerProcess.Copy(ptr8Process);
-        TInt err = mPreinstaller->Create(preinstallerProcess, commandLine);
+        TInt err = preinstaller.Create(preinstallerProcess, commandLine);
         if (KErrNone == err)
         {
-            // Process has been created.
-
-            // This active object will be activated when preinstaller process exits
-            mPreinstaller->Logon(iStatus);
-
-            // Allow the process to run
-            mPreinstaller->Resume();
+            // process has been created, allow it to run
+            preinstaller.Resume();
+            preinstaller.Close();
             if (aIadBoot)
             {
                 LOG(
@@ -302,14 +298,9 @@
             {
                 LOG(EJavaCaptain, EInfo, "PreinstallerStarter: started preinstaller");
             }
-
-            SetActive();
         }
         else
         {
-            delete mPreinstaller;
-            mPreinstaller = 0;
-
             ELOG1(
                 EJavaCaptain,
                 "PreinstallerStarter: starting preinstaller failed, err %d",
@@ -322,7 +313,6 @@
  * Register 'javalauncher.exe' as the midlet application type handler
  * in AppArc. If necessary unregister old handler first.
  */
-#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 void PreinstallerStarter::registerMidletApplicationTypeHandler()
 {
     _LIT(KMidpAppArcPlugin, "javalauncher.exe");
@@ -384,37 +374,6 @@
               err);
     }
 }
-#endif
-
-void PreinstallerStarter::RunL()
-{
-    LOG(EJavaCaptain, EInfo, "PreinstallerStarter::RunL started");
-
-    // Send event to AutoStarter plugin, done only once
-    CommsMessage eventMsg;
-    setPreinstallerExitedMessageParams(eventMsg, iStatus.Int());
-    mCore->getEventDispatcher()->event(PREINSTALLER_EVENT_PROVIDER, eventMsg);
-
-    // process handle is no longer needed
-    mPreinstaller->Close();
-    delete mPreinstaller;
-    mPreinstaller = 0;
-}
-
-
-void PreinstallerStarter::DoCancel()
-{
-    if (mPreinstaller)
-    {
-        mPreinstaller->LogonCancel(iStatus);
-        // Because exit notification request has been canceled,
-        // there is no reason to keep the process handle open.
-        mPreinstaller->Close();
-        delete mPreinstaller;
-        mPreinstaller = 0;
-    }
-}
-
 
 } // namespace captain
 } // namespace java
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javamanager/javacaptain/extensionplugins/scrupdater/inc/scrupdater.h	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,71 @@
+/*
+* Copyright (c) 2010 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:  ScrUpdater is Java Captain Symbian plugin that updates
+*               presence information of Java Applications in USIF SCR
+*               when removable drive is added or removed to the device.
+*
+*/
+
+#ifndef SCRUPDATER_H
+#define SCRUPDATER_H
+
+#include <usif/scr/scr.h>
+#include <usif/scr/screntries.h>
+
+#include "javaosheaders.h"
+
+#include "eventconsumerinterface.h"
+#include "extensionplugininterface.h"
+
+namespace java
+{
+
+namespace captain
+{
+
+class CoreInterface;
+
+OS_NONSHARABLE_CLASS(ScrUpdater) :  public EventConsumerInterface,
+        public ExtensionPluginInterface
+{
+public:
+    ScrUpdater();
+    virtual ~ScrUpdater();
+
+    // PluginInterface
+    virtual void startPlugin(CoreInterface* aCore);
+    virtual void stopPlugin();
+
+    // EventConsumerInterface
+    virtual void event(const std::string& eventProvider,
+                       java::comms::CommsMessage& aMsg);
+
+    // ExtensionPluginInterface methods
+    virtual EventConsumerInterface* getEventConsumer();
+
+private:
+    void removeScrPresencesL(driveInfo *aInfo);
+    void addScrPresencesL(driveInfo *aInfo);
+    void initializeScrPresenceInfoL();
+
+    Usif::RSoftwareComponentRegistry *createScrL();
+
+
+    CoreInterface* mCore;
+};
+
+} // namespace captain
+} // namespace java
+
+#endif // SCRUPDATER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javamanager/javacaptain/extensionplugins/scrupdater/src.s60/lookup.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,46 @@
+/*
+* Copyright (c) 2010 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:  lookup
+*
+*/
+
+#include <string> //For strcmp
+
+#include "javasymbianoslayer.h"
+#include "logger.h"
+
+#include "extensionplugininterface.h"
+
+using namespace java::captain;
+
+ExtensionPluginInterface* getExtensionPlugin();
+
+EXPORT_C FuncPtr findDllMethod(const char* funcName)
+{
+    JELOG2(EJavaCaptain);
+    FuncPtr ptr = 0;
+    if (funcName)
+    {
+        if (strcmp(funcName, "getExtensionPlugin") == 0)
+        {
+            ptr = (FuncPtr)getExtensionPlugin;
+        }
+    }
+    else
+    {
+        ELOG(EJavaCaptain,
+             "scrupdater extensionplugin findDllMethod() funcName == null");
+    }
+    return ptr;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javamanager/javacaptain/extensionplugins/scrupdater/src.s60/scrupdater.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,705 @@
+/*
+* Copyright (c) 2010 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:  ScrUpdater is Java Captain Symbian plugin that updates
+*               presence information of Java Applications in USIF SCR
+*               when removable drive is added or removed to the device.
+*
+*/
+
+#include <apgcli.h>
+#include <e32base.h>
+#include <f32file.h>
+
+#include "javaprocessconstants.h"
+#include "javasymbianoslayer.h"
+#include "javauids.h"
+#include "logger.h"
+#include "coreinterface.h"
+#include "booteventprovidermessages.h"
+#include "mmceventprovidermessages.h"
+
+#include "scrupdater.h"
+
+// Enable notifying AppArc for USIF Phase 2.
+//#define RD_JAVA_USIF_NOTIFY_APP_ARC
+
+
+using namespace Usif;
+
+/**
+ * Return pointer to ExtensionPluginInterface implementation for this
+ * extension dll
+ */
+java::captain::ExtensionPluginInterface* getExtensionPlugin()
+{
+    return new java::captain::ScrUpdater();
+}
+
+namespace java
+{
+namespace captain
+{
+
+using java::fileutils::driveInfo;
+using java::fileutils::DriveListenerInterface;
+
+/**
+ * Empty contructor
+ */
+ScrUpdater::ScrUpdater() : mCore(0)
+{
+}
+
+/**
+ * Empty destructor
+ */
+ScrUpdater::~ScrUpdater()
+{
+}
+
+/**
+ * Implement PluginInterface method
+ */
+void ScrUpdater::startPlugin(CoreInterface* core)
+{
+    LOG(EJavaCaptain, EInfo, "ScrUpdater plugin started");
+
+    mCore = core;
+}
+
+/**
+ * Implement PluginInterface method
+ */
+void ScrUpdater::stopPlugin()
+{
+    mCore = 0;
+}
+
+/**
+ * Implement ExtensionPluginInterface method
+ */
+EventConsumerInterface* ScrUpdater::getEventConsumer()
+{
+    return this;
+}
+
+/**
+ * Handle Java Captain events sent by Boot event provider or
+ * MMC event provider.
+ *
+ * Implement EventConsumerInterface method
+ */
+void ScrUpdater::event(const std::string& eventProvider,
+                       java::comms::CommsMessage& aMsg)
+{
+    if (eventProvider == BOOT_EVENT_PROVIDER)
+    {
+        int bootType = NORMAL_BOOT_C;
+        getBootMessageParams(aMsg, bootType);
+        LOG1(
+            EJavaCaptain,
+            EInfo,
+            "ScrUpdater::event() boot event received (type=%d)",
+            bootType);
+        switch (bootType)
+        {
+        case IAD_BOOT_C:
+        case FIRST_DEVICE_BOOT_C:
+        case NORMAL_BOOT_C:
+        {
+            // Update presence information
+            TRAPD(err, initializeScrPresenceInfoL())
+            if (KErrNone != err)
+            {
+                ELOG1(EJavaCaptain, "initializeScrPresenceInfoL: leaved (%d)", err);
+            }
+        }
+        break;
+
+        default:
+        {
+            WLOG1(EJavaCaptain,
+                  "DriveListenerInterface: event() unknown boot event (type=%d)", bootType);
+        }
+        break;
+        }
+    }
+    else if (eventProvider == MMC_EVENT_PROVIDER)
+    {
+        int operation = 0;
+        driveInfo di;
+        getMmcChangedMessageParams(aMsg, operation, di);
+        LOG1(
+            EJavaCaptain,
+            EInfo,
+            "ScrUpdater::event() mmc event received (operation=%d)",
+            operation);
+
+        switch (operation)
+        {
+        case DriveListenerInterface::REMOVABLE_MEDIA_REMOVED_C:
+        {
+            // All Java applications in the removed drive are set
+            // to 'not present' state
+            TRAPD(err, removeScrPresencesL(&di));
+            if (KErrNone != err)
+            {
+                ELOG1(EJavaCaptain, "removeScrPresencesL leaved (%d)", err);
+            }
+        }
+        break;
+
+        case DriveListenerInterface::REMOVABLE_MEDIA_INSERTED_C:
+        {
+            // Those Java applications in the drive to where the media
+            // (e.g. memory card) was added are set to 'present' state
+            // IF the media id is correct (in other words if the same
+            // memory card that they have been installed to is added
+            // to the drive).
+            TRAPD(err, addScrPresencesL(&di));
+            if (KErrNone != err)
+            {
+                ELOG1(EJavaCaptain, "addScrPresencesL leaved (%d)", err);
+            }
+        }
+        break;
+        }
+    }
+}
+
+/**
+ * Set the presence state of all Java applications installed
+ * to the removable drive specified in aInfo to not present
+ */
+void ScrUpdater::removeScrPresencesL(driveInfo *aInfo)
+{
+    __UHEAP_MARK;
+    LOG1WSTR(EJavaCaptain, EInfo,
+             "removeScrPresencesL: driveInfo root path is %s", aInfo->iRootPath);
+
+    RSoftwareComponentRegistry *pScr = createScrL();
+    CleanupStack::PushL(pScr);
+
+    // Get ids of all Java components in scr
+    RArray<TComponentId> componentIdList;
+    CComponentFilter *pJavaSwTypeFilter = CComponentFilter::NewLC();
+    pJavaSwTypeFilter->SetSoftwareTypeL(Usif::KSoftwareTypeJava);
+
+    pScr->GetComponentIdsL(componentIdList);
+    CleanupStack::PopAndDestroy(pJavaSwTypeFilter);
+    CleanupClosePushL(componentIdList);
+
+    // For each component check whether it has been installed
+    // to the removed drive
+    TInt  nComponents = componentIdList.Count();
+    TUint removedDrive = (TUint)(aInfo->iRootPath[0]);
+    // Now removedDrive contains the drive letter, convert it to drive number 0-25
+    if ((removedDrive > 64) && (removedDrive < 91))
+    {
+        // 'A' - 'Z'
+        removedDrive -= 65;
+    }
+    else if ((removedDrive > 96) && (removedDrive < 123))
+    {
+        // 'a' - 'z'
+        removedDrive -= 97;
+    }
+    else
+    {
+        ELOG1WSTR(EJavaCaptain,
+                  "removeScrPresencesL: Unexpected root path in remove drive info %s",
+                  aInfo->iRootPath);
+        CleanupStack::PopAndDestroy(pScr);
+        return;
+    }
+
+    LOG2(EJavaCaptain, EInfo, "Number of Java components is %d, removed drive is %d",
+         nComponents, removedDrive);
+
+#ifdef RD_JAVA_USIF_NOTIFY_APP_ARC
+    // TEMP TEST
+    TBool fPresenceChange = EFalse;
+    RArray<TApaAppUpdateInfo> removedApps;
+    CleanupClosePushL(removedApps);
+#endif
+
+    for (TInt nInd = 0; nInd < nComponents; nInd++)
+    {
+        CComponentEntry *pEntry = CComponentEntry::NewLC();
+        if (!(pScr->GetComponentL(componentIdList[nInd], *pEntry)))
+        {
+            ELOG1(EJavaCaptain,
+                  "removeScrPresencesL: SCR GetComponentIdsL returned id %d "
+                  "but GetComponentL does not find it", componentIdList[nInd]);
+            CleanupStack::PopAndDestroy(pEntry);
+            continue;
+        }
+
+        TInt nInstalledDrives = pEntry->InstalledDrives().Length();
+        if (nInstalledDrives <= removedDrive)
+        {
+            // SCR InstalledDrives should be array of 26 elements (value 0 or 1)
+            ELOG2(EJavaCaptain,
+                  "removeScrPresencesL: The length of InstalledDrives array (%d) "
+                  "is smaller than removedDrive (%d)", nInstalledDrives, removedDrive);
+            CleanupStack::PopAndDestroy(pEntry);
+            continue;
+        }
+
+        LOG1(EJavaCaptain, EInfo, "Java component id %d", componentIdList[nInd]);
+
+        if (pEntry->InstalledDrives()[removedDrive])
+        {
+            // This component has been installed to the drive
+            // that has just been removed
+            pScr->SetIsComponentPresentL(componentIdList[nInd], EFalse);
+
+            LOG1(EJavaCaptain, EInfo,
+                 "removeScrPresencesL: set component %d to not present",
+                 componentIdList[nInd]);
+
+#ifdef RD_JAVA_USIF_NOTIFY_APP_ARC
+            fPresenceChange = ETrue;
+
+            // Gather the Uids of all applications that are no longer present
+            RArray<TUid> appsInComponent;
+            CleanupClosePushL(appsInComponent);
+            pScr->GetAppUidsForComponentL(
+                componentIdList[nInd], appsInComponent);
+            for (TInt nInd2 = 0; nInd2 < appsInComponent.Count(); nInd2++)
+            {
+                TApaAppUpdateInfo appInfo;
+                appInfo.iAppUid = appsInComponent[nInd2];
+                appInfo.iAction = TApaAppUpdateInfo::EAppNotPresent;
+                (void)removedApps.Append(appInfo);
+            }
+            CleanupStack::PopAndDestroy(&appsInComponent);
+#endif
+        }
+
+        CleanupStack::PopAndDestroy(pEntry);
+    }
+
+#ifdef RD_JAVA_USIF_NOTIFY_APP_ARC
+    // Tell AppArc which applications are no longer present
+    while (fPresenceChange)
+    {
+        if (removedApps.Count() == 0)
+        {
+            ELOG(EJavaCaptain, "removeScrPresencesL: Uids of the removed apps are not known");
+            break;
+        }
+
+        RApaLsSession apaSession;
+        TInt err = apaSession.Connect();
+        if (KErrNone != err)
+        {
+            ELOG1(EJavaCaptain, "removeScrPresencesL: Error %d when connecting AppArc", err);
+            break;
+        }
+        else
+        {
+            CleanupClosePushL(apaSession);
+            apaSession.UpdateAppListL(removedApps);
+            CleanupStack::PopAndDestroy(); // closes apaSession
+            fPresenceChange = EFalse;
+        }
+    }
+
+    CleanupStack::PopAndDestroy(); // Close removedApps
+#endif
+    CleanupStack::PopAndDestroy(); // Close componentIdList
+    CleanupStack::PopAndDestroy(pScr);
+    __UHEAP_MARKEND;
+}
+
+
+/**
+ * Set the presence state of all Java applications installed
+ * to the removable drive specified in aInfo to present
+ */
+void ScrUpdater::addScrPresencesL(driveInfo *aInfo)
+{
+    __UHEAP_MARK;
+    LOG1WSTR(EJavaCaptain, EInfo,
+             "addScrPresencesL: driveInfo root path is %s", aInfo->iRootPath);
+
+    RSoftwareComponentRegistry *pScr = createScrL();
+    CleanupStack::PushL(pScr);
+
+    // Get ids of all Java components in scr
+    RArray<TComponentId> componentIdList;
+    CComponentFilter *pJavaSwTypeFilter = CComponentFilter::NewLC();
+    pJavaSwTypeFilter->SetSoftwareTypeL(Usif::KSoftwareTypeJava);
+
+    pScr->GetComponentIdsL(componentIdList, pJavaSwTypeFilter);
+    CleanupStack::PopAndDestroy(pJavaSwTypeFilter);
+    CleanupClosePushL(componentIdList);
+
+
+    // For each component check whether it has been installed
+    // to the added drive AND whether the media id is correct
+    // (in other words if the actual memory card where the component
+    // has been installed to is added to the drive).
+    TInt  nComponents  = componentIdList.Count();
+    TUint addedMediaId = (TUint)(aInfo->iId);
+    TUint addedDrive   = (TUint)(aInfo->iRootPath[0]);
+    // Now addedDrive contains the drive letter, convert it to drive number 0-25
+    if ((addedDrive > 64) && (addedDrive < 91))
+    {
+        // 'A' - 'Z'
+        addedDrive -= 65;
+    }
+    else if ((addedDrive > 96) && (addedDrive < 123))
+    {
+        // 'a' - 'z'
+        addedDrive -= 97;
+    }
+    else
+    {
+        ELOG1WSTR(EJavaCaptain,
+                  "addScrPresencesL: Unexpected root path in add drive info %s",
+                  aInfo->iRootPath);
+        CleanupStack::PopAndDestroy(pScr);
+        return;
+    }
+
+    LOG2(EJavaCaptain, EInfo, "Number of Java components is %d, added drive is %d",
+         nComponents, addedDrive);
+
+#ifdef RD_JAVA_USIF_NOTIFY_APP_ARC
+    TBool fPresenceChange = EFalse;
+    RArray<TApaAppUpdateInfo> addedApps;
+    CleanupClosePushL(addedApps);
+#endif
+
+    for (TInt nInd = 0; nInd < nComponents; nInd++)
+    {
+        CComponentEntry *pEntry = CComponentEntry::NewLC();
+        if (!(pScr->GetComponentL(componentIdList[nInd], *pEntry)))
+        {
+            ELOG1(EJavaCaptain,
+                  "addScrPresencesL: SCR GetComponentIdsL returned id %d "
+                  "but GetComponentL does not find it", componentIdList[nInd]);
+            CleanupStack::PopAndDestroy(pEntry);
+            continue;
+        }
+
+        // When Java Installer registers Java app to SCR it stores also
+        // the media id using SetComponentPropertyL(TComponentId aComponentId,
+        // _L("Media-Id")), TInt64 aValue);  (aValue is actually 32 bit int)
+        CIntPropertyEntry* pMediaIdProperty = (CIntPropertyEntry *)
+                                              pScr->GetComponentPropertyL(componentIdList[nInd],_L("Media-Id"));
+        if (NULL == pMediaIdProperty)
+        {
+            ELOG1(EJavaCaptain,
+                  "addScrPresencesL: media_id property not found for component %d",
+                  componentIdList[nInd]);
+            CleanupStack::PopAndDestroy(pEntry);
+            continue;
+        }
+        CleanupStack::PushL(pMediaIdProperty);
+
+        TInt nInstalledDrives = pEntry->InstalledDrives().Length();
+        if (nInstalledDrives <= addedDrive)
+        {
+            // SCR InstalledDrives should be array of 26 elements (value 0 or 1)
+            ELOG2(EJavaCaptain,
+                  "addScrPresencesL: The length of InstalledDrives array (%d) "
+                  "is smaller than addedDrive (%d)", nInstalledDrives, addedDrive);
+            CleanupStack::PopAndDestroy(pEntry);
+            continue;
+        }
+
+        LOG1(EJavaCaptain, EInfo, "Java component id %d", componentIdList[nInd]);
+
+        if (pEntry->InstalledDrives()[addedDrive])
+        {
+            // This component has been installed to the drive
+            // that has just been added.
+            // Now check whether the media id of the added media
+            // is OK for this component.
+            if (addedMediaId == pMediaIdProperty->IntValue())
+            {
+                pScr->SetIsComponentPresentL(componentIdList[nInd], ETrue);
+
+                LOG1(EJavaCaptain, EInfo,
+                     "addScrPresencesL: set component %d to present",
+                     componentIdList[nInd]);
+
+#ifdef RD_JAVA_USIF_NOTIFY_APP_ARC
+                fPresenceChange = ETrue;
+
+                // Gather the Uids of all 'new' applications that are now present
+                RArray<TUid> appsInComponent;
+                CleanupClosePushL(appsInComponent);
+                pScr->GetAppUidsForComponentL(
+                    componentIdList[nInd], appsInComponent);
+                for (TInt nInd2 = 0; nInd2 < appsInComponent.Count(); nInd2++)
+                {
+                    TApaAppUpdateInfo appInfo;
+                    appInfo.iAppUid = appsInComponent[nInd2];
+                    appInfo.iAction = TApaAppUpdateInfo::EAppPresent;
+                    (void)addedApps.Append(appInfo);
+                }
+                CleanupStack::PopAndDestroy(&appsInComponent);
+#endif
+            }
+        }
+
+        CleanupStack::PopAndDestroy(pMediaIdProperty);
+        CleanupStack::PopAndDestroy(pEntry);
+    }
+
+#ifdef RD_JAVA_USIF_NOTIFY_APP_ARC
+    // Tell AppArc which 'new' applications are now present
+    while (fPresenceChange)
+    {
+        if (addedApps.Count() == 0)
+        {
+            ELOG(EJavaCaptain, "addScrPresencesL: Uids of the 'new' apps are not known");
+            break;
+        }
+
+        RApaLsSession apaSession;
+        TInt err = apaSession.Connect();
+        if (KErrNone != err)
+        {
+            ELOG1(EJavaCaptain, "addScrPresencesL: Error %d when connecting AppArc", err);
+            break;
+        }
+        else
+        {
+            CleanupClosePushL(apaSession);
+            apaSession.UpdateAppListL(addedApps);
+            CleanupStack::PopAndDestroy(); // closes apaSession
+            fPresenceChange = EFalse;
+        }
+    }
+
+    CleanupStack::PopAndDestroy(); // Close addedApps
+#endif
+    CleanupStack::PopAndDestroy(); // Close componentIdList
+    CleanupStack::PopAndDestroy(pScr);
+    __UHEAP_MARKEND;
+}
+
+
+/**
+ * Loop through all removable drives and get the media id of
+ * the memory card or other removable media in the drive and update
+ * presence information of all Java applications installed
+ * to removable drives accordingly.
+ */
+void ScrUpdater::initializeScrPresenceInfoL()
+{
+    __UHEAP_MARK;
+    RFs fs;
+    User::LeaveIfError(fs.Connect());
+    CleanupClosePushL(fs);
+
+    // Which drives are present and what is the media id of
+    // each removable volume
+    TInt  err = KErrNone;
+    TInt  err2 = KErrNone;
+    TBool drivePresent[EDriveZ + 1];
+    TUint driveMediaId[EDriveZ + 1];
+    TVolumeInfo volumeInfo;
+    TDriveInfo  driveInfo;
+
+    for (TInt nInd = EDriveA; nInd < EDriveZ; nInd++)
+    {
+        err = fs.Volume(volumeInfo, nInd);
+        if (KErrNone == err)
+        {
+            drivePresent[nInd] = ETrue;
+            driveMediaId[nInd] = volumeInfo.iUniqueID;
+            // If the media is not removable, media id is not checked
+            err2 = fs.Drive(driveInfo, nInd);
+            if (KErrNone != err2)
+            {
+                ELOG1(EJavaCaptain,
+                      "initializeScrPresenceInfoL: error (%d) when trying to get drive info",
+                      err2);
+                User::Leave(err2);
+            }
+            else
+            {
+                if (!(driveInfo.iDriveAtt & KDriveAttRemovable))
+                {
+                    driveMediaId[nInd] = 0;
+                }
+            }
+        }
+        else if (KErrNotReady == err)
+        {
+            // no volume in this drive
+            drivePresent[nInd] = EFalse;
+            driveMediaId[nInd] = 0;
+        }
+        else
+        {
+            ELOG1(EJavaCaptain,
+                  "initializeScrPresenceInfoL: error (%d) when trying to get volume info",
+                  err);
+            User::Leave(err);
+        }
+    }
+    CleanupStack::PopAndDestroy(); // close RFs
+
+
+    RSoftwareComponentRegistry *pScr = createScrL();
+    CleanupStack::PushL(pScr);
+
+    // Get ids of all Java components in scr
+    RArray<TComponentId> componentIdList;
+    CComponentFilter *pJavaSwTypeFilter = CComponentFilter::NewLC();
+    pJavaSwTypeFilter->SetSoftwareTypeL(Usif::KSoftwareTypeJava);
+
+    pScr->GetComponentIdsL(componentIdList, pJavaSwTypeFilter);
+    CleanupStack::PopAndDestroy(pJavaSwTypeFilter);
+    CleanupClosePushL(componentIdList);
+
+    // For each component check whether the drive it has been installed
+    // to is present AND whether the media id is correct
+    TInt  nComponents  = componentIdList.Count();
+
+    LOG1(EJavaCaptain, EInfo, "initializeScrPresenceInfoL: Number of Java components is %d",
+         nComponents);
+
+    for (TInt nInd = 0; nInd < nComponents; nInd++)
+    {
+        CComponentEntry *pEntry = CComponentEntry::NewLC();
+        if (!(pScr->GetComponentL(componentIdList[nInd], *pEntry)))
+        {
+            ELOG1(EJavaCaptain,
+                  "initializeScrPresenceInfoL: SCR GetComponentIdsL returned id %d "
+                  "but GetComponentL does not find it", componentIdList[nInd]);
+            CleanupStack::PopAndDestroy(pEntry);
+            continue;
+        }
+
+        CIntPropertyEntry* pMediaIdProperty = (CIntPropertyEntry *)
+                                              pScr->GetComponentPropertyL(componentIdList[nInd],_L("Media-Id"));
+        if (NULL == pMediaIdProperty)
+        {
+            ELOG1(EJavaCaptain,
+                  "initializeScrPresenceInfoL: media_id property not found for component %d",
+                  componentIdList[nInd]);
+            CleanupStack::PopAndDestroy(pEntry);
+            continue;
+        }
+        CleanupStack::PushL(pMediaIdProperty);
+
+        TInt nInstalledDrives = pEntry->InstalledDrives().Length();
+        if (nInstalledDrives > (EDriveZ + 1))
+        {
+            WLOG2(EJavaCaptain,
+                  "initializeScrPresenceInfoL: too big (%d) installed drives array for "
+                  "component %d", nInstalledDrives, componentIdList[nInd]);
+            nInstalledDrives = EDriveZ;
+        }
+        // When Java components are installed, only one installed drive
+        // and corresponding media id are registered.
+        TInt installationDrive = -1;
+
+        for (TInt driveNumber = EDriveA; driveNumber < nInstalledDrives; driveNumber++)
+        {
+            if (pEntry->InstalledDrives()[driveNumber])
+            {
+                installationDrive = driveNumber;
+                break;
+            }
+        }
+
+        if (installationDrive == -1)
+        {
+            ELOG1(EJavaCaptain,
+                  "initializeScrPresenceInfoL: component (id %d) did not have installed drive info",
+                  componentIdList[nInd]);
+            CleanupStack::PopAndDestroy(pMediaIdProperty);
+            CleanupStack::PopAndDestroy(pEntry);
+            continue;
+        }
+
+        if (drivePresent[installationDrive])
+        {
+            // Check also the media id
+            if (driveMediaId[installationDrive] == pMediaIdProperty->IntValue())
+            {
+                LOG1(EJavaCaptain, EInfo,
+                     "initializeScrPresenceInfoL: set component %d to present",
+                     componentIdList[nInd]);
+
+                pScr->SetIsComponentPresentL(componentIdList[nInd], ETrue);
+            }
+            else
+            {
+                LOG1(EJavaCaptain, EInfo,
+                     "initializeScrPresenceInfoL: set component %d to NOT present",
+                     componentIdList[nInd]);
+
+                pScr->SetIsComponentPresentL(componentIdList[nInd], EFalse);
+            }
+        }
+        else
+        {
+            LOG1(EJavaCaptain, EInfo,
+                 "initializeScrPresenceInfoL: set component %d to NOT present",
+                 componentIdList[nInd]);
+
+            // drive is not present -> Java component installed to that
+            // drive is not present
+            pScr->SetIsComponentPresentL(componentIdList[nInd], EFalse);
+        }
+
+        CleanupStack::PopAndDestroy(pMediaIdProperty);
+        CleanupStack::PopAndDestroy(pEntry);
+    }
+
+    CleanupStack::PopAndDestroy(); // Close componentIdList
+    CleanupStack::PopAndDestroy(pScr); // Also closes RSoftwareComponentRegistry
+
+    __UHEAP_MARKEND;
+}
+
+
+/**
+ * Creates an instance of RSoftwareComponentRegistry and connects to it.
+ */
+RSoftwareComponentRegistry *ScrUpdater::createScrL()
+{
+    RSoftwareComponentRegistry *pScr = new RSoftwareComponentRegistry;
+    if (NULL == pScr)
+    {
+        ELOG(EJavaInstaller,
+             "CreateScrL: Creating RSoftwareComponentRegistry failed");
+        User::Leave(KErrGeneral);
+    }
+    TInt err = pScr->Connect();
+    if (KErrNone != err)
+    {
+        ELOG1(EJavaInstaller,
+              "CreateScrL: Connecting to RSoftwareComponentRegistry failed, error %d",
+              err);
+        delete pScr;
+        User::Leave(err);
+    }
+
+    return pScr;
+}
+
+
+} // namespace captain
+} // namespace java
--- a/javamanager/javacaptain/extensionplugins/scrupdater/src/lookup.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
-* Copyright (c) 2010 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:  lookup
-*
-*/
-
-#include <string> //For strcmp
-
-#include "javasymbianoslayer.h"
-#include "logger.h"
-
-#include "extensionplugininterface.h"
-
-using namespace java::captain;
-
-ExtensionPluginInterface* getExtensionPlugin();
-
-EXPORT_C FuncPtr findDllMethod(const char* funcName)
-{    
-    FuncPtr ptr = 0;
-    if (funcName)
-    {
-        if (strcmp(funcName, "getExtensionPlugin") == 0)
-        {
-            ptr = (FuncPtr)getExtensionPlugin;
-        }
-    }
-    else
-    {
-        ELOG(EJavaCaptain,
-             "scrupdater extensionplugin findDllMethod() funcName == null");
-    }
-    return ptr;
-}
--- a/javamanager/javacaptain/extensionplugins/scrupdater/src/scrupdater.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,666 +0,0 @@
-/*
-* Copyright (c) 2010 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:  ScrUpdater is Java Captain Symbian plugin that updates
-*               presence information of Java Applications in USIF SCR
-*               when removable drive is added or removed to the device.
-*
-*/
-
-#include <apgcli.h>
-#include <e32base.h>
-#include <f32file.h>
-
-#include "javaprocessconstants.h"
-#include "javasymbianoslayer.h"
-#include "javauids.h"
-#include "logger.h"
-#include "coreinterface.h"
-#include "booteventprovidermessages.h"
-#include "mmceventprovidermessages.h"
-
-#include "scrupdater.h"
-
-using namespace Usif;
-
-_LIT(KMediaId, "Media-Id");
-
-/**
- * Return pointer to ExtensionPluginInterface implementation for this
- * extension dll
- */
-java::captain::ExtensionPluginInterface* getExtensionPlugin()
-{
-    return new java::captain::ScrUpdater();
-}
-
-namespace java  // codescanner::namespace
-{
-namespace captain  // codescanner::namespace
-{
-
-using java::fileutils::driveInfo;
-using java::fileutils::DriveListenerInterface;
-
-/**
- * Empty contructor
- */
-ScrUpdater::ScrUpdater()
-{
-}
-
-/**
- * Empty destructor
- */
-ScrUpdater::~ScrUpdater()
-{
-}
-
-/**
- * Implement PluginInterface method
- */
-void ScrUpdater::startPlugin(CoreInterface* /* aCore */)
-{
-    LOG(EJavaCaptain, EInfo, "ScrUpdater plugin started");
-}
-
-/**
- * Implement PluginInterface method
- */
-void ScrUpdater::stopPlugin()
-{
-}
-
-/**
- * Implement ExtensionPluginInterface method
- */
-EventConsumerInterface* ScrUpdater::getEventConsumer()
-{
-    return this;
-}
-
-/**
- * Handle Java Captain events sent by Boot event provider or
- * MMC event provider.
- *
- * Implement EventConsumerInterface method
- */
-void ScrUpdater::event(const std::string& aEventProvider,
-                       java::comms::CommsMessage& aMsg)
-{
-    if (aEventProvider == BOOT_EVENT_PROVIDER)
-    {
-        int bootType = NORMAL_BOOT_C;
-        getBootMessageParams(aMsg, bootType);
-        LOG1(
-            EJavaCaptain,
-            EInfo,
-            "ScrUpdater::event() boot event received (type=%d)",
-            bootType);
-        switch (bootType)
-        {
-            case IAD_BOOT_C:
-            case FIRST_DEVICE_BOOT_C:
-            case NORMAL_BOOT_C:
-            {
-                // Update presence information
-                TRAPD(err, initializeScrPresenceInfoL())
-                if (KErrNone != err)
-                {
-                    ELOG1(EJavaCaptain, "initializeScrPresenceInfoL: leaved (%d)", err);
-                }
-            }
-            break;
-
-            default:
-            {
-                WLOG1(EJavaCaptain,
-                    "DriveListenerInterface: event() unknown boot event (type=%d)", bootType);
-            }
-            break;
-        }
-    }
-    else if (aEventProvider == MMC_EVENT_PROVIDER)
-    {
-        int operation = 0;
-        driveInfo di;
-        getMmcChangedMessageParams(aMsg, operation, di);
-        LOG1(
-            EJavaCaptain,
-            EInfo,
-            "ScrUpdater::event() mmc event received (operation=%d)",
-            operation);
-
-        switch (operation)
-        {
-            case DriveListenerInterface::REMOVABLE_MEDIA_REMOVED_C:
-            {
-                // All Java applications in the removed drive are set
-                // to 'not present' state
-                TRAPD(err, removeScrPresencesL(&di));
-                if (KErrNone != err)
-                {
-                    ELOG1(EJavaCaptain, "removeScrPresencesL leaved (%d)", err);
-                }
-            }
-            break;
-
-            case DriveListenerInterface::REMOVABLE_MEDIA_INSERTED_C:
-            {
-                // Those Java applications in the drive to where the media
-                // (e.g. memory card) was added are set to 'present' state
-                // IF the media id is correct (in other words if the same
-                // memory card that they have been installed to is added
-                // to the drive).
-                TRAPD(err, addScrPresencesL(&di));
-                if (KErrNone != err)
-                {
-                    ELOG1(EJavaCaptain, "addScrPresencesL leaved (%d)", err);
-                }
-            }
-            break;
-        }
-    }
-}
-
-/**
- * Set the presence state of all Java applications installed
- * to the removable drive specified in aInfo to not present
- */
-void ScrUpdater::removeScrPresencesL(driveInfo *aInfo)
-{
-    __UHEAP_MARK;
-    LOG1WSTR(EJavaCaptain, EInfo,
-        "removeScrPresencesL: driveInfo root path is %s", aInfo->iRootPath);
-
-    RSoftwareComponentRegistry *pScr = createScrL();
-    CleanupStack::PushL(pScr);
-
-    // Get ids of all Java components in scr
-    RArray<TComponentId> componentIdList;
-    CleanupClosePushL(componentIdList);
-
-    CComponentFilter *pJavaSwTypeFilter = CComponentFilter::NewLC();
-    pJavaSwTypeFilter->SetSoftwareTypeL(Usif::KSoftwareTypeJava);
-
-    pScr->GetComponentIdsL(componentIdList, pJavaSwTypeFilter);
-    CleanupStack::PopAndDestroy(pJavaSwTypeFilter);
-
-    // For each component check whether it has been installed
-    // to the removed drive
-    TInt  nComponents = componentIdList.Count();
-    TUint removedDrive = (TUint)(aInfo->iRootPath[0]);
-    // Now removedDrive contains the drive letter, convert it to drive number 0-25
-    if ((removedDrive > 64) && (removedDrive < 91))  // codescanner::magicnumbers
-    {
-        // 'A' - 'Z'
-        removedDrive -= 65;  // codescanner::magicnumbers
-    }
-    else if ((removedDrive > 96) && (removedDrive < 123))  // codescanner::magicnumbers
-    {
-        // 'a' - 'z'
-        removedDrive -= 97;  // codescanner::magicnumbers
-    }
-    else
-    {
-        ELOG1WSTR(EJavaCaptain,
-            "removeScrPresencesL: Unexpected root path in remove drive info %s",
-            aInfo->iRootPath);
-        CleanupStack::PopAndDestroy(pScr);
-        return;
-    }
-
-    LOG2(EJavaCaptain, EInfo, "Number of Java components is %d, removed drive is %d",
-        nComponents, removedDrive);
-
-    RArray<TApaAppUpdateInfo> removedApps;
-    CleanupClosePushL(removedApps);
-
-    for (TInt nInd = 0; nInd < nComponents; nInd++)
-    {
-        CComponentEntry *pEntry = CComponentEntry::NewLC();
-        if (!(pScr->GetComponentL(componentIdList[nInd], *pEntry)))
-        {
-            ELOG1(EJavaCaptain,
-                "removeScrPresencesL: SCR GetComponentIdsL returned id %d "
-                "but GetComponentL does not find it", componentIdList[nInd]);
-            CleanupStack::PopAndDestroy(pEntry);
-            continue;
-        }
-
-        TInt nInstalledDrives = pEntry->InstalledDrives().Length();
-        if (nInstalledDrives <= removedDrive)
-        {
-            // SCR InstalledDrives should be array of 26 elements (value 0 or 1)
-            ELOG2(EJavaCaptain,
-                "removeScrPresencesL: The length of InstalledDrives array (%d) "
-                "is smaller than removedDrive (%d)", nInstalledDrives, removedDrive);
-            CleanupStack::PopAndDestroy(pEntry);
-            continue;
-        }
-
-        LOG1(EJavaCaptain, EInfo, "Java component id %d", componentIdList[nInd]);
-
-        if (pEntry->InstalledDrives()[removedDrive])
-        {
-            // This component has been installed to the drive
-            // that has just been removed
-            pScr->SetIsComponentPresentL(componentIdList[nInd], EFalse);
-
-            LOG1(EJavaCaptain, EInfo,
-                "removeScrPresencesL: set component %d to not present",
-                componentIdList[nInd]);
-
-            // Gather the Uids of all applications that are no longer present
-            RArray<TUid> appsInComponent;
-            CleanupClosePushL(appsInComponent);
-            pScr->GetAppUidsForComponentL(
-                componentIdList[nInd], appsInComponent);
-            for (TInt nInd2 = 0; nInd2 < appsInComponent.Count(); nInd2++)
-            {
-                TApaAppUpdateInfo appInfo;
-                appInfo.iAppUid = appsInComponent[nInd2];
-                appInfo.iAction = TApaAppUpdateInfo::EAppNotPresent;
-                removedApps.AppendL(appInfo);
-            }
-            CleanupStack::PopAndDestroy(&appsInComponent);
-        }
-
-        CleanupStack::PopAndDestroy(pEntry);
-    }
-
-    // Tell AppArc which applications are no longer present
-    if (removedApps.Count() > 0)
-    {
-        RApaLsSession apaSession;
-        TInt err = apaSession.Connect();
-        if (KErrNone != err)
-        {
-            ELOG1(EJavaCaptain, "removeScrPresencesL: Error %d when connecting AppArc", err);
-        }
-        else
-        {
-            CleanupClosePushL(apaSession);
-            apaSession.UpdateAppListL(removedApps);
-            CleanupStack::PopAndDestroy(); // closes apaSession
-        }
-    }
-
-    CleanupStack::PopAndDestroy(); // Close removedApps
-    CleanupStack::PopAndDestroy(); // Close componentIdList
-    CleanupStack::PopAndDestroy(pScr);
-    __UHEAP_MARKEND;
-}
-
-
-/**
- * Set the presence state of all Java applications installed
- * to the removable drive specified in aInfo to present
- */
-void ScrUpdater::addScrPresencesL(driveInfo *aInfo)
-{
-    __UHEAP_MARK;
-    LOG1WSTR(EJavaCaptain, EInfo,
-        "addScrPresencesL: driveInfo root path is %s", aInfo->iRootPath);
-
-    RSoftwareComponentRegistry *pScr = createScrL();
-    CleanupStack::PushL(pScr);
-
-    // Get ids of all Java components in scr
-    RArray<TComponentId> componentIdList;
-    CleanupClosePushL(componentIdList);
-
-    CComponentFilter *pJavaSwTypeFilter = CComponentFilter::NewLC();
-    pJavaSwTypeFilter->SetSoftwareTypeL(Usif::KSoftwareTypeJava);
-
-    pScr->GetComponentIdsL(componentIdList, pJavaSwTypeFilter);
-    CleanupStack::PopAndDestroy(pJavaSwTypeFilter);
-
-    // For each component check whether it has been installed
-    // to the added drive AND whether the media id is correct
-    // (in other words if the actual memory card where the component
-    // has been installed to is added to the drive).
-    TInt  nComponents  = componentIdList.Count();
-    TUint addedMediaId = (TUint)(aInfo->iId);
-    TUint addedDrive   = (TUint)(aInfo->iRootPath[0]);
-    // Now addedDrive contains the drive letter, convert it to drive number 0-25
-    if ((addedDrive > 64) && (addedDrive < 91))  // codescanner::magicnumbers
-    {
-        // 'A' - 'Z'
-        addedDrive -= 65;  // codescanner::magicnumbers
-    }
-    else if ((addedDrive > 96) && (addedDrive < 123))  // codescanner::magicnumbers
-    {
-        // 'a' - 'z'
-        addedDrive -= 97;  // codescanner::magicnumbers
-    }
-    else
-    {
-        ELOG1WSTR(EJavaCaptain,
-            "addScrPresencesL: Unexpected root path in add drive info %s",
-            aInfo->iRootPath);
-        CleanupStack::PopAndDestroy(pScr);
-        return;
-    }
-
-    LOG2(EJavaCaptain, EInfo, "Number of Java components is %d, added drive is %d",
-        nComponents, addedDrive);
-
-    RArray<TApaAppUpdateInfo> addedApps;
-    CleanupClosePushL(addedApps);
-
-    for (TInt nInd = 0; nInd < nComponents; nInd++)
-    {
-        CComponentEntry *pEntry = CComponentEntry::NewLC();
-        if (!(pScr->GetComponentL(componentIdList[nInd], *pEntry)))
-        {
-            ELOG1(EJavaCaptain,
-                "addScrPresencesL: SCR GetComponentIdsL returned id %d "
-                "but GetComponentL does not find it", componentIdList[nInd]);
-            CleanupStack::PopAndDestroy(pEntry);
-            continue;
-        }
-
-        // When Java Installer registers Java app to SCR it stores also
-        // the media id using SetComponentPropertyL(TComponentId aComponentId,
-        // _L("Media-Id"), TInt64 aValue);  (aValue is actually 32 bit int)
-        CIntPropertyEntry* pMediaIdProperty = (CIntPropertyEntry *)
-            pScr->GetComponentPropertyL(componentIdList[nInd], KMediaId);
-        if (NULL == pMediaIdProperty)
-        {
-            ELOG1(EJavaCaptain,
-                "addScrPresencesL: media_id property not found for component %d",
-                componentIdList[nInd]);
-            CleanupStack::PopAndDestroy(pEntry);
-            continue;
-        }
-        CleanupStack::PushL(pMediaIdProperty);
-
-        TInt nInstalledDrives = pEntry->InstalledDrives().Length();
-        if (nInstalledDrives <= addedDrive)
-        {
-            // SCR InstalledDrives should be array of 26 elements (value 0 or 1)
-            ELOG2(EJavaCaptain,
-                "addScrPresencesL: The length of InstalledDrives array (%d) "
-                "is smaller than addedDrive (%d)", nInstalledDrives, addedDrive);
-            CleanupStack::PopAndDestroy(pEntry);
-            continue;
-        }
-
-        LOG1(EJavaCaptain, EInfo, "Java component id %d", componentIdList[nInd]);
-
-        if (pEntry->InstalledDrives()[addedDrive])
-        {
-            // This component has been installed to the drive
-            // that has just been added.
-            // Now check whether the media id of the added media
-            // is OK for this component.
-            if (addedMediaId == pMediaIdProperty->IntValue())
-            {
-                pScr->SetIsComponentPresentL(componentIdList[nInd], ETrue);
-
-                LOG1(EJavaCaptain, EInfo,
-                    "addScrPresencesL: set component %d to present",
-                    componentIdList[nInd]);
-
-                // Gather the Uids of all 'new' applications that are now present
-                RArray<TUid> appsInComponent;
-                CleanupClosePushL(appsInComponent);
-                pScr->GetAppUidsForComponentL(
-                    componentIdList[nInd], appsInComponent);
-                for (TInt nInd2 = 0; nInd2 < appsInComponent.Count(); nInd2++)
-                {
-                    TApaAppUpdateInfo appInfo;
-                    appInfo.iAppUid = appsInComponent[nInd2];
-                    appInfo.iAction = TApaAppUpdateInfo::EAppPresent;
-                    addedApps.AppendL(appInfo);
-                }
-                CleanupStack::PopAndDestroy(&appsInComponent);
-            }
-        }
-
-        CleanupStack::PopAndDestroy(pMediaIdProperty);
-        CleanupStack::PopAndDestroy(pEntry);
-    }
-
-    // Tell AppArc which 'new' applications are now present
-    if (addedApps.Count() > 0)
-    {
-        RApaLsSession apaSession;
-        TInt err = apaSession.Connect();
-        if (KErrNone != err)
-        {
-            ELOG1(EJavaCaptain, "addScrPresencesL: Error %d when connecting AppArc", err);
-        }
-        else
-        {
-            CleanupClosePushL(apaSession);
-            apaSession.UpdateAppListL(addedApps);
-            CleanupStack::PopAndDestroy(); // closes apaSession
-        }
-    }
-
-    CleanupStack::PopAndDestroy(); // Close addedApps
-    CleanupStack::PopAndDestroy(); // Close componentIdList
-    CleanupStack::PopAndDestroy(pScr);
-    __UHEAP_MARKEND;
-}
-
-
-/**
- * Loop through all removable drives and get the media id of
- * the memory card or other removable media in the drive and update
- * presence information of all Java applications installed
- * to removable drives accordingly.
- */
-void ScrUpdater::initializeScrPresenceInfoL()
-{
-    __UHEAP_MARK;
-    RFs fs;  // codescanner::rfs
-    User::LeaveIfError(fs.Connect());
-    CleanupClosePushL(fs);
-
-    // Which drives are present and what is the media id of
-    // each removable volume
-    TInt  err = KErrNone;
-    TInt  err2 = KErrNone;
-    TBool drivePresent[EDriveZ + 1];
-    TUint driveMediaId[EDriveZ + 1];
-    TVolumeInfo volumeInfo;
-    TDriveInfo  driveInfo;
-
-    for (TInt nInd = EDriveA; nInd < EDriveZ; nInd++)
-    {
-        err = fs.Volume(volumeInfo, nInd);
-        if (KErrNone == err)
-        {
-            drivePresent[nInd] = ETrue;  // codescanner::accessArrayElementWithoutCheck2
-            driveMediaId[nInd] = volumeInfo.iUniqueID;  // codescanner::accessArrayElementWithoutCheck2
-            // If the media is not removable, media id is not checked
-            err2 = fs.Drive(driveInfo, nInd);
-            if (KErrNone != err2)
-            {
-                ELOG1(EJavaCaptain,
-                    "initializeScrPresenceInfoL: error (%d) when trying to get drive info",
-                    err2);
-                User::Leave(err2);
-            }
-            else
-            {
-                if (!(driveInfo.iDriveAtt & KDriveAttRemovable))
-                {
-                    driveMediaId[nInd] = 0;  // codescanner::accessArrayElementWithoutCheck2
-                }
-            }
-        }
-        else if (KErrNotReady == err)
-        {
-            // no volume in this drive
-            drivePresent[nInd] = EFalse;  // codescanner::accessArrayElementWithoutCheck2
-            driveMediaId[nInd] = 0;  // codescanner::accessArrayElementWithoutCheck2
-        }
-        else
-        {
-            ELOG1(EJavaCaptain,
-                "initializeScrPresenceInfoL: error (%d) when trying to get volume info",
-                err);
-            User::Leave(err);
-        }
-    }
-    CleanupStack::PopAndDestroy(); // close RFs
-
-
-    RSoftwareComponentRegistry *pScr = createScrL();
-    CleanupStack::PushL(pScr);
-
-    // Get ids of all Java components in scr
-    RArray<TComponentId> componentIdList;
-    CComponentFilter *pJavaSwTypeFilter = CComponentFilter::NewLC();
-    pJavaSwTypeFilter->SetSoftwareTypeL(Usif::KSoftwareTypeJava);
-
-    pScr->GetComponentIdsL(componentIdList, pJavaSwTypeFilter);
-    CleanupStack::PopAndDestroy(pJavaSwTypeFilter);
-    CleanupClosePushL(componentIdList);
-
-    // For each component check whether the drive it has been installed
-    // to is present AND whether the media id is correct
-    TInt  nComponents  = componentIdList.Count();
-
-    LOG1(EJavaCaptain, EInfo, "initializeScrPresenceInfoL: Number of Java components is %d",
-        nComponents);
-
-    for (TInt nInd = 0; nInd < nComponents; nInd++)
-    {
-        CComponentEntry *pEntry = CComponentEntry::NewLC();
-        if (!(pScr->GetComponentL(componentIdList[nInd], *pEntry)))
-        {
-            ELOG1(EJavaCaptain,
-                "initializeScrPresenceInfoL: SCR GetComponentIdsL returned id %d "
-                "but GetComponentL does not find it", componentIdList[nInd]);
-            CleanupStack::PopAndDestroy(pEntry);
-            continue;
-        }
-
-        CIntPropertyEntry* pMediaIdProperty = (CIntPropertyEntry *)
-            pScr->GetComponentPropertyL(componentIdList[nInd], KMediaId);
-        if (NULL == pMediaIdProperty)
-        {
-            ELOG1(EJavaCaptain,
-                "initializeScrPresenceInfoL: media_id property not found for component %d",
-                componentIdList[nInd]);
-            CleanupStack::PopAndDestroy(pEntry);
-            continue;
-        }
-        CleanupStack::PushL(pMediaIdProperty);
-
-        TInt nInstalledDrives = pEntry->InstalledDrives().Length();
-        if (nInstalledDrives > (EDriveZ + 1))
-        {
-            WLOG2(EJavaCaptain,
-                "initializeScrPresenceInfoL: too big (%d) installed drives array for "
-                "component %d", nInstalledDrives, componentIdList[nInd]);
-            nInstalledDrives = EDriveZ;
-        }
-        // When Java components are installed, only one installed drive
-        // and corresponding media id are registered.
-        TInt installationDrive = -1;
-
-        for (TInt driveNumber = EDriveA; driveNumber < nInstalledDrives; driveNumber++)
-        {
-            if (pEntry->InstalledDrives()[driveNumber])
-            {
-                installationDrive = driveNumber;
-                break;
-            }
-        }
-
-        if (installationDrive == -1)
-        {
-            ELOG1(EJavaCaptain,
-                "initializeScrPresenceInfoL: component (id %d) did not have installed drive info",
-                componentIdList[nInd]);
-            CleanupStack::PopAndDestroy(pMediaIdProperty);
-            CleanupStack::PopAndDestroy(pEntry);
-            continue;
-        }
-
-        if (drivePresent[installationDrive])  // codescanner::accessArrayElementWithoutCheck2
-        {
-            // Check also the media id
-            if (driveMediaId[installationDrive] == pMediaIdProperty->IntValue())  // codescanner::accessArrayElementWithoutCheck2
-            {
-                LOG1(EJavaCaptain, EInfo,
-                    "initializeScrPresenceInfoL: set component %d to present",
-                    componentIdList[nInd]);
-
-                pScr->SetIsComponentPresentL(componentIdList[nInd], ETrue);
-            }
-            else
-            {
-                LOG1(EJavaCaptain, EInfo,
-                    "initializeScrPresenceInfoL: set component %d to NOT present",
-                    componentIdList[nInd]);
-
-                pScr->SetIsComponentPresentL(componentIdList[nInd], EFalse);
-            }
-        }
-        else
-        {
-            LOG1(EJavaCaptain, EInfo,
-                "initializeScrPresenceInfoL: set component %d to NOT present",
-                componentIdList[nInd]);
-
-            // drive is not present -> Java component installed to that
-            // drive is not present
-            pScr->SetIsComponentPresentL(componentIdList[nInd], EFalse);
-        }
-
-        CleanupStack::PopAndDestroy(pMediaIdProperty);
-        CleanupStack::PopAndDestroy(pEntry);
-    }
-
-    CleanupStack::PopAndDestroy(); // Close componentIdList
-    CleanupStack::PopAndDestroy(pScr); // Also closes RSoftwareComponentRegistry
-
-    __UHEAP_MARKEND;
-}
-
-
-/**
- * Creates an instance of RSoftwareComponentRegistry and connects to it.
- */
-RSoftwareComponentRegistry *ScrUpdater::createScrL()
-{
-    RSoftwareComponentRegistry *pScr = new RSoftwareComponentRegistry;  // codescanner::nonleavenew
-    if (NULL == pScr)
-    {
-        ELOG(EJavaInstaller,
-            "CreateScrL: Creating RSoftwareComponentRegistry failed");
-        User::Leave(KErrGeneral);
-    }
-    TInt err = pScr->Connect();
-    if (KErrNone != err)
-    {
-        ELOG1(EJavaInstaller,
-            "CreateScrL: Connecting to RSoftwareComponentRegistry failed, error %d",
-            err);
-        delete pScr;
-        User::Leave(err);
-    }
-
-    return pScr;
-}
-
-
-} // namespace captain
-} // namespace java
--- a/javamanager/javacaptain/extensionplugins/scrupdater/src/scrupdater.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/*
-* Copyright (c) 2010 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:  ScrUpdater is Java Captain Symbian plugin that updates
-*               presence information of Java Applications in USIF SCR
-*               when removable drive is added or removed to the device.
-*
-*/
-
-#ifndef SCRUPDATER_H
-#define SCRUPDATER_H
-
-#include <usif/scr/scr.h>
-#include <usif/scr/screntries.h>
-
-#include "javaosheaders.h"
-
-#include "eventconsumerinterface.h"
-#include "extensionplugininterface.h"
-
-namespace java  // codescanner::namespace
-{
-
-namespace captain  // codescanner::namespace
-{
-
-class CoreInterface;
-
-OS_NONSHARABLE_CLASS(ScrUpdater) :  public EventConsumerInterface,
-        public ExtensionPluginInterface
-{
-public:
-    ScrUpdater();
-    virtual ~ScrUpdater();
-
-    // PluginInterface
-    virtual void startPlugin(CoreInterface* aCore);
-    virtual void stopPlugin();
-
-    // EventConsumerInterface
-    virtual void event(const std::string& aEventProvider,
-                       java::comms::CommsMessage& aMsg);
-
-    // ExtensionPluginInterface methods
-    virtual EventConsumerInterface* getEventConsumer();
-
-private:
-    void removeScrPresencesL(driveInfo *aInfo);
-    void addScrPresencesL(driveInfo *aInfo);
-    void initializeScrPresenceInfoL();
-
-    Usif::RSoftwareComponentRegistry *createScrL();
-};
-
-} // namespace captain
-} // namespace java
-
-#endif // SCRUPDATER_H
--- a/javamanager/javacaptain/extensionplugins/settingslistener/build/javacaptain_ext_settingslistener.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javacaptain/extensionplugins/settingslistener/build/javacaptain_ext_settingslistener.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -20,7 +20,7 @@
 CONFIG -= qt
 
 symbian {
-    LIBS += -lCommonEngine \
+    LIBS += -lcommonengine \
             -lcentralrepository \
             -lcenrepnotifhandler \
             -ljavacomms
--- a/javamanager/javacaptain/extensionplugins/settingslistener/build/javacaptain_ext_settingslistener_0x200315D8.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javacaptain/extensionplugins/settingslistener/build/javacaptain_ext_settingslistener_0x200315D8.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc
@@ -74,7 +74,7 @@
 SOURCE		settingslistenerimpl.cpp
 
 
-LIBRARY		CommonEngine.lib
+LIBRARY		commonengine.lib
 LIBRARY		centralrepository.lib
 LIBRARY		cenrepnotifhandler.lib
 LIBRARY		javacomms.lib
@@ -108,7 +108,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javamanager/javacaptain/extensionplugins/storageserver/build/javacaptain_ext_storageserverplugin_0x2002DCA3.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javacaptain/extensionplugins/storageserver/build/javacaptain_ext_storageserverplugin_0x2002DCA3.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../src
@@ -101,7 +101,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javamanager/javacaptain/inc.s60/pmc.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javacaptain/inc.s60/pmc.h	Wed Oct 13 14:23:59 2010 +0300
@@ -23,6 +23,9 @@
 
 #include <map>
 
+#include <AknGlobalNote.h>
+
+
 #include "javaoslayer.h"
 #include "logger.h"
 #include "scopedlocks.h"
@@ -140,6 +143,13 @@
         void showErrorNote()
         {
             LOG(EJavaCaptain, EInfo, "Process failed to exit gracefully");
+#ifdef RD_JAVA_EXIT_ERROR_DIALOG
+            //Print the dialog showing that force process kill was done.
+            CAknGlobalNote* globalNote = CAknGlobalNote::NewL();
+            globalNote->ShowNoteL(EAknGlobalErrorNote,
+                                  _L("Midp process failed to exit gracefully."));
+            delete globalNote;
+#endif
         }
 
     private:
--- a/javamanager/javacaptain/javacaptain.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javacaptain/javacaptain.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -20,5 +20,4 @@
 SUBDIRS += extensionplugins/storageserver/build/javacaptain_ext_storageserverplugin.pro 
 SUBDIRS += extensionplugins/settingslistener/build/javacaptain_ext_settingslistener.pro 
 SUBDIRS += extensionplugins/preinstallerstarter/build/javacaptain_ext_preinstallerstarter.pro 
-SUBDIRS += extensionplugins/autostarter/build/javacaptain_ext_autostarter.pro 
 BLD_INF_RULES.prj_extensions += "prj_extensions" 
--- a/javamanager/javacaptain/subsystem.mk	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javacaptain/subsystem.mk	Wed Oct 13 14:23:59 2010 +0300
@@ -36,7 +36,6 @@
 endif
 
 COMPONENTS += extensionplugins/preinstallerstarter/build
-COMPONENTS += extensionplugins/autostarter/build
 ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 COMPONENTS += extensionplugins/scrupdater/build
 endif
--- a/javamanager/javacaptain/systemams/build/systemams.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javacaptain/systemams/build/systemams.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -21,9 +21,6 @@
 #include <../../../../inc/project_defines.hrh>
 #include <../../../../inc/java_stdcpp_support_for_exe.hrh>
 
-epocheapsize 0x00001000 0x02000000
-epocstacksize 16384
-
 target          SystemAMS.exe
 TARGETTYPE EXE
 
--- a/javamanager/javacaptain/systemams/src/certificatesmanager.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javacaptain/systemams/src/certificatesmanager.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -231,7 +231,7 @@
     LazyInit();
     iCurrentCertInfo = getTrustRootL(aId);
     RArray<TUid> applications;
-    applications.AppendL(KMidletInstallApplicabilityUid);
+    applications.Append(KMidletInstallApplicabilityUid);
     iCertStore->SetApplicability(*iCurrentCertInfo, applications, iStatus);
     User::WaitForRequest(iStatus);
     if (iStatus.Int() == KErrNone)
--- a/javamanager/javainstaller/appinstuiplugin/build/javainstalllauncher.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/appinstuiplugin/build/javainstalllauncher.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -40,10 +40,6 @@
 START RESOURCE  ../data/101F875F.rss
 TARGET          ifeui.rsc
 END
-START RESOURCE  ../data/101F875F_iad.rss
-TARGET          ifeui.rsc
-TARGETPATH      resource/java/iad
-END
 
 // Sources
 SOURCEPATH      ../src
@@ -56,6 +52,8 @@
 USERINCLUDE     ../inc
 USERINCLUDE     ../../../../inc
 
+SYSTEMINCLUDE   ../../../../inc
+
 // Libraries
 LIBRARY         charconv.lib
 LIBRARY         cone.lib
--- a/javamanager/javainstaller/appinstuiplugin/data/101F875F.rss	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/appinstuiplugin/data/101F875F.rss	Wed Oct 13 14:23:59 2010 +0300
@@ -23,10 +23,6 @@
 
 //  RESOURCE DEFINITIONS 
 
-#ifndef ECOM_VERSION_NO
-#define ECOM_VERSION_NO 2
-#endif
-
 RESOURCE REGISTRY_INFO registry_info
     {
     resource_format_version = RESOURCE_FORMAT_VERSION_2;
@@ -46,7 +42,8 @@
                 IMPLEMENTATION_INFO
                     {
                     implementation_uid  =  KInstallerFrontEndEcomImplUid;
-                    version_no          =  ECOM_VERSION_NO;
+                    // Version number is 2 so that this implementation should override the old one in ROM
+                    version_no          =  2;
                     display_name        =  "Midlet installation ui implementation";
                     default_data        =  "application/java-archive||text/vnd.sun.j2me.app-descriptor||application/x-java-archive||application/java";
                     opaque_data         =  " ";
--- a/javamanager/javainstaller/appinstuiplugin/data/101F875F_iad.rss	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/*
-* Copyright (c) 2010 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:  ECOM resource definition for IAD
-*
-*/
-
-//  Version for IAD
-#define ECOM_VERSION_NO 3
-
-//  Include actual rss
-#include "101F875F.rss"
-
--- a/javamanager/javainstaller/appinstuiplugin/src/javainstalllauncher.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/appinstuiplugin/src/javainstalllauncher.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -26,7 +26,7 @@
 
 #include <CUIUtils.h>
 #include <eikenv.h>
-#include <sisxuidata.rsg>
+#include <SisxUIData.rsg>
 
 #include <javadomainpskeys.h>
 
@@ -228,7 +228,7 @@
 
     // Do NOT close rJavaInstaller now -> the caller gets notification when the
     // process actually closes.
-    iHandlesToClose.AppendL(rJavaInstaller);
+    iHandlesToClose.Append(rJavaInstaller);
 }
 
 void CJavaInstallLauncher::SilentInstallL(RFile& aFile,
@@ -410,7 +410,7 @@
 
     // Do NOT close rJavaInstaller now -> the caller gets notification when the
     // process actually closes.
-    iHandlesToClose.AppendL(rJavaInstaller);
+    iHandlesToClose.Append(rJavaInstaller);
 }
 
 void CJavaInstallLauncher::UninstallL(const TUid& aUid, const TDesC8&, /*aMIME*/
@@ -451,7 +451,7 @@
 
     // Do NOT close rJavaInstaller now -> the caller gets notification when the
     // process actually closes.
-    iHandlesToClose.AppendL(rJavaInstaller);
+    iHandlesToClose.Append(rJavaInstaller);
 }
 
 void CJavaInstallLauncher::SilentUninstallL(const TUid& aUid, const TDesC8&, /*aMIME*/
@@ -539,7 +539,7 @@
 
     // Do NOT close rJavaInstaller now -> the caller gets notification when the
     // process actually closes.
-    iHandlesToClose.AppendL(rJavaInstaller);
+    iHandlesToClose.Append(rJavaInstaller);
 }
 
 TBool CJavaInstallLauncher::IsAppShellUpdate()
@@ -619,7 +619,7 @@
     // Open UI env and resource file.
     if (!iEik)
     {
-        iEik = CEikonEnv::Static();  // codescanner::eikonenvstatic
+        iEik = CEikonEnv::Static();
     }
     if (!iEik)
     {
--- a/javamanager/javainstaller/iconsizenotifplugin/build/javaiconsizenotifplugin.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/iconsizenotifplugin/build/javaiconsizenotifplugin.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -16,12 +16,8 @@
 */
 
 
-#include <../../../../inc/project_defines.hrh>
-#include <data_caging_paths.hrh>
 #include <platform_paths.hrh>
 
-#include <../../../../inc/java_stdcpp_support_for_dll.hrh>
-
 
 TARGET          javaiconsizenotifplugin.dll
 TARGETTYPE      PLUGIN
@@ -37,10 +33,6 @@
 START RESOURCE  ../data/javaiconsizenotifplugin.rss
 TARGET          javaiconsizenotifplugin.rsc
 END
-START RESOURCE  ../data/javaiconsizenotifplugin_iad.rss
-TARGET          javaiconsizenotifplugin.rsc
-TARGETPATH      resource/java/iad
-END
 
 SOURCEPATH      ../src
 SOURCE          iconsizenotifier.cpp
@@ -51,8 +43,8 @@
 
 LIBRARY         euser.lib
 LIBRARY         eiksrv.lib              // MEikSrvNotifierBase2
-LIBRARY         CdlEngine.lib           // AknLayoutScalable_Avkon
-LIBRARY         AknLayout2Scalable.lib  // TAknWindowComponentLayout
+LIBRARY         cdlengine.lib           // AknLayoutScalable_Avkon
+LIBRARY         aknlayout2scalable.lib  // TAknWindowComponentLayout
 LIBRARY         avkon.lib               // TAknLayoutRect
 LIBRARY         eikcore.lib             // TAknLayoutRect
 
--- a/javamanager/javainstaller/iconsizenotifplugin/data/javaiconsizenotifplugin.rss	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/iconsizenotifplugin/data/javaiconsizenotifplugin.rss	Wed Oct 13 14:23:59 2010 +0300
@@ -18,10 +18,6 @@
 #include <ecom/registryinfov2.rh>
 #include <uikon.hrh>
 
-#ifndef ECOM_VERSION_NO
-#define ECOM_VERSION_NO 1
-#endif
-
 RESOURCE REGISTRY_INFO r_registry
 	{
     resource_format_version = RESOURCE_FORMAT_VERSION_2;
@@ -36,7 +32,7 @@
 				IMPLEMENTATION_INFO
 					{
 					implementation_uid = 0x101FD68A;
-					version_no = ECOM_VERSION_NO;
+					version_no = 1;
 					display_name = "JavaIconSizeNotifPlugin";
 					default_data = "";
 					opaque_data = "0";
--- a/javamanager/javainstaller/iconsizenotifplugin/data/javaiconsizenotifplugin_iad.rss	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/*
-* Copyright (c) 2010 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:  ECOM resource definition for IAD
-*
-*/
-
-//  Version for IAD
-#define ECOM_VERSION_NO 2
-
-//  Include actual rss
-#include "javaiconsizenotifplugin.rss"
-
--- a/javamanager/javainstaller/installcopier/build/javainstallcopier.pro	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-#
-# Copyright (c) 2010 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:
-#
-
-TEMPLATE=app
-TARGET=javainstallcopier
-CONFIG += omj no_icon stl
-CONFIG -= qt
-
-symbian {
-    TARGET.UID2 = 0x20031612
-    TARGET.UID3 = 0x20031612
-
-    TARGET.CAPABILITY = AllFiles
-
-    LIBS += -lefsrv -lcharconv
-}
-
-include(../../../../build/omj.pri)
--- a/javamanager/javainstaller/installcopier/src/javainstallcopier.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,153 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-* JavaInstallCopier.exe is a utility for copying Java installation
-* files from other processes private data cages to JavaInstaller's
-* private data cage. JavaSifPlugin calls JavaInstallCopier if
-* installation is started from a file which resides in a private
-* data cage which JavaInstaller cannot access.
-*
-*/
-
-
-#ifdef __SYMBIAN32__
-#include <f32file.h>
-#include <utf.h>
-#endif // __SYMBIAN32__
-
-#include "exceptionbase.h"
-#include "javaoslayer.h"
-#include "logger.h"
-#include "runtimeexception.h"
-
-using namespace java::runtime;
-using namespace java::util;
-
-int isCopyAllowed()
-{
-    int result = 0;
-#ifdef __SYMBIAN32__
-    // Only SifServer (0x10285BCB) is allowed to launch JavaInstallCopier.
-    TSecureId creatorSecId(User::CreatorSecureId());
-    if (0x10285BCB != creatorSecId.iId)
-    {
-        ELOG1(EJavaInstaller,
-              "INSTALLCOPIER: Process 0x%x is not allowed to "
-              "launch JavaInstallCopier", creatorSecId.iId);
-        result = KErrPermissionDenied;
-    }
-#endif // __SYMBIAN32__
-    return result;
-}
-
-int copyToInstallerDir(int argc, char *argv[])
-{
-    int result = 0;
-
-#ifdef __SYMBIAN32__
-    RFs rfs;
-    result = rfs.Connect();
-    if (KErrNone != result)
-    {
-        ELOG1(EJavaInstaller,
-              "INSTALLCOPIER: Connecting to RFs failed, err=%d", result);
-        return result;
-    }
-
-    CFileMan* fm = NULL;
-    TRAP(result, fm = CFileMan::NewL(rfs));
-    if (KErrNone != result)
-    {
-        ELOG1(EJavaInstaller,
-              "INSTALLCOPIER: Creating CFileMan failed, err=%d", result);
-        return result;
-    }
-
-    _LIT(KJavaInstallerTmp, "\\private\\102033E6\\installer\\tmp\\");
-    for (int i = 1; i < argc && KErrNone == result; i++)
-    {
-        TPtrC8 srcPtr((const TText8*)argv[i]);
-        TFileName srcPath;
-        CnvUtfConverter::ConvertToUnicodeFromUtf8(srcPath, srcPtr);
-        // Get the drive from the srcPath...
-        TParse fp;
-        rfs.Parse(srcPath, fp);
-        // ...and prefix it to KJavaInstallerTmp path.
-        TFileName dstPath = fp.Drive();
-        dstPath.Append(KJavaInstallerTmp);
-
-        result = fm->Copy(srcPath, dstPath, CFileMan::ERecurse|CFileMan::EOverWrite);
-
-        std::wstring srcWs((wchar_t*)srcPath.Ptr(), srcPath.Length());
-        std::wstring dstWs((wchar_t*)dstPath.Ptr(), dstPath.Length());
-        if (KErrNone == result)
-        {
-            ILOG2(EJavaInstaller, "INSTALLCOPIER: Copied %S to %S",
-                  srcWs.c_str(), dstWs.c_str());
-        }
-        else
-        {
-            ELOG3(EJavaInstaller,
-                  "INSTALLCOPIER: Copying %S to %S failed, err=%d",
-                  srcWs.c_str(), dstWs.c_str(), result);
-        }
-    }
-
-    delete fm;
-    fm = NULL;
-    rfs.Close();
-#else // __SYMBIAN32__
-    for (int i = 1; i < argc && result == 0; i++)
-    {
-        WLOG1(EJavaInstaller, "INSTALLCOPIER: Ignored %s", argv[i]);
-    }
-#endif // __SYMBIAN32__
-
-    return result;
-}
-
-int main(int argc, char *argv[])
-{
-    //ILOG(EJavaInstaller, "INSTALLCOPIER main()");
-    JavaOsLayer::startUpTrace("INSTALLCOPIER main() start", -1, -1);
-
-    int result = 0;
-    try
-    {
-        result = isCopyAllowed();
-        if (0 == result)
-        {
-            result = copyToInstallerDir(argc, argv);
-        }
-    }
-    catch (RuntimeException& e)
-    {
-        ELOG1(EJavaInstaller, "INSTALLCOPIER main() RuntimeException caught: %s",
-              e.toString().c_str());
-    }
-    catch (ExceptionBase& e)
-    {
-        ELOG1(EJavaInstaller, "INSTALLCOPIER main() ExceptionBase caught: %s",
-              e.toString().c_str());
-    }
-    catch (std::exception& e)
-    {
-        ELOG1(EJavaInstaller, "INSTALLCOPIER main() Exception %s caught", e.what());
-    }
-
-    //ILOG1(EJavaInstaller, "INSTALLCOPIER main() exit %d", result);
-    JavaOsLayer::startUpTrace("INSTALLCOPIER main() end", -1, -1);
-    return result;
-}
--- a/javamanager/javainstaller/installer/build/build.xml	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/build/build.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -74,7 +74,6 @@
     value="com.nokia.mj.impl.installer.utils.SysUtil,
            com.nokia.mj.impl.installer.utils.FileRoots,
            com.nokia.mj.impl.installer.utils.FileWriter,
-           com.nokia.mj.impl.installer.utils.PropertyProvider,
            com.nokia.mj.impl.installer.jadjarmatcher.JadJarMatcher,
            com.nokia.mj.impl.installer.applicationregistrator.ApplicationRegistrator,
            com.nokia.mj.impl.installer.applicationregistrator.SifNotifier,
--- a/javamanager/javainstaller/installer/build/exports.inf	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/build/exports.inf	Wed Oct 13 14:23:59 2010 +0300
@@ -27,12 +27,11 @@
 ../data/inst_plugins.cfg   /epoc32/data/z/private/102033E6/installer/inst_plugins.cfg
 
 
-// Configuration interface for javainstaller 
+// Generic configuration interface for javainstaller cenrep settings
+// javainstaller_102824CE implementation specifics for cenrep data
 #ifdef RD_JAVA_S60_RELEASE_10_1_ONWARDS 
-// Public configuration interface is named as CI_javainstaller.confml
-// and it is located outside of jrt package. The name of private
-// configuration interface is javainstaller2.confml.
 ../conf/javainstaller2.confml         APP_LAYER_CONFML(javainstaller.confml)
+../conf/CI_javainstaller.confml       APP_LAYER_CONFML(CI_javainstaller.confml)
 #else
 ../conf/javainstaller.confml          APP_LAYER_CONFML(javainstaller.confml)
 #endif /* RD_JAVA_S60_RELEASE_10_1_ONWARDS */
--- a/javamanager/javainstaller/installer/build/javainstaller.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/build/javainstaller.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -49,8 +49,6 @@
                ../src.s60/jadjarmatcher/jadjarmatcherscanfrominbox.cpp \
                ../src.s60/utils/filewriter.cpp \
                ../src.s60/utils/fileroots.cpp \
-               ../src.s60/utils/propertylistener.cpp \
-               ../src.s60/utils/propertyprovider.cpp \
                ../src.s60/utils/sysutil.cpp
 
     LIBS += -lapgrfx -lbafl -lcentralrepository -lcharconv -lefsrv -lestor \
@@ -63,17 +61,17 @@
     }
 
     contains(PROJECT_DEFINES,RD_JAVA_S60_RELEASE_10_1_ONWARDS) {
-        CONFIG += hb
-        LIBS += -lsifnotification -lxqservice
+        LIBS += -lQtServiceFramework
+    }
+
+    contains(PROJECT_DEFINES,RD_JAVA_USIF_NOTIFY_PROGRESS) {
+        LIBS += -lsifnotification
     }
 
     MMP_RULES += \
     "$${LITERAL_HASH}include <bldvariant.hrh>" \
     "$${LITERAL_HASH}ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK" \
     "LIBRARY scrclient.lib" \
-    "$${LITERAL_HASH}else" \
-    "LIBRARY ecom.lib" \
-    "LIBRARY SWInstTaskManager.lib" \
     "$${LITERAL_HASH}endif"
 } else {
     CONFIG += omj java javaonly stl
--- a/javamanager/javainstaller/installer/build/javainstaller_0x2002DCB4.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/build/javainstaller_0x2002DCB4.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../src.s60/applicationregistrator
@@ -82,8 +82,6 @@
 SOURCEPATH 	../src.s60/utils
 SOURCE		filewriter.cpp
 SOURCE		fileroots.cpp
-SOURCE		propertylistener.cpp
-SOURCE		propertyprovider.cpp
 SOURCE		sysutil.cpp
 
 
@@ -129,7 +127,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
@@ -145,12 +143,6 @@
 
 LIBRARY scrclient.lib
 
-#else
-
-LIBRARY ecom.lib
-
-LIBRARY SWInstTaskManager.lib
-
 #endif
 
 #include <platform_paths.hrh>
Binary file javamanager/javainstaller/installer/conf/CI_javainstaller.confml has changed
--- a/javamanager/javainstaller/installer/javasrc.s60/com/nokia/mj/impl/installer/applicationregistrator/ApplicationRegistrator.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc.s60/com/nokia/mj/impl/installer/applicationregistrator/ApplicationRegistrator.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-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"
@@ -18,7 +18,6 @@
 
 package com.nokia.mj.impl.installer.applicationregistrator;
 
-import com.nokia.mj.impl.installer.storagehandler.SuiteInfo;
 import com.nokia.mj.impl.installer.utils.InstallerException;
 import com.nokia.mj.impl.installer.utils.FileRoots;
 import com.nokia.mj.impl.installer.utils.FileUtils;
@@ -356,8 +355,6 @@
         String aJarFilename,
         StringBuffer aIconSuffix)
     {
-        Log.log("ApplicationRegistrator.convertIcon: " + aInputIconFilename +
-                " --> " + aOutputIconFilename + ", from jar " + aJarFilename);
         return _convertIcon(aInputIconFilename, aOutputIconFilename,
                             aJarFilename, aIconSuffix);
     }
@@ -440,50 +437,8 @@
         return;
     }
 
-    /**
-     * Adds an entry to platform installation log.
-     *
-     * @param aSuite application suite information
-     * @param aAction 0 - installation, 1 - uninstallation
-     */
-    public static void addInstallLogEntry(SuiteInfo aSuite, int aAction)
-    {
-        // In S60 the version number is restricted to limited range.
-        // If version number is outside of this range, use version
-        // number 0 instead.
-        int result = _addInstallLogEntry(
-            aAction, PlatformUid.getIntValue(aSuite.getUid()),
-            aSuite.getName(), aSuite.getVendor(),
-            getVersion(aSuite.getVersion().getMajor(), 0, 127),
-            getVersion(aSuite.getVersion().getMinor(), 0, 99),
-            getVersion(aSuite.getVersion().getMicro(), 0, 32767));
-        if (result < 0)
-        {
-            Log.logError("Adding installation log entry failed, err=" + result);
-        }
-        else
-        {
-            Log.log("Added installation log entry");
-        }
-    }
-
     /*** ----------------------------- PACKAGE ---------------------------- */
     /*** ----------------------------- PRIVATE ---------------------------- */
-
-    /**
-     * Checks that given version number is between specified minimum and
-     * maximum value range (inclusive) and if it is returns version number.
-     * If version number is out of given range, returns 0.
-     */
-    private static int getVersion(int aVersion, int aMin, int aMax)
-    {
-        if (aVersion >= aMin && aVersion <= aMax)
-        {
-            return aVersion;
-        }
-        return 0;
-    }
-
     /*** ----------------------------- NATIVE ----------------------------- */
 
     /**
@@ -624,20 +579,4 @@
      * @return true if Symbian 9.2 emulator environment
      */
     private static native boolean _runningIn92Emulator();
-
-    /**
-     * Adds an entry to platform installation log.
-     *
-     * @param aAction 0 - installation, 1 - uninstallation
-     * @param aUid application suite uid
-     * @param aName application suite name
-     * @param aVendor application suite vendor
-     * @param aMajorVersion application suite major version
-     * @param aMinorVersion application suite minor version
-     * @param aMicroVersion application suite micro version
-     * @return Symbian error code (negative number) if fails, otherwise 0
-     */
-    private static native int _addInstallLogEntry(
-        int aAction, int aUid, String aName, String aVendor,
-        int aMajorVersion, int aMinorVersion, int aMicroVersion);
 }
--- a/javamanager/javainstaller/installer/javasrc.s60/com/nokia/mj/impl/installer/applicationregistrator/SifNotifier.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc.s60/com/nokia/mj/impl/installer/applicationregistrator/SifNotifier.java	Wed Oct 13 14:23:59 2010 +0300
@@ -18,11 +18,8 @@
 
 package com.nokia.mj.impl.installer.applicationregistrator;
 
-import com.nokia.mj.impl.installer.ui.InstallerUi;
 import com.nokia.mj.impl.installer.utils.InstallerException;
 import com.nokia.mj.impl.installer.utils.Log;
-import com.nokia.mj.impl.installer.utils.PropertyListener;
-import com.nokia.mj.impl.installer.utils.PropertyProvider;
 
 /**
  * Sends installation and uninstallation progress notifications
@@ -31,26 +28,22 @@
 public final class SifNotifier
 {
     /** Install operation. */
-    public static final int OP_INSTALL = 1; // TSifOperationPhase::EInstalling
+    public static final int OP_INSTALL = 1;
     /** Uninstall operation. */
-    public static final int OP_UNINSTALL = 2; // TSifOperationPhase::EUninstalling
+    public static final int OP_UNINSTALL = 2;
     /** Update operation. */
-    public static final int OP_UPDATE = 3; // TSifOperationPhase::EUpgrading
+    public static final int OP_UPDATE = 3;
 
-    /** Indicates installation or uninstallation without
+    /** Indicates installaion or uninstallation without
         specific suboperation. */
-    public static final int SUB_OP_NO = 1; // TSifOperationSubPhase::ENoSubPhase
+    public static final int SUB_OP_NO = 1;
     /** OCSP phase during installation. */
-    public static final int SUB_OP_OCSP = 2; // TSifOperationSubPhase::EOCSPCheck
+    public static final int SUB_OP_OCSP = 2;
     /** Download phase during installation. */
-    public static final int SUB_OP_DOWNLOAD = 3; // TSifOperationSubPhase::EDownload
-    /** Maximum progress notification value. */
-    private static final int MAX_PROGRESS = 100;
+    public static final int SUB_OP_DOWNLOAD = 3;
 
     /** Operation being notified. */
     private int iOperation = 0;
-    /** Suboperation during installation. */
-    private int iSubOperation = 0;
     /** Global component id for the application. */
     private String iGlobalComponentId = null;
     /** Component name (i.e. suite name). */
@@ -69,26 +62,9 @@
     /** Sending progress notifications is only allowed between start
      *  and end notifications. */
     private boolean iNotifyProgressAllowed = false;
-    /**
-     * Value of the last progress notification that has been sent with
-     * SUB_OP_NO suboperation.
-     */
-    private int iLastProgressSent = 0;
-    /** Current value of the last progress notification that has been sent. */
-    private int iCurrentValue = 0;
-    /** total value of the last progress notification that has been sent. */
-    private int iTotalValue = 0;
 
-    /** Native notifier object handle. */
+    /** Native object handle. */
     private int iHandle = 0;
-    /** Native indicator object handle. */
-    private int iIndicatorHandle = 0;
-    /** InstallerUi handle. */
-    private InstallerUi iInstallerUi = null;
-    /** Provider for indicator status events. */
-    private PropertyProvider iIndicatorStatusProvider = null;
-    /** Indicator state. */
-    private int iIndicatorState = -1;
 
     /*** ----------------------------- PUBLIC ------------------------------ */
 
@@ -101,164 +77,6 @@
     }
 
     /**
-     * Set InstallerUi used when handling indicator.
-     */
-    public void setInstallerUi(InstallerUi aInstallerUi)
-    {
-        iInstallerUi = aInstallerUi;
-    }
-
-    /**
-     * Activates and updates indicator which displays installation
-     * progress to user while installer UI is hidden. The notifyStart
-     * and notifyProgress methods must be called at least once before
-     * calling this method.
-     */
-    public void activateIndicator()
-    {
-        if (iInstallerUi == null)
-        {
-            return;
-        }
-
-        if (iIndicatorHandle == 0)
-        {
-            int ret = _initIndicator();
-            if (ret < 0)
-            {
-                Log.logError(
-                    "Initializing SifNotifier indicator failed with code " +
-                    ret);
-            }
-            else
-            {
-                Log.log("SifNotifier indicator created");
-            }
-            iIndicatorHandle = ret;
-        }
-
-        if (iIndicatorHandle == 0)
-        {
-            return;
-        }
-
-        int phase = 0;
-        switch (iSubOperation)
-        {
-        case SUB_OP_OCSP: phase = 2; break; // TInstallingPhase::ECheckingCerts
-        case SUB_OP_DOWNLOAD: phase = 1; break; // TInstallingPhase::EDownloading
-        default: phase = 0; // TInstallingPhase::EInstalling
-        }
-        int progress = (iTotalValue == 0? 0: iCurrentValue*100/iTotalValue);
-        updateIndicator(iComponentName, phase, progress);
-
-        if (iIndicatorStatusProvider == null)
-        {
-            // Create PropertyListener which listens indicator status events
-            // and unhides UI when necessary.
-            final int indicatorCategory = 0x20022FC5; // sifuiinstallindicatorplugin
-            final int indicatorKey = 0x2002E690; // /SifUiInstallIndicator/Status
-            iIndicatorStatusProvider = new PropertyProvider();
-            iIndicatorStatusProvider.subscribe(
-                indicatorCategory, indicatorKey, new PropertyListener()
-                {
-                    public void valueChanged(int aCategory, int aKey, int aValue)
-                    {
-                        Log.log("SifNotifier indicator status " + aValue +
-                                " (category=" + aCategory + ", key=" + aKey + ")");
-                        iIndicatorState = aValue;
-                        if (iIndicatorState == 0)
-                        {
-                            // Indicator has been closed, unhide the UI.
-                            iInstallerUi.hide(false);
-                        }
-                    }
-                });
-            Log.log("SifNotifier indicator status provider subscribed");
-        }
-    }
-
-    /**
-     * Updates indicator which displays installation progress to user
-     * while installer UI is hidden. The activateindicator method must
-     * be called before calling this method.
-     */
-    public void updateIndicator(String aName, int aPhase, int aProgress)
-    {
-        if (iInstallerUi == null || iIndicatorHandle == 0)
-        {
-            return;
-        }
-
-        final String name = aName;
-        final int phase = aPhase;
-        final int progress = aProgress;
-        iInstallerUi.syncExec(new Runnable()
-        {
-            // Indicator must be updated from UI thread.
-            public void run()
-            {
-                int ret = _updateIndicator(
-                    iIndicatorHandle, name, phase, progress);
-                if (ret < 0)
-                {
-                    Log.logError(
-                        "Updating SifNotifier indicator failed with code " +
-                        ret);
-                }
-                else
-                {
-                    Log.log("SifNotifier indicator updated: " + name +
-                            ", " + phase + ", " + progress + "%");
-                }
-            }
-        });
-    }
-
-    /**
-     * Deactivates indicator which displays installation
-     * progress to user while installer UI is hidden.
-     */
-    public void deactivateIndicator()
-    {
-        if (iIndicatorStatusProvider != null)
-        {
-            iIndicatorStatusProvider.unsubscribe();
-            iIndicatorStatusProvider = null;
-            Log.log("SifNotifier indicator status provider unsubscribed");
-        }
-
-        if (iInstallerUi == null)
-        {
-            return;
-        }
-
-        iInstallerUi.syncExec(new Runnable()
-        {
-            // Indicator must be deactivated from UI thread.
-            public void run()
-            {
-                if (iIndicatorHandle == 0)
-                {
-                    return;
-                }
-                int ret = _destroyIndicator(iIndicatorHandle, iIndicatorState);
-                if (ret < 0)
-                {
-                    Log.logError(
-                        "Destroying SifNotifier indicator failed with code " +
-                        ret);
-                }
-                else
-                {
-                    Log.log("SifNotifier indicator destroyed");
-                }
-                iIndicatorHandle = 0;
-            }
-        });
-    }
-
-    /**
      * Returns true if SIF progress notifications are enabled, false otherwise.
      */
     public static boolean enabled()
@@ -285,22 +103,22 @@
         iIconDir = aIconDir;
         iComponentIcon = aComponentIcon;
 
-        checkHandle();
+        if (iHandle == 0)
+        {
+            InstallerException.internalError(
+                "SifNotifier.notifyStart: notifier has not been initialized");
+        }
         int ret = _notifyStart(
-                      iHandle, aOperation, aGlobalComponentId, aComponentName,
+                      iHandle, aGlobalComponentId, aComponentName,
                       aApplicationNames, aApplicationIcons,
                       aComponentSize, aIconDir, aComponentIcon);
         if (ret < 0)
         {
-            Log.log("Notifying SIF start failed with code " + ret +
-                    ", " + getInfoString());
+            Log.logError("Notifying SIF start failed with code " + ret +
+                         ", " + getInfoString());
             InstallerException.internalError(
                 "Notifying SIF start failed with code " + ret);
         }
-        else
-        {
-            Log.log("SifNotifier.notifyStart: " + getInfoString());
-        }
         iNotifyProgressAllowed = true;
     }
 
@@ -312,35 +130,26 @@
     public void notifyEnd(
         int aErrCategory, int aErrCode, String aErrMsg, String aErrMsgDetails)
     {
-        checkHandle();
-        if (aErrCategory == 0 && iLastProgressSent < MAX_PROGRESS)
+        if (iHandle == 0)
         {
-            // Before sending end notification, update progress to max if
-            // operation was successful and max progress notification has
-            // not yet been sent.
-            notifyProgress(SUB_OP_NO, MAX_PROGRESS, MAX_PROGRESS);
+            InstallerException.internalError(
+                "SifNotifier.notifyEnd: notifier has not been initialized");
         }
-        // No more progress notifications allowed.
         iNotifyProgressAllowed = false;
         int ret = _notifyEnd(
                       iHandle, iGlobalComponentId, aErrCategory, aErrCode,
                       aErrMsg, aErrMsgDetails);
-        String logMsg =
-            "ErrCategory: " + aErrCategory +
-            ", ErrCode: " + aErrCode +
-            ", ErrMsg: " + aErrMsg +
-            ", ErrMsgDetails: " + aErrMsgDetails;
         if (ret < 0)
         {
-            Log.log("Notifying SIF end failed with code " + ret +
-                    ", " + getInfoString() + ", " + logMsg);
+            Log.logError("Notifying SIF end failed with code " + ret +
+                         ", " + getInfoString() +
+                         ", ErrCategory: " + aErrCategory +
+                         ", ErrCode: " + aErrCode +
+                         ", ErrMsg: " + aErrMsg +
+                         ", ErrMsgDetails: " + aErrMsgDetails);
             InstallerException.internalError(
                 "Notifying SIF end failed with code " + ret);
         }
-        else
-        {
-            Log.log("SifNotifier.notifyEnd: " + logMsg);
-        }
     }
 
     /**
@@ -354,39 +163,24 @@
         {
             return;
         }
-
-        iSubOperation = aSubOperation;
-        iCurrentValue = aCurrent;
-        iTotalValue = aTotal;
-        if (iIndicatorHandle != 0)
+        if (iHandle == 0)
         {
-            // Call activateIndicator so that indicator gets updated.
-            activateIndicator();
-        }
-
-        checkHandle();
-        if (aSubOperation == SUB_OP_NO)
-        {
-            iLastProgressSent = aCurrent;
+            InstallerException.internalError(
+                "SifNotifier.notifyProgress: notifier has not been initialized");
         }
         int ret = _notifyProgress(
                       iHandle, iGlobalComponentId, iOperation, aSubOperation,
                       aCurrent, aTotal);
-        String logMsg =
-            "SubOp: " + aSubOperation +
-            ", Current: " + aCurrent +
-            ", Total: " + aTotal;
         if (ret < 0)
         {
-            Log.log("Notifying SIF progress failed with code " + ret +
-                    ", " + getInfoString() + ", " + logMsg);
+            Log.logError("Notifying SIF progress failed with code " + ret +
+                         ", " + getInfoString() +
+                         ", SubOp: " + aSubOperation +
+                         ", Current: " + aCurrent +
+                         ", Total: " + aTotal);
             InstallerException.internalError(
                 "Notifying SIF progress failed with code " + ret);
         }
-        else
-        {
-            Log.log("SifNotifier.notifyProgress: " + logMsg);
-        }
     }
 
     /**
@@ -397,18 +191,17 @@
      */
     public void destroy()
     {
-        deactivateIndicator();
-        checkHandle();
+        if (iHandle == 0)
+        {
+            InstallerException.internalError(
+                "SifNotifier.destroy: notifier has not been initialized");
+        }
         int ret = _destroy(iHandle);
         if (ret < 0)
         {
             InstallerException.internalError(
                 "Destroying SIF notifier failed with code " + ret);
         }
-        else
-        {
-            Log.log("SifNotifier destroyed");
-        }
         iHandle = 0;
     }
 
@@ -428,29 +221,12 @@
             InstallerException.internalError(
                 "Initializing SifNotifier failed with code " + ret);
         }
-        else
-        {
-            Log.log("SifNotifier created");
-        }
         iHandle = ret;
     }
 
     /*** ----------------------------- PRIVATE ---------------------------- */
 
     /**
-     * Checks if notifier instance has been initialized.
-     * @throws InstallerException if notifier has not been initialized
-     */
-    private void checkHandle()
-    {
-        if (iHandle == 0)
-        {
-            InstallerException.internalError(
-                "SifNotifier.destroy: notifier has not been initialized");
-        }
-    }
-
-    /**
      * Returns notification info string used in logging.
      */
     private String getInfoString()
@@ -459,31 +235,11 @@
         buf.append("Operation: ").append(iOperation);
         buf.append(", GlobalComponentId: ").append(iGlobalComponentId);
         buf.append(", ComponentName: ").append(iComponentName);
-        if (iApplicationNames != null)
+        for (int i = 0; i < iApplicationNames.length; i++)
         {
-            for (int i = 0; i < iApplicationNames.length; i++)
-            {
-                buf.append(", ApplicationName[").append(i).append("]: ")
-                    .append(iApplicationNames[i]);
-            }
-        }
-        if (iApplicationIcons != null)
-        {
-            for (int i = 0; i < iApplicationIcons.length; i++)
-            {
-                buf.append(", ApplicationIcon[").append(i).append("]: ")
-                    .append(iApplicationIcons[i]);
-            }
+            buf.append(", ApplicationName: ").append(iApplicationNames[i]);
         }
         buf.append(", ComponentSize: ").append(iComponentSize);
-        if (iIconDir != null)
-        {
-            buf.append(", IconDir: ").append(iIconDir);
-        }
-        if (iComponentIcon != null)
-        {
-            buf.append(", ComponentIcon: ").append(iComponentIcon);
-        }
         return buf.toString();
     }
 
@@ -498,7 +254,6 @@
      * Notifies SIF about installation/uinstallation start.
      *
      * @param aHandle
-     * @param aOperation
      * @param aGlobalComponentId
      * @param aComponentName
      * @param aApplicationNames
@@ -510,10 +265,9 @@
      * otherwise 0
      */
     private static native int _notifyStart(
-        int aHandle, int aOperation, String aGlobalComponentId,
-        String aComponentName, String[] aApplicationNames,
-        String[] aApplicationIcons, int aComponentSize,
-        String aIconDir, String aComponentIcon);
+        int aHandle, String aGlobalComponentId, String aComponentName,
+        String[] aApplicationNames, String[] aApplicationIcons,
+        int aComponentSize, String aIconDir, String aComponentIcon);
 
     /**
      * Notifies SIF about installation/uinstallation completion.
@@ -553,7 +307,7 @@
      * other methods are called.
      *
      * @return Symbian error code (negative number) if operation fails,
-     * otherwise handle to the native side object
+     * otherwise handle to the natie side object
      */
     private static native int _init();
 
@@ -567,35 +321,4 @@
      */
     private static native int _destroy(int aHandle);
 
-    /**
-     * Initializes SifNotifier indicator.
-     *
-     * @return Symbian error code (negative number) if operation fails,
-     * otherwise handle to the native side object
-     */
-    private static native int _initIndicator();
-
-    /**
-     * Updates SifNotifier indicator.
-     *
-     * @param aHandle handle to indicator object
-     * @param aName application name
-     * @param aPhase operation phase
-     * @param aProgress progress in percentage
-     * @return Symbian error code (negative number) if operation fails,
-     * otherwise handle to the native side object
-     */
-    private static native int _updateIndicator(
-        int aHandle, String aName, int aPhase, int aProgress);
-
-    /**
-     * Destroys SifNotifier indicator.
-     *
-     * @param aHandle handle to indicator object
-     * @param aState indicator state
-     * @return Symbian error code (negative number) if operation fails,
-     * otherwise 0
-     */
-    private static native int _destroyIndicator(int aHandle, int aState);
-
 }
--- a/javamanager/javainstaller/installer/javasrc.s60/com/nokia/mj/impl/installer/applicationregistrator/SifRegistrator.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc.s60/com/nokia/mj/impl/installer/applicationregistrator/SifRegistrator.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 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"
@@ -25,6 +25,7 @@
 import com.nokia.mj.impl.installer.utils.FileUtils;
 import com.nokia.mj.impl.installer.utils.Log;
 import com.nokia.mj.impl.installer.utils.PlatformUid;
+import com.nokia.mj.impl.rt.installer.ApplicationInfoImpl;
 import com.nokia.mj.impl.utils.Attribute;
 import com.nokia.mj.impl.utils.Uid;
 
@@ -60,14 +61,6 @@
     }
 
     /**
-     * Returns SIF specific error category from given error id.
-     */
-    public static int getErrorCategory(int aErrorId)
-    {
-        return _getErrorCategory(aErrorId);
-    }
-
-    /**
      * Launches the application view. If launching application view
      * fails this method does not throw exception but produces an
      * error log entry.
@@ -136,6 +129,27 @@
     }
 
     /**
+     * Registers or unregisters Java software type to software
+     * installation framework.
+     *
+     * @param aRegister true for registration, false for unregistration
+     */
+    public static void registerJavaSoftwareType(boolean aRegister)
+    {
+        String op = (aRegister? "Register": "Unregister");
+        int err = _registerJavaSoftwareType(aRegister);
+        if (err < 0)
+        {
+            InstallerException.internalError(
+                op + " Java software type failed with code " + err);
+        }
+        else
+        {
+            Log.log("SifRegistrator " + op + "ed Java software type");
+        }
+    }
+
+    /**
      * Starts application registration session.
      * The registrations and unregistrations are done only
      * when commitSession is called.
@@ -165,7 +179,7 @@
         if (ret < 0)
         {
             InstallerException.internalError(
-                "Creating SIF session failed with code " + ret);
+                "Creating session failed with code " + ret);
         }
         //Log.log("SifRegistrator session started");
         iSessionHandle = ret;
@@ -184,18 +198,36 @@
      */
     public void registerSuite(SuiteInfo aSuiteInfo, boolean aIsUpdate)
     {
-        checkSession();
+        if (0 == iSessionHandle)
+        {
+            InstallerException.internalError("No valid SIF session.");
+        }
         Log.log("SifRegistrator registering application suite " +
                 aSuiteInfo.getGlobalId());
 
-        // Register suite as a component.
-        registerComponent(aSuiteInfo, aIsUpdate);
-        registerLocalizedComponentName(aSuiteInfo, -1);
-        // Register applications within the component.
-        Vector apps = aSuiteInfo.getApplications();
-        for (int i = 0; i < apps.size(); i++)
+        if (_getUsifMode() > 0)
         {
-            registerApplication(aSuiteInfo, i);
+            // USIF Phase 2 registration.
+            // Register suite as a component.
+            registerComponent(aSuiteInfo, aIsUpdate);
+            registerLocalizedComponentName(aSuiteInfo, -1);
+            // Register applications within the component.
+            Vector apps = aSuiteInfo.getApplications();
+            for (int i = 0; i < apps.size(); i++)
+            {
+                registerApplication(aSuiteInfo, i);
+            }
+        }
+        else
+        {
+            // USIF Phase 1 registration.
+            // Register each application in the suite.
+            Vector apps = aSuiteInfo.getApplications();
+            for (int i = 0; i < apps.size(); i++)
+            {
+                registerComponent(aSuiteInfo, i, aIsUpdate);
+                registerLocalizedComponentName(aSuiteInfo, i);
+            }
         }
         registerLocalizedProperties(aSuiteInfo);
     }
@@ -211,12 +243,29 @@
      */
     public void unregisterSuite(SuiteInfo aSuiteInfo)
     {
-        checkSession();
+        if (0 == iSessionHandle)
+        {
+            InstallerException.internalError("No valid SIF session.");
+        }
         Log.log("SifRegistrator unregistering application suite " +
                 aSuiteInfo.getGlobalId());
 
-        // Unregister suite as a component.
-        unregisterComponent(aSuiteInfo);
+        if (_getUsifMode() > 0)
+        {
+            // USIF Phase 2 unregistration.
+            // Unregister suite as a component.
+            unregisterComponent(aSuiteInfo);
+        }
+        else
+        {
+            // USIF Phase 1 unregistration.
+            // Unregister each application in the suite.
+            Vector apps = aSuiteInfo.getApplications();
+            for (int i = 0; i < apps.size(); i++)
+            {
+                unregisterComponent(aSuiteInfo, i);
+            }
+        }
     }
 
     /**
@@ -229,11 +278,15 @@
      */
     public void commitSession()
     {
-        checkSession();
+        if (0 == iSessionHandle)
+        {
+            InstallerException.internalError("No valid SIF session.");
+        }
+
         int err = _commitSession(iSessionHandle);
         if (err < 0)
         {
-            InstallerException.internalError("Commiting SIF session failed with code " + err);
+            InstallerException.internalError("Commiting session failed with code " + err);
         }
         // Current session has been closed
         iSessionHandle = 0;
@@ -248,13 +301,17 @@
      */
     public void rollbackSession()
     {
-        checkSession();
+        if (0 == iSessionHandle)
+        {
+            InstallerException.internalError("No valid SIF session.");
+        }
+
         int err = _rollbackSession(iSessionHandle);
         // Session is closed always when rollback is called
         iSessionHandle = 0;
         if (err < 0)
         {
-            InstallerException.internalError("Rolling back SIF session failed with code " + err);
+            InstallerException.internalError("Rolling back the session failed with code " + err);
         }
         //Log.log("SifRegistrator session rolled back");
     }
@@ -270,6 +327,7 @@
         {
             return;
         }
+
         _closeSession(iSessionHandle);
         // Current session has been closed
         iSessionHandle = 0;
@@ -286,7 +344,11 @@
      */
     public ComponentId getComponentId(String aGlobalId)
     {
-        checkSession();
+        if (0 == iSessionHandle)
+        {
+            InstallerException.internalError("No valid SIF session.");
+        }
+
         ComponentId result = new ComponentId();
         int ret = _getComponentId(iSessionHandle, aGlobalId, result);
         if (-1 == ret)
@@ -314,7 +376,11 @@
      */
     public ComponentId getComponentId(Uid aAppUid)
     {
-        checkSession();
+        if (0 == iSessionHandle)
+        {
+            InstallerException.internalError("No valid SIF session.");
+        }
+
         ComponentId result = new ComponentId();
         int ret = _getComponentIdForApp(
                       iSessionHandle, ((PlatformUid)aAppUid).getIntValue(), result);
@@ -340,12 +406,15 @@
      */
     public void logComponent(String aGlobalId)
     {
-        checkSession();
+        if (0 == iSessionHandle)
+        {
+            InstallerException.internalError("No valid SIF session.");
+        }
+
         int ret = _logComponent(iSessionHandle, aGlobalId);
         if (ret < -1)
         {
-            Log.logError("SifRegistrator logComponent for " + aGlobalId +
-                         " failed with code " + ret);
+            Log.logError("SifRegistrator logComponent failed with code " + ret);
         }
     }
 
@@ -353,19 +422,120 @@
     /*** ----------------------------- PRIVATE ---------------------------- */
 
     /**
-     * Checks if SifRegistrator session has been started.
-     * @throws InstallerException if SifRegistrator session has not been started
+     * Registers one Java application to S60 USIF as a component.
+     * Used with USIF Phase 1.
+     *
+     * @param aSuiteInfo Information needed to register the application
+     * @param aIndex index of the application in the suite
+     * @param aIsUpdate true in case of an update, false in case of a new
+     * installation
+     * @throws InstallerException if registration cannot done or
+     *  startSession has not been called successfully
+     * @see startSession
+     * @see SuiteInfo
      */
-    private void checkSession()
+    private void registerComponent(
+        SuiteInfo aSuiteInfo, int aIndex, boolean aIsUpdate)
     {
-        if (iSessionHandle == 0)
+        String globalId = aSuiteInfo.getGlobalId(aIndex);
+        if (globalId == null)
+        {
+            Log.logWarning("SifRegistrator: Application with index " + aIndex +
+                           " not found from " + aSuiteInfo.getGlobalId());
+            return;
+        }
+        ApplicationInfo appInfo =
+            (ApplicationInfo)aSuiteInfo.getApplications().elementAt(aIndex);
+        String suiteName = aSuiteInfo.getName();
+        String vendor = aSuiteInfo.getVendor();
+        String version = aSuiteInfo.getVersion().toString();
+        String name = appInfo.getName();
+        int uid = ((PlatformUid)appInfo.getUid()).getIntValue();
+        String[] componentFiles = getComponentFiles(aSuiteInfo);
+        long componentSize = aSuiteInfo.getInitialSize();
+        String attrValue = aSuiteInfo.getAttributeValue("Nokia-MIDlet-Block-Uninstall");
+        boolean isRemovable = !(attrValue != null && attrValue.equalsIgnoreCase("true"));
+        boolean isDrmProtected = (aSuiteInfo.getContentInfo() == aSuiteInfo.CONTENT_INFO_DRM);
+        boolean isOriginVerified = aSuiteInfo.isTrusted();
+        String midletInfoUrl = aSuiteInfo.getAttributeValue("MIDlet-Info-URL");
+        String midletDescription = aSuiteInfo.getAttributeValue("MIDlet-Description");
+        String downloadUrl = aSuiteInfo.getAttributeValue("Nokia-MIDlet-Download-URL");
+        ComponentId componentId = new ComponentId();
+        int err = _registerComponent(
+                      iSessionHandle, uid,
+                      getScrString(suiteName), getScrString(vendor),
+                      getScrString(version), getScrString(name),
+                      getScrString(globalId), componentFiles,
+                      componentSize, isRemovable, isDrmProtected,
+                      isOriginVerified, aIsUpdate, aSuiteInfo.getMediaId(),
+                      getScrString(midletInfoUrl),
+                      getScrString(midletDescription),
+                      getScrString(downloadUrl),
+                      componentId);
+        if (err < 0)
+        {
+            InstallerException.internalError(
+                "Registering component " + globalId +
+                " failed with code " + err);
+        }
+        else
         {
-            InstallerException.internalError("No valid SIF session.");
+            appInfo.setComponentId(componentId);
+            Log.log("SifRegistrator registered component " + globalId +
+                    " with id " + componentId.getId());
+        }
+    }
+
+    /**
+     * Unregisters one Java application from being S60 USIF component.
+     * Used with USIF Phase 1.
+     *
+     * @param aSuiteInfo Information needed to unregister the application,
+     * @param aIndex index of the application in the suite
+     * @throws InstallerException if unregistration cannot done or
+     *  startSession has not been called successfully
+     * @see startSession
+     * @see SuiteInfo
+     */
+    private void unregisterComponent(SuiteInfo aSuiteInfo, int aIndex)
+    {
+        String globalId = aSuiteInfo.getGlobalId(aIndex);
+        if (globalId == null)
+        {
+            Log.logWarning("SifRegistrator: Application with index " + aIndex +
+                           " not found from " + aSuiteInfo.getGlobalId());
+            return;
+        }
+        ComponentId componentId = getComponentId(globalId);
+        if (componentId == null)
+        {
+            Log.logWarning(
+                "SifRegistrator unregistration failed, application " +
+                globalId + " does not exist");
+            return;
+        }
+        // Save component id to ApplicationInfo.
+        ApplicationInfo appInfo =
+            (ApplicationInfo)aSuiteInfo.getApplications().elementAt(aIndex);
+        appInfo.setComponentId(componentId);
+        // Unregister application.
+        int err = _unregisterComponent(iSessionHandle, componentId.getId());
+        if (err < 0)
+        {
+            InstallerException.internalError(
+                "Unregistering component " + globalId +
+                " failed with code " + err);
+        }
+        else
+        {
+            Log.log("SifRegistrator unregistered component " + globalId +
+                    " with id " + componentId.getId());
         }
     }
 
     /**
      * Registers Java application suite to S60 USIF as a component.
+     * Used with USIF Phase 2.
      *
      * @param aSuiteInfo Suite information
      * @param aIsUpdate true in case of an update, false in case of a new
@@ -381,6 +551,7 @@
         String suiteName = aSuiteInfo.getName();
         String vendor = aSuiteInfo.getVendor();
         String version = aSuiteInfo.getVersion().toString();
+        String name = null; // Set name to null so that suite name will be used.
         int uid = ((PlatformUid)aSuiteInfo.getUid()).getIntValue();
         String[] componentFiles = getComponentFiles(aSuiteInfo);
         long componentSize = aSuiteInfo.getInitialSize();
@@ -391,20 +562,17 @@
         String midletInfoUrl = aSuiteInfo.getAttributeValue("MIDlet-Info-URL");
         String midletDescription = aSuiteInfo.getAttributeValue("MIDlet-Description");
         String downloadUrl = aSuiteInfo.getAttributeValue("Nokia-MIDlet-Download-URL");
-        String updateUrl = aSuiteInfo.getAttributeValue("Nokia-Update");
         ComponentId componentId = new ComponentId();
         int err = _registerComponent(
                       iSessionHandle, uid,
                       getScrString(suiteName), getScrString(vendor),
-                      getScrString(version), getScrString(globalId),
-                      componentFiles, componentSize,
-                      isRemovable, isDrmProtected,
-                      isOriginVerified, aIsUpdate,
-                      aSuiteInfo.getMediaId(),
+                      getScrString(version), getScrString(name),
+                      getScrString(globalId), componentFiles,
+                      componentSize, isRemovable, isDrmProtected,
+                      isOriginVerified, aIsUpdate, aSuiteInfo.getMediaId(),
                       getScrString(midletInfoUrl),
                       getScrString(midletDescription),
                       getScrString(downloadUrl),
-                      getScrString(updateUrl),
                       componentId);
         if (err < 0)
         {
@@ -422,6 +590,7 @@
 
     /**
      * Unregisters Java application suite from being S60 USIF component.
+     * Used with USIF Phase 2.
      *
      * @param aSuiteInfo suite information
      * @throws InstallerException if unregistration cannot done or
@@ -463,6 +632,7 @@
      * from given SuiteInfo object. The SuiteInfo must already have
      * been registered to USIF as a component with registerComponent()
      * method before this method is called.
+     * Used with USIF Phase 2.
      *
      * @param aSuiteInfo information needed to register the application
      * @param aIndex index of the application in the suite
@@ -520,20 +690,15 @@
     private static String[] getComponentFiles(SuiteInfo aSuite)
     {
         Vector componentFiles = new Vector();
-        if (!aSuite.isPreinstalled())
+        String path = aSuite.getJadPath();
+        if (path != null)
         {
-            // Add component jad and jar files only when the
-            // application is not preinstalled.
-            String path = aSuite.getJadPath();
-            if (path != null)
-            {
-                componentFiles.addElement(getScrString(path));
-            }
-            path = aSuite.getJarPath();
-            if (path != null)
-            {
-                componentFiles.addElement(getScrString(path));
-            }
+            componentFiles.addElement(getScrString(path));
+        }
+        path = aSuite.getJarPath();
+        if (path != null)
+        {
+            componentFiles.addElement(getScrString(path));
         }
         boolean addRootPath = true;
         int rootDrive = FileUtils.getDrive(aSuite.getRootDir());
@@ -551,15 +716,10 @@
         }
         if (addRootPath)
         {
-            componentFiles.addElement(
-                getScrString(aSuite.getRootDir() + "nofile.txt"));
+            componentFiles.addElement(getScrString(aSuite.getRootDir()));
         }
         String[] result = new String[componentFiles.size()];
         componentFiles.copyInto(result);
-        for (int i = 0; i < result.length; i++)
-        {
-            Log.log("SifRegistrator componentFiles[" + i + "]: " + result[i]);
-        }
         return result;
     }
 
@@ -666,48 +826,21 @@
         }
 
         // Register Domain-Category property.
-        String protectionDomainProperty = "Domain-Category";
-        String protectionDomainName = aSuite.getProtectionDomainName();
+        ApplicationInfoImpl appInfoImpl = (ApplicationInfoImpl)
+                                          com.nokia.mj.impl.rt.support.ApplicationInfo.getInstance();
+        String domainCategory = appInfoImpl.getProtectionDomain();
         err = _setLocalizedComponentProperty(
-            iSessionHandle, cid, protectionDomainProperty,
-            getProtectionDomainPropertyValue(protectionDomainName),
-            UNSPECIFIED_LOCALE);
+                  iSessionHandle, cid, "Domain-Category",
+                  domainCategory, UNSPECIFIED_LOCALE);
         if (err < 0)
         {
             InstallerException.internalError(
-                "Adding property " + protectionDomainProperty +
-                " value " + protectionDomainName + " for component " +
-                cid + " failed with code " + err);
+                "Adding property Domain-Category value " + domainCategory +
+                " for component " + cid + " failed with code " + err);
         }
     }
 
     /**
-     * Returns the "Domain-Category" property value which contains
-     * the text id and text file name for the localized domain category
-     * text. This method must never return null.
-     */
-    private String getProtectionDomainPropertyValue(String aProtectionDomain)
-    {
-        String textId = "txt_java_inst_setlabel_cert_domain_val_untrusted_third_party";
-        if (aProtectionDomain != null)
-        {
-            if (aProtectionDomain.equals("Manufacturer"))
-            {
-                textId = "txt_java_inst_setlabel_cert_domain_val_manufacturer";
-            }
-            else if (aProtectionDomain.equals("Operator"))
-            {
-                textId = "txt_java_inst_setlabel_cert_domain_val_operator";
-            }
-            else if (aProtectionDomain.equals("IdentifiedThirdParty"))
-            {
-                textId = "txt_java_inst_setlabel_cert_domain_val_trusted_third_party";
-            }
-        }
-        return textId + ",javaapplicationinstaller";
-    }
-
-    /**
      * Returns array of localized names from the specified
      * attributes of given suite. Assumes that aAttrPrefix
      * is an attribute name prefix that is followed by locale.
@@ -736,13 +869,6 @@
                             "SifRegistrator ignored unknown locale: " +
                             name + ": " + localizedName);
                     }
-                    else if (localizedName.getName() == null ||
-                             localizedName.getName().length() == 0)
-                    {
-                        Log.logWarning(
-                            "SifRegistrator ignored empty localized text: " +
-                            name + ": " + localizedName);
-                    }
                     else
                     {
                         Log.log("SifRegistrator found localized text " +
@@ -823,6 +949,14 @@
     private static native int _launchAppView();
 
     /**
+     * Registers Java software type to software installation framework.
+     *
+     * @param aRegister true for registration, false for unregistration
+     * @return 0 or Symbian error code (negative number)
+     */
+    private static native int _registerJavaSoftwareType(boolean aRegister);
+
+    /**
      * Starts native application registration session.
      *
      * @param aTransaction true if also transaction for this session should
@@ -864,6 +998,7 @@
      * @param aSuiteName
      * @param aVendor
      * @param aVersion
+     * @param aName
      * @param aGlobalId
      * @param aComponentFiles
      * @param aComponentSize
@@ -875,19 +1010,17 @@
      * @param aMidletInfoUrl
      * @param aMidletDescription
      * @param aDownloadUrl
-     * @param aUpdateUrl
      * @param aComponentId upon successful execution contains the
      * component id for the registered component
      * @return 0 if registration succeeded or Symbian error code
      */
     private static native int _registerComponent(
         int aSessionHandle, int aUid, String aSuiteName, String aVendor,
-        String aVersion, String aGlobalId,
+        String aVersion, String aName, String aGlobalId,
         String[] aComponentFiles, long aComponentSize,
         boolean aIsRemovable, boolean aIsDrmProtected,
         boolean aIsOriginVerified, boolean aIsUpdate, int aMediaId,
-        String aMidletInfoUrl, String aMidletDescription,
-        String aDownloadUrl, String aUpdateUrl,
+        String aMidletInfoUrl, String aMidletDescription, String aDownloadUrl,
         ComponentId aComponentId);
 
     /**
@@ -995,9 +1128,4 @@
      * @return 1 if application data should be registered to USIF, 0 otherwise
      */
     private static native int _getUsifMode();
-
-    /**
-     * Returns SIF specific error category from given error id.
-     */
-    private static native int _getErrorCategory(int aErrorId);
 }
--- a/javamanager/javainstaller/installer/javasrc.s60/com/nokia/mj/impl/installer/utils/FileRoots.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc.s60/com/nokia/mj/impl/installer/utils/FileRoots.java	Wed Oct 13 14:23:59 2010 +0300
@@ -62,16 +62,7 @@
      */
     public static String getRegisteredIconDir(int aDrive)
     {
-        String result = getAppsRoot();
-        result = FileUtils.setDrive(result, aDrive);
-        String replace = "\\private\\";
-        int i = result.indexOf(replace);
-        if (i == -1)
-        {
-            return FileUtils.getDriveName(aDrive) + ":\\data\\java\\";
-        }
-        return result.substring(0, i) + "\\public\\" +
-            result.substring(i + replace.length());
+        return FileUtils.getDriveName(aDrive) + ":\\data\\java\\";
     }
 
     /**
--- a/javamanager/javainstaller/installer/javasrc.s60/com/nokia/mj/impl/installer/utils/PropertyProvider.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,179 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-
-package com.nokia.mj.impl.installer.utils;
-
-/**
- * Provides notifications whenever the subscribed property value changes.
- * <br>
- * One PropertyProvider instance can be used to subscribe events
- * for only one property. If events for more properties are needed
- * use separate PropertyProvider instance for each property.
- *
- * @see PropertyListener
- */
-public class PropertyProvider
-{
-    /** Property category. */
-    private int iCategory = 0;
-    /** Property key. */
-    private int iKey = 0;
-    /** Property listener. */
-    private PropertyListener iListener = null;
-    /** Handle to native object. */
-    private int iHandle = 0;
-
-    /**
-     * Constructor.
-     */
-    public PropertyProvider()
-    {
-    }
-
-    /**
-     * Subscribe to listen changes of specified property value.
-     * One PropertyListener can subscribe to only one property
-     * value at a time.
-     *
-     * @param aCategory property category
-     * @param aKey property key
-     * @param aListener listener to be notified.
-     */
-    public void subscribe(int aCategory, int aKey, PropertyListener aListener)
-    {
-        if (iHandle != 0)
-        {
-            InstallerException.internalError("PropertyProvider already in use.");
-        }
-        iCategory = aCategory;
-        iKey = aKey;
-        iListener = aListener;
-        // Start a new thread which blocks until unsubscribe is called.
-        final PropertyProvider provider = this;
-        new Thread(new Runnable()
-        {
-            public void run()
-            {
-                synchronized (provider)
-                {
-                    iHandle = _subscribe(iCategory, iKey);
-                    // Notify subscribe method after subscription
-                    // result is available.
-                    provider.notify();
-                }
-                if (iHandle > 0)
-                {
-                    // Subscription succeeded, start to process events.
-                    _processEvents(iHandle, provider);
-                }
-            }
-        }, "PropertyProviderThread").start();
-        synchronized (this)
-        {
-            try
-            {
-                if (iHandle == 0)
-                {
-                    // Wait until subscription has been completed.
-                    wait();
-                }
-            }
-            catch (InterruptedException ie)
-            {
-            }
-        }
-        // Check if subscription failed.
-        if (iHandle < 0)
-        {
-            Log.logError("PropertyProvider.subscribe failed with code " + iHandle);
-            iHandle = 0;
-        }
-    }
-
-    /**
-     * Unubscribe from listening changes.
-     */
-    public void unsubscribe()
-    {
-        final PropertyProvider provider = this;
-        new Thread(new Runnable()
-        {
-            public void run()
-            {
-                synchronized (provider)
-                {
-                    if (iHandle <= 0)
-                    {
-                        Log.logWarning(
-                            "PropertyProvider.unsubscribe: no subscription.");
-                        return;
-                    }
-                    int err = _unsubscribe(iHandle);
-                    if (err < 0)
-                    {
-                        Log.logError(
-                            "PropertyProvider.unsubscribe failed with code " +
-                            err);
-                    }
-                    else
-                    {
-                        iHandle = 0;
-                    }
-                }
-            }
-        }, "PropertyProviderUnsubscribeThread").start();
-    }
-
-    /**
-     * Called from native when value for the subscribed property changes.
-     */
-    private void valueChanged(int aValue)
-    {
-        if (iListener != null)
-        {
-            iListener.valueChanged(iCategory, iKey, aValue);
-        }
-    }
-
-    /**
-     * Subscribe to listen changes of specified property value.
-     *
-     * @param aCategory property category
-     * @param aKey property key
-     * @return handle to native side object or Symbian error
-     * code (negative number)
-     */
-    private static native int _subscribe(int aCategory, int aKey);
-
-    /**
-     * Starts to process events. This call blocks until unsubscribe is called.
-     *
-     * @param aHandle handle to native side object
-     * @param aProvider PropertyProvider class instance to be notified
-     * @return 0 or Symbian error code (negative number)
-     */
-    private static native int _processEvents(int aHandle, PropertyProvider aProvider);
-
-    /**
-     * Unubscribe from listening changes.
-     *
-     * @param aHandle handle to native side object
-     * @return 0 or Symbian error code (negative number)
-     */
-    private static native int _unsubscribe(int aHandle);
-}
--- a/javamanager/javainstaller/installer/javasrc.s60/com/nokia/mj/impl/installer/utils/SysUtil.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc.s60/com/nokia/mj/impl/installer/utils/SysUtil.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-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"
@@ -359,12 +359,11 @@
                                              " drives failed with code " + ret);
         }
         // Save the drives so that next time they are not fetched again.
-        Vector drivesVector = new Vector();
+        iUserVisibleDrives = new Vector();
         for (int i = 0; i < aVisibleDrives.size(); i++)
         {
-            drivesVector.addElement(aVisibleDrives.elementAt(i));
+            iUserVisibleDrives.addElement(aVisibleDrives.elementAt(i));
         }
-        iUserVisibleDrives = drivesVector;
     }
 
     /**
@@ -442,44 +441,6 @@
         return ret;
     }
 
-    /**
-     * Maps given ISO language/country code to Symbian TLanguage.
-     *
-     * @param aLocale ISO language/country code
-     * @return Symbian TLanguage value, or -1 if no matching language is found.
-     */
-    public static int isoToLang(String aLocale)
-    {
-        // Replace possible dash with underscore.
-        aLocale = aLocale.replace('-', '_');
-        // Get language and country parts.
-        String lang = aLocale.toLowerCase();
-        String country = null;
-        int sepIndex = aLocale.indexOf("_");
-        if (sepIndex >= 0)
-        {
-            lang = aLocale.substring(0, sepIndex).toLowerCase();
-            country = aLocale.substring(sepIndex + 1).toUpperCase();
-        }
-        // Map locale to Symbian TLanguage using native service.
-        int result = -1;
-        if (country == null)
-        {
-            result = _isoToLang(lang);
-        }
-        else
-        {
-            result = _isoToLang(lang + "_" + country);
-            if (result == -1)
-            {
-                // No result for language and country, try using language only.
-                result = _isoToLang(lang);
-            }
-        }
-        //Log.log("SysUtil.isoToLang: " + aLocale + " ==> " + result);
-        return result;
-    }
-
     /*** ---------------------------- PROTECTED --------------------------- */
     /*** ----------------------------- PACKAGE ---------------------------- */
     /*** ----------------------------- PRIVATE ---------------------------- */
@@ -687,14 +648,6 @@
     private static native int _getScreenHeight();
 
     /**
-     * Maps given ISO language/country code to Symbian TLanguage.
-     *
-     * @param aLocale ISO language/country code
-     * @return Symbian TLanguage value, or -1 if no matching language is found.
-     */
-    private static native int _isoToLang(String aLocale);
-
-    /**
      * Class for holding return value from native side.
      */
     private static class IntValue
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/GetComponentInfo.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/GetComponentInfo.java	Wed Oct 13 14:23:59 2010 +0300
@@ -480,20 +480,11 @@
                         suiteUid, null,
                         iSecurityAttributes.getAuthenticationAttributes());
 
-                if (authenticationCredentials != null)
-                {
-                    for (int i = 0; i < authenticationCredentials.length; i++)
-                    {
-                        String domain = authenticationCredentials[i]
-                            .getProtectionDomainCategory();
-                        Log.log("Protection domain: " + domain);
-                    }
-                }
                 if (iJarFilename != null)
                 {
                     // Authenticate jar.
                     AuthenticationModule.getInstance().authenticateJar(
-                        suiteUid, null, iJarFilename,
+                        null, suiteUid, null, iJarFilename,
                         FileUtils.isDrmProtected(iJarFilename));
                 }
             }
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/InstallationNotifier.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/InstallationNotifier.java	Wed Oct 13 14:23:59 2010 +0300
@@ -46,8 +46,6 @@
 
     // Maximum number of progress updates to SysUtil.setProperty().
     private static final int MAX_PROPERTY_PROGRESS_UPDATES = 5;
-    // Maximum number of progress updates to SIF.
-    private static final int MAX_SIF_PROGRESS_UPDATES = 8;
     // Maximum number of progress updates to UI.
     private static final int MAX_UI_PROGRESS_UPDATES = 20;
 
@@ -63,16 +61,11 @@
     private int iMaxValue = 1;
     // Tells how often property progress should be updated.
     private int iPropertyProgressStep = 1;
-    // Tells how often SIF progress should be updated.
-    private int iSifProgressStep = 1;
     // Tells how often UI progress should be updated.
     private int iUiProgressStep = 1;
     // Point between 0 and iMaxValue where the last property
     // update has been made.
     private int iLastPropertyUpdate = 0;
-    // Point between 0 and iMaxValue where the last SIF update
-    // has been made.
-    private int iLastSifUpdate = 0;
     // Point between 0 and iMaxValue where the last UI update
     // has been made.
     private int iLastUiUpdate = 0;
@@ -132,6 +125,18 @@
     public void ended()
     {
         Log.log("InstallationNotifier.ended");
+        if (iInstallerUi != null)
+        {
+            try
+            {
+                iInstallerUi.ended();
+            }
+            catch (Throwable t)
+            {
+                Log.logError(
+                    "InstallationNotifier: InstallerUi.ended threw exception", t);
+            }
+        }
         if (iSifNotifier != null)
         {
             // After this SifNotifier is no longer used, destroy it.
@@ -145,18 +150,6 @@
                 Log.logError("InstallationNotifier: SifNotifier.destroy failed", t);
             }
         }
-        if (iInstallerUi != null)
-        {
-            try
-            {
-                iInstallerUi.ended();
-            }
-            catch (Throwable t)
-            {
-                Log.logError(
-                    "InstallationNotifier: InstallerUi.ended threw exception", t);
-            }
-        }
     }
 
     /**
@@ -210,11 +203,6 @@
         {
             iPropertyProgressStep = 1;
         }
-        iSifProgressStep = iMaxValue / MAX_SIF_PROGRESS_UPDATES;
-        if (iSifProgressStep == 0)
-        {
-            iSifProgressStep = 1;
-        }
         iUiProgressStep = iMaxValue / MAX_UI_PROGRESS_UPDATES;
         if (iUiProgressStep == 0)
         {
@@ -253,44 +241,29 @@
         Log.log("InstallationNotifier.set: progress " + currentPercentage);
         defineProperties();
 
-        if (isUpdateNeeded(aCurrentValue, iMaxValue,
-                           iLastPropertyUpdate, iPropertyProgressStep))
+        if (aCurrentValue == 0 ||
+                aCurrentValue == iMaxValue ||
+                aCurrentValue >= iLastPropertyUpdate + iPropertyProgressStep ||
+                aCurrentValue <= iLastPropertyUpdate - iPropertyProgressStep)
         {
             iLastPropertyUpdate = aCurrentValue;
             Log.log("InstallationNotifier.set: update property to " +
                     currentPercentage);
             // Update property values: progress.
-            SysUtil.setPropertyValue(
-                SysUtil.PROP_CATEGORY_SYSTEM,
-                SysUtil.PROP_KEY_JAVA_LATEST_INSTALLATION_PROGRESS,
-                currentPercentage);
+            SysUtil.setPropertyValue
+            (SysUtil.PROP_CATEGORY_SYSTEM,
+             SysUtil.PROP_KEY_JAVA_LATEST_INSTALLATION_PROGRESS,
+             currentPercentage);
         }
 
-        if (isUpdateNeeded(aCurrentValue, iMaxValue,
-                           iLastSifUpdate, iSifProgressStep))
+        if (aCurrentValue == 0 ||
+                aCurrentValue == iMaxValue ||
+                aCurrentValue >= iLastUiUpdate + iUiProgressStep ||
+                aCurrentValue <= iLastUiUpdate - iUiProgressStep)
         {
-            if (iSifNotifier != null)
-            {
-                iLastSifUpdate = aCurrentValue;
-                try
-                {
-                    iSifNotifier.notifyProgress(
-                        iSifNotifier.SUB_OP_NO, currentPercentage, 100);
-                }
-                catch (Throwable t)
-                {
-                    Log.logError(
-                        "InstallationNotifier: SifNotifier.notifyProgress threw exception", t);
-                }
-            }
-        }
-
-        if (isUpdateNeeded(aCurrentValue, iMaxValue,
-                           iLastUiUpdate, iUiProgressStep))
-        {
+            iLastUiUpdate = aCurrentValue;
             if (iInstallerUi != null)
             {
-                iLastUiUpdate = aCurrentValue;
                 Log.log("InstallationNotifier.set: update ui to " +
                         currentPercentage);
                 try
@@ -303,6 +276,21 @@
                         "InstallationNotifier: InstallerUi.updateProgress threw exception", t);
                 }
             }
+            if (iSifNotifier != null)
+            {
+                Log.log("InstallationNotifier.set: update SifNotifier to " +
+                        currentPercentage);
+                try
+                {
+                    iSifNotifier.notifyProgress(
+                        iSifNotifier.SUB_OP_NO, currentPercentage, 100);
+                }
+                catch (Throwable t)
+                {
+                    Log.logError(
+                        "InstallationNotifier: SifNotifier.notifyProgress threw exception", t);
+                }
+            }
         }
     }
 
@@ -394,24 +382,4 @@
                 "InstallationNotifier: Deleting property failed", ex);
         }
     }
-
-    /**
-     * Returns true if progress update is needed, false otherwise.
-     *
-     * @param aCurrent current progress value
-     * @param aMax maximum progress value
-     * @param aPrevious previously updated progress value
-     * @param aStep step between progress updates
-     */
-    private static boolean isUpdateNeeded(
-        int aCurrent, int aMax, int aPrevious, int aStep)
-    {
-        if (aCurrent == 0 || aCurrent == aMax ||
-            aCurrent >= aPrevious + aStep ||
-            aCurrent <= aPrevious - aStep)
-        {
-            return true;
-        }
-        return false;
-    }
 }
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/Installer.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/Installer.java	Wed Oct 13 14:23:59 2010 +0300
@@ -99,11 +99,6 @@
      */
     static final int RET_NO_SYSTEM_EXIT = 100;
 
-    /** Id for installer cancel Comms message. */
-    private static final int INSTALLER_CANCEL_MESSAGE_ID = 603;
-    /** Id for installer cancel Comms response message. */
-    private static final int INSTALLER_CANCEL_RESPONSE_MESSAGE_ID = 604;
-
     // ThreadDumper instance.
     private static ThreadDumper iThreadDumper = null;
 
@@ -328,7 +323,7 @@
         }
 
         StartUpTrace.doTrace("Installer.mainWithResult " + aArgs[0] + " begins");
-        StringBuffer buf = new StringBuffer("Java install process started with command:");
+        StringBuffer buf = new StringBuffer("Java install process started with command: ");
         for (int i = 0; i < aArgs.length; i++)
         {
             buf.append(" ").append(aArgs[i]);
@@ -341,7 +336,7 @@
 
         if (iThreadDumper != null)
         {
-            iThreadDumper.startTimer(5*60*1000); // 5 mins
+            iThreadDumper.startTimer(10*60*1000); // 10 mins
         }
 
         try
@@ -543,9 +538,9 @@
         table.add(new com.nokia.mj.impl.installer.midp2.install.steps.
                   GetFromStorage());
         table.add(new com.nokia.mj.impl.installer.midp2.install.steps.
-                  SelectUids()); // Select suite uid and application uids.
+                  StartProgressNotifications());
         table.add(new com.nokia.mj.impl.installer.midp2.install.steps.
-                  StartProgressNotifications());
+                  SelectUids()); // Select suite uid and application uids.
         table.add(new com.nokia.mj.impl.installer.midp2.install.steps.
                   AuthenticateJad()); // This must be the first security
         // related step.
@@ -589,8 +584,6 @@
         table.add(new com.nokia.mj.impl.installer.midp2.install.steps.
                   ConfirmPermissions()); // Show UI confirmation dialog.
         table.add(new com.nokia.mj.impl.installer.midp2.install.steps.
-                  AddSecurityData());
-        table.add(new com.nokia.mj.impl.installer.midp2.install.steps.
                   HandleCustomAttributes());
         table.add(new com.nokia.mj.impl.installer.midp2.install.steps.
                   CheckJarPackages());
@@ -607,13 +600,12 @@
                   RegisterApplicationToSif());
         table.add(new com.nokia.mj.impl.installer.midp2.install.steps.
                   CopyAppFiles());
-        if (Platform.isS60())
+        if (Platform.isS60())   // PrepareSplashScreen uses eSWT which is
         {
-            // PrepareSplashScreen uses eSWT which is not available in Linux.
-            // Create splash screen images after app dir exists,
-            // that is after CopyAppFiles step.
+            // not available in Linux.
             table.add(new com.nokia.mj.impl.installer.midp2.install.steps.
-                      PrepareSplashScreen());
+                      PrepareSplashScreen()); // Create splash screen images
+            // after app dir exists (after CopyAppFiles step).
         }
         table.add(new com.nokia.mj.impl.installer.midp2.install.steps.
                   NotifyJsrPlugins());
@@ -1243,8 +1235,6 @@
             "  -commsresult=endpoint         In the end of operation, send\n"+
             "                                InstallerResultMessage to specified comms\n"+
             "                                endpoint.\n"+
-            "  -base64=base64options         Comma separated list of base64 encoded\n"+
-            "                                options.\n"+
             "\n"+
             "Either -jad or -jar must be specified, other options are optional.\n";
 
@@ -1274,13 +1264,10 @@
             "  -captainmsgs=yes|no           If set to no, JavaInstaller will not send\n"+
             "                                any messages to JavaCaptain during\n"+
             "                                uninstallation. Default is yes.\n"+
-            "  -resetpreinstall              Reset preinstall state.\n"+
             "  -skipotastatus                Skip OTA status handling.\n"+
             "  -commsresult=endpoint         In the end of operation, send\n"+
             "                                InstallerResultMessage to specified comms\n"+
             "                                endpoint.\n"+
-            "  -base64=base64options         Comma separated list of base64 encoded\n"+
-            "                                options.\n"+
             "\n"+
             "The -uid option must be specified, other options are optional.\n";
 
@@ -1479,7 +1466,7 @@
                 if (aMessage.hasPermission(CommsPermission.INSTALL_APPLICATION))
                 {
                     int msgId = aMessage.getMessageId();
-                    if (msgId == INSTALLER_CANCEL_MESSAGE_ID)
+                    if (msgId == 603)
                     {
                         Installer.cancel();
                         result = ERR_NONE;
@@ -1492,7 +1479,7 @@
                 }
                 CommsMessage response = new CommsMessage();
                 response.replyTo(aMessage);
-                response.setMessageId(INSTALLER_CANCEL_RESPONSE_MESSAGE_ID);
+                response.setMessageId(604);
                 response.write(result);
                 iInstallerServer.send(response);
                 Log.log("InstallerListener sent " + response);
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/InstallerResultMessage.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/InstallerResultMessage.java	Wed Oct 13 14:23:59 2010 +0300
@@ -21,14 +21,12 @@
 import com.nokia.mj.impl.comms.CommsEndpoint;
 import com.nokia.mj.impl.comms.CommsMessage;
 import com.nokia.mj.impl.installer.applicationregistrator.SifNotifier;
-import com.nokia.mj.impl.installer.applicationregistrator.SifRegistrator;
 import com.nokia.mj.impl.installer.storagehandler.ApplicationInfo;
 import com.nokia.mj.impl.installer.storagehandler.SuiteInfo;
 import com.nokia.mj.impl.installer.utils.InstallerException;
 import com.nokia.mj.impl.installer.utils.Log;
 import com.nokia.mj.impl.installer.utils.PlatformUid;
 import com.nokia.mj.impl.utils.exception.ExceptionBase;
-import com.nokia.mj.impl.utils.ErrorMessageBase;
 import com.nokia.mj.impl.utils.InstallerErrorMessage;
 import com.nokia.mj.impl.utils.Tokenizer;
 import com.nokia.mj.impl.utils.Uid;
@@ -39,77 +37,30 @@
 
 /**
  * InstallerResultMessage contains information about install, uninstall
- * and componentinfo operation results. JavaInstaller sends it at the end
- * of operation to Comms endpoint specified at JavaInstaller startup with
- * -commsresult option.
- * <p>
- * InstallerResultMessage contains name-value pairs: name is a string,
- * value can be either a string or an int. Message syntax:
- * <p>
- * <pre>
- * message := length named_int_value* length named_string_value*
- * named_int_value := name int_value
- * named_string_value := name string_value
- * name := &lt;string&gt;
- * int_value := &lt;int&gt;
- * string_value := &lt;string&gt;
- * length := &lt;int telling the length of the table that follows&gt;
- * </pre>
- * <p>
+ * and componentinfo operations. It is sent to Comms endpoint specified
+ * at JavaInstaller startup.
  */
 public class InstallerResultMessage
 {
-    /** Operation type. Value type: int.
-        Possible values: 0: install, 1: uninstall, 2: componentinfo. */
     public static final String NAME_OPERATION = "operation";
-    /** Status code indicating operation result. Value type: int. */
     public static final String NAME_RESULT = "result";
-    /** SIF error category. Value type: int. */
     public static final String NAME_ERROR_CATEGORY = "error-category";
-    /** Java runtime specific error code. Value type: int. */
-    public static final String NAME_ERROR_CODE = "error-code";
-    /** Localized error message. Value type: string. */
     public static final String NAME_ERROR_MSG = "error-message";
-    /** Localized message with more details of the error reason. Value type: string. */
     public static final String NAME_ERROR_DETAILS = "error-details";
-    /** Suite UID. Value type: int. */
     public static final String NAME_SUITE_UID = "suite-uid";
-    /** Midlet-n UID. Value type: int. */
     public static final String NAME_MIDLET_UID = "midlet-uid-";
-    /** Suite component id. Value type: int. */
     public static final String NAME_SUITE_CID = "suite-cid";
-    /** Midlet-n component id. Value type: int. */
     public static final String NAME_MIDLET_CID = "midlet-cid-";
-    /** Suite global id. Value type: string. */
     public static final String NAME_SUITE_GID = "suite-gid";
-    /** Midlet-n global id. Value type: string. */
     public static final String NAME_MIDLET_GID = "midlet-gid-";
-    /** Suite name. Value type: string. */
     public static final String NAME_SUITE_NAME = "suite-name";
-    /** Midlet-n name. Value type: string. */
     public static final String NAME_MIDLET_NAME=  "midlet-name-";
-    /** Suite vendor. Value type: string. */
     public static final String NAME_VENDOR = "vendor";
-    /** Suite version. Value type: string. */
     public static final String NAME_VERSION = "version";
-    /** Component installation status. Value type: int. Possible values:
-        0: new component,
-        1: upgrade,
-        2: already installed,
-        3: newer version already installed,
-        4: invalid package, cannot be installed. */
     public static final String NAME_INSTALL_STATUS = "install-status";
-    /** Component authenticity. Value type: int. Possible values:
-        0: component is not authenticated, 1: component is authenticated. */
     public static final String NAME_AUTHENTICITY = "authenticity";
-    /** Size of the files owned by the component at the time of the
-        installation. Calculated from MIDlet-Data-Size and
-        MIDlet-Jar-Size attributes. Value type: int. */
     public static final String NAME_COMPONENT_SIZE = "component-size";
 
-    /** Id for installer result Comms message. */
-    private static final int INSTALLER_RESULT_MESSAGE_ID = 601;
-
     private Hashtable iNamedIntValues = null;
     private Hashtable iNamedStringValues = null;
 
@@ -214,7 +165,7 @@
             {
                 addValue(NAME_ERROR_DETAILS, msg);
             }
-            addErrorCodes(eb);
+            addErrorCategory(eb);
         }
         if (aException instanceof InstallerException)
         {
@@ -242,24 +193,25 @@
     }
 
     /**
-     * Returns a string value from this message, or null
-     * if string value is not present.
+     * Get a string value from this message.
+     * @throws IllegalArgumentException if value with given name is not found
      */
-    String getStringValue(String aName)
+    public String getStringValue(String aName)
     {
         Object value = iNamedStringValues.get(aName);
         if (value instanceof String)
         {
             return (String)value;
         }
-        return null;
+        throw new IllegalArgumentException(
+            "InstallerResultMessage: string value " + aName + " not found");
     }
 
     /**
      * Get an int value from this message.
      * @throws IllegalArgumentException if value with given name is not found
      */
-    int getIntValue(String aName)
+    public int getIntValue(String aName)
     {
         Object value = iNamedIntValues.get(aName);
         if (value instanceof Integer)
@@ -273,7 +225,7 @@
     /**
      * Removes a value from this message.
      */
-    void removeValue(String aName)
+    public void removeValue(String aName)
     {
         iNamedStringValues.remove(aName);
         iNamedIntValues.remove(aName);
@@ -303,20 +255,19 @@
         }
         if (iSifNotifier != null)
         {
+            int errCategory = 0;
+            int errCode = 0;
+            String errMsg = null;
+            String errDetails = null;
+            if (getIntValue(NAME_RESULT) != Installer.ERR_NONE)
+            {
+                errCategory = getIntValue(NAME_ERROR_CATEGORY);
+                errCode = Installer.ERR_GENERAL;
+                errMsg = getStringValue(NAME_ERROR_MSG);
+                errDetails = getStringValue(NAME_ERROR_DETAILS);
+            }
             try
             {
-                int result = getIntValue(NAME_RESULT);
-                int errCategory = 0;
-                int errCode = 0;
-                String errMsg = null;
-                String errDetails = null;
-                if (result != Installer.ERR_NONE)
-                {
-                    errCategory = getIntValue(NAME_ERROR_CATEGORY);
-                    errCode = getIntValue(NAME_ERROR_CODE);
-                    errMsg = getStringValue(NAME_ERROR_MSG);
-                    errDetails = getStringValue(NAME_ERROR_DETAILS);
-                }
                 iSifNotifier.notifyEnd(errCategory, errCode, errMsg, errDetails);
             }
             catch (Throwable t)
@@ -347,7 +298,7 @@
         {
             comms.connect(aEndpoint);
             CommsMessage msg = new CommsMessage();
-            msg.setMessageId(INSTALLER_RESULT_MESSAGE_ID);
+            msg.setMessageId(601);
             // Initialise the message data.
             msg.write(iNamedIntValues.size());
             Enumeration e = iNamedIntValues.keys();
@@ -367,7 +318,7 @@
             }
             // Send the message.
             Log.log("Sending InstallerResultMessage to " + aEndpoint);
-            comms.sendReceive(msg, 5);
+            CommsMessage installerResultResponse = comms.sendReceive(msg, 5);
             comms.disconnect();
             Log.log("Received InstallerResultResponse from " + aEndpoint);
         }
@@ -434,34 +385,48 @@
     }
 
     /**
-     * Adds error codes to the result message.
+     * Adds error category to the result message.
      */
-    private void addErrorCodes(ExceptionBase aEb)
+    private void addErrorCategory(ExceptionBase aEb)
     {
-        if (aEb.getShortMessageId() >= ErrorMessageBase.INSTALLER_RANGE_START &&
-            aEb.getShortMessageId() <= ErrorMessageBase.INSTALLER_RANGE_END)
+        switch (aEb.getShortMessageId())
         {
-            addValue(NAME_ERROR_CATEGORY,
-                     SifRegistrator.getErrorCategory(aEb.getShortMessageId()));
-            addValue(NAME_ERROR_CODE,
-                     aEb.getShortMessageId()*1000 + aEb.getDetailedMessageId());
-        }
-        else if (aEb.getShortMessageId() >= ErrorMessageBase.SECURITY_RANGE_START &&
-                 aEb.getShortMessageId() <= ErrorMessageBase.SECURITY_RANGE_END)
-        {
-            addValue(NAME_ERROR_CATEGORY,
-                     SifRegistrator.getErrorCategory(
-                         InstallerErrorMessage.INST_AUTHORIZATION_ERR));
-            addValue(NAME_ERROR_CODE,
-                     aEb.getShortMessageId()*1000 + aEb.getDetailedMessageId());
-        }
-        else
-        {
-            addValue(NAME_ERROR_CATEGORY,
-                     SifRegistrator.getErrorCategory(
-                         InstallerErrorMessage.INST_UNEXPECTED_ERR));
-            addValue(NAME_ERROR_CODE,
-                     aEb.getShortMessageId()*1000 + aEb.getDetailedMessageId());
+        case InstallerErrorMessage.INST_NO_MEM:
+            addValue(NAME_ERROR_CATEGORY, 2); // ELowDiskSpace
+            break;
+        case InstallerErrorMessage.INST_NO_NET:
+            addValue(NAME_ERROR_CATEGORY, 3); // ENetworkUnavailable
+            break;
+        case InstallerErrorMessage.INST_CORRUPT_PKG:
+            addValue(NAME_ERROR_CATEGORY, 5); // ECorruptedPackage
+            break;
+        case InstallerErrorMessage.INST_COMPAT_ERR:
+            addValue(NAME_ERROR_CATEGORY, 6); // EApplicationNotCompatible
+            break;
+        case InstallerErrorMessage.INST_AUTHORIZATION_ERR:
+            // fall through
+        case InstallerErrorMessage.INST_AUTHENTICATION_ERR:
+            addValue(NAME_ERROR_CATEGORY, 7); // ESecurityError
+            break;
+        case InstallerErrorMessage.INST_PUSH_REG_ERR:
+            // fall through
+        case InstallerErrorMessage.INST_UNEXPECTED_ERR:
+            // fall through
+        case InstallerErrorMessage.UNINST_UNEXPECTED_ERR:
+            // fall through
+        case InstallerErrorMessage.OTHER_UNEXPECTED_ERR:
+            addValue(NAME_ERROR_CATEGORY, 8); // EUnexpectedError
+            break;
+        case InstallerErrorMessage.INST_CANCEL:
+            // fall through
+        case InstallerErrorMessage.UNINST_CANCEL:
+            addValue(NAME_ERROR_CATEGORY, 9); // EUserCancelled
+            break;
+        case InstallerErrorMessage.UNINST_NOT_ALLOWED:
+            addValue(NAME_ERROR_CATEGORY, 10); // EUninstallationBlocked
+            break;
+        default:
+            addValue(NAME_ERROR_CATEGORY, 8); // EUnexpectedError
         }
     }
 }
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/applicationregistrator/AppRegInfo.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/applicationregistrator/AppRegInfo.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -77,6 +77,41 @@
      * When this object is used for registering applications, all
      * params must be valid. When used for unregistering applications,
      * only aUid is really needed.
+     * Use default values for optional information.
+     *
+     * @param aUid  Java application Uid  (MIDlet Uid).
+     * @param aGroupName    The value of Nokia-MIDlet-Category attribute or empty.
+     *  Note that in Symbian only 16 first characters are stored to
+     *  application registry.
+     * @param aMIDletName     MIDlet name from MIDlet-<n> attribute.
+     * @param aTargetDrive    The installation drive, e.g. "C:" in S60
+     * @param aIconFileName   The full path name to the icon file in file system.
+     *    The file must be accessible and the path must have \\ chars.
+     * @param aJarFileName    Full path name to jar file.
+     * @see ApplicationRegistrator
+     */
+    public AppRegInfo(
+        Uid aUid,
+        String aGroupName,
+        String aMIDletName,
+        String aTargetDrive,
+        String aIconFileName,
+        String aJarFileName)
+    {
+        iUid = aUid;
+        iGroupName = aGroupName;
+        iMIDletName = aMIDletName;
+        iTargetDrive = aTargetDrive;
+        iIconFileName = aIconFileName;
+        iJarFileName = aJarFileName;
+    }
+
+
+    /**
+     * Construct new AppRegInfo object.
+     * When this object is used for registering applications, all
+     * params must be valid. When used for unregistering applications,
+     * only aUid is really needed.
      * Specify all information.
      *
      * @param aUid  Java application Uid  (MIDlet Uid).
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/jsrpluginnotifier/InstallerExtensionInfo.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/jsrpluginnotifier/InstallerExtensionInfo.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -18,54 +18,38 @@
 
 package com.nokia.mj.impl.installer.jsrpluginnotifier;
 
-import com.nokia.mj.impl.storage.StorageSession;
 import com.nokia.mj.impl.utils.Logger;
 import com.nokia.mj.impl.utils.Uid;
 import java.util.Hashtable;
 
 /**
  * Information passed to JSR plugins when installing or uninstalling
- * Java applications.
+ * Java applications
  * @see JsrPluginNotifier
  */
 public final class InstallerExtensionInfo
 {
     /**
-     * MIDlet Suite Uid.
+     * MIDlet Suite Uid. Can be null.
      */
-    public Uid iUid = null;
-
-    /**
-     * Application Uids.
-     */
-    public Uid[] iAppUids = null;
+    public Uid iUid;
 
     /**
-     * Application suite root directory path.
+     * true if upgrade installation
      */
-    public String iRootPath = null;
+    public boolean iUpgrade;
 
     /**
-     * True if upgrade installation.
+     * true if silent installation
      */
-    public boolean iUpgrade = false;
+    public boolean iSilent;
 
     /**
-     * True if silent installation.
-     */
-    public boolean iSilent = false;
-
-    /**
-     * Combined jad/jar attributes.
+     * Combined jad./.jar attributes.
      * Key is attribute name, value is com.nokia.mj.impl.utils.Attribute object
      * Can be null.
      */
-    public Hashtable iAttributes = null;
-
-    /**
-     * JavaStorage session where installation/uninstallation changes are made.
-     */
-    public StorageSession iStorageSession = null;
+    public Hashtable iAttributes;
 
     /*** ----------------------------- PUBLIC ------------------------------ */
 
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/AddSecurityData.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
-* 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:
-*
-*/
-
-
-package com.nokia.mj.impl.installer.midp2.install.steps;
-
-import com.nokia.mj.impl.installer.exetable.ExeBall;
-import com.nokia.mj.impl.installer.exetable.ExeStep;
-import com.nokia.mj.impl.installer.utils.Log;
-import com.nokia.mj.impl.security.midp.authentication.AuthenticationModule;
-import com.nokia.mj.impl.security.midp.authorization.PermissionGranter;
-
-/**
- * Writes application's security data into storage.
- */
-public class AddSecurityData extends ExeStep
-{
-    public void execute(ExeBall aBall)
-    {
-        InstallBall ball = (InstallBall)aBall;
-        ball.log("Writing security data...");
-        AuthenticationModule.getInstance().addSecurityData
-        (ball.iStorageHandler.getSession(), ball.iSuite.getUid(),
-        (ball.iOldSuite != null? ball.iOldSuite.getUid(): null));
-        PermissionGranter.getInstance().addSecurityData
-        (ball.iStorageHandler.getSession(), ball.iSuite.getUid(),
-        (ball.iOldSuite != null? ball.iOldSuite.getUid(): null));
-    }
-
-    public void cancel(ExeBall aBall)
-    {
-        // nop
-    }
-}
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/AuthenticateJar.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/AuthenticateJar.java	Wed Oct 13 14:23:59 2010 +0300
@@ -35,12 +35,12 @@
         }
 
         ball.log("Authenticating Jar...");
-        ball.iAuthenticationCredentials =
-            AuthenticationModule.getInstance().authenticateJar
-            (ball.iSuite.getUid(),
-             (ball.iOldSuite != null? ball.iOldSuite.getUid(): null),
-             ball.iJarFilename,
-             (ball.iSuite.getContentInfo() == SuiteInfo.CONTENT_INFO_DRM? true: false));
+        AuthenticationModule.getInstance().authenticateJar
+        (ball.iStorageHandler.getSession(),
+         ball.iSuite.getUid(),
+         (ball.iOldSuite != null? ball.iOldSuite.getUid(): null),
+         ball.iJarFilename,
+         (ball.iSuite.getContentInfo() == SuiteInfo.CONTENT_INFO_DRM? true: false));
         ball.iJarAuthenticated = true;
         // Unregister OCSP listener after Jar authentication.
         AuthenticationModule.getInstance().unregisterOcspEventListener(
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/CheckDiskSpace.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/CheckDiskSpace.java	Wed Oct 13 14:23:59 2010 +0300
@@ -42,8 +42,15 @@
     public void execute(ExeBall aBall)
     {
         InstallBall ball = (InstallBall)aBall;
+
         int initialSize = ball.iSuite.calculateInitialSize();
-        int requiredSize = getRequiredSize(ball);
+        if (initialSize == 0 && ball.iJarFilename != null)
+        {
+            // Get initialSize from jar file size.
+            initialSize = (int)FileUtils.getSize(ball.iJarFilename);
+
+        }
+        int requiredSize = initialSize + (100 * 1024); // +100kB
 
         if (ball.iUserConfirmation == null)
         {
@@ -96,25 +103,6 @@
     }
 
     /**
-     * Returns amount of disk space this application requires.
-     */
-    static int getRequiredSize(InstallBall aBall)
-    {
-        int initialSize = aBall.iSuite.getInitialSize();
-        if (initialSize <= 0)
-        {
-            initialSize = aBall.iSuite.calculateInitialSize();
-        }
-        if (initialSize == 0 && aBall.iJarFilename != null)
-        {
-            // Get initialSize from jar file size.
-            initialSize = (int)FileUtils.getSize(aBall.iJarFilename);
-
-        }
-        return initialSize + (100 * 1024); // +100kB
-    }
-
-    /**
      * Checks if given drive has enough free disk space. Throws
      * InstallerException if there is not enough free disk space.
      */
@@ -151,9 +139,9 @@
             int driveId = drive.getNumber();
             if (SysUtil.isDiskSpaceBelowCriticalLevel(aSizeInBytes, driveId))
             {
-                Log.log("Drive " + driveId +
-                        " space below critical level, required space " +
-                        aSizeInBytes + " bytes");
+                Log.logWarning("Drive " + driveId +
+                               " space below critical level, required space " +
+                               aSizeInBytes + " bytes");
             }
             else
             {
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/CheckJarPackages.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/CheckJarPackages.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-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"
@@ -38,6 +38,7 @@
         // the installation drive. This is needed to determine
         // if tamper detection is needed.
         AuthenticationModule.getInstance().setMediaId(
+            ball.iStorageHandler.getSession(),
             ball.iSuite.getUid(), ball.iSuite.getMediaId());
 
         // Application package scanning must be skipped if instructed so
@@ -72,8 +73,7 @@
         // Application touch support detection is not needed
         // if Nokia-MIDlet-On-Screen-Keypad has been defined.
         boolean touchDetection = true;
-        if (ball.getAttributeValue("Nokia-MIDlet-On-Screen-Keypad") != null &&
-            ball.iSuite.getOnScreenKeypad() != SuiteInfo.OSK_UNDEFINED)
+        if (ball.getAttributeValue("Nokia-MIDlet-On-Screen-Keypad") != null)
         {
             touchDetection = false;
         }
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/ConfirmInstallation.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/ConfirmInstallation.java	Wed Oct 13 14:23:59 2010 +0300
@@ -126,7 +126,6 @@
         installInfo.setDriveId(ball.iInstallationDrive);
         Vector drives = new Vector();
         SysUtil.getUserVisibleDrives(drives);
-        removeFullDrives(ball, drives);
         int[] driveIds = new int[drives.size()];
         int[] driveTypes = new int[drives.size()];
         long[] driveFreeSpaces = new long[drives.size()];
@@ -386,34 +385,4 @@
         }
         return size;
     }
-
-    /**
-     * Removes drives which do not have enough free space for the
-     * application from the aDrives vector.
-     */
-    private void removeFullDrives(InstallBall aBall, Vector aDrives)
-    {
-        int requiredSize = CheckDiskSpace.getRequiredSize(aBall);
-        for (int i = 0; i < aDrives.size(); i++)
-        {
-            DriveInfo drive = (DriveInfo)aDrives.elementAt(i);
-            int driveId = drive.getNumber();
-            if (SysUtil.isDiskSpaceBelowCriticalLevel(requiredSize, driveId))
-            {
-                Log.logWarning("Drive " + FileUtils.getDriveName(driveId) +
-                               " (" + driveId + ") does not have enough " +
-                               " free space, required space " + requiredSize +
-                               " bytes");
-                aDrives.removeElementAt(i);
-                i--; // Decrease index because drive was removed from Vector.
-            }
-        }
-        if (aDrives.size() == 0)
-        {
-            // None of the available drives has enough space,
-            // throw an exception.
-            throw InstallerException.getOutOfDiskSpaceException(
-                requiredSize, null);
-        }
-    }
 }
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/ConvertIcons.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/ConvertIcons.java	Wed Oct 13 14:23:59 2010 +0300
@@ -258,11 +258,10 @@
                     // the attribute MIDlet-<N>
                     iconName = newApp.getIconPath();
                 }
-                if (iconName.length() == 0 || iconName.equals(suiteIconName))
+                if (iconName.length() == 0)
                 {
-                    // No MIDlet icon defined or MIDlet icon defined to be
-                    // the same as suite icon, use already converted suite
-                    // icon if it exists.
+                    // No MIDlet icon defined, use already converted suite
+                    // icon if it exists
                     if (suiteIconFile.length() > 0)
                     {
                         // Must make separate copy of the suite icon for each
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/DlListener.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/DlListener.java	Wed Oct 13 14:23:59 2010 +0300
@@ -81,6 +81,8 @@
         }
         if (iBall.iSifNotifier != null)
         {
+            Log.log("DlListener.set: update SifNotifier to " +
+                    aDlInfo.getCurrentSize() + " / " + aDlInfo.getTotalSize());
             try
             {
                 iBall.iSifNotifier.notifyProgress(
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/FinalizeInstallation.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/FinalizeInstallation.java	Wed Oct 13 14:23:59 2010 +0300
@@ -150,9 +150,6 @@
             Log.log("JavaCaptain notified");
         }
 
-        // Add an entry to platform installation log.
-        ball.iApplicationRegistrator.addInstallLogEntry(ball.iSuite, 0);
-
         String midletName = ball.getAttributeValue("MIDlet-Name");
         ball.log("Application " + midletName + " successfully installed.");
         ball.log(ball.iSuite.toShortString());
@@ -305,18 +302,11 @@
                     }
                 }
 
-                if (ball.iSifRegistrator.getSifMode() > 0 && launchApp)
-                {
-                    ball.getInstallerUi().syncExec(new Runnable()
-                    {
-                        // launchAppView() must be called in the UI thread.
-                        public void run()
-                        {
-                            ball.iSifRegistrator.launchAppView();
-                        }
-                    });
-                }
-                else
+                //if (ball.iSifRegistrator.getSifMode() > 0 && launchApp)
+                //{
+                //    ball.iSifRegistrator.launchAppView();
+                //}
+                //else
                 if (ball.iCaptainMsgs && launchApp &&
                         launchAppInfo.getApplications() != null &&
                         launchAppInfo.getApplications().length > 0)
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/GrantJarPermissions.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/GrantJarPermissions.java	Wed Oct 13 14:23:59 2010 +0300
@@ -45,10 +45,9 @@
         }
         ball.iSecurityAttributes.addManifestAttributes(ball.iJarAttributes);
         PermissionGranter.getInstance().grantJarPermissions
-        (ball.iSuite.getUid(),
+        (ball.iStorageHandler.getSession(), ball.iSuite.getUid(),
          (ball.iOldSuite != null? ball.iOldSuite.getUid(): null),
-         ball.iSecurityAttributes.getPermissionAttributes(),
-         ball.iAuthenticationCredentials);
+         ball.iSecurityAttributes.getPermissionAttributes());
         ball.iJarPermissionsGranted = true;
     }
 
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/HandleCustomAttributes.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/HandleCustomAttributes.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -23,13 +23,10 @@
 import com.nokia.mj.impl.installer.storagehandler.ApplicationInfo;
 import com.nokia.mj.impl.installer.storagehandler.SuiteInfo;
 import com.nokia.mj.impl.installer.utils.Log;
-import com.nokia.mj.impl.installer.utils.AutoStartPermission;
 import com.nokia.mj.impl.utils.InstallerDetailedErrorMessage;
 import com.nokia.mj.impl.utils.InstallerErrorMessage;
 import com.nokia.mj.impl.utils.OtaStatusCode;
 import com.nokia.mj.impl.utils.exception.InvalidAttributeException;
-import com.nokia.mj.impl.security.midp.authorization.AccessControllerFactoryImpl;
-import com.nokia.mj.impl.security.midp.authorization.AccessControllerImpl;
 
 import java.util.Vector;
 
@@ -56,7 +53,7 @@
     {
         if (aBall.iApplicationRegistrator.isOnDeviceKeypadNeeded())
         {
-            // Default value when on-screen-keypad is needed.
+            // default value when on-screen-keypad is needed
             aBall.iSuite.setOnScreenKeypad(SuiteInfo.OSK_GAMEACTIONS);
 
             String attrName = "Nokia-MIDlet-On-Screen-Keypad";
@@ -77,16 +74,13 @@
                 }
                 else
                 {
-                    // Ignore on-screen-keypad attribute with invalid value.
-                    aBall.iSuite.setOnScreenKeypad(SuiteInfo.OSK_UNDEFINED);
-                    Log.logWarning("Ignoring invalid " + attrName +
-                                   " value " + attrValue);
+                    Log.logWarning("Invalid " + attrName + " value " + attrValue);
                 }
             }
         }
         else
         {
-            // If the device does not need on-screen-keypad, the value is not set at all.
+            // If the device does not need on-screen-keypad, the value is not set at all
             aBall.iSuite.setOnScreenKeypad(SuiteInfo.OSK_UNDEFINED);
         }
 
@@ -102,62 +96,20 @@
         }
         for (int i = 1; true; i++)
         {
-            if (apps.size() < i)
-            {
-                break;
-            }
-
             String attrName = "Nokia-MIDlet-Auto-Start-" + i;
             String attrValue = aBall.getAttributeValue(attrName);
-
-            if (attrValue == null)
-            {
-                // Allow also this form of the name to be compatible with
-                // an existing implementation
-                attrName = "Nokia-MIDlet-auto-start-" + i;
-                attrValue = aBall.getAttributeValue(attrName);
-
-                if ((attrValue == null) && (i == 1))
-                {
-                    // Allow even this S40 format
-                    attrName = "Nokia-MIDlet-auto-start";
-                    attrValue = aBall.getAttributeValue(attrName);
-                }
-            }
-
             if (attrValue != null)
             {
-                if (!aBall.attributeExistsInJar(attrName))
+                if (apps.size() < i)
                 {
-                    // The attribute is only in .jad, ignore it.
-                    Log.logWarning("Attribute " + attrName +
-                        " ignored because it is not in Manifest");
-                    continue;
-                }
-
-                // Check if MIDlet has permission for Auto-start
-                AccessControllerImpl accessControllerImpl =
-                    AccessControllerFactoryImpl.
-                    getAccessController(aBall.iStorageHandler.getSession(),
-                                        aBall.iSuite.getUid(),
-                                        aBall.iSuite.getName());
-                AutoStartPermission autoStartPermission = new AutoStartPermission();
-                if (!accessControllerImpl.isPermissionAllowed(
-                    autoStartPermission.toString()))
-                {
-                    Log.logWarning("Attribute " + attrName +
-                        " ignored due to insufficient permissions");
                     break;
                 }
-
-                if (attrValue.equalsIgnoreCase("false") ||
-                    attrValue.equalsIgnoreCase("no"))
+                if (attrValue.equalsIgnoreCase("false"))
                 {
                     ((ApplicationInfo)apps.elementAt(i-1)).
                     setAutoStart(ApplicationInfo.AUTOSTART_FALSE);
                 }
-                else if (attrValue.equalsIgnoreCase("true") ||
-                        attrValue.equalsIgnoreCase("yes"))
+                else if (attrValue.equalsIgnoreCase("true"))
                 {
                     ((ApplicationInfo)apps.elementAt(i-1)).
                     setAutoStart(ApplicationInfo.AUTOSTART_TRUE);
@@ -179,6 +131,10 @@
                       OtaStatusCode.INVALID_JAR));
                 }
             }
+            else
+            {
+                break;
+            }
         }
     }
 }
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/InstallBall.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/InstallBall.java	Wed Oct 13 14:23:59 2010 +0300
@@ -20,7 +20,6 @@
 
 import java.util.Hashtable;
 
-import com.nokia.mj.impl.installer.Installer;
 import com.nokia.mj.impl.installer.InstallationNotifier;
 import com.nokia.mj.impl.installer.applicationregistrator.ApplicationRegistrator;
 import com.nokia.mj.impl.installer.applicationregistrator.SifNotifier;
@@ -233,31 +232,6 @@
     }
 
     /**
-     * Called when InstallerUi is hidden or unhidden.
-     *
-     * @param aHidden true if UI was hidden, false if UI was unhidden.
-     */
-    public void uiIsHidden(boolean aHidden)
-    {
-        log("InstallBall.uiIsHidden " + aHidden);
-        if (iSifNotifier == null)
-        {
-            Log.logWarning("InstallBall.uiIsHidden(" + aHidden +
-                           ") called when SifNotifier does not exist");
-            return;
-        }
-        iSifNotifier.setInstallerUi(getInstallerUi());
-        if (aHidden)
-        {
-            iSifNotifier.activateIndicator();
-        }
-        else
-        {
-            iSifNotifier.deactivateIndicator();
-        }
-    }
-
-    /**
      * Called when user cancels the execution from the InstallerUi.
      * This method must return quickly.
      */
@@ -329,11 +303,10 @@
                     Log.logWarning("checkForCancel: Stopping downloader failed", t);
                 }
             }
-            throw new InstallerException(
-                Installer.ERR_CANCEL,
-                InstallerErrorMessage.INST_CANCEL, null,
-                InstallerDetailedErrorMessage.INST_CANCEL, null,
-                OtaStatusCode.USER_CANCELLED);
+            throw new InstallerException
+            (InstallerErrorMessage.INST_CANCEL, null,
+             InstallerDetailedErrorMessage.NO_MSG, null,
+             OtaStatusCode.USER_CANCELLED);
         }
     }
 
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/NotifyJsrPlugins.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/NotifyJsrPlugins.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -34,11 +34,17 @@
     {
         InstallBall ball = (InstallBall)aBall;
 
-        // If any Jsr plugins, notify plugins.
+        // If any Jsr plugins, notify plugins
         if (ball.iJsrPluginNotifier.anyJsrPlugins())
         {
-            ball.iJsrPluginNotifier.notifyInstallation(
-                createInstallerExtensionInfo(ball));
+            // Create info object to be passed to plugins
+            InstallerExtensionInfo info = new InstallerExtensionInfo();
+            info.iUid = ball.iSuite.getUid();
+            info.iUpgrade = (ball.iOldSuite != null);
+            info.iSilent = ball.isSilent();
+            info.iAttributes = ball.iCombinedAttributes;
+
+            ball.iJsrPluginNotifier.notifyInstallation(info);
         }
     }
 
@@ -46,31 +52,26 @@
     {
         InstallBall ball = (InstallBall)aBall;
 
-        // Notify possible plugins that installation has been cancelled.
+        // Notify possible plugins that installation can been cancelled
         if (ball.iJsrPluginNotifier.anyJsrPlugins())
         {
-            ball.iJsrPluginNotifier.notifyRollbackInstall(
-                createInstallerExtensionInfo(ball));
+            // Create info object to be passed to plugins
+            InstallerExtensionInfo info = new InstallerExtensionInfo();
+            // Beware, it is possible that aBall has not been fully
+            // initialized
+            if (null == ball.iSuite)
+            {
+                info.iUid = null;
+            }
+            else
+            {
+                info.iUid = ball.iSuite.getUid();
+            }
+            info.iUpgrade = (ball.iOldSuite != null);
+            info.iSilent = ball.isSilent();
+            info.iAttributes = ball.iCombinedAttributes;
+
+            ball.iJsrPluginNotifier.notifyRollbackInstall(info);
         }
     }
-
-    private InstallerExtensionInfo createInstallerExtensionInfo(InstallBall aBall)
-    {
-        InstallerExtensionInfo info = new InstallerExtensionInfo();
-        // Beware, it is possible that aBall has not been fully initialized.
-        if (aBall.iSuite != null)
-        {
-            info.iUid = aBall.iSuite.getUid();
-            info.iAppUids = aBall.iSuite.getApplicationUids();
-            info.iRootPath = aBall.iSuite.getRootDir();
-        }
-        info.iUpgrade = (aBall.iOldSuite != null);
-        info.iSilent = aBall.isSilent();
-        info.iAttributes = aBall.iCombinedAttributes;
-        if (aBall.iStorageHandler != null)
-        {
-            info.iStorageSession = aBall.iStorageHandler.getSession();
-        }
-        return info;
-    }
 }
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/OcspListener.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/OcspListener.java	Wed Oct 13 14:23:59 2010 +0300
@@ -78,6 +78,7 @@
             }
             if (iBall.iSifNotifier != null)
             {
+                Log.log("OcspListener.ocspEvent: update SifNotifier to 0 / 0");
                 try
                 {
                     iBall.iSifNotifier.notifyProgress(
@@ -108,6 +109,7 @@
                 }
                 if (iBall.iSifNotifier != null)
                 {
+                    Log.log("OcspListener.ocspEvent: update SifNotifier to 100 / 100");
                     try
                     {
                         iBall.iSifNotifier.notifyProgress(
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/PrepareInstallation.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/PrepareInstallation.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-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"
@@ -29,7 +29,6 @@
 import com.nokia.mj.impl.installer.jsrpluginnotifier.JsrPluginNotifier;
 import com.nokia.mj.impl.installer.storagehandler.StorageHandler;
 import com.nokia.mj.impl.installer.utils.Args;
-import com.nokia.mj.impl.installer.utils.DriveInfo;
 import com.nokia.mj.impl.installer.utils.FileRoots;
 import com.nokia.mj.impl.installer.utils.FileUtils;
 import com.nokia.mj.impl.installer.utils.InstallerException;
@@ -38,11 +37,8 @@
 import com.nokia.mj.impl.installer.utils.SysUtil;
 import com.nokia.mj.impl.security.midp.authentication.AuthenticationModule;
 import com.nokia.mj.impl.security.midp.authentication.OcspSettings;
-import com.nokia.mj.impl.fileutils.FileURL;
 import com.nokia.mj.impl.utils.Uid;
 
-import java.util.Vector;
-
 public class PrepareInstallation extends ExeStep
 {
 
@@ -174,11 +170,6 @@
             {
                 aBall.iJarUrl = jarArg;
             }
-            else if (isFileUrl(jarArg))
-            {
-                aBall.iJarFilename = getFileFromUrl(jarArg);
-                Log.log("Jar " + aBall.iJarFilename + " from URL " + jarArg);
-            }
             else
             {
                 aBall.iJarFilename = jarArg;
@@ -190,11 +181,6 @@
             {
                 aBall.iJadUrl = jadArg;
             }
-            else if (isFileUrl(jadArg))
-            {
-                aBall.iJadFilename = getFileFromUrl(jadArg);
-                Log.log("Jad " + aBall.iJadFilename + " from URL " + jadArg);
-            }
             else
             {
                 aBall.iJadFilename = jadArg;
@@ -280,7 +266,6 @@
         if (arg != null)
         {
             aBall.iInstallationDrive = args.parseDrive(arg);
-            checkInstallationDrive(aBall.iInstallationDrive);
         }
     }
 
@@ -361,60 +346,4 @@
         Log.log("ocspSettings: " + ocspSettings);
         return ocspSettings;
     }
-
-    /**
-     * Returns true if given URL is a file URL, false otherwise.
-     */
-    private static boolean isFileUrl(String aUrl)
-    {
-        if (aUrl == null || aUrl.length() == 0)
-        {
-            return false;
-        }
-        return aUrl.toLowerCase().startsWith("file://");
-    }
-
-    /**
-     * Returns a file path from file URL.
-     *
-     * @throws InstallerException if URL is invalid.
-     */
-    private static String getFileFromUrl(String aUrl)
-    {
-        String filePath = null;
-        try
-        {
-            FileURL fileUrl = new FileURL(aUrl);
-            filePath = fileUrl.getFullPath();
-        }
-        catch (Throwable t)
-        {
-            InstallerException.internalError("Invalid file URL: " + aUrl, t);
-        }
-        return filePath;
-    }
-
-    /**
-     * Checks that given installation drive is a valid one.
-     *
-     * @param aDrive installation drive
-     * @throws InstallerException if installation drive is not valid
-     */
-    private static void checkInstallationDrive(int aDrive)
-    {
-        Vector drives = new Vector();
-        SysUtil.getUserVisibleDrives(drives);
-        for (int i = 0; i < drives.size(); i++)
-        {
-            DriveInfo driveInfo = (DriveInfo)drives.elementAt(i);
-            if (driveInfo.getNumber() == aDrive)
-            {
-                // Installation drive found from user visible drives.
-                return;
-            }
-        }
-        InstallerException.internalError(
-            "Invalid installation drive: " + aDrive +
-            " (" + (char)('A' + aDrive) + ")");
-    }
 }
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/PrepareSplashScreen.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/PrepareSplashScreen.java	Wed Oct 13 14:23:59 2010 +0300
@@ -35,7 +35,6 @@
 import org.eclipse.swt.graphics.ImageData;
 import org.eclipse.swt.graphics.ImageLoader;
 import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.internal.extension.ImageUtil;
 
 /**
  * Installation step PrepareSplashScreen prepares splash
@@ -107,21 +106,15 @@
             for (int i = 0; i < tokens.length; i++)
             {
                 tokens[i] = tokens[i].trim();
-                imageSizes[i] = getImageSize(tokens[i], ball.iJarFilename);
-                if (imageSizes[i] == null)
+                currentImage = loadImage(tokens[i], ball.iJarFilename);
+                if (currentImage == null)
                 {
-                    // Couldn't get image size, try to get it by loading
-                    // the image.
-                    currentImage = loadImage(tokens[i], ball.iJarFilename);
-                    if (currentImage == null)
-                    {
-                        // Image loading failed, proceed to the next image.
-                        imageSizes[i] = new Point(0, 0);
-                        continue;
-                    }
-                    imageSizes[i] = new Point(
-                        currentImage[0].width, currentImage[0].height);
+                    // Image loading failed, proceed to the next image.
+                    imageSizes[i] = new Point(0, 0);
+                    continue;
                 }
+                imageSizes[i] = new Point(
+                    currentImage[0].width, currentImage[0].height);
             }
             // Choose the images which best fill the portrait and
             // landscape screens.
@@ -244,74 +237,6 @@
     }
 
     /**
-     * Gets image size for specified image from given jar file.
-     *
-     * @param aResource image file name
-     * @param aJar jar file name
-     * @return image size, or null if getting image size fails
-     */
-    private static Point getImageSize(String aResource, String aJar)
-    {
-        Point result = null;
-        JarFile jarFile = null;
-        InputStream is = null;
-        try
-        {
-            // Open jar file and input stream.
-            jarFile = new JarFile(aJar);
-            is = jarFile.getInputStream(
-                new JarEntry(FileUtils.trimJarEntry(aResource)));
-            if (is != null)
-            {
-                result = ImageUtil.getImageSize(is);
-                if (result != null)
-                {
-                    Log.log("Image size for " + aResource + " from " +
-                            aJar + ": " + result);
-                }
-            }
-            else
-            {
-                Log.logWarning("Image " + aResource + " not found from " + aJar);
-            }
-        }
-        catch (Throwable t)
-        {
-            Log.logWarning("Loading image " + aResource + " from " +
-                           aJar + " failed", t);
-        }
-        finally
-        {
-            // Close streams and jar file.
-            if (is != null)
-            {
-                try
-                {
-                    is.close();
-                    is = null;
-                }
-                catch (IOException ioe)
-                {
-                    Log.logWarning("Closing InputStream failed", ioe);
-                }
-            }
-            if (jarFile != null)
-            {
-                try
-                {
-                    jarFile.close();
-                    jarFile = null;
-                }
-                catch (IOException ioe)
-                {
-                    Log.logWarning("Closing " + aJar + " failed", ioe);
-                }
-            }
-        }
-        return result;
-    }
-
-    /**
      * Loads image from specified resource from given jar file.
      *
      * @param aResource resource file name
@@ -327,8 +252,8 @@
         {
             // Open jar file and input stream.
             jarFile = new JarFile(aJar);
-            is = jarFile.getInputStream(
-                new JarEntry(FileUtils.trimJarEntry(aResource)));
+            is = jarFile.getInputStream
+                 (new JarEntry(FileUtils.trimJarEntry(aResource)));
             if (is != null)
             {
                 result = (new ImageLoader()).load(is);
@@ -394,8 +319,8 @@
         {
             // Open jar file and input and output streams.
             jarFile = new JarFile(aJar);
-            is = jarFile.getInputStream(
-                new JarEntry(FileUtils.trimJarEntry(aResource)));
+            is = jarFile.getInputStream
+                 (new JarEntry(FileUtils.trimJarEntry(aResource)));
             os = FileUtils.getOutputStream(imageFilename);
             // Copy the image data from InputStream to OutputStream.
             byte[] buf = new byte[16384];
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/RegisterApplicationToSif.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/RegisterApplicationToSif.java	Wed Oct 13 14:23:59 2010 +0300
@@ -40,11 +40,11 @@
             Log.log("Old suite unregistered from SIF");
         }
 
-        if (ball.iAuthenticationCredentials != null)
+        if (ball.iSourceUrl != null)
         {
-            // Set protection domain name.
-            ball.iSuite.setProtectionDomainName(
-                ball.iAuthenticationCredentials[0].getProtectionDomainName());
+            // Save source URL to suite as jad URL which is
+            // registered to SIF as download URL.
+            ball.iSuite.setJadUrl(ball.iSourceUrl);
         }
 
         // Initialize application installation group to SuiteInfo.
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/StartProgressNotifications.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/StartProgressNotifications.java	Wed Oct 13 14:23:59 2010 +0300
@@ -36,12 +36,6 @@
         InstallBall ball = (InstallBall)aBall;
         Log.log("Starting progress notifications...");
 
-        if (ball.iPreinstallation)
-        {
-            Log.log("SifNotifier disabled during preinstallation.");
-            return;
-        }
-
         if (!SifNotifier.enabled())
         {
             Log.log("SifNotifier disabled.");
@@ -105,17 +99,9 @@
         }
         catch (Throwable t)
         {
-            Log.log("StartProgressNotifications: SifNotifier.notifyStart failed", t);
-            try
-            {
-                ball.iSifNotifier.destroy();
-            }
-            catch (Throwable t2)
-            {
-                Log.logError("StartProgressNotifications: SifNotifier.destroy failed", t2);
-            }
-            ball.iSifNotifier = null;
+            Log.logError("StartProgressNotifications: SifNotifier.notifyStart failed", t);
         }
+
         // Set SifNotifier for the listeners that should use it.
         ball.iInstallationNotifier.setSifNotifier(ball.iSifNotifier);
     }
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/uninstall/steps/FinalizeUninstallation.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/uninstall/steps/FinalizeUninstallation.java	Wed Oct 13 14:23:59 2010 +0300
@@ -102,10 +102,6 @@
                 ball.log("Application with uid " + appUids[i] + " uninstalled");
             }
         }
-
-        // Add an entry to platform installation log.
-        ball.iApplicationRegistrator.addInstallLogEntry(ball.iSuite, 1);
-
         ball.log("Application suite with uid " + ball.iSuite.getUid() +
                  " successfully uninstalled.");
     }
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/uninstall/steps/GetFromStorage.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/uninstall/steps/GetFromStorage.java	Wed Oct 13 14:23:59 2010 +0300
@@ -54,15 +54,6 @@
         // Check if debug attribute has been defined for this suite.
         ball.setDebug(ball.iSuite.getAttributeValue("Nokia-MIDlet-Install-Debug"));
 
-        // Check from arguments if preinstall state should be reset.
-        String arg = ball.iArgs.get("resetpreinstall");
-        if (arg != null)
-        {
-            ball.iSuite.setResetPreinstall(true);
-            ball.log("ResetPreinstall set");
-        }
-
-
         // Log all suite info.
         //ball.log(ball.iSuite.toString());
     }
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/uninstall/steps/NotifyJsrPlugins.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/uninstall/steps/NotifyJsrPlugins.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -34,11 +34,17 @@
     {
         UninstallBall ball = (UninstallBall)aBall;
 
-        // If any Jsr plugins, notify plugins.
+        // If any Jsr plugins, notify plugins
         if (ball.iJsrPluginNotifier.anyJsrPlugins())
         {
-            ball.iJsrPluginNotifier.notifyUninstallation(
-                createInstallerExtensionInfo(ball));
+            // Create info object to be passed to plugins
+            InstallerExtensionInfo info = new InstallerExtensionInfo();
+            info.iUid = ball.iSuite.getUid();
+            info.iUpgrade = false;
+            info.iSilent = ball.isSilent();
+            info.iAttributes = ball.iSuite.getAttributes();
+
+            ball.iJsrPluginNotifier.notifyUninstallation(info);
         }
     }
 
@@ -46,31 +52,27 @@
     {
         UninstallBall ball = (UninstallBall)aBall;
 
-        // Notify possible plugins that uninstallation has been cancelled.
+        // Notify possible plugins that uninstallation can been cancelled
         if (ball.iJsrPluginNotifier.anyJsrPlugins())
         {
-            ball.iJsrPluginNotifier.notifyRollbackUninstall(
-                createInstallerExtensionInfo(ball));
+            // Create info object to be passed to plugins
+            InstallerExtensionInfo info = new InstallerExtensionInfo();
+            // Beware, it is possible that aBall has not been fully
+            // initialized
+            if (null == ball.iSuite)
+            {
+                info.iUid = null;
+                info.iAttributes = null;
+            }
+            else
+            {
+                info.iUid = ball.iSuite.getUid();
+                info.iAttributes = ball.iSuite.getAttributes();
+            }
+            info.iUpgrade = false;
+            info.iSilent = ball.isSilent();
+
+            ball.iJsrPluginNotifier.notifyRollbackUninstall(info);
         }
     }
-
-    private InstallerExtensionInfo createInstallerExtensionInfo(UninstallBall aBall)
-    {
-        InstallerExtensionInfo info = new InstallerExtensionInfo();
-        // Beware, it is possible that aBall has not been fully initialized.
-        if (aBall.iSuite != null)
-        {
-            info.iUid = aBall.iSuite.getUid();
-            info.iAppUids = aBall.iSuite.getApplicationUids();
-            info.iAttributes = aBall.iSuite.getAttributes();
-            info.iRootPath = aBall.iSuite.getRootDir();
-        }
-        info.iUpgrade = false;
-        info.iSilent = aBall.isSilent();
-        if (aBall.iStorageHandler != null)
-        {
-            info.iStorageSession = aBall.iStorageHandler.getSession();
-        }
-        return info;
-    }
 }
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/uninstall/steps/StartProgressNotifications.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/uninstall/steps/StartProgressNotifications.java	Wed Oct 13 14:23:59 2010 +0300
@@ -91,16 +91,8 @@
         catch (Throwable t)
         {
             Log.logError("StartProgressNotifications: SifNotifier.notifyStart failed", t);
-            try
-            {
-                ball.iSifNotifier.destroy();
-            }
-            catch (Throwable t2)
-            {
-                Log.logError("StartProgressNotifications: SifNotifier.destroy failed", t2);
-            }
-            ball.iSifNotifier = null;
         }
+
         // Set SifNotifier for the listeners that should use it.
         ball.iInstallationNotifier.setSifNotifier(ball.iSifNotifier);
     }
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/uninstall/steps/UninstallBall.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/uninstall/steps/UninstallBall.java	Wed Oct 13 14:23:59 2010 +0300
@@ -21,7 +21,6 @@
 import java.util.Hashtable;
 import java.util.Vector;
 
-import com.nokia.mj.impl.installer.Installer;
 import com.nokia.mj.impl.installer.InstallationNotifier;
 import com.nokia.mj.impl.installer.applicationregistrator.ApplicationRegistrator;
 import com.nokia.mj.impl.installer.applicationregistrator.SifNotifier;
@@ -125,11 +124,10 @@
         super.checkForCancel();
         if (isCancelled())
         {
-            throw new InstallerException(
-                Installer.ERR_CANCEL,
-                InstallerErrorMessage.UNINST_CANCEL, null,
-                InstallerDetailedErrorMessage.UNINST_CANCEL, null,
-                OtaStatusCode.USER_CANCELLED);
+            throw new InstallerException
+            (InstallerErrorMessage.UNINST_CANCEL, null,
+             InstallerDetailedErrorMessage.NO_MSG, null,
+             OtaStatusCode.USER_CANCELLED);
         }
     }
 
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/storagehandler/StorageHandler.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/storagehandler/StorageHandler.java	Wed Oct 13 14:23:59 2010 +0300
@@ -925,23 +925,13 @@
         }
         else
         {
-            // Not an update ==> suite is being uninstalled.
+            // Not an update ==> user is making uninstallation.
             int oldPreinstallState = readPreinstallState(aSuiteInfo);
             if (oldPreinstallState == aSuiteInfo.STATE_PREINSTALLED)
             {
-                if (aSuiteInfo.getResetPreinstall())
-                {
-                    // Preinstallation state should be reset,
-                    // remove existing data from
-                    // StorageNames.PREINSTALL_TABLE table.
-                    removePreinstallState(aSuiteInfo);
-                }
-                else
-                {
-                    // User is uninstalling a preinstalled application,
-                    // set preinstall state to STATE_NO_PREINSTALL.
-                    setNoPreinstallState(aSuiteInfo);
-                }
+                // User is uninstalling a preinstalled application,
+                // set preinstall state to STATE_NO_PREINSTALL.
+                setNoPreinstallState(aSuiteInfo);
             }
             else if (oldPreinstallState == aSuiteInfo.STATE_INSTALLED)
             {
@@ -1091,11 +1081,13 @@
 
     /**
      * Removes preinstall state for given suite from
-     * preinstall table 
+     * preinstall table but only if preinstall state
+     * in given SuiteInfo is SuiteInfo.STATE_INSTALLED.
      */
     private void removePreinstallState(SuiteInfo aSuiteInfo)
     {
-        if (aSuiteInfo == null)
+        if (aSuiteInfo == null ||
+                aSuiteInfo.iPreinstallState != aSuiteInfo.STATE_INSTALLED)
         {
             return;
         }
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/storagehandler/SuiteInfo.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/storagehandler/SuiteInfo.java	Wed Oct 13 14:23:59 2010 +0300
@@ -73,9 +73,6 @@
     private String iAccessPoint = null;
     // Flag telling if application suite is trusted
     private boolean iTrusted = false;
-    // Flag telling if preinstallation state should be
-    // reseted in uninstallation.
-    private boolean iResetPreinstall = false;
 
     /** Flag telling if default icon should be used. */
     private boolean iUseDefaultIcon = false;
@@ -83,8 +80,6 @@
     private String iConvertedIconPath = null;
     /** Application installation group. This member is not saved into storage. */
     private String iInstallationGroup = null;
-    /** Protection domain name. This member is not saved into storage. */
-    private String iProtectionDomainName = null;
 
     /**
      * Combined Jad and Manifest attributes. Key is attribute name,
@@ -526,22 +521,6 @@
     }
 
     /**
-     * Get protection domain name.
-     */
-    public String getProtectionDomainName()
-    {
-        return iProtectionDomainName;
-    }
-
-    /**
-     * Set protection domain name.
-     */
-    public void setProtectionDomainName(String aProtectionDomainName)
-    {
-        iProtectionDomainName = aProtectionDomainName;
-    }
-
-    /**
      * Set suite uid.
      *
      * @param aUid suite uid
@@ -761,14 +740,6 @@
     }
 
     /**
-     * Returns true if this application suite is preinstalled, false otherwise.
-     */
-    public boolean isPreinstalled()
-    {
-        return (iPreinstallState == STATE_PREINSTALLED);
-    }
-
-    /**
      * Set flag telling if application suite is preinstalled.
      *
      * @param aTrusted true if suite is preinstalled, false otherwise
@@ -786,24 +757,6 @@
     }
 
     /**
-     * Get the flag telling if preinstallation state should be reset.
-     * Used only in uninstallation.
-     */
-    public boolean getResetPreinstall()
-    {
-        return iResetPreinstall;
-    }
-
-    /**
-     * Set the flag telling if preinstallation state should be reset.
-     * Used only in uninstallation.
-     */
-    public void setResetPreinstall(boolean aResetPreinstall)
-    {
-        iResetPreinstall = aResetPreinstall;
-    }
-
-    /**
      * Calculates initial size from MIDlet-Data-Size and
      * MIDlet-Jar-Size attributes, or if they are not present
      * from jar file size.
@@ -886,11 +839,9 @@
         buf.append("  MediaId: ").append(getMediaId()).append("\n");
         buf.append("  InitialSize: ").append(getInitialSize()).append("\n");
         buf.append("  PreinstallState: ").append(iPreinstallState).append("\n");
-        buf.append("  ResetPreinstall: ").append(getResetPreinstall()).append("\n");
         buf.append("  OnScreenKeypad: ").append(getOnScreenKeypad()).append("\n");
         buf.append("  ConvertedIcon: ").append(getConvertedIconPath()).append("\n");
         buf.append("  Group: ").append(getInstallationGroup()).append("\n");
-        buf.append("  Protection domain: ").append(getProtectionDomainName()).append("\n");
         if (iApplications != null)
         {
             buf.append("Applications:\n");
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/utils/Args.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/utils/Args.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -20,7 +20,6 @@
 
 import com.nokia.mj.impl.installer.utils.InstallerException;
 import com.nokia.mj.impl.installer.utils.Log;
-import com.nokia.mj.impl.utils.Base64;
 import com.nokia.mj.impl.utils.Tokenizer;
 
 import java.util.Hashtable;
@@ -60,7 +59,6 @@
                 //Log.log("Args: " + arg + "=" + value);
             }
         }
-        decodeBase64Args();
     }
 
     /**
@@ -205,59 +203,7 @@
             }
             drive = aDrive.toLowerCase().charAt(0) - 'a';
         }
-        Log.log("Args: Parsed drive " + aDrive + " --> " + drive);
+        Log.log("Parsed drive " + aDrive + " --> " + drive);
         return drive;
     }
-
-    /**
-     * Decodes base64 encoded arguments.
-     * In Symbian environment the decoded argument is UTF-16LE string.
-     *
-     * @see /sf/app/jrt/javacommons/utils/inc/javacommonutils.h,
-     *  wbase64encode()
-     */
-    private void decodeBase64Args()
-    {
-        String base64Value = get("base64");
-        if (base64Value == null || base64Value.length() == 0)
-        {
-            return;
-        }
-        String[] tokens = Tokenizer.split(base64Value, ",");
-        String name = null;
-        String value = null;
-        for (int i = 0; i < tokens.length; i++)
-        {
-            name = tokens[i];
-            value = null;
-            if (name != null && name.length() > 0)
-            {
-                value = get(name);
-            }
-            if (value != null && value.length() > 0)
-            {
-                try
-                {
-                    byte[] valueBytes = Base64.decode(value);
-                    if (valueBytes != null && valueBytes.length > 0)
-                    {
-                        value = new String(valueBytes, "UTF-16LE");
-                        Log.log("Args: Base64 decoded option " +
-                                name + "=" + value);
-                        iArgs.put(name, value);
-                    }
-                    else
-                    {
-                        Log.logError("Args: Base64 decoding failed for " +
-                                     name + "=" + value);
-                    }
-                }
-                catch (Throwable t)
-                {
-                    Log.logError("Args: Base64 decoding failed for " +
-                                 name + "=" + value, t);
-                }
-            }
-        }
-    }
 }
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/utils/AutoStartPermission.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/utils/AutoStartPermission.java	Wed Oct 13 14:23:59 2010 +0300
@@ -75,10 +75,6 @@
      */
     public boolean equals(Object obj)
     {
-        if (!(obj instanceof AutoStartPermission))
-        {
-            return false;
-        }
         return (obj.hashCode() == hashCode());
     }
 
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/utils/PropertyListener.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-
-package com.nokia.mj.impl.installer.utils;
-
-/**
- * Interface for listening property value changes.
- *
- * @see PropertyProvider
- */
-public interface PropertyListener
-{
-    /**
-     * Called when property value is changed.
-     * This method must return quickly.
-     *
-     * @param aCategory property category
-     * @param aKey property key
-     * @param aValue property value
-     */
-    public void valueChanged(int aCategory, int aKey, int aValue);
-}
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/rt/installer/ApplicationUtilsImpl.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/rt/installer/ApplicationUtilsImpl.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -85,11 +85,6 @@
         Installer.cancel();
     }
 
-    public void uiDisposed()
-    {
-        Log.log("ApplicationUtilsImpl.uiDisposed");
-    }
-
     public void checkPermission(Permission aPermission)
     throws AccessControlException, NullPointerException
     {
--- a/javamanager/javainstaller/installer/src.s60/applicationregistrator/applicationregistrator.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/src.s60/applicationregistrator/applicationregistrator.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -30,12 +30,6 @@
 #include <AknUtils.h>
 #include <hal.h>
 
-#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-#include <SWInstLogTaskParam.h>
-#include <SWInstTask.h>
-#include <SWInstTaskManager.h>
-#endif // !SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-
 #ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
 #include <apgicnfl.h>
 #else
@@ -56,13 +50,7 @@
 
 // NAMESPACE DECLARATION
 using namespace java;
-#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-using namespace SwiUI;
-#endif // !SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 
-IMPORT_C HBufC* CreateHBufCFromJavaStringLC(JNIEnv* aEnv, jstring aString);
-
-#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 /**
  * MIDP Stub SIS file UID. The application type Uid for MIDlets in S60
  */
@@ -99,6 +87,14 @@
                           jboolean aBackground);
 
 /**
+ * Internal helper method for checking whether Application Shell is already running
+ * Used JNI method ...1startAppShellUi
+ *
+ * @return ETrue if AppShell is running
+ */
+TBool isAppShellUiRunning();
+
+/**
  * Internal helper method for checking whether this code is executing in
  * a device that has correctly working version of
  * RApaLsSession::ForceCommitNonNativeApplicationsUpdatesL()
@@ -106,15 +102,6 @@
  * @return ETrue if force commit works well
  */
 TBool isForceCommitSupported();
-#endif // !SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-
-/**
- * Internal helper method for checking whether Application Shell is already running
- * Used JNI method ...1startAppShellUi
- *
- * @return ETrue if AppShell is running
- */
-TBool isAppShellUiRunning();
 
 /**
  * Internal helper method for starting menu application
@@ -149,7 +136,8 @@
         return err;
     }
 
-#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#if 1
+//#ifndef RD_JAVA_USIF_APP_REG
     // Delete any pending (un)registrations (possible if
     // e.g. device rebooted before commit).
     // This call does nothing if there is no pending registrations.
@@ -164,7 +152,7 @@
         pApaSession->Close();
         return err;
     }
-#endif // !SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#endif // RD_JAVA_USIF_APP_REG
 
     // Return handle to session. Utilize the fact that in Symbian
     // all pointer addresses are MOD 4 so the last 2 bits are 0
@@ -188,7 +176,8 @@
  * @param[in] aBackground
  * @return 0 if registration succeeded or Symbian error code
  */
-#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#if 0
+//#ifdef RD_JAVA_USIF_APP_REG
 JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_applicationregistrator_ApplicationRegistrator__1registerApplication
 (JNIEnv */*aEnv*/, jclass /*aClass*/, jint /*aSessionHandle*/, jint /*aUid*/, jstring /*aGroupName*/,
  jstring /*aMIDletName*/, jstring /*aTargetDrive*/, jstring /*aIconFileName*/,
@@ -196,7 +185,7 @@
 {
     return KErrNone;
 }
-#else // SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#else
 JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_applicationregistrator_ApplicationRegistrator__1registerApplication
 (JNIEnv *aEnv, jclass aClass, jint aSessionHandle, jint aUid, jstring aGroupName,
  jstring aMIDletName, jstring aTargetDrive, jstring aIconFileName,
@@ -363,6 +352,7 @@
 
     return err;
 }
+#endif // RD_JAVA_USIF_APP_REG
 
 
 /**
@@ -494,7 +484,6 @@
 
     return err;
 }
-#endif // SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 
 
 /**
@@ -504,13 +493,14 @@
  * @param[in] aUid The Uid of the application to be unregistered..
  * @return 0 if unregistration succeeded or Symbian error code
  */
-#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#if 0
+//#ifdef RD_JAVA_USIF_APP_REG
 JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_applicationregistrator_ApplicationRegistrator__1unregisterApplication
 (JNIEnv *, jclass, jint /*aSessionHandle*/, jint /*aUid*/)
 {
     return KErrNone;
 }
-#else // SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#else
 JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_applicationregistrator_ApplicationRegistrator__1unregisterApplication
 (JNIEnv *, jclass, jint aSessionHandle, jint aUid)
 {
@@ -523,7 +513,7 @@
     TRAPD(err, pApaSession->DeregisterNonNativeApplicationL(appUid));
     return err;
 }
-#endif // SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#endif // RD_JAVA_USIF_APP_REG
 
 
 /**
@@ -544,7 +534,8 @@
 
     TInt err = KErrNone;
 
-#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#if 1
+//#ifndef RD_JAVA_USIF_APP_REG
     if (aSynchronous)
     {
         // Make synchronous commit
@@ -572,12 +563,12 @@
         // Use always this synchronous commit when running in emulator
         // to make writing autotest cases easier.
         TRAP(err, pApaSession->CommitNonNativeApplicationsUpdatesL());
-#else // __WINS__
+#else
         // asynchronous commit
         TRAP(err, pApaSession->ForceCommitNonNativeApplicationsUpdatesL());
 #endif // __WINS__
     }
-#endif // !SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#endif // RD_JAVA_USIF_APP_REG
 
     if (KErrNone == err)
     {
@@ -602,9 +593,10 @@
         reinterpret_cast<RApaLsSession*>(aSessionHandle<<2);
 
     TInt err = KErrNone;
-#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#if 1
+//#ifndef RD_JAVA_USIF_APP_REG
     err = pApaSession->RollbackNonNativeApplicationsUpdates();
-#endif // !SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#endif // RD_JAVA_USIF_APP_REG
     pApaSession->Close();
     delete pApaSession;
 
@@ -945,7 +937,6 @@
 }
 
 
-#ifndef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 /**
  * Internal helper method for checking whether this code is executing in
  * a device that has correctly working version of
@@ -990,75 +981,3 @@
         return EFalse;
     }
 }
-#endif // !SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-
-/**
- * See JNI method __1logComponent.
- * This method makes calls that may leave.
- */
-#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-void AddInstallLogEntryL(
-    JNIEnv */*aEnv*/, jint /*aAction*/, jint /*aUid*/,
-    jstring /*aName*/, jstring /*aVendor*/,
-    jint /*aMajorVersion*/, jint /*aMinorVersion*/, jint /*aMicroVersion*/)
-{
-}
-#else
-void AddInstallLogEntryL(
-    JNIEnv *aEnv, jint aAction, jint aUid, jstring aName, jstring aVendor,
-    jint aMajorVersion, jint aMinorVersion, jint aMicroVersion)
-{
-    TUid uid = TUid::Uid(aUid);
-    HBufC *name = CreateHBufCFromJavaStringLC(aEnv, aName);
-    HBufC *vendor = CreateHBufCFromJavaStringLC(aEnv, aVendor);
-    TVersion version(aMajorVersion, aMinorVersion, aMicroVersion);
-
-    // Create log task object.
-    CTask* task = CTask::NewL(KLogTaskImplUid, EFalse);
-    CleanupStack::PushL(task);
-
-    // Initalize log task parameters.
-    TLogTaskParam params;
-    params.iName.Copy(name->Left(KMaxLogNameLength));
-    params.iVendor.Copy(vendor->Left(KMaxLogVendorLength));
-    params.iVersion = version;
-    params.iUid = uid;
-    // Time must be universal time.
-    TTime time;
-    time.UniversalTime();
-    params.iTime = time;
-    params.iAction = (TLogTaskAction)aAction;
-    params.iIsStartup = EFalse; // Startup list was not modified.
-
-    TLogTaskParamPckg pckg(params);
-    task->SetParameterL(pckg, 0);
-
-    // Create log task manager.
-    CTaskManager* taskManager = CTaskManager::NewL();
-    CleanupStack::PushL(taskManager);
-
-    // Add the log task to the task list.
-    taskManager->AddTaskL(task);
-    taskManager->ExecutePendingTasksL();
-
-    // Cleanup.
-    CleanupStack::PopAndDestroy(taskManager);
-    CleanupStack::Pop(task);
-
-    CleanupStack::PopAndDestroy(vendor);
-    CleanupStack::PopAndDestroy(name);
-}
-#endif // SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-
-/**
- * Adds an entry to platform installation log.
- */
-JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_applicationregistrator_ApplicationRegistrator__1addInstallLogEntry
-(JNIEnv *aEnv, jclass, jint aAction, jint aUid, jstring aName, jstring aVendor,
- jint aMajorVersion, jint aMinorVersion, jint aMicroVersion)
-{
-    TRAPD(err, AddInstallLogEntryL(
-              aEnv, aAction, aUid, aName, aVendor,
-              aMajorVersion, aMinorVersion, aMicroVersion));
-    return err;
-}
--- a/javamanager/javainstaller/installer/src.s60/applicationregistrator/sifnotifier.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/src.s60/applicationregistrator/sifnotifier.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -21,14 +21,21 @@
 #include "javasymbianoslayer.h" // for CleanupResetAndDestroyPushL
 #include "logger.h"
 
-#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#if defined(SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK) && defined(RD_JAVA_USIF_NOTIFY_PROGRESS)
 
-#include <hb/hbcore/hbindicatorsymbian.h>
-#include <hb/hbcore/hbsymbianvariant.h>
-#include <sifuiinstallindicatordefinitions.h>
 #include <usif/sif/sifnotification.h>
 #include <usif/usifcommon.h>
 
+// Helper macro for logging a TDesC.
+#define LOG_TDESC_L(compIdParam, logLevelParam, msgParam, tdescParam) \
+    {                                                               \
+        HBufC8* tdescBuf = HBufC8::NewLC(tdescParam.Length() + 1);  \
+        TPtr8 tdescPtr(tdescBuf->Des());                            \
+        tdescPtr.Append(tdescParam);                                \
+        LOG1(compIdParam, logLevelParam, msgParam, tdescPtr.PtrZ());\
+        CleanupStack::PopAndDestroy(tdescBuf);                      \
+    }
+
 // NAMESPACE DECLARATION
 using namespace java;
 using namespace Usif;
@@ -54,7 +61,7 @@
  * This method makes calls that may leave (the actual notifying).
  */
 void NotifyStartL(
-    JNIEnv *aEnv, CPublishSifOperationInfo *aNotifier, jint aOperation,
+    JNIEnv *aEnv, CPublishSifOperationInfo *aNotifier,
     jstring aGlobalComponentId, jstring aComponentName,
     jobjectArray aApplicationNames, jobjectArray aApplicationIcons,
     jint aComponentSize, jstring aIconDir, jstring /*aComponentIcon*/)
@@ -94,7 +101,6 @@
                 HBufC *appIcon = CreateHBufCFromJavaStringLC(aEnv, tmpAppIcon);
                 applicationIcons.AppendL(appIcon);
                 CleanupStack::Pop(appIcon);
-                aEnv->DeleteLocalRef(tmpAppIcon);
             }
             else
             {
@@ -109,8 +115,7 @@
         CSifOperationStartData::NewLC(
             *globalComponentId, *componentName, applicationNames, applicationIcons,
             aComponentSize, /*aIconPath=*/ (NULL != aIconDir? *iconDir: KNullDesC()),
-            /*aComponentIcon=*/ KNullDesC(), Usif::KSoftwareTypeJava,
-            (TSifOperationPhase)aOperation);
+            /*aComponentIcon=*/ KNullDesC(), Usif::KSoftwareTypeJava);
 
     aNotifier->PublishStartL(*startData);
 
@@ -134,17 +139,16 @@
  * Signature: (IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;I)I
  */
 JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_applicationregistrator_SifNotifier__1notifyStart
-(JNIEnv *aEnv, jclass, jint aHandle, jint aOperation,
- jstring aGlobalComponentId, jstring aComponentName,
- jobjectArray aApplicationNames, jobjectArray aApplicationIcons,
- jint aComponentSize, jstring aIconDir, jstring aComponentIcon)
+(JNIEnv *aEnv, jclass, jint aHandle, jstring aGlobalComponentId,
+ jstring aComponentName, jobjectArray aApplicationNames,
+ jobjectArray aApplicationIcons, jint aComponentSize,
+ jstring aIconDir, jstring aComponentIcon)
 {
     CPublishSifOperationInfo *pNotifier =
         reinterpret_cast<CPublishSifOperationInfo*>(aHandle<<2);
-    TRAPD(err, NotifyStartL(aEnv, pNotifier, aOperation, aGlobalComponentId,
-                            aComponentName, aApplicationNames,
-                            aApplicationIcons, aComponentSize,
-                            aIconDir, aComponentIcon));
+    TRAPD(err, NotifyStartL(aEnv, pNotifier, aGlobalComponentId, aComponentName,
+                            aApplicationNames, aApplicationIcons,
+                            aComponentSize, aIconDir, aComponentIcon));
     return err;
 }
 
@@ -157,7 +161,7 @@
     jstring aGlobalComponentId, jint aErrCategory, jint aErrCode,
     jstring aErrMsg, jstring aErrMsgDetails)
 {
-    //__UHEAP_MARK;
+    __UHEAP_MARK;
     HBufC *globalComponentId = CreateHBufCFromJavaStringLC(aEnv, aGlobalComponentId);
     HBufC *errMsg = NULL;
     if (NULL != aErrMsg)
@@ -170,29 +174,24 @@
         errMsgDetails = CreateHBufCFromJavaStringLC(aEnv, aErrMsgDetails);
     }
 
-    CSifOperationEndData *endData =
-        CSifOperationEndData::NewLC(
-            *globalComponentId, (TErrorCategory)aErrCategory, aErrCode,
-            (NULL != errMsg? *errMsg: KNullDesC()),
-            (NULL != errMsgDetails? *errMsgDetails: KNullDesC()));
+    CSifOperationEndData *endData = CSifOperationEndData::NewLC(
+                                        *globalComponentId, (TErrorCategory)aErrCategory, aErrCode,
+                                        *errMsg, *errMsgDetails);
 
-    // Do not use UHEAP macros around PublishCompletionL() because it
-    // creates a timer object which gets deleted only when the notifier
-    // object is deleted.
     aNotifier->PublishCompletionL(*endData);
 
     CleanupStack::PopAndDestroy(endData);
 
-    if (NULL != errMsgDetails)
+    if (NULL != aErrMsg)
+    {
+        CleanupStack::PopAndDestroy(errMsg);
+    }
+    if (NULL != aErrMsgDetails)
     {
         CleanupStack::PopAndDestroy(errMsgDetails);
     }
-    if (NULL != errMsg)
-    {
-        CleanupStack::PopAndDestroy(errMsg);
-    }
     CleanupStack::PopAndDestroy(globalComponentId);
-    //__UHEAP_MARKEND;
+    __UHEAP_MARKEND;
 }
 
 /*
@@ -204,25 +203,10 @@
 (JNIEnv *aEnv, jclass, jint aHandle, jstring aGlobalComponentId,
  jint aErrCategory, jint aErrCode, jstring aErrMsg, jstring aErrMsgDetails)
 {
-    CActiveScheduler* newScheduler = 0;
-    if (0 == CActiveScheduler::Current())
-    {
-        // Create ActiveScheduler as it does not yet exist.
-        newScheduler = new CActiveScheduler;
-        CActiveScheduler::Install(newScheduler);
-    }
-
     CPublishSifOperationInfo *pNotifier =
         reinterpret_cast<CPublishSifOperationInfo*>(aHandle<<2);
     TRAPD(err, NotifyEndL(aEnv, pNotifier, aGlobalComponentId,
                           aErrCategory, aErrCode, aErrMsg, aErrMsgDetails));
-
-    if (newScheduler)
-    {
-        delete newScheduler;
-        newScheduler = 0;
-    }
-
     return err;
 }
 
@@ -302,104 +286,7 @@
     return KErrNone;
 }
 
-/*
- * Class:     com_nokia_mj_impl_installer_applicationregistrator_SifNotifier
- * Method:    _initIndicator
- * Signature: ()I
- */
-JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_applicationregistrator_SifNotifier__1initIndicator
-(JNIEnv *, jclass)
-{
-    CHbIndicatorSymbian *pIndicator = NULL;
-    TRAPD(err, pIndicator = CHbIndicatorSymbian::NewL());
-    if (KErrNone != err)
-    {
-        ELOG1(EJavaInstaller,
-              "SifNotifier.initIndicator: Creating indicator failed, error %d",
-              err);
-        return err;
-    }
-    // Return handle to the object. Utilize the fact that in Symbian
-    // all pointer addresses are MOD 4 so the last 2 bits are 0
-    // and can be shifted out. This way the returned handle is
-    // always positive whereas Symbian error codes are always negative.
-    return reinterpret_cast<TUint>(pIndicator)>>2;
-}
-
-/**
- * See JNI method __1updateIndicator.
- * This method makes calls that may leave (the actual notifying).
- */
-void UpdateIndicatorL(
-    JNIEnv *aEnv, CHbIndicatorSymbian *pIndicator, jstring aName, jint aPhase, jint aProgress)
-{
-    HBufC *name = CreateHBufCFromJavaStringLC(aEnv, aName);
-
-    CHbSymbianVariantMap *variantMap = CHbSymbianVariantMap::NewL();
-    CleanupStack::PushL(variantMap);
-    CHbSymbianVariant *variantName = CHbSymbianVariant::NewL(name, CHbSymbianVariant::EDes);
-    variantMap->Add(KSifUiInstallIndicatorAppName, variantName);
-    CHbSymbianVariant *variantPhase = CHbSymbianVariant::NewL(&aPhase, CHbSymbianVariant::EInt);
-    variantMap->Add(KSifUiInstallIndicatorPhase, variantPhase);
-    CHbSymbianVariant *variantProgress = CHbSymbianVariant::NewL(&aProgress, CHbSymbianVariant::EInt);
-    variantMap->Add(KSifUiInstallIndicatorProgress, variantProgress);
-
-    CHbSymbianVariant *variant = CHbSymbianVariant::NewL(variantMap, CHbSymbianVariant::EVariantMap);
-    CleanupStack::PushL(variant);
-
-    TInt err = KErrNone;
-    if (!pIndicator->Activate(KSifUiInstallIndicatorType, variant))
-    {
-        err = pIndicator->Error();
-        ELOG1(EJavaInstaller,
-              "SifNotifier.updateIndicator: activating indicator failed, error %d",
-              err);
-        err = KErrGeneral;
-    }
-
-    CleanupStack::PopAndDestroy(variant);
-    CleanupStack::PopAndDestroy(variantMap);
-    CleanupStack::PopAndDestroy(name);
-}
-
-/*
- * Class:     com_nokia_mj_impl_installer_applicationregistrator_SifNotifier
- * Method:    _updateIndicator
- * Signature: ()I
- */
-JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_applicationregistrator_SifNotifier__1updateIndicator
-(JNIEnv *aEnv, jclass, jint aHandle, jstring aName, jint aPhase, jint aProgress)
-{
-    CHbIndicatorSymbian *pIndicator =
-        reinterpret_cast<CHbIndicatorSymbian*>(aHandle<<2);
-    TRAPD(err, UpdateIndicatorL(aEnv, pIndicator, aName, aPhase, aProgress));
-    return err;
-}
-
-/*
- * Class:     com_nokia_mj_impl_installer_applicationregistrator_SifNotifier
- * Method:    _destroyIndicator
- * Signature: (II)I
- */
-JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_applicationregistrator_SifNotifier__1destroyIndicator
-(JNIEnv *, jclass, jint aHandle, jint aState)
-{
-    CHbIndicatorSymbian *pIndicator =
-        reinterpret_cast<CHbIndicatorSymbian*>(aHandle<<2);
-    TInt err = KErrNone;
-    if (aState && !pIndicator->Deactivate(KSifUiInstallIndicatorType))
-    {
-        err = pIndicator->Error();
-        ELOG1(EJavaInstaller,
-              "SifNotifier.destroyIndicator: Deactivating indicator failed, error %d",
-              err);
-        err = KErrGeneral;
-    }
-    delete pIndicator;
-    return err;
-}
-
-#else // SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#else // SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK && RD_JAVA_USIF_NOTIFY_PROGRESS
 
 /*
  * Class:     com_nokia_mj_impl_installer_applicationregistrator_SifNotifier
@@ -418,7 +305,7 @@
  * Signature: (IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;I)I
  */
 JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_applicationregistrator_SifNotifier__1notifyStart
-(JNIEnv *, jclass, jint, jint, jstring, jstring, jobjectArray, jobjectArray, jint, jstring, jstring)
+(JNIEnv *, jclass, jint, jstring, jstring, jobjectArray, jobjectArray, jint, jstring, jstring)
 {
     LOG(EJavaInstaller, EInfo, "SifNotifier.notifyStart");
     return KErrNone;
@@ -483,40 +370,4 @@
     return KErrNone;
 }
 
-/*
- * Class:     com_nokia_mj_impl_installer_applicationregistrator_SifNotifier
- * Method:    _initIndicator
- * Signature: ()I
- */
-JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_applicationregistrator_SifNotifier__1initIndicator
-(JNIEnv *, jclass)
-{
-    LOG(EJavaInstaller, EInfo, "SifNotifier.initIndicator");
-    return 1; // return dummy object handle
-}
-
-/*
- * Class:     com_nokia_mj_impl_installer_applicationregistrator_SifNotifier
- * Method:    _updateIndicator
- * Signature: ()I
- */
-JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_applicationregistrator_SifNotifier__1updateIndicator
-(JNIEnv *, jclass, jint, jstring, jint, jint)
-{
-    LOG(EJavaInstaller, EInfo, "SifNotifier.updateIndicator");
-    return KErrNone;
-}
-
-/*
- * Class:     com_nokia_mj_impl_installer_applicationregistrator_SifNotifier
- * Method:    _destroyIndicator
- * Signature: (II)I
- */
-JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_applicationregistrator_SifNotifier__1destroyIndicator
-(JNIEnv *, jclass, jint, jint)
-{
-    LOG(EJavaInstaller, EInfo, "SifNotifier.destroyIndicator");
-    return KErrNone;
-}
-
-#endif // SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+#endif // SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK && RD_JAVA_USIF_NOTIFY_PROGRESS
--- a/javamanager/javainstaller/installer/src.s60/applicationregistrator/sifregistrator.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/src.s60/applicationregistrator/sifregistrator.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -24,7 +24,6 @@
 #include <w32std.h>
 
 #include "com_nokia_mj_impl_installer_applicationregistrator_SifRegistrator.h"
-#include "com_nokia_mj_impl_utils_InstallerErrorMessage.h"
 #include "javacommonutils.h"
 #include "javasymbianoslayer.h" // for CleanupResetAndDestroyPushL
 #include "logger.h"
@@ -32,39 +31,53 @@
 // SCR usage is enabled if this macro has been defined.
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 
+#include <qservicemanager.h>
+#include <qurl.h>
 #include <usif/scr/scr.h>
 #include <usif/scr/screntries.h>
+#ifdef RD_JAVA_USIF_APP_REG
 #include <usif/scr/appreginfo.h>
-#include <usif/usiferror.h>
-#include <xqappmgr.h>
+#endif // RD_JAVA_USIF_APP_REG
 
 // Helper macro for logging a TDesC.
 #define LOG_TDESC_L(compIdParam, logLevelParam, msgParam, tdescParam) \
-    {                                                                 \
-        std::wstring ws((wchar_t*)tdescParam.Ptr(), tdescParam.Length()); \
-        LOG1(compIdParam, logLevelParam, msgParam, ws.c_str());       \
+    {                                                               \
+        HBufC8* tdescBuf = HBufC8::NewLC(tdescParam.Length() + 1);  \
+        TPtr8 tdescPtr(tdescBuf->Des());                            \
+        tdescPtr.Append(tdescParam);                                \
+        LOG1(compIdParam, logLevelParam, msgParam, tdescPtr.PtrZ());\
+        CleanupStack::PopAndDestroy(tdescBuf);                      \
     }
 
 // NAMESPACE DECLARATION
+QTM_USE_NAMESPACE
 using namespace java;
 using namespace Usif;
 
 IMPORT_C HBufC* CreateHBufCFromJavaStringLC(JNIEnv* aEnv, jstring aString);
 
+// Java MIME types.
+_LIT(KMimeTypeAppDescriptor, "text/vnd.sun.j2me.app-descriptor");
+_LIT(KMimeTypeJava, "application/java");
+_LIT(KMimeTypeJavaArchive, "application/java-archive");
+_LIT(KMimeTypeXJavaArchive, "application/x-java-archive");
+
 // Properties registered to SCR.
+_LIT(KMIDletName, "MIDlet-Name");
 _LIT(KUid, "Uid");
 _LIT(KMediaId, "Media-Id");
 _LIT(KMIDletInfoURL, "MIDlet-Info-URL");
 _LIT(KMIDletDescription, "MIDlet-Description");
 _LIT(KDownloadURL, "Download-URL");
-_LIT(KUpdateURL, "Update-URL");
 _LIT(KSettingsPlugin, "SettingsName");
 _LIT(KSettingsPluginValue, "javaapplicationsettingsview");
 
+#ifdef RD_JAVA_USIF_APP_REG
 // Symbian file path separator.
 _LIT(KPathSeperator, "\\");
 // Postfix for the fake application name generated for AppArc.
 _LIT(KAppPostfix, ".fakeapp");
+#endif // RD_JAVA_USIF_APP_REG
 
 /**
  * Internal helper method for checking if specified application
@@ -174,6 +187,7 @@
  * See JNI method __1notifyAppChange.
  * This method makes calls that may leave (the actual registering).
  */
+#ifdef RD_JAVA_USIF_NOTIFY_APP_ARC
 void NotifyAppChangeL(JNIEnv *aEnv, jintArray aAppUids, jint aAppChange)
 {
     RApaLsSession apaSession;
@@ -206,6 +220,11 @@
     CleanupStack::PopAndDestroy(&apaSession);
     LOG(EJavaInstaller, EInfo, "NotifyAppChangeL completed");
 }
+#else
+void NotifyAppChangeL(JNIEnv *, jintArray, jint)
+{
+}
+#endif // RD_JAVA_USIF_NOTIFY_APP_ARC
 
 /*
  * Class:     com_nokia_mj_impl_installer_applicationregistrator_SifRegistrator
@@ -216,6 +235,12 @@
 (JNIEnv *aEnv, jclass, jintArray aAppUids, jint aAppChange)
 {
     TRAPD(err, NotifyAppChangeL(aEnv, aAppUids, aAppChange));
+    if (KErrNone != err)
+    {
+        ELOG1(EJavaInstaller,
+              "notifyAppChange: notifying AppArc failed, error %d",
+              err);
+    }
     return err;
 }
 
@@ -229,47 +254,86 @@
 {
     TInt err = KErrNone;
 
-    CActiveScheduler* newScheduler = 0;
-    if (0 == CActiveScheduler::Current())
+    QServiceManager serviceManager;
+    QObject* activityManager =
+        serviceManager.loadInterface("com.nokia.qt.activities.ActivityManager");
+    if (!activityManager)
     {
-        // Create ActiveScheduler as it does not yet exist.
-        newScheduler = new CActiveScheduler;
-        CActiveScheduler::Install(newScheduler);
+        err = serviceManager.error();
+        ELOG1(EJavaInstaller,
+              "launchAppView: loading ActivityManager failed, error %d", err);
+        return KErrCouldNotConnect;
+    }
+    // URL for launching AppLib.
+    QUrl url(QString("appto://20022F35?activityname=AppLibRecentView"));
+    QMetaObject::invokeMethod(activityManager, "launchActivity",
+                              Q_ARG(QString, url.toString()));
+    err = serviceManager.error();
+    delete activityManager;
+    if (QServiceManager::NoError != err)
+    {
+        ELOG1(EJavaInstaller,
+              "launchAppView: launching AppLib activity failed, error %d",
+              err);
+        return KErrCouldNotConnect;
     }
 
-    QUrl openRecentView("appto://20022F35?activityname=AppLibRecentView");
-    XQApplicationManager applicationManager;
-    XQAiwRequest *request = applicationManager.create(openRecentView);
-    if (request)
+    // Start AppLib and bring it to foreground.
+    const TUid KAppLibUid = { 0x20022F35 };
+    TRAP(err, StartAppL(KAppLibUid));
+    return err;
+}
+
+/**
+ * See JNI method __1registerJavaSoftwareType.
+ * This method makes calls that may leave (the actual registering).
+ */
+void RegisterJavaSoftwareTypeL(RSoftwareComponentRegistry *aScr, TBool aRegister = ETrue)
+{
+    RPointerArray<HBufC> javaMimeTypes;
+    CleanupResetAndDestroyPushL(javaMimeTypes);
+    javaMimeTypes.AppendL(KMimeTypeAppDescriptor().AllocL());
+    javaMimeTypes.AppendL(KMimeTypeJava().AllocL());
+    javaMimeTypes.AppendL(KMimeTypeJavaArchive().AllocL());
+    javaMimeTypes.AppendL(KMimeTypeXJavaArchive().AllocL());
+    if (aRegister)
+    {
+        TUid javaSifPluginUid = TUid::Uid(0x2002bc70);
+        _LIT_SECURE_ID(KJavaInstallerSid, 0x102033E6);
+        aScr->AddSoftwareTypeL(
+            Usif::KSoftwareTypeJava, javaSifPluginUid,
+            KJavaInstallerSid, KJavaInstallerSid, javaMimeTypes);
+    }
+    else
     {
-        LOG(EJavaInstaller, EInfo, "launchAppView: launching AppLib");
-        bool result = request->send();
-        if (!result)
-        {
-            int error = request->lastError();
-            ELOG1(EJavaInstaller,
-                  "launchAppView: launching AppLib failed, error %d", error);
-            err = KErrGeneral;
-        }
-        else
-        {
-            LOG(EJavaInstaller, EInfo, "launchAppView: launching AppLib succeeded");
-        }
-        delete request;
+        aScr->DeleteSoftwareTypeL(Usif::KSoftwareTypeJava, javaMimeTypes);
     }
-
-    if (newScheduler)
-    {
-        delete newScheduler;
-        newScheduler = 0;
-    }
+    CleanupStack::PopAndDestroy(&javaMimeTypes);
+}
 
-    if (KErrNone == err)
+/*
+ * Class:     com_nokia_mj_impl_installer_applicationregistrator_SifRegistrator
+ * Method:    _registerJavaSoftwareType
+ * Signature: (Z)I
+ */
+JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_applicationregistrator_SifRegistrator__1registerJavaSoftwareType
+(JNIEnv *, jclass, jboolean aRegister)
+{
+    RSoftwareComponentRegistry *pScr = NULL;
+    TRAPD(err, pScr = CreateScrL());
+    if (KErrNone != err)
     {
-        // Start AppLib and bring it to foreground.
-        const TUid KAppLibUid = { 0x20022F35 };
-        TRAP(err, StartAppL(KAppLibUid));
+        return err;
     }
+    TRAP(err, RegisterJavaSoftwareTypeL(pScr, aRegister));
+    if (KErrNone != err)
+    {
+        ELOG1(EJavaInstaller,
+              "registerJavaSoftwareType: registration failed, error %d",
+              err);
+    }
+    pScr->Close();
+    delete pScr;
     return err;
 }
 
@@ -344,6 +408,12 @@
     TRAPD(err, pScr->RollbackTransactionL());
     pScr->Close();
     delete pScr;
+    if (KErrNone != err)
+    {
+        ELOG1(EJavaInstaller,
+              "rollbackSession: Rolling back transaction failed, error %d",
+              err);
+    }
     return err;
 }
 
@@ -373,9 +443,9 @@
         HBufC *valueBuf = CreateHBufCFromJavaStringLC(aEnv, aValue);
         aScr->SetComponentPropertyL(aComponentId, aName, *valueBuf);
         //LOG_TDESC_L(EJavaInstaller, EInfo,
-        //            "SetComponentPropertyL: name %S", aName);
+        //            "SetComponentPropertyL: name %s", aName);
         //LOG_TDESC_L(EJavaInstaller, EInfo,
-        //            "SetComponentPropertyL: value %S", valueBuf->Des());
+        //            "SetComponentPropertyL: value %s", valueBuf->Des());
         CleanupStack::PopAndDestroy(valueBuf);
     }
 }
@@ -386,14 +456,23 @@
  */
 TComponentId RegisterComponentL(
     JNIEnv *aEnv, RSoftwareComponentRegistry *aScr, jint aUid,
-    jstring aSuiteName, jstring aVendor, jstring aVersion, jstring aGlobalId,
+    jstring aSuiteName, jstring aVendor, jstring aVersion,
+    jstring aName, jstring aGlobalId,
     jobjectArray aComponentFiles, TInt64 aComponentSize,
     TBool aIsRemovable, TBool aIsDrmProtected,
     TBool aIsOriginVerified, TBool aIsUpdate, jint aMediaId,
-    jstring aMidletInfoUrl, jstring aMidletDescription,
-    jstring aDownloadUrl, jstring aUpdateUrl)
+    jstring aMidletInfoUrl, jstring aMidletDescription, jstring aDownloadUrl)
 {
-    HBufC *name = CreateHBufCFromJavaStringLC(aEnv, aSuiteName);
+    HBufC *name = NULL;
+    if (NULL == aName)
+    {
+        // If name is not specified, use suite name.
+        name = CreateHBufCFromJavaStringLC(aEnv, aSuiteName);
+    }
+    else
+    {
+        name = CreateHBufCFromJavaStringLC(aEnv, aName);
+    }
     HBufC *vendor = CreateHBufCFromJavaStringLC(aEnv, aVendor);
     HBufC *version = CreateHBufCFromJavaStringLC(aEnv, aVersion);
     HBufC *globalId = CreateHBufCFromJavaStringLC(aEnv, aGlobalId);
@@ -420,10 +499,14 @@
     aScr->SetComponentPropertyL(componentId, KSettingsPlugin(), KSettingsPluginValue());
     //LOG(EJavaInstaller, EInfo, "RegisterComponentL: Settings plugin property set");
 
+    if (NULL != aName)
+    {
+        // If name is specified, store suite name as property.
+        SetComponentPropertyL(aEnv, aScr, componentId, KMIDletName(), aSuiteName);
+    }
     SetComponentPropertyL(aEnv, aScr, componentId, KMIDletInfoURL(), aMidletInfoUrl);
     SetComponentPropertyL(aEnv, aScr, componentId, KMIDletDescription(), aMidletDescription);
     SetComponentPropertyL(aEnv, aScr, componentId, KDownloadURL(), aDownloadUrl);
-    SetComponentPropertyL(aEnv, aScr, componentId, KUpdateURL(), aUpdateUrl);
 
     CleanupStack::PopAndDestroy(globalId);
     CleanupStack::PopAndDestroy(version);
@@ -449,23 +532,22 @@
  */
 JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_applicationregistrator_SifRegistrator__1registerComponent
 (JNIEnv *aEnv, jclass, jint aSessionHandle, jint aUid, jstring aSuiteName,
- jstring aVendor, jstring aVersion, jstring aGlobalId,
+ jstring aVendor, jstring aVersion, jstring aName, jstring aGlobalId,
  jobjectArray aComponentFiles, jlong aComponentSize, jboolean aIsRemovable,
  jboolean aIsDrmProtected, jboolean aIsOriginVerified, jboolean aIsUpdate,
  jint aMediaId, jstring aMidletInfoUrl, jstring aMidletDescription,
- jstring aDownloadUrl, jstring aUpdateUrl, jobject aComponentId)
+ jstring aDownloadUrl, jobject aComponentId)
 {
-    __UHEAP_MARK;
+    //__UHEAP_MARK;
     RSoftwareComponentRegistry *pScr =
         reinterpret_cast<RSoftwareComponentRegistry*>(aSessionHandle<<2);
     TComponentId componentId = -1;
     TRAPD(err, componentId = RegisterComponentL(
-                                 aEnv, pScr, aUid, aSuiteName, aVendor, aVersion, aGlobalId,
+                                 aEnv, pScr, aUid, aSuiteName, aVendor, aVersion, aName, aGlobalId,
                                  aComponentFiles, aComponentSize, aIsRemovable,
                                  aIsDrmProtected, aIsOriginVerified, aIsUpdate, aMediaId,
-                                 aMidletInfoUrl, aMidletDescription,
-                                 aDownloadUrl, aUpdateUrl));
-    __UHEAP_MARKEND;
+                                 aMidletInfoUrl, aMidletDescription, aDownloadUrl));
+    //__UHEAP_MARKEND;
     if (KErrNone == err)
     {
         jclass clazz = aEnv->GetObjectClass(aComponentId);
@@ -483,16 +565,18 @@
 JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_applicationregistrator_SifRegistrator__1unregisterComponent
 (JNIEnv *, jclass, jint aSessionHandle, jint aComponentId)
 {
-    __UHEAP_MARK;
+    //__UHEAP_MARK;
     RSoftwareComponentRegistry *pScr =
         reinterpret_cast<RSoftwareComponentRegistry*>(aSessionHandle<<2);
     TInt err = KErrNone;
+#ifdef RD_JAVA_USIF_APP_REG
     TRAP(err, pScr->DeleteApplicationEntriesL(aComponentId));
+#endif // RD_JAVA_USIF_APP_REG
     if (KErrNone == err)
     {
         TRAP(err, pScr->DeleteComponentL(aComponentId));
     }
-    __UHEAP_MARKEND;
+    //__UHEAP_MARKEND;
     return err;
 }
 
@@ -500,6 +584,7 @@
  * See JNI method __1registerApplication.
  * This method makes calls that may leave.
  */
+#ifdef RD_JAVA_USIF_APP_REG
 void RegisterApplicationL(
     JNIEnv *aEnv, RSoftwareComponentRegistry *aScr,
     jint aComponentId, jint aAppUid,
@@ -567,36 +652,47 @@
     RPointerArray<HBufC> captionsArray;
     CleanupResetAndDestroyPushL(captionsArray);
     TInt langCount = aEnv->GetArrayLength(aLanguages);
-    jint* languages = aEnv->GetIntArrayElements(aLanguages, NULL);
-    for (TInt i = 0; i < langCount; i++)
+    TInt captionCount = aEnv->GetArrayLength(aAppNames);
+    if (langCount == captionCount)
     {
-        TLanguage tmpLanguage = (TLanguage)languages[i];
-        HBufC *tmpCaption =
-            CreateHBufCFromJavaStringLC(
-                aEnv, (jstring)aEnv->GetObjectArrayElement(aAppNames, i));
-        captionsArray.AppendL(tmpCaption);
-        CleanupStack::Pop(tmpCaption);
-        //LOG1(EJavaInstaller, EInfo,
-        //     "RegisterApplicationL: language %d", tmpLanguage);
-        //LOG_TDESC_L(EJavaInstaller, EInfo,
-        //            "RegisterApplicationL: caption %S", tmpCaption->Des());
-        CCaptionAndIconInfo *tmpCaptionAndIconInfo =
-            CCaptionAndIconInfo::NewLC(
-                /*aCaption=*/ *tmpCaption,
-                /*aIconFileName=*/ KNullDesC,
-                /*aNumOfAppIcons=*/ 0);
-        CLocalizableAppInfo *tmpLocAppInfo =
-            CLocalizableAppInfo::NewLC(
-                /*aShortCaption=*/ KNullDesC,
-                /*aApplicationLanguage=*/ tmpLanguage,
-                /*aGroupName=*/ KNullDesC,
-                /*aCaptionAndIconInfo=*/ tmpCaptionAndIconInfo,
-                /*aViewDataList=*/ viewDataList);
-        localizableAppInfoList.AppendL(tmpLocAppInfo);
-        CleanupStack::Pop(tmpLocAppInfo);
-        CleanupStack::Pop(tmpCaptionAndIconInfo);
+        jint* languages = aEnv->GetIntArrayElements(aLanguages, NULL);
+        for (TInt i = 0; i < langCount; i++)
+        {
+            TLanguage tmpLanguage = (TLanguage)languages[i];
+            HBufC *tmpCaption =
+                CreateHBufCFromJavaStringLC(
+                    aEnv, (jstring)aEnv->GetObjectArrayElement(aAppNames, i));
+            captionsArray.AppendL(tmpCaption);
+            CleanupStack::Pop(tmpCaption);
+            //LOG1(EJavaInstaller, EInfo,
+            //     "RegisterApplicationL: language %d", tmpLanguage);
+            //LOG_TDESC_L(EJavaInstaller, EInfo,
+            //            "RegisterApplicationL: caption %s", tmpCaption->Des());
+            CCaptionAndIconInfo *tmpCaptionAndIconInfo =
+                CCaptionAndIconInfo::NewLC(
+                    /*aCaption=*/ *tmpCaption,
+                    /*aIconFileName=*/ KNullDesC,
+                    /*aNumOfAppIcons=*/ 0);
+            CLocalizableAppInfo *tmpLocAppInfo =
+                CLocalizableAppInfo::NewLC(
+                    /*aShortCaption=*/ KNullDesC,
+                    /*aApplicationLanguage=*/ tmpLanguage,
+                    /*aGroupName=*/ KNullDesC,
+                    /*aCaptionAndIconInfo=*/ tmpCaptionAndIconInfo,
+                    /*aViewDataList=*/ viewDataList);
+            localizableAppInfoList.AppendL(tmpLocAppInfo);
+            CleanupStack::Pop(tmpLocAppInfo);
+            CleanupStack::Pop(tmpCaptionAndIconInfo);
+        }
+        aEnv->ReleaseIntArrayElements(aLanguages, languages, 0);
     }
-    aEnv->ReleaseIntArrayElements(aLanguages, languages, 0);
+    else
+    {
+        WLOG2(EJavaInstaller,
+              "RegisterApplicationL: localisation not made because language " \
+              "count does not match to caption count (%d != %d)",
+              langCount, captionCount);
+    }
 
     // Create application registration data objects.
     TApplicationCharacteristics appCharacteristics;
@@ -632,6 +728,13 @@
     CleanupStack::PopAndDestroy(caption);
     __UHEAP_MARKEND;
 }
+#else
+void RegisterApplicationL(
+    JNIEnv *, RSoftwareComponentRegistry *, jint, jint, jstring,
+    jstring, jstring, jstring, jint, jintArray, jobjectArray)
+{
+}
+#endif // RD_JAVA_USIF_APP_REG
 
 /*
  * Class:     com_nokia_mj_impl_installer_applicationregistrator_SifRegistrator
@@ -661,13 +764,19 @@
     JNIEnv *aEnv, RSoftwareComponentRegistry *aScr, jint aComponentId,
     jstring aName, jstring aVendor, jint aLanguage)
 {
-    HBufC *name = CreateHBufCFromJavaStringLC(aEnv, aName);
-    aScr->SetComponentNameL(aComponentId, *name, (TLanguage)aLanguage);
-    CleanupStack::PopAndDestroy(name);
+    if (NULL != aName)
+    {
+        HBufC *name = CreateHBufCFromJavaStringLC(aEnv, aName);
+        aScr->SetComponentNameL(aComponentId, *name, (TLanguage)aLanguage);
+        CleanupStack::PopAndDestroy(name);
+    }
 
-    HBufC *vendor = CreateHBufCFromJavaStringLC(aEnv, aVendor);
-    aScr->SetVendorNameL(aComponentId, *vendor, (TLanguage)aLanguage);
-    CleanupStack::PopAndDestroy(vendor);
+    if (NULL != aVendor)
+    {
+        HBufC *vendor = CreateHBufCFromJavaStringLC(aEnv, aVendor);
+        aScr->SetVendorNameL(aComponentId, *vendor, (TLanguage)aLanguage);
+        CleanupStack::PopAndDestroy(vendor);
+    }
 }
 
 /*
@@ -772,6 +881,7 @@
  * Method:    _getComponentIdForApp
  * Signature: (IILcom/nokia/mj/impl/installer/applicationregistrator/ComponentId;)I
  */
+#ifdef RD_JAVA_USIF_APP_REG
 JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_applicationregistrator_SifRegistrator__1getComponentIdForApp
 (JNIEnv *aEnv, jclass, jint aSessionHandle, jint aAppUid, jobject aComponentId)
 {
@@ -791,6 +901,13 @@
     }
     return err;
 }
+#else
+JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_applicationregistrator_SifRegistrator__1getComponentIdForApp
+(JNIEnv *, jclass, jint, jint, jobject)
+{
+    return KErrNone;
+}
+#endif // RD_JAVA_USIF_APP_REG
 
 /**
  * See JNI method __1getuid.
@@ -803,8 +920,20 @@
     CleanupClosePushL(*pScr);
     TInt uid = 0;
     CPropertyEntry *property = pScr->GetComponentPropertyL(aCid, KUid());
-    uid = ((CIntPropertyEntry*)property)->IntValue();
-    delete property;
+    if (NULL != property)
+    {
+        if (property->PropertyType() == CPropertyEntry::EIntProperty)
+        {
+            uid = ((CIntPropertyEntry*)property)->IntValue();
+        }
+        else
+        {
+            ELOG2(EJavaInstaller,
+                  "GetUidL: Incorrect property type %d for cid %d",
+                  property->PropertyType(), aCid);
+        }
+        delete property;
+    }
     // Close and delete the temporary RSoftwareComponentRegistry.
     CleanupStack::PopAndDestroy(pScr);
     delete pScr; // For some reason PopAndDestroy does not delete this.
@@ -841,16 +970,23 @@
     HBufC *globalId = CreateHBufCFromJavaStringLC(aEnv, aGlobalId);
     CComponentEntry *componentEntry =
         aScr->GetComponentL(*globalId, Usif::KSoftwareTypeJava, aLanguage);
+    if (NULL == componentEntry)
+    {
+        //LOG_TDESC_L(EJavaInstaller, EInfo,
+        //            "Component not found for GlobalId %s", globalId->Des());
+        CleanupStack::PopAndDestroy(globalId);
+        return;
+    }
     CleanupStack::PopAndDestroy(globalId);
 
     // Log component entry.
     TComponentId componentId = componentEntry->ComponentId();
-    LOG_TDESC_L(EJavaInstaller, EInfo, "GlobalId: %S", componentEntry->GlobalId());
+    LOG_TDESC_L(EJavaInstaller, EInfo, "GlobalId: %s", componentEntry->GlobalId());
     LOG1(EJavaInstaller, EInfo, "ComponentId: %d", componentId);
-    LOG_TDESC_L(EJavaInstaller, EInfo, "SoftwareType: %S", componentEntry->SoftwareType());
-    LOG_TDESC_L(EJavaInstaller, EInfo, "Name: %S", componentEntry->Name());
-    LOG_TDESC_L(EJavaInstaller, EInfo, "Vendor: %S", componentEntry->Vendor());
-    LOG_TDESC_L(EJavaInstaller, EInfo, "Version: %S", componentEntry->Version());
+    LOG_TDESC_L(EJavaInstaller, EInfo, "SoftwareType: %s", componentEntry->SoftwareType());
+    LOG_TDESC_L(EJavaInstaller, EInfo, "Name: %s", componentEntry->Name());
+    LOG_TDESC_L(EJavaInstaller, EInfo, "Vendor: %s", componentEntry->Vendor());
+    LOG_TDESC_L(EJavaInstaller, EInfo, "Version: %s", componentEntry->Version());
     LOG1(EJavaInstaller, EInfo, "ComponentSize: %d", componentEntry->ComponentSize());
     LOG1(EJavaInstaller, EInfo, "ScomoState: %d", componentEntry->ScomoState());
     LOG1(EJavaInstaller, EInfo, "IsDrmProtected: %d", componentEntry->IsDrmProtected());
@@ -878,37 +1014,42 @@
         switch (propertyEntry->PropertyType())
         {
         case CPropertyEntry::EBinaryProperty:
-            LOG_TDESC_L(EJavaInstaller, EInfo, "BinaryProperty: %S",
+            LOG_TDESC_L(EJavaInstaller, EInfo, "BinaryProperty: %s",
                         propertyEntry->PropertyName());
             break;
         case CPropertyEntry::EIntProperty:
-            LOG_TDESC_L(EJavaInstaller, EInfo, "IntProperty: %S",
+            LOG_TDESC_L(EJavaInstaller, EInfo, "IntProperty: %s",
                         propertyEntry->PropertyName());
             LOG2(EJavaInstaller, EInfo, "  = 0x%x (%d)",
                  ((CIntPropertyEntry*)propertyEntry)->IntValue(),
                  ((CIntPropertyEntry*)propertyEntry)->IntValue());
             break;
         case CPropertyEntry::ELocalizedProperty:
-            LOG_TDESC_L(EJavaInstaller, EInfo, "LocalizedProperty: %S",
+            LOG_TDESC_L(EJavaInstaller, EInfo, "LocalizedProperty: %s",
                         propertyEntry->PropertyName());
-            LOG_TDESC_L(EJavaInstaller, EInfo, " = %S",
+            LOG_TDESC_L(EJavaInstaller, EInfo, " = %s",
                         ((CLocalizablePropertyEntry*)propertyEntry)->StrValue());
             break;
         }
     }
     CleanupStack::PopAndDestroy(&properties);
 
+#ifdef RD_JAVA_USIF_APP_REG
     // Log uids of applications associated to component.
     RArray<TUid> appUids;
     CleanupClosePushL(appUids);
     aScr->GetAppUidsForComponentL(componentId, appUids);
-    LOG1(EJavaInstaller, EInfo, "Number of AppUids found: %d", appUids.Count());
+    if (appUids.Count() == 0)
+    {
+        LOG(EJavaInstaller, EInfo, "No component appUids found from SCR");
+    }
     for (TInt i = 0; i < appUids.Count(); i++)
     {
         LOG2(EJavaInstaller, EInfo, "AppUid [%x] (%d)",
              appUids[i].iUid, appUids[i].iUid);
     }
     CleanupStack::PopAndDestroy(&appUids);
+#endif // RD_JAVA_USIF_APP_REG
 }
 
 /**
@@ -944,11 +1085,11 @@
 JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_applicationregistrator_SifRegistrator__1logComponent
 (JNIEnv *aEnv, jclass, jint aSessionHandle, jstring aGlobalId)
 {
-    //__UHEAP_MARK;
+    __UHEAP_MARK;
     RSoftwareComponentRegistry *pScr =
         reinterpret_cast<RSoftwareComponentRegistry*>(aSessionHandle<<2);
     TRAPD(err, LogComponentL(aEnv, pScr, aGlobalId));
-    //__UHEAP_MARKEND;
+    __UHEAP_MARKEND;
     return err;
 }
 
@@ -960,51 +1101,11 @@
 JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_applicationregistrator_SifRegistrator__1getUsifMode
 (JNIEnv *, jclass)
 {
+#ifdef RD_JAVA_USIF_APP_REG
     return 1;
-}
-
-/*
- * Class:     com_nokia_mj_impl_installer_applicationregistrator_SifRegistrator
- * Method:    _getErrorCategory
- * Signature: (I)I
- */
-JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_applicationregistrator_SifRegistrator__1getErrorCategory
-(JNIEnv *, jclass, jint aErrorId)
-{
-    int errorCategory = Usif::EUnexpectedError;
-    switch (aErrorId)
-    {
-    case com_nokia_mj_impl_utils_InstallerErrorMessage_INST_NO_MEM:
-        errorCategory = Usif::ELowDiskSpace;
-        break;
-    case com_nokia_mj_impl_utils_InstallerErrorMessage_INST_NO_NET:
-        errorCategory = Usif::ENetworkUnavailable;
-        break;
-    case com_nokia_mj_impl_utils_InstallerErrorMessage_INST_CORRUPT_PKG:
-        errorCategory = Usif::ECorruptedPackage;
-        break;
-    case com_nokia_mj_impl_utils_InstallerErrorMessage_INST_COMPAT_ERR:
-        errorCategory = Usif::EApplicationNotCompatible;
-        break;
-    case com_nokia_mj_impl_utils_InstallerErrorMessage_INST_AUTHORIZATION_ERR:
-    case com_nokia_mj_impl_utils_InstallerErrorMessage_INST_AUTHENTICATION_ERR:
-        errorCategory = Usif::ESecurityError;
-        break;
-    case com_nokia_mj_impl_utils_InstallerErrorMessage_INST_PUSH_REG_ERR:
-    case com_nokia_mj_impl_utils_InstallerErrorMessage_INST_UNEXPECTED_ERR:
-    case com_nokia_mj_impl_utils_InstallerErrorMessage_UNINST_UNEXPECTED_ERR:
-    case com_nokia_mj_impl_utils_InstallerErrorMessage_OTHER_UNEXPECTED_ERR:
-        errorCategory = Usif::EUnexpectedError;
-        break;
-    case com_nokia_mj_impl_utils_InstallerErrorMessage_INST_CANCEL:
-    case com_nokia_mj_impl_utils_InstallerErrorMessage_UNINST_CANCEL:
-        errorCategory = Usif::EUserCancelled;
-        break;
-    case com_nokia_mj_impl_utils_InstallerErrorMessage_UNINST_NOT_ALLOWED:
-        errorCategory = Usif::EUninstallationBlocked;
-        break;
-    }
-    return errorCategory;
+#else
+    return 0;
+#endif // RD_JAVA_USIF_APP_REG
 }
 
 #else // SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
@@ -1033,6 +1134,17 @@
 
 /*
  * Class:     com_nokia_mj_impl_installer_applicationregistrator_SifRegistrator
+ * Method:    _registerJavaSoftwareType
+ * Signature: (Z)I
+ */
+JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_applicationregistrator_SifRegistrator__1registerJavaSoftwareType
+(JNIEnv *, jclass, jboolean)
+{
+    return KErrNone;
+}
+
+/*
+ * Class:     com_nokia_mj_impl_installer_applicationregistrator_SifRegistrator
  * Method:    _startSession
  * Signature: ()I
  */
@@ -1080,9 +1192,9 @@
  * Signature: (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;JZZZZLcom/nokia/mj/impl/installer/applicationregistrator/ComponentId;)I
  */
 JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_applicationregistrator_SifRegistrator__1registerComponent
-(JNIEnv *, jclass, jint, jint, jstring, jstring, jstring, jstring,
- jobjectArray, jlong, jboolean, jboolean, jboolean, jboolean, jint,
- jstring, jstring, jstring, jstring, jobject)
+(JNIEnv *, jclass, jint, jint, jstring, jstring, jstring, jstring, jstring,
+ jobjectArray, jlong, jboolean, jboolean, jboolean, jboolean, jint, jstring,
+ jstring, jstring, jobject)
 {
     return KErrNone;
 }
@@ -1186,15 +1298,4 @@
     return 0;
 }
 
-/*
- * Class:     com_nokia_mj_impl_installer_applicationregistrator_SifRegistrator
- * Method:    _getErrorCategory
- * Signature: (I)I
- */
-JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_applicationregistrator_SifRegistrator__1getErrorCategory
-(JNIEnv *, jclass, jint)
-{
-    return 0;
-}
-
 #endif // SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
--- a/javamanager/javainstaller/installer/src.s60/iconconverter/iconconverter.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/src.s60/iconconverter/iconconverter.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -20,7 +20,7 @@
 
 #include <zipfile.h>
 #include <time.h>
-#include <bitmaptransforms.h>
+#include <BitmapTransforms.h>
 
 #include "javacommonutils.h"
 #include "logger.h"
--- a/javamanager/javainstaller/installer/src.s60/jadjarmatcher/jadjarmatcher.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/src.s60/jadjarmatcher/jadjarmatcher.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -83,7 +83,7 @@
                                                 classHandles, "addElement", "(Ljava/lang/Object;)V");
         jclass classTimestamps = aEnv->GetObjectClass(aTimestamps);
         jmethodID methodTimestampsAddElement = aEnv->GetMethodID(
-                                                   classTimestamps, "addElement", "(Ljava/lang/Object;)V");
+                                                   classHandles, "addElement", "(Ljava/lang/Object;)V");
         jclass integerClass = aEnv->FindClass("java/lang/Integer");
         jmethodID integerConstructor = aEnv->GetMethodID(
                                            integerClass, "<init>", "(I)V");
--- a/javamanager/javainstaller/installer/src.s60/jadjarmatcher/jadjarmatcherscanfrominbox.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/src.s60/jadjarmatcher/jadjarmatcherscanfrominbox.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -143,7 +143,7 @@
                             TRAP(err, atta = iAttaMan->GetAttachmentFileL(attaInfo->Id()));
                             if (KErrNone == err)
                             {
-                                aResultArray.InsertL(atta, 0);
+                                aResultArray.Insert(atta, 0);
                             }
                         }
                     }
@@ -206,7 +206,7 @@
             TMsvEntry index = (*entry)[loop];
             if (KUidMsgTypePOP3 == index.iMtm || KUidMsgTypeIMAP4 == index.iMtm)
             {
-                aRootEntryArray.InsertL((*entry)[loop].Id(), 0);
+                aRootEntryArray.Insert((*entry)[loop].Id(), 0);
             }
         }
     }
@@ -245,7 +245,7 @@
                 if (index.Visible() && index.Complete() &&
                         !index.InPreparation() && !index.Deleted())
                 {
-                    aEntryArray.InsertL(aId, 0);
+                    aEntryArray.Insert(aId, 0);
                 }
             }
         }
--- a/javamanager/javainstaller/installer/src.s60/utils/filewriter.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/src.s60/utils/filewriter.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -26,7 +26,6 @@
 #ifdef RD_JAVA_S60_RELEASE_5_0
 #include <middleware/Oma2Agent.h>
 #else
-#include <caf/cafplatform.h>
 #include <mw/Oma2Agent.h>
 #endif // RD_JAVA_S60_RELEASE_5_0
 
--- a/javamanager/javainstaller/installer/src.s60/utils/propertylistener.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-* This class implements general wait object for calling
-* a callback function after subscribed P&S key value changes.
-*
-*/
-
-#include "propertylistener.h"
-#include "logger.h"
-
-using namespace java::installer;
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-CPropertyListener* CPropertyListener::NewL(TUid aUid, TUint aKey)
-{
-    CPropertyListener* self = new(ELeave) CPropertyListener(aUid, aKey);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;
-}
-
-CPropertyListener::CPropertyListener(TUid aUid, TUint aKey)
-    : CActive(CActive::EPriorityStandard), iUid(aUid), iKey(aKey)
-{
-}
-
-void CPropertyListener::ConstructL()
-{
-    User::LeaveIfError(iProperty.Attach(iUid, iKey));
-    // PropertyListener is always created from a thread which does
-    // not have ActiveScheduler, so create ActiveScheduler now.
-    iActiveScheduler = new(ELeave) CActiveScheduler;
-    CActiveScheduler::Install(iActiveScheduler);
-    // Add this object to the ActiveScheduler.
-    CActiveScheduler::Add(this);
-}
-
-CPropertyListener::~CPropertyListener()
-{
-    Cancel();
-    iProperty.Close();
-    if (iActiveScheduler)
-    {
-        delete iActiveScheduler;
-        iActiveScheduler = 0;
-    }
-}
-
-void CPropertyListener::ProcessEventsL(JNIEnv *aEnv, jobject aProvider)
-{
-    // Get the java side callback method.
-    jclass clazz = aEnv->GetObjectClass(aProvider);
-    jmethodID method = aEnv->GetMethodID(clazz, "valueChanged", "(I)V");
-
-    iEnv = aEnv;
-    iProvider = aProvider;
-    iMethod = method;
-
-    // Run propertyListener once so that the current property value
-    // gets delivered and property value changes are subscribed.
-    RunL();
-
-    // Start ActiveScheduler.
-    CActiveScheduler::Start();
-}
-
-void CPropertyListener::RunL()
-{
-    if (iCancelled)
-    {
-        CActiveScheduler::Stop();
-        return;
-    }
-
-    // Resubscribe before handling the new value to prevent missing updates.
-    iProperty.Subscribe(iStatus);
-    SetActive();
-
-    TInt value;
-    TInt err = iProperty.Get(value);
-    if (KErrNone == err)
-    {
-        //ILOG3(EJavaInstaller,
-        //      "CPropertyListener::RunL: property value changed"
-        //      ", uid: 0x%x, key: 0x%x, value: %d", iUid.iUid, iKey, value);
-        // Use callback method to deliver the changed property value to
-        // Java side object.
-        iEnv->CallVoidMethod(iProvider, iMethod, value);
-    }
-    else if (KErrNotFound == err)
-    {
-        // Property deleted, no actions needed.
-    }
-    else
-    {
-        // Error while reading property value.
-        ELOG3(EJavaInstaller,
-              "CPropertyListener::RunL: getting property value failed"
-              ", uid: 0x%x, key: 0x%x, err=%d", iUid.iUid, iKey, err);
-    }
-}
-
-void CPropertyListener::DoCancel()
-{
-    iCancelled = ETrue;
-    iProperty.Cancel();
-}
--- a/javamanager/javainstaller/installer/src.s60/utils/propertylistener.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-* This class implements general wait object for calling
-* a callback function after subscribed P&S key value changes.
-*
-*/
-
-#ifndef PROPERTYLISTENER_H
-#define PROPERTYLISTENER_H
-
-#include <e32base.h>
-#include <e32property.h>
-#include <jni.h>
-
-namespace java
-{
-namespace installer
-{
-
-/**
- * This class implements wait object for calling a callback
- * function after subscribed P&S key value changes.
- */
-NONSHARABLE_CLASS(CPropertyListener) : public CActive
-{
-public:  // Constructor and destructor
-
-    static CPropertyListener* NewL(TUid aUid, TUint aKey);
-
-    // Destructor.
-    virtual ~CPropertyListener();
-
-private:
-
-    // Constructor.
-    CPropertyListener(TUid aUid, TUint aKey);
-
-    // 2nd phase constructor.
-    void ConstructL();
-
-    // from base class CActive
-
-    void RunL();
-
-    void DoCancel();
-
-public: // Methods
-
-    void ProcessEventsL(JNIEnv *aEnv, jobject aProvider);
-
-private: // Data
-
-    CActiveScheduler* iActiveScheduler; // Owned
-
-    RProperty iProperty; // Property to listen
-    TUid iUid; // Property UID
-    TUint iKey; // Property key
-
-    JNIEnv *iEnv; // JNI environment, not owned
-    jobject iProvider; // Callback object
-    jmethodID iMethod; // Callback method
-
-    TBool iCancelled;
-};
-
-} // installer
-} // java
-
-#endif // PROPERTYLISTENER_H
--- a/javamanager/javainstaller/installer/src.s60/utils/propertyprovider.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-/*
-* Copyright (c) 2010 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 JNI code for Java Installer class FileWriter.
-*
-*/
-
-#include "com_nokia_mj_impl_installer_utils_PropertyProvider.h"
-#include "logger.h"
-#include "propertylistener.h"
-
-// NAMESPACE DECLARATION
-using namespace java::installer;
-using namespace java::util;
-
-/*
- * Class:     com_nokia_mj_impl_installer_utils_PropertyProvider
- * Method:    _subscribe
- * Signature: (II)I
- */
-JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_utils_PropertyProvider__1subscribe
-(JNIEnv */*aEnv*/, jclass, jint aCategory, jint aKey)
-{
-    TUid uid = TUid::Uid(aCategory);
-    TUint key = (TUint)aKey;
-    // Construct PropertyListener.
-    CPropertyListener* propertyListener = 0;
-    TRAPD(err, propertyListener = CPropertyListener::NewL(uid, key));
-    if (KErrNone != err)
-    {
-        ELOG3(EJavaInstaller,
-              "PropertyProvider__1subscribe: creating property listener "
-              "failed, uid: 0x%x, key: 0x%x, err=%d", uid.iUid, key, err);
-        return err;
-    }
-
-    // Return handle to session. Utilize the fact that in Symbian
-    // all pointer addresses are MOD 4 so the last 2 bits are 0
-    // and can be shifted out. This way the returned handle is
-    // always positive whereas Symbian error codes are always negative.
-    return reinterpret_cast<TUint>(propertyListener)>>2;
-}
-
-/*
- * Class:     com_nokia_mj_impl_installer_utils_PropertyProvider
- * Method:    _processEvents
- * Signature: (ILcom/nokia/mj/impl/installer/utils/PropertyProvider;)I
- */
-JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_utils_PropertyProvider__1processEvents
-  (JNIEnv *aEnv, jclass, jint aHandle, jobject aProvider)
-{
-    CPropertyListener* propertyListener =
-        reinterpret_cast<CPropertyListener*>(aHandle<<2);
-    // Start propertyListener for event sending.
-    TRAPD(err, propertyListener->ProcessEventsL(aEnv, aProvider));
-    if (KErrNone != err)
-    {
-        ELOG1(EJavaInstaller,
-              "PropertyProvider__1processEvents: initializing "
-              "propertyListener failed, err=%d", err);
-    }
-    return err;
-}
-
-/*
- * Class:     com_nokia_mj_impl_installer_utils_PropertyProvider
- * Method:    _unsubscribe
- * Signature: (I)I
- */
-JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_utils_PropertyProvider__1unsubscribe
-  (JNIEnv *, jclass, jint aHandle)
-{
-    CPropertyListener* propertyListener =
-        reinterpret_cast<CPropertyListener*>(aHandle<<2);
-
-    // Delete PropertyListener.
-    delete propertyListener;
-    propertyListener = 0;
-
-    return KErrNone;
-}
--- a/javamanager/javainstaller/installer/src.s60/utils/sysutil.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/src.s60/utils/sysutil.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -25,20 +25,13 @@
 #include <sysutil.h>
 #include <driveinfo.h>
 
-#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-#include "hbextendedlocale.h"
-#endif // SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-
 #include "com_nokia_mj_impl_installer_utils_SysUtil.h"
-#include "javajniutils.h"
 #include "logger.h"
 
 #ifndef KPSUidJavaLatestInstallation
 #define KPSUidJavaLatestInstallation 0x10282567
 #endif
 
-using namespace java::util;
-
 /**
  * Helper method for creating HBufC from jstring.
  */
@@ -93,8 +86,8 @@
     TUid repositoryUid = { aRepository };
     CRepository* repository = CRepository::NewLC(repositoryUid);
     RBuf buf;
+    buf.Create(NCentralRepositoryConstants::KMaxUnicodeStringLength);
     CleanupClosePushL(buf);
-    buf.CreateL(NCentralRepositoryConstants::KMaxUnicodeStringLength);
     TInt err = repository->Get(aKey, buf) ;
     if (KErrNone == err)
     {
@@ -727,21 +720,3 @@
     }
     return value;
 }
-
-/*
- * Class:     com_nokia_mj_impl_installer_utils_SysUtil
- * Method:    _isoToLang
- * Signature: ()[Ljava/lang/String;
- */
-JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_installer_utils_SysUtil__1isoToLang
-(JNIEnv *aEnv, jclass, jstring aLocale)
-{
-#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-    return HbExtendedLocale::ISOToSymbianLang(
-        QString::fromStdWString(JniUtils::jstringToWstring(aEnv, aLocale)));
-#else // SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-    (void)aEnv; // suppress compilation warning about unused argument
-    (void)aLocale; // suppress compilation warning about unused argument
-    return -1;
-#endif // SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-}
--- a/javamanager/javainstaller/installer/tsrc/build/build.xml	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/tsrc/build/build.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -1,6 +1,6 @@
 <!--
 #
-# Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2008-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"
@@ -12,7 +12,7 @@
 #
 # Contributors:
 #
-# Description:
+# Description: 
 #
 -->
 
@@ -96,7 +96,7 @@
             tofile="${dist.dir}/${junit.omj.jar.filename}"/>
       <unzip src="${testdata.dir}/jadjarmatcher/inbox_files_1000484b.zip"
 	     dest="${inbox.full.dir}"/>
-      <copy todir="${java.installer.root}" overwrite="true">
+      <copy todir="${java.installer.root}">
         <fileset dir="${testdata.dir}/jsrpluginnotifier/${installer.datacage.dir}"/>
       </copy>
       <copy todir="${java.installer.root}/jiutdata/installerengine">
@@ -108,9 +108,6 @@
       <copy todir="${java.installer.root}/jiutdata/utils">
         <fileset dir="${testdata.dir}/utils"/>
       </copy>
-      <copy todir="${java.installer.root}/jiutdata/utils">
-        <fileset dir="${testdata.dir}/internal"/>
-      </copy>
       <touch file="${java.installer.root}/jiutdata/jadjarmatcher/testapps/HelloWorld1_newer.jad"
              datetime="08/20/2020 4:30 pm"/>
   </target>
--- a/javamanager/javainstaller/installer/tsrc/build/jiut.bat	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/tsrc/build/jiut.bat	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 @rem
-@rem Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 @rem All rights reserved.
 @rem This component and the accompanying materials are made available
 @rem under the terms of "Eclipse Public License v1.0"
@@ -11,14 +11,11 @@
 @rem
 @rem Contributors:
 @rem
-@rem Description:
+@rem Description: 
 @rem
 rem Script for running JavaInstaller unit tests from S60 eshell
-rem Start SifServer before running any tests
-sifserver
-javainstaller uninstallall -silent -forceuninstall
-javainstaller test -mainclass=com.nokia.mj.impl.installer.downloader.NotificationPosterTest
-javainstaller test -mainclass=com.nokia.mj.impl.installer.downloader.DownloaderTest
+rem javainstaller test -mainclass=com.nokia.mj.impl.installer.downloader.NotificationPosterTest
+rem javainstaller test -mainclass=com.nokia.mj.impl.installer.downloader.DownloaderTest
 javainstaller test -mainclass=com.nokia.mj.impl.installer.storagehandler.OtaStatusHandlerTest
 javainstaller test -mainclass=com.nokia.mj.impl.installer.integrityservice.IntegrityServiceTest
 javainstaller test -mainclass=com.nokia.mj.impl.installer.jadjarmatcher.JadJarMatcherTest
@@ -35,7 +32,4 @@
 javainstaller test -mainclass=com.nokia.mj.impl.installer.utils.AttributeReaderTest
 javainstaller test -mainclass=com.nokia.mj.impl.installer.InstallerResultMessageTest
 javainstaller test -mainclass=com.nokia.mj.impl.installer.GetComponentInfoTest
-javainstaller test -mainclass=com.nokia.mj.impl.installer.InstallerEngineTest -param1=run1
-javainstaller test -mainclass=com.nokia.mj.impl.installer.InstallerEngineTest -param1=run2
-javainstaller test -mainclass=com.nokia.mj.impl.installer.InstallerEngineTest -param1=run3
-javainstaller test -mainclass=com.nokia.mj.impl.installer.InstallerEngineTest -param1=run4
+rem javainstaller test -mainclass=com.nokia.mj.impl.installer.InstallerEngineTest
--- a/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/GetComponentInfoTest.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/GetComponentInfoTest.java	Wed Oct 13 14:23:59 2010 +0300
@@ -856,11 +856,15 @@
         try
         {
             String value = aMsg.getStringValue(aName);
-            assertTrue("Unexpected value " + aName + "=" + value, value == null);
+            assertTrue("Unexpected value " + aName + "=" + value, false);
+        }
+        catch (IllegalArgumentException iae)
+        {
+            // Expected exception.
         }
         catch (Throwable t)
         {
-            assertTrue("Unexpected exception for string value " + aName +
+            assertTrue("Incorrect exception for string value " + aName +
                        ": " + t, false);
         }
 
--- a/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/InstallerEngineTest.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/InstallerEngineTest.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-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"
@@ -52,8 +52,6 @@
     {
         TestSuite suite = new TestSuite(this.getClass().getName());
 
-        String runIndex = System.getProperty("com.nokia.mj.impl.installer.test.param1");
-
         if (Platform.isLinux())
         {
             // In S60 this would be interactive test, so disable it there.
@@ -66,9 +64,6 @@
             }));
         }
 
-        if (runIndex == null || runIndex.equalsIgnoreCase("run1"))
-        {
-        // Run 1
         suite.addTest(new InstallerEngineTest("testMidletMessageOk", new TestMethod()
         {
             public void run(TestCase tc)
@@ -108,11 +103,7 @@
                 ((InstallerEngineTest)tc).test3AppsOk();
             }
         }));
-        }
 
-        if (runIndex == null || runIndex.equalsIgnoreCase("run2"))
-        {
-        // Run 2
         suite.addTest(new InstallerEngineTest("testDownloadJadOk", new TestMethod()
         {
             public void run(TestCase tc)
@@ -224,11 +215,7 @@
                 ((InstallerEngineTest)tc).testNoJavaBinRoot();
             }
         }));
-        }
 
-        if (runIndex == null || runIndex.equalsIgnoreCase("run3"))
-        {
-        // Run 3
         suite.addTest(new InstallerEngineTest("testBlockUninstall", new TestMethod()
         {
             public void run(TestCase tc)
@@ -252,11 +239,7 @@
                 ((InstallerEngineTest)tc).testApplicationInfo();
             }
         }));
-        }
 
-        if (runIndex == null || runIndex.equalsIgnoreCase("run4"))
-        {
-        // Run 4
         suite.addTest(new InstallerEngineTest("testInstallOptions", new TestMethod()
         {
             public void run(TestCase tc)
@@ -272,7 +255,6 @@
                 ((InstallerEngineTest)tc).testInstallAuthAndBig();
             }
         }));
-        }
 
         com.nokia.mj.impl.utils.OmjTestRunner.run(suite);
     }
@@ -328,15 +310,6 @@
     }
 
     /**
-     */
-    public String getTestServer()
-    {
-        String server = System.getProperty("com.nokia.mj.impl.installer.test.server");
-        assertNotNull("-server=<address>:<port> argument required.", server);
-        return server;
-    }
-
-    /**
      * Makes installation, update and uninstallation for given application.
      * Does the following steps:
      * install with cancellation and check that app is not installed,
@@ -437,12 +410,12 @@
         assertNoIsDir();
 
         // List.
-        //Log.logOut("InstallerEngineTest.doInstallUninstall: list -v");
-        //result = Installer.mainWithResult(new String[] { "list", "-v" });
-        //assertResult(result, Installer.ERR_NONE);
-        //Log.logOut("InstallerEngineTest.doInstallUninstall: list -otastatus");
-        //result = Installer.mainWithResult(new String[] { "list", "-otastatus" });
-        //assertResult(result, Installer.ERR_NONE);
+        Log.logOut("InstallerEngineTest.doInstallUninstall: list -v");
+        result = Installer.mainWithResult(new String[] { "list", "-v" });
+        assertResult(result, Installer.ERR_NONE);
+        Log.logOut("InstallerEngineTest.doInstallUninstall: list -otastatus");
+        result = Installer.mainWithResult(new String[] { "list", "-otastatus" });
+        assertResult(result, Installer.ERR_NONE);
 
         // Update with cancellation.
         Log.logOut("InstallerEngineTest.doInstallUninstall: update with cancellation " + aFilename);
@@ -597,38 +570,38 @@
     public void testDownloadJadOk()
     {
         Log.logOut("InstallerEngineTest.testDownloadJadOk begins");
-        SuiteInfo suite = new SuiteInfo("HelloWorld", "Nokia");
-        doInstallUninstall(suite, "http://" + getTestServer() + "/installertest/HelloWorld_ota.jad", true, iDefaultOptions);
+        SuiteInfo suite = new SuiteInfo("JBenchmark2", "Kishonti LP");
+        doInstallUninstall(suite, "http://195.134.231.83:7070/omjserver/resources/omj/T00000900_JBenchmark2_gcf.jsp", true, iDefaultOptions);
     }
 
     public void testDownloadJarOk()
     {
         Log.logOut("InstallerEngineTest.testDownloadJarOk begins");
-        SuiteInfo suite = new SuiteInfo("HelloWorld", "Nokia");
-        doInstallUninstall(suite, "http://" + getTestServer() + "/installertest/HelloWorld.jar", false, iDefaultOptions);
+        SuiteInfo suite = new SuiteInfo("JBenchmark2", "Kishonti LP");
+        doInstallUninstall(suite, "http://195.134.231.83:7070/omjserver/resources/omj/JBenchmark2.jar", false, iDefaultOptions);
     }
 
     public void testDownloadJadHttpRedirectOk()
     {
         Log.logOut("InstallerEngineTest.testDownloadJadHttpRedirectOk begins");
-        SuiteInfo suite = new SuiteInfo("HelloWorld_redirect", "Nokia");
-        doInstallUninstall(suite, "http://" + getTestServer() + "/installertest/redirect?name=HelloWorld_redirect.jad&count=5", true, iDefaultOptions);
+        SuiteInfo suite = new SuiteInfo("JBenchmark2", "Kishonti LP");
+        doInstallUninstall(suite, "http://195.134.231.83:7070/RedirectServlet/redirect?name=JBenchmark2.jad&count=5", true, iDefaultOptions);
     }
 
     public void testDownloadJarHttpRedirectOk()
     {
         Log.logOut("InstallerEngineTest.testDownloadJarHttpRedirectOk begins");
-        SuiteInfo suite = new SuiteInfo("HelloWorld_redirect", "Nokia");
-        doInstallUninstall(suite, "http://" + getTestServer() + "/installertest/redirect?name=HelloWorld_redirect.jar", false, iDefaultOptions);
+        SuiteInfo suite = new SuiteInfo("JBenchmark2", "Kishonti LP");
+        doInstallUninstall(suite, "http://195.134.231.83:7070/RedirectServlet/redirect?name=JBenchmark2.jar", false, iDefaultOptions);
     }
 
     public void testDownloadJadHttpAuthOk()
     {
         Log.logOut("InstallerEngineTest.testDownloadJadHttpAuthOk begins");
-        SuiteInfo suite = new SuiteInfo("HelloWorld_http_auth", "Nokia");
+        SuiteInfo suite = new SuiteInfo("DS_Snow_http_auth", "DS_Effects");
         iDefaultOptions.addElement("-username=guest");
         iDefaultOptions.addElement("-password=guest");
-        doInstallUninstall(suite, "http://" + getTestServer() + "/installertest/httpauth/HelloWorld_http_auth.jad", true, iDefaultOptions);
+        doInstallUninstall(suite, "http://195.134.231.83:7070/httpauth/DS_Snow_http_auth.jad", true, iDefaultOptions);
     }
 
     public void testDownloadJadHttpAuthNok()
@@ -638,7 +611,7 @@
         {
             "install",
             "-silent",
-            "-jad=http://" + getTestServer() + "/installertest/httpauth/HelloWorld_http_auth.jad",
+            "-jad=http://195.134.231.83:7070/httpauth/DS_Snow_http_auth.jad",
         };
         int result = Installer.mainWithResult(args);
         // Check result code.
@@ -649,7 +622,7 @@
                    iItu.isExceptionReason
                    (Installer.getExecuteException(),
                     InstallerErrorMessage.INST_CANCEL,
-                    InstallerDetailedErrorMessage.INST_CANCEL,
+                    InstallerDetailedErrorMessage.NO_MSG,
                     OtaStatusCode.USER_CANCELLED));
         assertTrue("installed app uid should not exist", Installer.iInstalledApps.length == 0);
     }
@@ -661,7 +634,7 @@
         {
             "install",
             "-silent",
-            "-jad=http://" + getTestServer() + "/installertest/redirect?name=HelloWorld_redirect.jad&count=6",
+            "-jad=http://195.134.231.83:7070/RedirectServlet/redirect?name=JBenchmark2.jad&count=6",
         };
         int result = Installer.mainWithResult(args);
         // Check result code.
@@ -704,7 +677,7 @@
         {
             "install",
             "-silent",
-            "-jad=http://" + getTestServer() + "/installertest/HelloWorld_8mb.jad",
+            "-jad=http://195.134.231.83:7070/omjserver/resources/omj/T00000900_JBenchmark2_8mb_gcf.jsp",
         };
         Log.log("InstallerEngineTest.testDownloadJadCancel: installation starts");
         int result = Installer.mainWithResult(args);
@@ -717,7 +690,7 @@
                    iItu.isExceptionReason
                    (Installer.getExecuteException(),
                     InstallerErrorMessage.INST_CANCEL,
-                    InstallerDetailedErrorMessage.INST_CANCEL,
+                    InstallerDetailedErrorMessage.NO_MSG,
                     OtaStatusCode.USER_CANCELLED));
         assertTrue("installed app uid should not exist", Installer.iInstalledApps.length == 0);
         Log.log("InstallerEngineTest.testDownloadJadCancel: end");
@@ -1012,7 +985,7 @@
         callInstallerOk(new String[] { "list", "-systemproperties" });
         callInstallerOk(new String[] { "launch", "-nouid" });
         callInstallerOk(new String[] { "launch", "-uid=invaliduid" });
-        callInstallerOk(new String[] { "uninstallall", "-silent" });
+        callInstallerOk(new String[] { "uninstallall" });
         callInstallerOk(new String[] { "unregister" });
         callInstallerOk(new String[] { "test", "-nomainclass" });
     }
@@ -1133,10 +1106,10 @@
     {
         Log.logOut("InstallerEngineTest.testInstallAuthAndBig begins");
         // Do first installation with doInstallUninstall helper
-        SuiteInfo suite = new SuiteInfo("HelloWorld_http_auth", "Nokia");
+        SuiteInfo suite = new SuiteInfo("DS_Snow_http_auth", "DS_Effects");
         iDefaultOptions.addElement("-username=guest");
         iDefaultOptions.addElement("-password=guest");
-        doInstallUninstall(suite, "http://" + getTestServer() + "/installertest/httpauth/HelloWorld_http_auth.jad", true, iDefaultOptions);
+        doInstallUninstall(suite, "http://195.134.231.83:7070/httpauth/DS_Snow_http_auth.jad", true, iDefaultOptions);
 
         // Then start installation which downloads a large file.
         Log.log("InstallerEngineTest.testInstallAuthAndBig begin to install big app");
@@ -1144,7 +1117,7 @@
         {
             "install",
             "-silent",
-            "-jad=http://" + getTestServer() + "/installertest/HelloWorld_8mb.jad",
+            "-jad=http://195.134.231.83:7070/omjserver/resources/omj/T00000900_JBenchmark2_8mb_gcf.jsp",
         };
         int result = Installer.mainWithResult(args);
         // Check result code.
--- a/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/applicationregistrator/ApplicationRegistratorTest.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/applicationregistrator/ApplicationRegistratorTest.java	Wed Oct 13 14:23:59 2010 +0300
@@ -374,32 +374,12 @@
 
             appReg.startSession();
             groupName = appReg.getGroupName(uid);
-            if (SifRegistrator.getSifMode() > 0)
-            {
-                // When USIF is in use ApplicationRegistrator should not
-                // have registered anything.
-                assertTrue(
-                    "The group name was not empty, it was " + groupName,
-                    "".equals(groupName));
-            }
-            else
-            {
-                assertTrue(
-                    "The group name was not VeryVeryLongGrou, it was " + groupName,
-                    "VeryVeryLongGrou".equals(groupName));
-            }
+            assertTrue(
+                "The group name was not VeryVeryLongGrou, it was " + groupName,
+                "VeryVeryLongGrou".equals(groupName));
 
             uidInUse = appReg.uidInUse(uid);
-            if (SifRegistrator.getSifMode() > 0)
-            {
-                // When USIF is in use ApplicationRegistrator should not
-                // have registered anything.
-                assertTrue("uidInUse returned true value", false == uidInUse);
-            }
-            else
-            {
-                assertTrue("uidInUse returned false value", true == uidInUse);
-            }
+            assertTrue("uidInUse returned false value", true == uidInUse);
 
             appReg.closeSession();
         }
@@ -602,16 +582,7 @@
                 "".equals(groupName));
 
             uidInUse = appReg.uidInUse(uid);
-            if (SifRegistrator.getSifMode() > 0)
-            {
-                // When USIF is in use ApplicationRegistrator should not
-                // have registered anything.
-                assertTrue("uidInUse returned true value", false == uidInUse);
-            }
-            else
-            {
-                assertTrue("uidInUse returned false value", true == uidInUse);
-            }
+            assertTrue("uidInUse returned false value", true == uidInUse);
 
             appReg.closeSession();
         }
@@ -732,32 +703,12 @@
 
             appReg.startSession();
             groupName = appReg.getGroupName(uid);
-            if (SifRegistrator.getSifMode() > 0)
-            {
-                // When USIF is in use ApplicationRegistrator should not
-                // have registered anything.
-                assertTrue(
-                    "The group name was not empty, it was " + groupName,
-                    "".equals(groupName));
-            }
-            else
-            {
-                assertTrue(
-                    "The group name was not Suite, it was " + groupName,
-                    "Suite".equals(groupName));
-            }
+            assertTrue(
+                "The group name was not Suite, it was " + groupName,
+                "Suite".equals(groupName));
 
             uidInUse = appReg.uidInUse(uid);
-            if (SifRegistrator.getSifMode() > 0)
-            {
-                // When USIF is in use ApplicationRegistrator should not
-                // have registered anything.
-                assertTrue("uidInUse returned true value", false == uidInUse);
-            }
-            else
-            {
-                assertTrue("uidInUse returned false value", true == uidInUse);
-            }
+            assertTrue("uidInUse returned false value", true == uidInUse);
 
             appReg.closeSession();
         }
--- a/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/applicationregistrator/SifRegistratorTest.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/applicationregistrator/SifRegistratorTest.java	Wed Oct 13 14:23:59 2010 +0300
@@ -203,34 +203,21 @@
         {
             SuiteInfo si = getTestSuite();
             ComponentId cid = getComponentId(si.getGlobalId());
-
-            // Check for USIF Phase 2 registration.
-            Uid uid = sifReg.getUid(cid.getId());
-            assertTrue("Suite uid " + si.getUid() + " does not match" +
-                       " to uid " + uid + " from SCR",
-                       si.getUid().equals(uid));
-
-            Uid appUid = PlatformUid.createUid("[e0001001]");
-            sifReg.startSession(false);
-            ComponentId cidForApp = sifReg.getComponentId(appUid);
-            sifReg.closeSession();
-            assertTrue("Null component id from SCR for application uid " +
-                       appUid, cidForApp != null);
-            assertTrue("Component id " + cid + " does not match" +
-                       " to uid " + cidForApp + " from SCR",
-                       cid.getId() == cidForApp.getId());
-
-            // Check for USIF Phase 1 registration.
-            //Vector apps = si.getApplications();
-            //for (int i = 0; i < apps.size(); i++)
-            //{
-            //    cid = getComponentId(si.getGlobalId(i));
-            //    uid = sifReg.getUid(cid.getId());
-            //    assertTrue("Application uid " +
-            //               ((ApplicationInfo)apps.elementAt(i)).getUid() +
-            //               " does not match to uid " + uid + " from SCR",
-            //               ((ApplicationInfo)apps.elementAt(i)).getUid().equals(uid));
-            //}
+            Uid uid = null;
+            //Uid uid = sifReg.getUid(cid.getId());
+            //assertTrue("Suite uid " + si.getUid() + " does not match" +
+            //           " to uid " + uid + " from SCR",
+            //           si.getUid().equals(uid));
+            Vector apps = si.getApplications();
+            for (int i = 0; i < apps.size(); i++)
+            {
+                cid = getComponentId(si.getGlobalId(i));
+                uid = sifReg.getUid(cid.getId());
+                assertTrue("Application uid " +
+                           ((ApplicationInfo)apps.elementAt(i)).getUid() +
+                           " does not match to uid " + uid + " from SCR",
+                           ((ApplicationInfo)apps.elementAt(i)).getUid().equals(uid));
+            }
             sifReg.closeSession();
         }
         catch (InstallerException ie)
@@ -337,18 +324,16 @@
     private void assertSuiteExists(SuiteInfo aSuite, boolean aExists)
     {
         String not = (aExists? " not": "");
-        // Check for USIF Phase 2 registration.
         ComponentId cid = getComponentId(aSuite.getGlobalId());
-        assertTrue("Suite " + aSuite.getGlobalId() + not +
-                   " found from SCR", (aExists? cid != null: cid == null));
-        // Check for USIF Phase 1 registration.
-        //Vector apps = aSuite.getApplications();
-        //for (int i = 0; i < apps.size(); i++)
-        //{
-        //    cid = getComponentId(aSuite.getGlobalId(i));
-        //    assertTrue("Application " + aSuite.getGlobalId(i) + not +
-        //               " found from SCR", (aExists? cid != null: cid == null));
-        //}
+        //assertTrue("Suite " + aSuite.getGlobalId() + not +
+        //           " found from SCR", (aExists? cid != null: cid == null));
+        Vector apps = aSuite.getApplications();
+        for (int i = 0; i < apps.size(); i++)
+        {
+            cid = getComponentId(aSuite.getGlobalId(i));
+            assertTrue("Application " + aSuite.getGlobalId(i) + not +
+                       " found from SCR", (aExists? cid != null: cid == null));
+        }
     }
 
     private void logSuite(SuiteInfo aSuite)
--- a/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/customisationproperties/CustomisationPropertiesTest.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/customisationproperties/CustomisationPropertiesTest.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -212,20 +212,18 @@
 
         String drive = (String)value.firstElement();
         assertTrue("PossibleInstallationDrives is null", (drive != null));
-        assertTrue("First PossibleInstallationDrive is not C:, it is " + drive, drive.equals("C:"));
+        assertTrue("First PossibleInstallationDrive is not C:", drive.equals("C:"));
         // second possible drive
         drive = (String)value.get(1);
         assertTrue("PossibleInstallationDrives is null", (drive != null));
-        //assertTrue("Second PossibleInstallationDrive is not E:, it is " + drive, drive.equals("E:"));
-        assertTrue("Second PossibleInstallationDrive is not T:, it is " + drive, drive.equals("T:"));
+        assertTrue("Second PossibleInstallationDrive is not E:", drive.equals("E:"));
 
         value = cust.getIntegerProperty(CustomisationProperties.PossibleInstallationDrives);
         assertTrue("PossibleInstallationDrives value is null", (value != null));
         assertTrue("PossibleInstallationDrives value does not contain any integers", (value.size() > 0));
 
         Integer idrive = (Integer)value.get(1);
-        //assertTrue("Second PossibleInstallationDrive is not E:, it is " + idrive, idrive.intValue() == 4);
-        assertTrue("Second PossibleInstallationDrive is not T:, it is " + idrive, idrive.intValue() == 19);
+        assertTrue("Second PossibleInstallationDrive is E:", idrive.intValue() == 4);
     }
 
     public void testTypesOfPossibleInstallationDrives()
--- a/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/downloader/DownloaderTest.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/downloader/DownloaderTest.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -37,8 +37,8 @@
  */
 public class DownloaderTest extends TestCase implements InstallerMain
 {
-    private static final String TEST_URL = "/installertest/HelloWorld.jar";
-    private static final int TEST_URL_SIZE = 1511; // test data file size
+    private static final String TEST_URL = "http://195.134.231.83:7070/java-server/resources/DS_Snow.jar";
+    private static final int TEST_URL_SIZE = 10241; // test data file size
 
     // Begin j2meunit test framework setup
 
@@ -172,15 +172,10 @@
     public void testBasicDownload(Downloader downloader,
                                   TestDlListener listener)
     {
-        String server = System.getProperty(
-                            "com.nokia.mj.impl.installer.test.server");
-        assertNotNull("-server=<address>:<port> argument required.", server);
-
         try
         {
             String filename = "test.dat";
-            DownloadInfo dlInfo = new DownloadInfo("http://" + server
-                                                   + TEST_URL, filename);
+            DownloadInfo dlInfo = new DownloadInfo(TEST_URL, filename);
             downloader.start(dlInfo);
             downloader.waitForCompletion();
             assertTrue("Result DlInfo is null",
--- a/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/downloader/NotificationPosterTest.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/downloader/NotificationPosterTest.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -36,7 +36,7 @@
  */
 public class NotificationPosterTest extends TestCase implements InstallerMain
 {
-    private static final String TEST_URL = "/installertest/notify?tID=900_success";
+    private static final String TEST_URL = "http://195.134.231.83:7070/java-server/getresult.jsp?phone=CE0CBA106ADB77A9298A143E5136CD2B&tID=900_success";
 
     // Begin j2meunit test framework setup
 
@@ -361,18 +361,13 @@
         testNotifyPendingFailureLimit(poster);
     }
 
-    private OtaStatusNotification createNotification(int aIndex)
+    private static OtaStatusNotification createNotification(int aIndex)
     {
-        String server = System.getProperty(
-                            "com.nokia.mj.impl.installer.test.server");
-        assertNotNull("-server=<address>:<port> argument required.", server);
-
         OtaStatusNotification notification = new OtaStatusNotification
         (PlatformUid.createUid(Integer.toString(aIndex)),
          System.currentTimeMillis(),
          OtaStatusNotification.TYPE_INSTALL, OtaStatusCode.SUCCESS,
-         "http://" + server + TEST_URL + aIndex, System.currentTimeMillis(),
-         0);
+         TEST_URL + aIndex, System.currentTimeMillis(), 0);
         return notification;
     }
 
--- a/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/storagehandler/StorageHandlerTest.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/storagehandler/StorageHandlerTest.java	Wed Oct 13 14:23:59 2010 +0300
@@ -448,8 +448,7 @@
         {
             Uid[] uids = iStorageHandler.getSuiteUids();
             assertTrue("expected uids to be not null", uids != null);
-            assertTrue("expected uids.length (" + uids.length +
-                       ") to be suites.length (" + suites.length + ")",
+            assertTrue("expected uids.length to be suites.length",
                        uids.length == suites.length);
         }
         catch (Exception ex)
--- a/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/utils/AttributeValidatorTest.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/utils/AttributeValidatorTest.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -183,16 +183,16 @@
         Hashtable tbl = getTestTbl();
         String attrName = "MIDlet-Version";
         assertValidValue(tbl, attrName, "1");
-        assertValidValue(tbl, attrName, "1.");
+        assertValidValue(tbl, attrName, "1."); // OPEN: Is this valid? If we are lenient it is.
         assertValidValue(tbl, attrName, "1.1");
-        assertValidValue(tbl, attrName, "1.1.");
+        assertValidValue(tbl, attrName, "1.1."); // OPEN: Is this valid? If we are lenient it is.
         assertValidValue(tbl, attrName, "1.1.1");
-        assertValidValue(tbl, attrName, "1.1:1"); // invalid chars are ignored
         assertInvalidValue(tbl, attrName, ""); // invalid, attr is mandatory
         assertInvalidValue(tbl, attrName, " "); // invalid, attr is mandatory
+        assertInvalidValue(tbl, attrName, "1.1:1"); // invalid char
         assertInvalidValue(tbl, attrName, "1.1.1."); // invalid, only three parts allowed
         assertInvalidValue(tbl, attrName, "1.1.1.1"); // invalid, only three parts allowed
-        assertInvalidValue(tbl, attrName, "abc"); // invalid, version is mandatory
+        assertInvalidValue(tbl, attrName, "abc"); // invalid chars
     }
 
     public void testRuntimeExecutionEnvironment()
--- a/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/utils/SysUtilTest.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/tsrc/javasrc/com/nokia/mj/impl/installer/utils/SysUtilTest.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-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"
@@ -33,8 +33,6 @@
  */
 public class SysUtilTest extends TestCase implements InstallerMain
 {
-    private int iPropertyValue = 0; // Used in testPropertyListener test case.
-
     // Begin j2meunit test framework setup
 
     public void installerMain(String[] args)
@@ -169,49 +167,6 @@
             }
         }));
 
-        if (Platform.isS60())
-        {
-        suite.addTest(new SysUtilTest("testPropertyListener", new TestMethod()
-        {
-            public void run(TestCase tc)
-            {
-                ((SysUtilTest)tc).testPropertyListener();
-            }
-        }));
-
-        suite.addTest(new SysUtilTest("testGetProcessState", new TestMethod()
-        {
-            public void run(TestCase tc)
-            {
-                ((SysUtilTest)tc).testGetProcessState();
-            }
-        }));
-
-        suite.addTest(new SysUtilTest("testDriveGetters", new TestMethod()
-        {
-            public void run(TestCase tc)
-            {
-                ((SysUtilTest)tc).testDriveGetters();
-            }
-        }));
-
-        suite.addTest(new SysUtilTest("testGetScreenSize", new TestMethod()
-        {
-            public void run(TestCase tc)
-            {
-                ((SysUtilTest)tc).testGetScreenSize();
-            }
-        }));
-
-        suite.addTest(new SysUtilTest("testIsoToLang", new TestMethod()
-        {
-            public void run(TestCase tc)
-            {
-                ((SysUtilTest)tc).testIsoToLang();
-            }
-        }));
-        }
-
         com.nokia.mj.impl.utils.OmjTestRunner.run(suite);
     }
 
@@ -243,11 +198,11 @@
     {
         try
         {
-            // Test PS keys defined in hwrmpowerstatesdkpskey.h
-            Uid uid = PlatformUid.createUid("0x10205041");  // KPSUidHWRMPowerState
-            int key = 0x00000003; // KHWRMChargingStatus
+            // Test PS keys defined in ScreensaverInternalPSKeys.h
+            Uid uid = PlatformUid.createUid("0x101F8771");  // KPSUidScreenSaver
+            int key = 0x00000001; // KScreenSaverPreviewMode
             int value = SysUtil.getPropertyValue(uid, key);
-            assertTrue("KHWRMChargingStatus(!=0): " + value, value == 0);
+            assertTrue("KScreenSaverPreviewMode(!=0): " + value, value == 0);
         }
         catch (InstallerException ie)
         {
@@ -260,8 +215,8 @@
     {
         try
         {
-            // Test PS keys defined in hwrmpowerstatesdkpskey.h
-            Uid uid = PlatformUid.createUid("0x10205041");  // KPSUidHWRMPowerState
+            // Test PS keys defined in ScreensaverInternalPSKeys.h
+            Uid uid = PlatformUid.createUid("0x101F8771");  // KPSUidScreenSaver
             int key = 0x00000010; // Undefined key
             int value = SysUtil.getPropertyValue(uid, key);
             assertTrue("Getting undefined property value did not fail", false);
@@ -276,12 +231,13 @@
     {
         try
         {
-            Uid uid = SysUtil.PROP_CATEGORY_SYSTEM;
-            long key = SysUtil.PROP_KEY_JAVA_LATEST_INSTALLATION_PROGRESS;
+            // Test PS keys defined in ScreensaverInternalPSKeys.h
+            Uid uid = PlatformUid.createUid("0x101F8771");  // KPSUidScreenSaver
+            int key = 0x00000001; // KScreenSaverPreviewMode
+            // Set screensaver preview mode on (stays on for 10 secs).
             SysUtil.setPropertyValue(uid, key, 1);
             int value = SysUtil.getPropertyValue(uid, key);
-            assertTrue("PROP_KEY_JAVA_LATEST_INSTALLATION_PROGRESS(!=1): " +
-                       value, value == 1);
+            assertTrue("KScreenSaverPreviewMode(!=1): " + value, value == 1);
         }
         catch (InstallerException ie)
         {
@@ -294,8 +250,9 @@
     {
         try
         {
-            Uid uid = SysUtil.PROP_CATEGORY_SYSTEM;
-            int key = 0x00000100; // Undefined key
+            // Test PS keys defined in ScreensaverInternalPSKeys.h
+            Uid uid = PlatformUid.createUid("0x101F8771");  // KPSUidScreenSaver
+            int key = 0x00000010; // Undefined key
             SysUtil.setPropertyValue(uid, key, 1);
             assertTrue("Setting undefined property value did not fail", false);
         }
@@ -382,12 +339,11 @@
     {
         try
         {
-            // Test CenRep keys defined in Java security.
-            Uid uid = PlatformUid.createUid("0x2001B289"); // KJavaSecurity
-            long key = 0x00000004; // KJavaSecurity/KWarningsMode
+            // Test CenRep keys defined in ScreensaverInternalCRKeys.h
+            Uid uid = PlatformUid.createUid("0x101F8770"); // KCRUidScreenSaver
+            long key = 0x00000004; // KScreenSaverInvertedColors
             int value = SysUtil.getRepositoryValue(uid, key);
-            assertTrue("KJavaSecurity/KWarningsMode(!=2): " + value,
-                       value == 2);
+            assertTrue("KScreenSaverInvertedColors(!=0): " + value, value == 0);
         }
         catch (InstallerException ie)
         {
@@ -419,8 +375,8 @@
             Uid uid = SysUtil.REPO_ID_JAVA_INST_VARIATION;
             long key = SysUtil.REPO_KEY_JAVA_INST_SHELL_FOLDER_VALUE;
             String value = SysUtil.getRepositoryStringValue(uid, key);
-            assertTrue("Unexpected value: " + value, "Games,Applications".equals(value));
-            //assertTrue("Unexpected value: " + value, "".equals(value));
+            //assertTrue("Unexpected value: " + value, "Games,Applications".equals(value));
+            assertTrue("Unexpected value: " + value, "".equals(value));
         }
         catch (InstallerException ie)
         {
@@ -617,126 +573,4 @@
             // OK, expected exception.
         }
     }
-
-    public void testPropertyListener()
-    {
-        final int category = 0x101f75b6;
-        final int key = 0x20019546;
-        final int value = 15;
-        final Object synchObject = this;
-        PropertyListener listener = new PropertyListener()
-        {
-            public void valueChanged(int aCategory, int aKey, int aValue)
-            {
-                try
-                {
-                    if (aValue == 0)
-                    {
-                        // Ignore the first event which is sent when
-                        // subscription is made.
-                        return;
-                    }
-                    synchronized (synchObject)
-                    {
-                        iPropertyValue = aValue;
-                        Log.log("PropertyListener.valueChanged: " + aValue +
-                                " (" + aCategory + ", " + aKey + ")");
-                        if (aCategory != category)
-                        {
-                            Log.logError("PropertyListener.valueChanged: " +
-                                         "invalid category " + aCategory);
-                        }
-                        if (aKey != key)
-                        {
-                            Log.logError("PropertyListener.valueChanged: " +
-                                         "invalid key " + aKey);
-                        }
-                        synchObject.notify();
-                    }
-                }
-                catch (Throwable t)
-                {
-                    Log.logError("PropertyListener.valueChanged exception", t);
-                }
-            }
-        };
-        try
-        {
-            iPropertyValue = 0;
-            SysUtil.setPropertyValue(
-                PlatformUid.createUid(category), key, iPropertyValue);
-            PropertyProvider provider = new PropertyProvider();
-            provider.subscribe(category, key, listener);
-            SysUtil.setPropertyValue(
-                PlatformUid.createUid(category), key, value);
-            try
-            {
-                synchronized (synchObject)
-                {
-                    if (iPropertyValue == 0)
-                    {
-                        synchObject.wait(2000);
-                    }
-                }
-            }
-            catch (InterruptedException ie)
-            {
-            }
-            provider.unsubscribe();
-            assertTrue("Unexpected property value after test: " +
-                       iPropertyValue, iPropertyValue == value);
-        }
-        catch (Throwable t)
-        {
-            Log.logError("testPropertyListener exception", t);
-            assertTrue("Unexpected exception " + t, false);
-        }
-    }
-
-    public void testGetProcessState()
-    {
-        int state = SysUtil.getProcessState(PlatformUid.createUid("[102033e6]"));
-        assertTrue("installer process state is " + state +
-                   ", not " + SysUtil.PROC_STATE_ALIVE,
-                   SysUtil.PROC_STATE_ALIVE == state);
-        state = SysUtil.getProcessState(PlatformUid.createUid("[e0001001]"));
-        assertTrue("nonexisting process state is " + state + ", not 0",
-                   0 == state);
-    }
-
-    public void testDriveGetters()
-    {
-        int defMem = SysUtil.getDefaultPhoneMemory();
-        int defMassStorage = SysUtil.getDefaultMassStorage();
-        Log.log("testDriveGetter: defaultPhoneMemory = " + defMem);
-        Log.log("testDriveGetter: defaultMassStorage = " + defMassStorage);
-    }
-
-    public void testGetScreenSize()
-    {
-        int screenWidth = SysUtil.getScreenWidth();
-        int screenHeight = SysUtil.getScreenHeight();
-        Log.log("testGetScreenSize: screenWidth = " + screenWidth);
-        Log.log("testGetScreenSize: screenHeight = " + screenHeight);
-        assertTrue("screenWidth <= 0", screenWidth > 0);
-        assertTrue("screenHeight <= 0", screenHeight > 0);
-    }
-
-    public void testIsoToLang()
-    {
-        testIsoToLang("unknown", -1); // unknown locale is indicated with -1
-        testIsoToLang("fi", 9); // ELangFinnish, Finnish
-        testIsoToLang("fi_FI", 9); // ELangFinnish, Finnish
-        testIsoToLang("sv", 6); // ELangSwedish, Swedish
-        testIsoToLang("sv_FI", 85); // ELangFinlandSwedish, Finland Swedish
-        testIsoToLang("en", 1); // ELangEnglish, UK English
-        testIsoToLang("en_US", 10); // ELangAmerican, American
-        testIsoToLang("en_AU", 20); // ELangAustralian, Australian English
-    }
-
-    private void testIsoToLang(String aLocale, int aLang)
-    {
-        assertTrue("SysUtil.isoToLang " + aLocale + " != " + aLang,
-                   SysUtil.isoToLang(aLocale) == aLang);
-    }
 }
--- a/javamanager/javainstaller/installer/tsrc/testdata/installerengine/HelloWorld_3_midlets.jad	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installer/tsrc/testdata/installerengine/HelloWorld_3_midlets.jad	Wed Oct 13 14:23:59 2010 +0300
@@ -9,8 +9,8 @@
 Nokia-MIDlet-UID-1: 0xefef0001
 Nokia-MIDlet-UID-3: 0xefef0003
 Nokia-MIDlet-On-Screen-Keypad: no
-Nokia-MIDlet-auto-start: true
-Nokia-MIDlet-auto-start-2: false
+Nokia-MIDlet-Auto-Start-1: true
+Nokia-MIDlet-Auto-Start-2: false
 Nokia-MIDlet-Auto-Start-3: once
 MIDlet-Install-Notify: http://195.134.231.83:7070/java-server/getresult.jsp?phone=CE00C90A2EF00F07C210A061BD15A4EC&tID=900_success
 MIDlet-Delete-Notify: http://195.134.231.83:7070/java-server/getresult.jsp?phone=CE00C90A2EF00F07C210A061BD15A4EC&tID=912_deletion_notification
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/00000019.jar has changed
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/00000046.jar has changed
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/00000058.jar has changed
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/00000070.jar has changed
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/00000090.jar has changed
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/00000150.jar has changed
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/00000172.jar has changed
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/00000175.jar has changed
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/00000182.jar has changed
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/00000189.jar has changed
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/00000250.jar has changed
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/00000305.jar has changed
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/00000390.jar has changed
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/00000500.jar has changed
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/00000582.jar has changed
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/00000618.jar has changed
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/00000703.jar has changed
--- a/javamanager/javainstaller/installer/tsrc/testdata/utils/3DSpaceShooter.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-
-MIDlet-1: 3DSpaceShooter, /icon.png, Sapce3D
-
-
-MIDlet-Jar-Size: 240229
-    
-	
-MIDlet-Jar-URL: 3DSpaceShooter.jar
-MIDlet-Name: 3DSpaceShooter
-MIDlet-Vendor: Innovative Ideas From Outer Space Ltd.
-
-
-
-
-	                 
-MIDlet-Version: 1.0.4
-Nokia-MIDlet-Original-Display-Size: 176,208
-Nokia-MIDlet-On-Screen-Keypad:	 	navigationkeys	    	
\ No newline at end of file
--- a/javamanager/javainstaller/installer/tsrc/testdata/utils/800_x_N97_64GB_fr_speed_v5_32_01.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-RepositoryContentType: text/plain
-UserAgent: NokiaN95/J2ME-IMPS
-ShowStatusTextInCL: 0
-SpaceBetweenFriendsNameAndHisIcon: 3
-ShowDomain: 0
-MIDlet-Icon: /img/App.png
-NormalPollRate: 12000
-TCPCIREnabled: 1
-Images: http://download.ko.mysite.fr/koi/j2me/enc/1111/
-SpecialKeys: -12
-Host: koi.ko.mysite.fr
-TCPPingRate: 1560000
-EnableCommunitySelector: 1
-BackgoundImgPos: 0
-ScrollBarWidth: 5
-MIDlet-Vendor: Vodafone
-BillingURL: http://koi.ko.mysite.fr/koi/sq.dll/awo_buy
-UseTemplate: 1
-MaxFriendsNumber: 150
-StopTCPCIR: 1
-MIDlet-Version: 4.5.27
-SelectCommand: 1
-KeepAlive: 1500000
-SMSCIREnabled: 1
-MultiTrans: 5
-DefaultDomain: gmaeam1.com
-EnableBackgroundImage: 0
-MicroEdition-Profile: MIDP-2.0
-TermsAndConditions: 1
-SeamlessLogin: 0
-GlobalMsgLength: 600
-MIDlet-Push-1: sms://:3716, ui.Main, *
-RegisterConnection: 1
-ViewType: 0
-HTTPCIREnabled: 1
-IsTabFontBold: 1
-AboutNaming: PrerryLake_h_N97_fr_speed_v4_5_27
-InitMessage: 1
-MicroEdition-Configuration: CLDC-1.0
-MIDlet-Jar-URL: 800€_x_N97_64GB_fr_speed_v5_32_01.jar
-AnimationRate: 300
-Multitask: 0
-EnableSemitransparentHighlight: 0
-CheckContentType: 1
-MaxMsgNumber: 30
-Port: 80
-LoginURL: http:/koi.ko.mysite.fr/koi/sq.dll/dsw_daas
-UseKeepAlive: 0
-MIDlet-Install-Notify: http://download.ko.mysite.fr/InstallNotify?c=
-SelfUpgrade: 1
-MIDlet-Data-Size: 500
-AnimationEnabled: 1
-TitleUpdateRate: 7000
-EnableRenameFriend: 0
-SystemMessageUserTimeout: 25000
-Help: http://download.ko.mysite.fr/koi/j2me/enc/help/fr/
-UseDeviceTimeForIncomingMsg: 1
-TCPCIRReconnectCount: 3
-DefaultLanguage: de
-MIDlet-1: Messenger,/img/App.png,ui.Main
-MsgListHeightTuner: 8
-MIDlet-Name: Messenger
-FontSize: 0
-WVExtension: /web/wv.dll/msn_imgw
-RefreshChoiceOnStateChange: 0
-MIDlet-Permissions: javax.microedition.io.Connector.http,javax.microedition.io.Connector.https,javax.microedition.io.Connector.socket,javax.microedition.io.Connector.sms,javax.wireless.messaging.sms.receive,javax.microedition.io.PushRegistry,javax.microedition.media.control.VideoControl.getSnapshot,javax.microedition.io.Connector.file.read,javax.microedition.io.Connector.file.write
-MaxConversations: 20
-SubscribePresence: 1
-PersistencyEnabled: 1
-RepositoryAlertMessage: Error loading application data. Please try again later.
-GlobalMaxCharCount: 5000
-EnableEmoticonsSelector: 1
-IdleMode: 1
-SpacerHeight: 5
-TCPCIRReconnectRate: 3000
-MIDlet-Jar-Size: 502719
-BackgroundEnabled: 1
-IsCaseInsensitive: 1
-AlertToneMsg: http://download.ko.mysite.fr/koi/j2me/enc/dingdong.mp3
-NormalNoPollTransition: 1800000
-AlertToneContact: http://download.ko.mysite.fr/koi/j2me/enc/alalal.mp3
-NoPollStateEnabled: 0
-Device: 3
-SupportCustomUTF8: 0
-MIDlet-Info-URL: www.koikoikoi.com
-MsgListWidthTuner: 15
-CommandsType: 1;4;2;4;3;8;5;4;6;2;8;2;9;7;10;4;11;8;23;4;24;3;37;2;68;2;69;7;76;4;80;2;86;6;87;1
-IdleModeTimeOut: 900000
-ShowAboutLogo: 1
-TopMarginFriendName: 2
-ContentLanguage: fr
-FastPollRate: 7000
-NokiaTimeOut: 100
-FastNormalTransition: 20000
-EnableShortProfile: 1
-RepositoryVersion: 1
-MIDlet-Jar-RSA-SHA1: QhSjP7F1q3TGmmNC45cUGclVWB537GtcMLpplIJGe+TyDwJ1Mx5VssNHpp3Qs3C1WHLycvcfOkDT0CscStI0lV/5Xy33z192qEHIT5lkGVz1Rd1nfBHqrIBqv77H7dHW1tdU6RiVajx8jrYYXz+Yh/7U2kskmGXd0bLSYq2cuZZgkiT9YDOLa8OJ1Xn2U4/AYzonM1tjGQvkOniCvwqv0DXDW3GAial5w7hzB4txSopBgWiCO7sEPgkssJIvWQ2dsuLnwb3nU8gsUYWuRqidSI5Dm8mSOEA0zjRoREjTJjkqRZXX3r27rtp+omYh+VNCkXDneiNcaihWpkW5TgMhVg==
-MIDlet-Certificate-1-1: MIIEOTCCAyGgAwIBAgILAQAAAAABFIeLkAEwCQYJKoZIhvcNAQEFBQAwUDELNAkGA1UEBhMCVVsxFzAVBgNVBAoIDlZvZGFmb25lIEdyb3VwMSgwJgYDVQQDEx9Wb2RhZm9uZSAoVHJ1c3RlZCBBcHBsaWNhdGlvbnMpMB4XDTA3MDgyMTA4MzA0NFoXDTEyMDgyMTA4MzA0NFowTzELMAkGA1UEBhMCU0cxFDASBgNVBAoTC05ldXN0YXIgTkdNMSowKAYDVQQDEyFNb2JpbGUgSW5zdGFudCBNZXNzYWdpbmcgMjEuMDguMDcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCFfdEngntebK38dtsdODIkNzMiYsngpTwgnDPqV23m/OtsCX1+1E3+ns9v7EPQVqeTuPYUbUiQRXAYE2NpnUjzNd4bKIXBlk18YpXftMxKv4XRvtVa273O/nbKigtR9IuJx2Pz/x/zWbDpc4ZitRQaRTHy0oA1W+htVI1BBzO8cFC3kf4DTNEXjeYHGF5U7deGp/KuN8qfN7QPJ5gtYyUcwYtrV9imc7P2idLFfYGejm7/s/R3qh9o3bIvqLSHUQbwTQNz7bA7QzpBYkSgaQqzif8+ZYRZuLApjbhpoM5XRFUwQCu6KXx7ZPMKoCKVjof20LWlilUiBrVIXMIwHq0tAgMBAAGjggETMIIBDzAOBgNVHQ8BAf8EBAMCB4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwUgYDVR0fBEswSTBHoEWgQ4ZBaHR0cDovL2NybC52b2RhZm9uZS1wa2kuY29tL2NybC52L1ZvZGFmb25lVHJ1c3RlZEFwcGxpY2F0aW9ucy5jcmwwOAYIKwYBBQUHAQEELDAqMCgGCCsGAQUFBzABhhxodHRwOi8vb2NzcC52b2RhZm9uZS1wa2kuY29tMBoGA1UdIAQTMBEwDwYNKoY6AAHv9U8BAQMBAzAfBgNVHSMEGDAWgBQ7En6Wl4emCf8AlmWvsw/TeSSR9DAdBgNVHQ4EFgQUadzkP7g69+F/NQGoOfvOG1PC6YowDQYJKoZIhvcNAQEFBQADggEBAK2Z4qE4EFlXYL3ELnsbV/Ri6igPgdXgSZalaw8IKorw19TX7ERpL2tCiyDqisEJygNLW2iok9Nn3DUsmJTr0CoSZFGZc88hkJ9mlDTCQnNa9Hx9XQhp3Ig0uo1Eoei+12kF9j1kVlQJl6QkOPrbdmBbGpv7NFTM29zkPN/4wt3uUvoLZ/ZlbB4NjufZ6gVL77Bt2+UNwKLM4wF39Dy3zTD6qcJPuitGGSss0X4SYX6AzTtNRM+CtTPkFby10pHmmr4ClSfGtOZnXmbGizOIUh/lgOgv/nG9Q+dRDUGDTkhnDwMs1b0reQ0rGE1jFayCJ6Rmn/03FIN5N1SKfgkSeBE=
-MIDlet-Certificate-1-2: MIIECjCCAvKgAwIBAgIFAwEAAzANBgkqhkiG9w0BAQUF8DBLMQswCQYDVQQGEwJVSzEXNBUGA1UEChMOVm9kYWXvbmUgR3JvdXAxIzAhBgNVBAMTGlZvZGFmb25lIChPcGVyYXRvciBEb21haW4pMB4XDTA1MDYxMzExMDAwMFoXDTIxMTIzMTEyMDAwMFowUDELMAkGA1UEBhMCVUsxFzAVBgNVBAoTDlZvZGFmb25lIEdyb3VwMSgwJgYDVQQDEx9Wb2RhZm9uZSAoVHJ1c3RlZCBBcHBsaWNhdGlvbnMpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvfev7oXJy+WKdRjmc2i+Y8vMI3ey/LggGtOhGhY7w1oH1puYttgAjwPP7Ff2qObaJyfFnX81aCopQWeymGzpJtcIv/Z5sZRayBw9ceNIqI7WrwS3Ht//4uqUIH0p6VtPuRukNAnJewbFGgImowwZI4sizQ5Idqxx14lUoOTw8EaE0ygwXSJefS1w/5vuShyujd22F3wHpQnjo/lf05y14x43Uf+PpfFoVzvKm8q/n4VMtzMwi04vkgPjkflT2yay8WWtEpxU6rw8j32EWM/A2+kd4YbTE50I9/XFmIitHajaPVB3piwsChSt4d89UyIP/a+xGkPMultznEdH23SptQIDAQABo4HwMIHtMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBQ7En6Wl4emCf8AlmWvsw/TeSSR9DAZBgNVHSAEEjAQMA4GDCqGOgAB7/VPAQEDATBNBgNVHR8ERjBEMEKgQKA+hjxodHRwOi8vY3JsLnZvZGFmb25lLXBraS5jb20vY3JsLnYvVm9kYWZvbmVPcGVyYXRvckRvbWFpbi5jcmwwHQYDVR0lBBYwFAYIKwYBBQUHAwMGCCsGAQUFBwMJMB8GA1UdIwQYMBaAFEjdPe/gPJzfErEw/ZHhwen7l9wIMA0GCSqGSIb3DQEBBQUAA4IBAQCaehJEHzna6onjE8bCCsi7A5NxcQ2Cx85PYs67yxQZ0wMQq1khzxsOJPB7H4SoXlceNMvIxpgPFm/ZcLNdeyjoYOQccH+aS6GRSerYX3COdbtWA4Gjq/sB6ghoUZ74+VbXD3t9Rhrnt7fOMe1llWOcf/eoMmvOrJOrBPrC3ZxZEwyHAgyqEJDn2Z8KXTMUr41jge3KyhxRehflRcYhdXzwmE+8LOHaN7xLEZauOuafyBEVpjVN5UaaOm/v8mTn0TymV2j9R7D8Nycbz1gVeMrOhNW2GODxjvu5IoEHQh/myul28EecKGx05Xprcodr0a8Q6LKJg+ihJMxMrS3YEylp
--- a/javamanager/javainstaller/installer/tsrc/testdata/utils/BCExchanger.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-MIDlet-Jar-URL: https://uljava.gjmptw.de/midlets/harmonized/Local%20Connectivity%20(BT%20and%20IrDa)/BCExchanger/BCExchanger.jar
-MIDlet-Install-Notify: https://uljava.gjmptw.de/Index/Index.php/BCExchanger.jad?installed=BCExchanger_harmony
-MIDlet-1: BCExchangerMIDlet, /icon.png, bcexchanger.BCExchangerMIDlet
-MIDlet-Description: Demonstrates the usage of the JSR-82 Bluetooth OBEX API by exchanging business cards between devices.
-MIDlet-Jar-Size: 29967
-MIDlet-Name: BCExchanger
-MIDlet-Vendor: Forum Nokia
-
-MIDlet-Version: 1.0 rev.2
-MicroEdition-Configuration: CLDC-1.1
-MicroEdition-Profile: MIDP-2.0
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/BCExchanger.jar has changed
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/BCExchanger.zip has changed
--- a/javamanager/javainstaller/installer/tsrc/testdata/utils/DevCertTestMIDlet.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-MIDlet-1: DevCertTestMIDlet, , com.nokia.midp.test.devcerttests.DevCertTestMIDlet
-MIDlet-Jar-Size: 3152
-MIDlet-Jar-URL: DevCertTestMIDlet.jar
-MIDlet-Name: DevCertTestMIDlet
-MIDlet-Permissions: javax.microedition.pim.ContactList.read,javax.microedition.pim.ContactList.write,javax.microedition.io.Connector.http
-MIDlet-Permissions-Opt: javax.microedition.io.Connector.https
-MIDlet-Vendor: Nokia
-MIDlet-Version: 1.0
-MicroEdition-Configuration: CLDC-1.0
-MicroEdition-Profile: MIDP-2.0
-httpUrl: http://www.google.com
-httpsUrl: https://www.google.com
-MIDlet-Certificate-1-1: MIJs7jCCbFegAwIBAgIJAPNUaScSr5cxMA0GCSqGSIb3DQEBBQUAMHMxCzAJBgNVBAYTAmZpMRIwEAYDVQQIEwlQaXJrYW5tYWExEDAOBgNVBAcTB1RhbXBlcmUxDjAMBgNVBAoTBU5va2lhMQ0wCwYDVQQLEwRKYXZhMR8wHQYDVQQDDBZKUF9EZXZpY2VfTWFudWZhY3R1cmVyMB4XDTA5MDkxNjExNDk1M1oXDTEwMDkxNjExNDk1M1owNTELMAkGA1UEBhMCRkkxEDAOBgNVBAcTB1RhbXBlcmUxFDASBgNVBAMTC0phdmFEZXZDZXJ0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCXZ/GCV/N8foAkCQJfoiwGlwHO+f1lV9zloo0r0zosGtVqItLXKrvXEKylpOVWBygRVVrkl30Y1Cxess4aS1UmZ1rcvwL0jcvwlkZGacJazjtHE4UQuYJz9WRbYOaQxR2SVS/wU2Ptu/mr0ZgqFhgaJ1FzCuBdNaWzx2mGV9az/QIDAQABo4JqxjCCasIwKQYDVR0gBCIwIDAOBgwrBgEEAV4BMQEBAwQwDgYMKwYBBAEqAm4CAgICMA4GA1UdDwEB/wQEAwIHgDAXBgNVHSUEEDAOBgwrBgEEAV4BMQECAgMwgmpqBgwrBgEEAV4BMQECAgcBAf8EgmpVMIJqUQwPMDA0NDAxMDE1MDc2OTU5DA8xNDM3MjU3ODc0MDc3MzAMDzAwNDQwMTEwNDIzNjk4NQwPODUxODA4MzAxNzgwMzcwDA84MzYwMTU2MDMxNDY4MjgMDzM2ODYxNzM4NzAzNzM4MAwPNzY2NjI2NTYyMDM3MzI4DA84NjgwMjIwNjUxODczMTgMDzQ3NTEzNTQ0MzEwMzQwNAwPNDY0NTI4NzEzODY1MDY1DA84NjEyMTU3NzIwMDczODUMDzQwNzQ3NTAzMTI1NjYxOAwPNzQxMDY1MDUxNDE1ODI2DA81MzI1MTM4NTc4MzM1NTMMDzA4ODQ1NDM0Mjg4ODg2NQwPMTY1MTEwMDA3ODE1NTE2DA83NzYwMTU4NDUzNDgyODgMDzIyNTUzNTY4NjA4ODYwNQwPNDUzNTUyMTc2Mzc2MjcyDA8zNTAwNTM1MjQxMzMyMDYMDzg4NzU3ODg4NzM2MTM0NwwPNzgxODA1MjY0ODE0MzQyDA8yNTM4ODg2NzUzNzUxMjgMDzMyODczMzE2Nzc1MDg1OAwPMjA2Mzg1NDYyMTM4MjUyDA82NTA1NTIwNDcyMjIzNDMMDzA2MjQ4NzM2NTAxMzMyNgwPMzM4NjAxODY2NTcwMzcwDA8yNzcwMTgyMTEyODYzMzYMDzA3MDE2MzQ1MzQ3MzExMwwPMDM3MDI1ODcxMzE3ODc3DA81MjMyNDMzODgyMDA0NDIMDzg1NTcwODIzMzAyNjQzMQwPNTQzNDU4MzEzMzc1ODI1DA80MDgwMzUwNTQxODIxNzcMDzcxNjYyMjEzMzMzMjEzNAwPMTAzNzY1NTEwNDcwODQ3DA80NjAxNzgwODEwMTQ0NjYMDzMxMDYxMTQzNzY2NDUyMAwPMDQwMjM1MTMxMDE3NjI0DA8xNTIyMzUzNjA1MDg1NDQMDzc1NjU3Mjc2NDI1ODE3NQwPNjcwNjcyMTIyMzAzMjU3DA83NzUyNjU0NzQ3MjgwMjMMDzQyMTgwMzg1MjE0MjE2NQwPODE0MTcxODU0NjQ4MjcyDA80Mzg2MTIwNDczMDY2MzUMDzY2ODA4ODQ1MjM3NDAxNAwPMjMwMDgyNjEzNDYzNTM2DA8yODA4MTYyMjMyMTExMTYMDzc4MjM3MzE2NzgwMTgwMwwPMDYyNjU3NTgwODMxODMxDA82NzI0Njg2NDc0NTUwNTYMDzgyNTUyODAzMjY0NzQ0MwwPNDU2MzAxNTA4NzEwMDMzDA8xODgzMTg4MjAzNjI0NTcMDzQ4NDM3NjExMDUzNDQyMgwPMjMyMzU0MTQzNDE1NTU4DA84NDc2NzAxNzc3MDI0MTAMDzc4NDIzMTY3MDE3NDY1NQwPNDc2Nzg0NDI1MDE1MTMyDA81MTEzMTU3ODA1NjcxNDMMDzA1MDUxNjgyNDg1Mzc3NQwPNDUxNTA1NjA0MTE3NjQ3DA8wNzc3MzU0MTc0NzcwNzcMDzQ4ODQ3NzYzNTE3MTU1NgwPMTQ4NjM0MzM1MDgzNTgzDA8yMjMxMzE0NzI1Mzc0NzcMDzY1ODQ4ODQ2NzI0MjA1NQwPMzYwMTU2NDYwODU1ODM1DA8zNDc1MTczMjM2NDMwNDYMDzMwNTE3MDA0NDQyNjQ4MQwPMDg4NzMzMjAyMzUzNzQwDA8zNDY2NzY1MjY4MDA1MDMMDzUwODQ1MDEwNjM3MzY1NgwPMjAxNzM2NzEyMDUwNDg3DA80MDMwMDg1ODMwMzE1NTIMDzM4NTUyMDQ2ODA2ODAxMgwPNzIwNDc3Njc4NjM2NDg3DA84MTM4MTc1NDQzNTY3MzAMDzgyNzIyMzc3MzY1NTEzNQwPNjQ3MDEwNTUyMDA3ODY2DA8xODAzMjExMTg4ODY2NzIMDzc0MjEzMzg4MzgxNDIzNQwPNTc1MzU1NzQ4NTMwODgwDA8zMTAzNzAxMTY1NDcyNDMMDzQ0NDQ4NTU1Mzg0NTE3NQwPNzQzNzc1NzA4MjM2NDM3DA8yMzc1MjQxNTg3MTUxMTMMDzI3NzQwNTUzMDE2MzAyMAwPMTgyMzA3MTU2Mzg3MzM2DA8xMDMwMzA2NjIyNjA0NzAMDzE0MTYyMTU3MDI1MzI0NAwPNDY0MDcyMjc2NjQ1ODM3DA80NTUxNzc3NDczMDQ1NTcMDzI2NzYwODgyNjY3ODY0NgwPMzQwNjM1NjMyNTc3NDg0DA8wMTUxNzcwMzI2NjM4MDUMDzgwNzI2ODcwNzY3NjQwNQwPMjA1NzQ2NTE1NTQzMDIzDA82NDU3MzA4MTUxNjcwMzUMDzAzNDEzNjM0Mjc3NTAxNwwPNTc4ODAyODAyNDYzMzYyDA84NDA1MDUzMjE4MjM2MjcMDzA3NzEyNzYxMTEyNjUyNgwPMDE4NzU0NDgwMDM3NDM4DA8wMjEyNTgwNzAzNDE1NzgMDzg2MzAyNjcxNDcwMDYyNAwPMDU2NjQ0MjQ2NjA1MTEzDA8xMjIyMDMxNTcwNTg2MjEMDzgxMDY3NjQ2MjU0MDU1MwwPMTUxMzM1NzUyNTI3NDc0DA8wNjA3MzQyODg0MTgzNTQMDzEyNzYxMjI2NjE0MjUxMAwPODY2MTI0NDU3NzE2NDQxDA8zNDAwNjI0ODY3ODE2NjYMDzA1NzcyMjMwNTE4MzQ4MgwPODMzMzU2NTI3NDI3ODc2DA8zMTA2MjI0NjI0MTM0MzQMDzQ3NDYwODY1MzEyNjA2NAwPMDQzMzIyNzg1MDgxNzM2DA8zNzY0MTAzNzcyODQ2NTIMDzYxNDg3MzQxNDY4MTA3NQwPNjM2NDc1NTgzMDgxNTE4DA8zNzIzODAxMjgzNDAwMzUMDzcxMzEwNzAyNzIwNDcwMQwPNTU2MDA4MTY1MDg4MDMzDA83MjQ4MzQ4MTgyNjY2NTcMDzA2ODA2MTMwNDcyMzg0NgwPMTMzMzY1MjMwODQ1MDUyDA81NDQ2MDI1NjQzNzU0MjgMDzQ4MTM0ODQ3ODAwMjEwMAwPNDExMzA0MTUzMDA0NjcyDA83NTYyMzUxNzc3MDEzNTAMDzIwMTI3NTg3ODMzMTc0NwwPNTg2MTQ4NTYyMzM2NjgzDA84MDQ3Mzc1MjM0NTgzMjYMDzMyODYxNjI3NzQwMjAwOAwPNjU1ODMwNTExNTEwNTA4DA8wNDgwMDc1Nzg2NzIyODUMDzM1ODM2MTM4NDEyMDcwNQwPNTg1MzA2NzU1MjUwMDI3DA81MDU3NjQ3MjQ2MTExNjcMDzQ2NjU2MTc0NTMxMDU3NAwPNDU1MTUwMjI4NjQ3MTc3DA8yNDM1NDY0NTY1MDI4MzAMDzUyMDI4NjUzNDE0MTQ0MQwPMTUzNDA4MDc0NzAzMDE0DA81NjUwNjE1MTEwMjM2MTAMDzQ4MDExNDMwNzIwMTc1MwwPMjQ1Mjc2ODc3MTg3ODY2DA80MDY3MDgxMjM1NzExODQMDzQxMzU2MTA4NTY2MTAxNgwPNDIyMjI2NjEwMDcyMzgwDA8yMTEwNDE3MjU1MjM2MzYMDzU3ODM1NDE2MjQ3MzIzMwwPMDU4MTExMDQ3NzQxMjEwDA82NDUyMTAyMDAxNzI2NDgMDzA0MzEzMTc1MDE0NDA4MgwPODc3NTIxODg2NjE3NzU4DA80NjYxNTgyNTA2MTUzNjgMDzg3NTY4MzA4NjE2MjExMQwPMDQ4NjQzNjM1NzEwODUwDA8wNzg1NzY2NTYzODE4MzUMDzE4NTQzNTU4NTE3MjU3NAwPNDMxNjYxMjc4NTUwNDU0DA8yNTgwNzQ4NjU3MjM1MzAMDzM0MDc4ODYzODA2NzQ2NQwPNjE4NDIzNjMwMTM0NzczDA8yNjgwODQyNzQ0NzAzMjAMDzI4MDgxNDMxMjA2NzM1NQwPNDEyNjUxMTA4MzAxMTYzDA80NTE4ODIxODc4NTcyMjAMDzQ3NTYwODc2ODE0NzY2NgwPMDU3MDAzMjcxMTUyODI3DA8yNjAwMDYzODg2MjExNjYMDzM1MDg3NDQxMDUyMTMwOAwPODM1MDAwMzUzNTcxMTQwDA81MTU3MjAzMDYxMjg3NTYMDzA1ODgzNzY0ODQwNDg1NQwPNDA4NDg2NjQ0NDMzNDM2DA82NTg0ODM0MTIxMjM2NzcMDzU4ODA0NzA1NTM0MDYzOAwPNTA3NDMzMTMwMDY3MDY1DA8yNjQwNjcxNzc3NDc4NTgMDzQ4NTEwMTM4MTY1NjE1MAwPMzEwNzYzMzY2MjIxNDU1DA83NzIzMjMyMTEyMTQyMjQMDzU0ODg4MTU0Mzg4MTY0NwwPNDc2NTYyNTE3NzIzMTE2DA8wMTAwMTQ0NjEyODE4MDYMDzUwNzM1NzA3MDM4MDUyNwwPNTg3NDQ3ODIyMTExNTA2DA81MzY2NTExMjI2ODc0NzIMDzIxNDc0NTAwNjU0NTcyOAwPMjg2MTY2NzUxMTA2MzA4DA8xNjg3NzA1NDQ1MTIyMTcMDzM1MjU3MzcwMzQxMzU0MwwPMzAxNDEwODc4NDI2MjE1DA8zNDY2ODQxODUwNjgxMjMMDzUzMzA2NTMyMzEzNjI0NQwPNjA1MDE3ODUyNzU1NDM1DA80NzcxMzg3NTc0MjM2NjgMDzY2NzA4Mjc1NDUwNTUyMgwPODczMjQ1MTM4MTAwNDAwDA81NTc1MDI0ODczMjQ1NzEMDzI1MTEwNDAzMTcyNjI1NAwPNjI4MTA0NTEyMTU0MDAxDA80NzQzMDM1MTExMjI1NDUMDzQ4NDY4ODc1MDg2MTI4MgwPNTMxNjY0ODAxMjA3NjY0DA80NDc3NjA0MDUzMjM1NDcMDzgxODA2NjQ0MjgyMzQxMQwPNDg0NzQ1NzUzNTcxNTAyDA83MDM1NDE4Mjg3NjUwNzgMDzA0NDAwODczMTEyNTY0NAwPNTM0NTAzNjE4NTA3MDczDA83MDQ0NzE4NTE4MzQ1NDYMDzM0ODEwNjMzMTUyMDg0MgwPNzY0MDY3NTYyMjM1MjA0DA80NzQwMzEyNTI1ODE3NDUMDzU2NzQzNzQ4MzY2MjQ0NgwPNTIyNzM0NTg4MTY2NjE4DA8zNDU1NTQ0NzA0ODgwMjIMDzAzMjMzMjAyMzYyNjQzMAwPNjUwMDg0NDc1NTU1ODYyDA82ODE0ODA1NTM3NzM0NzcMDzM0NzMyMDI1NjE3NDg3MgwPMTA0NTIxNjY2Njg2NjI4DA81Njc2NDg1MTM3MjMzNzMMDzU4NzUxNzg4NDA2MzAzNAwPMjI1NTI3MDAxMTYyNDU1DA8zNTc2MjQzNDc1Nzc0NTAMDzY3NjQyNjQzODc2NzI0MAwPNDg2ODM0MTAwODA4NzU3DA8xNTg1NjY0NDM3MDA2ODUMDzY0NDY2ODE4MDU0NzY0MwwPMDQyMzU3MTQ3MTgyNjY0DA80NTA3NTQzODQyMzA2MzEMDzA1ODA3Mjc4MjIyODI4MwwPNTY1NjE1NjEwMzQxNzYwDA84NzIzNzIyODc0ODIzNTIMDzYzMDE2NzY0ODE1Njg4NgwPNjEwNDAzMzg2MDUzMTY4DA8zODA1ODQyMTE0ODEwNjUMDzExMzg0NTM0NDY3MjI1NgwPMjY2NDY1MzEzNTUzMjg4DA80MDExNTc2NzMyODAyMDcMDzc2NzI3NTQ2NjM0MzA3MgwPNDczMjY2NDY3MTU3NjA3DA8wMjY2NTQ2MzA1MzEyMjUMDzYxMzU2NjgxNjExMzg0MgwPNzE1MTE2MjE2NDI1NzcxDA8wMjY4MzcyMTQ2MDMyMzMMDzE2NjM2MzY1MzE3ODUwNAwPNjgyNDAwNjExMzQ0NTM3DA80MDE3NDM0MzMwNDI1NDYMDzY0MDc0MDMyNDg4MDgzNQwPNDU2MTQ0ODM1MTg2MTYyDA8xODI0NTYyNjI0NTcwMjQMDzQwMzEzNjc4ODY1NzI0NgwPNzUyMjE3NjI3NTQxMTIxDA8zMTcyMTQxNTgyMTYxMzgMDzM2MDI3ODA3MjA3MTA0OAwPMDU4MjA4MDgzMjg4NzIwDA80MTgxNDgwMDUyNzc2NTgMDzM0MTg1ODQyMjgwODYzNwwPNTU1MzIxMDI3MjMyNTE3DA83MjYyNjY3NTQ2Mjc2MzUMDzQwODc2NTg0NDExMzQ1NAwPMzAzMzc2ODIyODg0MTc4DA80MDE3MDI0NTMyMDYyNzQMDzIxMTcwNDc2NTE3MTIzNAwPMTg0NzEwMDY3NzgyMjAzDA8yNjIwMDAyMDQ1MjI1NjQMDzg4NDI0Nzg4NDI3Mzg4MAwPMTIzODAyMTI0Njc1NDA4DA8zMTczMDYyMjY4ODIwODQMDzQxMzc2NzQ4MzEyMjQ2MwwPMjc3MDU0NDI0MDQ3MzgyDA8xMTYwODA4NzU2NjE0NzEMDzE2MzY3MTIzNzg4NzIyMwwPODc0ODI1NjYxMTczNTU2DA80MjU1MTg0NjA2NTI2NzIMDzA1NzMyNzU0NTgxNTE2MAwPNDIwMzU0MzA3MzI2MzQwDA83NjQzMjYxMTc0MTQxMzcMDzQxNDEzODIyNzQ1MTc3OAwPNDE0MjE4MjQ3MzI4NzEzDA81NTAwNzE0MjIyMTE1MTAMDzE2MjcxODUwNzQ1NjYyMQwPNzE0NDc3MjI4MjAzMzE0DA80NzgwODAwMDAwNTg0MzcMDzI1NjQ4MTY1ODQzMzQ0MAwPNjYyODU0MzU2NjY4MzQ1DA8yNDE2ODY2NzY1NzI1NzgMDzUwMzIxNDE1MDU1MTU1MgwPNjAwNDU0MTI1MDU4MTc3DA83MjYxNjQ2NzY3MjMyMTgMDzUyNjMxMDMwMjMyNDA4MgwPNjgwNTEwMzE1NzI3ODgyDA80MjY4NzgzODE1MTcxMjgMDzQ3MzQ3NzI2MzM1NjAyNwwPNDgxODE4MDg3NTMxNjE4DA82NTIzMTY3NjY1MDg1MzIMDzM0NjgxNTI1NTcxNjc4MgwPNTcyNTY1ODQ4ODM2MzA2DA81MzMzNjQ3MzAyNjM3MzcMDzAwNTI1MjQ2ODEyODA2MAwPNzYxODIzNjM0NjA2NTQ0DA8yMDY4NDA1MzQ1MDE2MjUMDzgyNjg3MDExMTA4NzQ1MAwPNzcwNjUzNDE4MjE3NDU4DA83NjM0MzY4MTI4NDg3MjgMDzA2MjYzMjQyNjM1NTI0MAwPNTUzMDY1MzQ2NTU0MjQ2DA8zMDE3NjQyMjQ3MzA2MDEMDzM3MTUxMTM2MjQxMjA3MwwPMDgyMDg3MTc0MDA2NjA4DA8zMTg1NzQwNjA4NjA1MTgMDzQ4MjQ1MjIxMTUwNzIxMQwPNTQwNTAwNTQ2NzcyMDI2DA8xNjczNTAwMDQ2NzAzNDYMDzQzNTExMzIyMjE2NTExNgwPNjY3ODMzMTY0MTM0MTYwDA81MTI2MzYxNDEyNjIyNjcMDzcxMjA2ODA3NzUyMzMzNQwPNjY4MDMxMDc1MzU1NzU2DA82NTM3ODgxMzI1MDUxNjgMDzg2NjIyNTgxNzI3ODMzNgwPMjg2NTg3NDc2NjM0NzMzDA80NTQ2MTQ0MzU2MzY2NjIMDzQxMzU3ODEzMjMyNzgyMAwPNjMxMzQ1MzA2Nzc1NTQ0DA81ODA0NDczNDUzMjgzNTgMDzY1NTI1NTU4NzYxMzQ4NwwPMjUwMjAzODUyMTM3Mjg0DA81Mjg3NDYzNjg1MjAwNDgMDzIxNjE1NzQzODM0ODA3NgwPMjEzMzAzMTE1MzEwNzM0DA8zNzUwNzg0NDgwNDcwODAMDzM3Nzc1MTE3MzExMDc3NQwPODE0MDAyNjIxMjIyNDUyDA81NzY0MzM2NjAyNjMyNTAMDzIzNDAyMTI0MDExODA1NgwPODg3NjE1Nzg3NzEyMTAzDA84NTUzNTYxODA3NDE2NjgMDzc3NjA4NzgwNzgyMjE3MwwPNjU3MTg1NjcxMjIwMTI4DA8wNTU2NDAyNTQ4NzU3MTEMDzcyMDMyMDE0MjI3NjU1MAwPNjE2NTgzMDcxODIyNTc0DA81MTEwNDQ0MzEwNjg0MTAMDzgzMDg1NTM2MTAwMTQ1NwwPODAwMjA0NDAzMzAxMDI2DA8wNDM0NjIxNjg3NTE3NzUMDzI2MjYyMTc4NzgxNjQzMgwPNTc1NTU1MTQ2MTIwODY4DA8zNDEzODI1MTYwMjI0MzUMDzE2NTgzNzE2NDM2ODAyMgwPNzY3Njg0NzI2MTE3NDA1DA8yNjM1MzU4NDExNTEzNzAMDzAyMzAyMDE3NjM4MTI2NwwPNTg1MTI2MjgyMzgwMDQ3DA81MzgxNDI2MTgyMDM2MzQMDzczNDM1NjA1NTEwODIwNwwPNjA2NTA3MzE1MTE2NjE3DA8xMTgyMjA2MzYxNjEzODUMDzQ2NjY4MjE1NzIzNjg4MQwPNDUwNTc3MzI0Nzc4NzQ3DA80NjE1MzAwNTIxMDAzMjUMDzM1MTc4NjY1MzQ2NTYyOAwPNjIwMDE0NDM4NzMzNTM0DA8yODQ1MjA2NTE4NjM3MjAMDzUwODA1NTQwMzM3MDEzMgwPMzIzMjI2NzM3NzY4MTY1DA8wMTQyNDcyMTM2NDA0ODEMDzI0MDYxNzgzMDc4MjU3NQwPNDc2Mzc2NTY4NTQ4MDcwDA8yMzY4MzI4ODMwMTYzMDcMDzIzODYzODI3NjIzNzA2OAwPNTA3NzYxNDc1NDQ4MzUwDA83MjgxMDAwMzAzNzY3NzgMDzU2NjMxNDU3MDU1NTA2MAwPODY4NzExNjIzMTc0MzMwDA84MTQxMDgxNzU2NTI3MjMMDzIyMTc0MjQzMjY1NzM2MQwPNjA3NjgxMzYxNTgxMDU1DA83MzMwMDE0MDE2NzQ4MzgMDzY0MDQwMDUwMzA2MjI1NwwPMTI3NDI0MjQ0NTc4MzMwDA8xMDcwNjM1MTc3NzIwMjUMDzQ1MDUyODE3MzU1Mzg4NwwPNzE1NTExNDYyMDE2NzczDA8zNjQ4NzcxMzAzODExMjgMDzEzNDAwMTQ3MDI0MTE2MAwPODAzNjQ2NTE1NTIzMTUwDA8wODcxNDI3ODc1MTA3NjAMDzM0MjI3ODcxMjM3MjEwNgwPMzc0MDA3ODMwNjcxNzU2DA83NDY1MzE1MDAzMDU4NjcMDzEyNjM2MjQ4MzUzMzA1OAwPMjMzMjIwMDI3MTE1NTE1DA80MTQzNjMwMzc3NzA1NjYMDzM1NTE1MjEyNDAwMDg2MgwPODQwNzczNDU1Nzg1MTgwDA80NTc2NDQyMDExMjIzNDYMDzEzMzg3ODMyMjgyODU4MQwPNzM0NDQ3NTMyNTAzNTIwDA8zMTAwNDQyODYyNzczMTEMDzI4MTY3MDY2MTIyMzE0OAwPNTAyMDI2ODE1NzE4NDI3DA8wMzA3Njg1ODE1ODI2NDEMDzI4MjQ4MDYxNDU1NzMxMwwPNDU3Njc0NTU0MzI0NDA1DA84MTc0MTc2ODI4NTcwODEMDzMwNDE0ODI1MjEyMDY2NQwPNTEzMzExNDMzNzA1Njc2DA83NzUzNDI0Njg0MTI3ODEMDzM0NzgyNTczODc3NzA0OAwPNzIzODQ3NDYzMDQwNTI4DA8zNTI0MzA3MDc2MDYxNTIMDzc3ODgzNDU4MTI0NzQxMQwPMzQwNjIyMjMxMDg1MjM4DA83MzQyODIwMzU1NjA4MjEMDzgxMzgxMjY2NTI4NzQwMQwPMjI4MDI4NTExODUwMzI1DA8yNzgwNzE0ODE4MDIzODAMDzM4ODg0NTU0NTcwMzIzMgwPMDgwMDE0MzUxNDM1NTEzDA8wNzQzODUxNjcwNTUwMDcMDzQ2MzQxODM0MTUyNzAwMgwPODAzMDcyMTM2NDI0ODg3DA80NjAxMjMwNjgzNTIyMTcMDzMxNzAwNjU1MDE0Njg1MwwPMTcwMzIyODAxMTY2NTgwDA83MTM2NDU4MjI2Mjg4ODMMDzA3NTA0ODc2NzgyNjg3OAwPMDQ2MjA2ODYyNDY4NTgzDA8wMjc3ODM2MjgzMzgyNDYMDzIzMTY3MjA0NzAzNjc1NQwPMTUzMzIxMTQ1MzAwODQwDA83MTIyNTMyODQyNTExNTMMDzYzMDMyNjcyMjU3MzQzNwwPNzY0MTIwMjEyNTc2NzUwDA82MzUyMjczNzYxMTU2ODYMDzI3NDc2NDYzMzc3MTcyMAwPMzM0ODIzMjM0NTY2MjE4DA8yODYwNTg1NDAyNzM4NjQMDzA3NTg2MDMxODE3ODIyNgwPMTE3MzY3MzIzNTg0NjgwDA80MjI2ODg0MDc2NTE0MjQMDzQyODgxNjA2MjE0MzI0NQwPNjEyMDY3NTU1NzUxMjMzDA8yMTcyODM3MDg4NDY4NDYMDzc4MzgwMDI2NzcyMzE0MwwPNTc3NzY1MTI2MDI3ODU2DA8wODAwMDM3ODIzMjA3MDcMDzM3MzM3NTA1MzY1MDQzMAwPMzg1MjI0MDY0MDU3MzUzDA84ODQ4MjMxMzg0MDA4NzAMDzA3NzQ0NjYwNDEwMjMwNgwPNzM4MjgwMjM1NzYxNjg4DA83NzM2ODAxODU1NjIzMzMMDzU3MDY1MjYwMDQyNTMzMQwPMjQyNjQxNTcwMjg3MTMwDA8wNTc0NjczNDc3NDc1NjUMDzczODIzNjU3MzgwNDU0MAwPMDU1MzIxMzE3ODgzNDgzDA8zNTEzMjc1MDMwMzQwNDYMDzA2MjMxNTQ4NjY3NzI1NwwPMDc0MDEwNDMwMTI2MTY0DA83MDQ4MDE1NDI1ODI1NDQMDzE2Mjc3MjQyNTg2MTgzOAwPNTY4ODgyNzI1NzY3MTcxDA8wNzgyNTQ1NDE2NDM2NDYMDzY3MzE3NzI3ODM4MTgyNwwPNzEwNzU0Mzg0Mzg3MDg1DA8yMzEyNjg1NjA0NzIzNTYMDzIzMDYyNjgzODQxNTg2OAwPODcxMjIyMzI4MDY4NTQwDA80NTg3ODUxMTIyMzY4MjAMDzQxMjQyMzYyNTE1MDYyMAwPMjUwODUzNzExMjAzNDQ3DA82MDExNTcwMzg3NzUzMjcMDzM2NTQ2NDM3MjE2Nzg4NAwPMTU2MjAyMDgyMjQyMTQzDA84MjYwMDQwMzc3NTcyODAMDzIxNTQ1MDIzMjA4NjE1NAwPNTY3MDE4NTI3MDc2NjI1DA8yNDUyMjc0NjUxNjYzMDQMDzc4ODI4MTAyMDQ0MDQ1MQwPNDc2ODQ3MDI4ODg0MTYwDA83NzE0NDY1MjY1NTA3MzUMDzc1NDIyMzg1NTYzNjAxNwwPMTQ0NjE1NTA4MzQwMjA4DA83MjcxNjUwODMwNzgwMDUMDzEyNjQ1MzIyMjMwNjY3NwwPMjU3NTExNzY3ODQwMjgwDA8yNTg4MTA3MzYzNTAwNjAMDzE1Mjg1MjM0ODcxNjU0MgwPMzE0NDE1NzcyODc1NzA0DA83NjE3NzU3MDUwNjg4MzgMDzA0MzU2NzE4NjI0ODI4OAwPMDMzNTc0MjI3NzE3Mzc0DA81MDIyMDY4NjM1NTY0MzcMDzgxODM3ODMzNzE2NDQzMwwPMzExNDI4ODQyNTQxNDEwDA83ODYxNzQyNTE0MDc1NDMMDzM1NDg2ODQxNTAwNzQyNAwPNzg4Njg0Njc4Nzc4NTc0DA8wODc3MjAyMDUyMjA2NzQMDzIzNzQyMTcxODA2NTU2NAwPNjQzNjIwNzU1Mjc0MzM1DA81MTg0MDMyMDY0NzIxNzgMDzA1NzIzMzQ3MjUwNDQyNQwPNTgxMzI2NDY1MjY3NjYxDA8yNzc3ODM1NzM1MDc3NTUMDzg4NTAwMjA0ODc3MDAxMAwPNDczNzIzNjcxMjgzMzE3DA8yMTQzMTgxMjcwODE4MTAMDzA4NDU2ODg2NTAwMjcxMAwPNDc2NjE1MTg4NjAzNjMxDA83MDcwMDcxNzQ1ODM3MTAMDzYxMTUyNjcwMTEzNzEwMwwPMjEyMTczNzM1MDI3ODA2DA8wODgyMzgzMzEzMjA1NDUMDzU1NjEzODEyMjYyNjU4NgwPNTU4NDQyNzQ1ODI4NDI4DA8wNDQwMDIxNDUzMTAwNDMMDzU4MjQ1NzM0Mzc3MTY0NgwPMDg3NTM3NTY4NTMyNTQ4DA81MDI0NjU3NjA4ODg0NDcMDzE1MTUwMzYyMjE2NjM4NwwPMzQ0NzQxMjI2NDU3MTIyDA8yODIzMDU3ODI0NjY2MzQMDzYyNDMwNjE1NTAxMTU2MAwPMzA2NTE2NDUyNjI3NzUyDA81NDMxODc4MTg0Mjc1NDgMDzQwMTE4NzA2NTgxMDcxMgwPODc4MTgzNjE3NDUyMDE3DA8xNTI0NzgzMjY3NjUyNTUMDzEwNDIzNjgyMDY3NzEyMgwPMjM2MDM4MDczNTU3ODU1DA84NjAwMDI2NTczODQ1MzcMDzcxMjQ2NjAzMzAxMzI0NgwPNjU4NDcyMzM0NzgyNDUyDA82Mzg3ODY0MjMzMzg1NDIMDzUyODA4NzA0NjYxNzQxNAwPMjM4NjMwMTM2NzY1ODczDA80NjM1NTc0MTM2Nzg1MjUMDzAxMTQzODU3NzQxMTUxMgwPODYwNzQwMTg0Mjg0MDc1DA8xNzQyNTgzMDEwMzU0MDMMDzc0NzYyNjI3NDg2MzA2MwwPMTcxMDY2NTMwNTg1NjEzDA8zMDYyNDU0MTcwMzUyNDUMDzQ2ODUwMTA2MjEwNzUxNwwPODQ3Mzc1NjUxNzcwNTMxDA8zMDM2NjM3MzY4MzAxNjYMDzc3MDQ2MjY0MTMwNzg4MAwPMDcxNTUxNTMxNDYzMzIwDA81NzAxNTgyMjMyODcwMzgMDzE4NzA4NDUyNTUyNjM4MAwPMjY2NTE1MzAxODgzNTc2DA8yNDc2ODY4NjcxMzYzNjEMDzcxODM2ODAyMTIzNjQwMAwPMDIyNzUzMjcwMDAyODg1DA82MDMxMTgxNjA2NzY2ODQMDzY1Nzg2Njc1NDU2NTM2OAwPMDgyMjE1MjQyMDcyMzEwDA8wMDYwMDM1NDQyMDA1MzcMDzMwNzU2NTUxMzEzNzYxMAwPNTY0MjIyMTA3MjI1MzE1DA82ODQyODIxODg0NTYzNzIMDzQ4NzY1MDYwMTQ4NDMwMAwPNTU4MDYyMjgwMzE4NzQ1DA82NDM0ODMzNjE0NjI0MzIMDzY4MTY4MDExODUwNzg2NAwPMjU3MDMwMjQxNTA0ODY4DA82ODg0MDQ2NDU0NDEyMjMMDzMyMjQ4ODIyMzI1MTA1NAwPMTQ1MzcxODMyMDUxMDQ0DA8yNjQ2MDYzMDMzNjAxMDEMDzg4NDgyMzQ0ODM0ODgwNAwPMTQxMzgzODEyNDU0NTIwDA8wNjA2MTU3NzUwNTM2MjUMDzc3NDQwNjAzMzQ1NjI0NgwPMTQ4MzM3MzE2MTQwNTA0DA81MDU0MzI3NDU3MzY1ODMMDzQwMjEzNzU1MTI0NzY2MgwPNzQwNjI1NDg4NDcwNjYxDA80NDIxMjc2MjQ4ODc2MTgMDzA4NDgxNDgxODMyMTg1MgwPMTg1MDg2MjEwNTY3ODE2DA8xMjUwMjQxMzUwNTcxNzEMDzQwMzg2ODQ2NzMyNjQ0NgwPMjY1MTgyNzQyNjM1ODU4DA80ODczODUxNDczNjA4NTcMDzIwMzU2MjQzMTQ3NzQ1NgwPMzA3NzA2NTg3MTY2ODU0DA80NzQ3NTI3MzE3MzEzNjUMDzQzNjQwNzgxNTgwNTI1OAwPNjYxNjI0MTQ2NDI4NDMxDA80MTI2MjE0NjU2MTMyNTgMDzQ1ODc1NTI2NDY1MDM3MAwPMjcxODczNDE3MTU0NTMwDA83NjM0NTMyMzE2NTA0MTMMDzU3ODYxMzM2MjM1NDI3NQwPMDcyMjc1MzUyNjcyMDU0DA83NzM0NjE1MTQ1NzQyMzQMDzI3MDQ4Njg2MjIyNzI3MAwPNjE3NTYxNDA2NzcyNjQ0DA83NDc3MDc3NjIyMzg1NjEMDzA3NDYwMzA4NzE0NzA0MgwPODU1Njg1NDA1MjQ0NTQ0DA80NTM0NzMyODM1NDU3NzgMDzQ4NTU2Mzc0NTIxNTI0MAwPODEyMDg4MTM2NTY3NDA3DA8xMTU2NzEyMDgzODcwNzUMDzgxMTI0MjE0ODczMDA1MAwPODIyNzU4MTEwNjYxMzUwDA8xNzcxNjU0NTIxNzIyMDEMDzczODM3MjIxMDYyNDc1NgwPMzUzNzY4NjE1NzY3NDM0DA84NTg4NzMwMzU0MTA4NTYMDzcxMDYwMTc1MzczNzMwNAwPMTU4ODAzMTA2NjU4MTIzDA84NTc3MDY4MzQwNzc3MjAMDzI2ODI2Nzc1NjQ2Mzg2NgwPODgxMzUyNjE0NzU4MDgwDA80ODc2MzQwNDE3NTg3NDgMDzQ2MzAxODU2MjQwNzEwNAwPNzg2NTA1ODQ3MzY0NDM2DA8wNzg4MTE3MzEwNTUwNTEMDzQwMjYxNjQyNDAzNzg3NQwPMjMzMDMxNTMzMDE3NDA2DA8xNzMxNTE4NjYzNzc2ODIMDzE1MTc0MzE1MzExNjc0NwwPNTIyNjE2NzM1MzMwMTMzDA82NTQ3MjAwODc2NjA1MTgMDzQ3NTgwMDM1MTIyNzMwNwwPNzExMjYxNTgwMjAxMjQzDA80ODYwODMwMjAyNjQ4NjAMDzE1NjIyMTAzNTIxMDc3NAwPNjEyNjMyNTgxMDQyMDY2DA84MDU2NjM3MzUwMTQ0MDMMDzc2MTQ1MzcwODU0MzI2NgwPMTI4NjE1NDg1NzI0NDIxDA81MjExNDY3NDU1Mzg2NTMMDzAwODM1MzAxNzE2NDgwNgwPNTgxNDQyMTIzMTAyODU0DA8zNjIxMTYxNTcxNjAyMTAMDzMwMzg3MzUxNTAzODc0NQwPNDU4NDU3NzQ2MjIxNjQ0DA81NTIyMjA0NDAxMDY1MzcMDzgxNDI3NDcwNTI4MDMzNAwPMDQ4NjA1NjI2NjU3MDg3DA82NjMwNTUyNzc1MTg0NDIMDzg3NTAxNDA3MTc2NzYwMwwPMzI3ODUyMTgyNzc0NTQ1DA8wNDQ4NzU0MjM2NTE4MTcMDzI4MTExNTcxNDMwNjAzNQwPNDgxNTY1MzU3NTE3NjgwDA8wMTEyMzE3NDI3NTQzMDgMDzIyMTg0MjY4MTUzNTEwMAwPMDYyNzQyMDMzODgwNzUzDA81ODUxMzAzMDUwNzEwNjcMDzM1MTI4Nzg1MDA1NjcwNQwPMjcyODEwODQ1MzI4MDYyDA8zNTg1MzQ4MTAzMzgyMjMMDzQzMDM1NjY2MjAyMzIxNAwPMzY1NjM1NDY4ODM1NjM2DA81MDA0MzY3NjMwMzQ2NTQMDzAyMTE0MDg0MDQwMDYwOAwPMzEzMTMzNjg0ODM1NDgyDA81MTA0NjI3MTgyMjU3NzQMDzc3NTE2MjMzMTY4MTIwNwwPNjQ2MTU0NDQzNzU1ODM4DA8wODUzNzAzMTAzODI0NTUMDzU3Nzc2ODM1NDc2ODg3NwwPMjQ4ODQyNzIzNDU2Mjc0DA8yMDU4NjY2NjE4ODA2MjYMDzE3NTI4ODQxMzU3MjE2MAwPNTA0MzQyMTU1NjIyMzcxDA81ODY2MDE4NzY4MjY1NjYMDzEzMjUxODYyNTgxMTUxMwwPNDIzMDc4NDIzNjcyMzUyDA8xMTQ0NzczMTI1ODY2NDEMDzU2NDU4NTM0MTgyNDgyOAwPMjU0MTE4NzY1NjQzNjI0DA81NjA1MjAxNDUwNTUwNzAMDzg4ODQyODI0NTcwODIwNgwPNDM1NzY2MTE0MTc3NTQxDA8zNjY4MDQwODQ3Njc0MzMMDzE2NTgzODY2NTU2NDU0OAwPNzA1NjgzMTg4NzU1MTczDA84Njc3MzEwODMwNDAwMDIMDzA0MTg2MTg2MTQ3NDA4MwwPODIxODQ1NDAzNDA3MTUzDA81MzExNTQ4NTcxNDMzNjEMDzA0MTgwMTUwNDQ1MTAxNgwPMDAzNDUyNDc2MDYyNzc2DA82ODE1MjMwMTAwODYwODYMDzMyNTAzMTUyNDM1NTY1MgwPMTczMTI2NDAyODQ3MzAzDA8yMDMzNzc2MTU0ODM0NjEMDzUzMDIzODA3MDQ3NTQwNwwPNjYwNDUxODIwNTMwNDE4DA83Mzc0NzQ1NTQ2NjQyNzgMDzAyNjAzNjc2ODgzMzMzMgwPNjA1NDIxNjg2MDYzODAxDA8wMTYwNzI3MjUyNTIyNDQMDzg3MDYzMDQ3MjMwNTQzNAwPMDMyODAwMzQ3MzE0MTgzDA8wNDg0NzY3Njc2NDY4MTIMDzM1MDMxMjEwMDE2MDA0NgwPMTU3MzM0NTg3NTQzNjUwDA8zMjExMTExNjQxODQ0MDUMDzI3NTU3MDA1MzI1MjA2NAwPMjU3NjMwMTAyNDg1NjE3DA82NDU3NDYzNTgxMDYwNzAMDzM3NzgzMjIxMjM3NjQ2MAwPMjE2MTc2MTE0MTUyNjM1DA80NjgyNDMwNTQ4NTM4MTMMDzc4MTM2MDEzNTI1NTU2NQwPODcwNDEzMTcwMjg1NzU2DA83MTE3NDQ0NDE2MzQwNzEMDzEzNjE0MDAwNDU2MDIxNgwPNDA4MjQ4MjEyNDg4MTUwDA8yMjY1MDU3NTE1MjgyODgMDzY0NzU4MzcwNTAzMjYyNwwPNjUzMjQ1NDMwMzg4MDUzDA8wMTQ4NjUwMDMwNDUxMjAMDzIwNDA2MDA0MjY0NDAzNAwPMDM0MjM4MTUzMTg4MjQ0DA8yMjg1MjQyNjcyMTU4NjAMDzQ0MzE4MDgwNDI2ODUxMAwPMzM0ODA1NzUxMzg4MjU3DA81ODAyNDA1NzY2MDY4ODcMDzg0MzAwMDQ1ODY4NTA1MAwPNTY4Nzc4NjY3ODExMjcyDA8zMTUxMTcxNTIxMzQ2NjEMDzg0NTQ3NDMxMjQyMTYxNwwPNDYxMDIzNjQyMDgzODMyDA8yMTQ3MDM2MTg0NjM2NTIMDzM0NTQyNTIyMDU1MjQ3NwwPODMwMDUzODczMTA2NjcyDA8wMDUyMjEwMjc4NTE2NDgMDzE1MjY0Nzc1MTE1MTM2NAwPNzI2NDQxNjM2MDYwNzMzDA82ODU3MTgzMTIwNTA1MzEMDzI2NDM1MDIzODI0NjI4MAwPNTA0NDU0MzYwMTMyNDUyDA84Mzg0Mzc1NDI1NzA2MjQMDzQyNzQ2MDQ2NTE1NDAwMwwPMDQzODExMjEzNTM3NzYxDA84MTE4NDc3MzA4NjE0NjgMDzUxNTI1Mzc0ODEzMTQwOAwPMDQ1NDU0MDg4NDYyMTUwDA82MzE2Nzc4MTYwNTE2MjUMDzU4MzI4MjcwMTEyMTY0NAwPMzgzNTg0NzQ3NTM0MDE2DA8xMDIwNDY0MjUwMjU0MjQMDzU3MDA2NjIxNDQ4NTE1NwwPNDU4ODY4MTg1NjI4NDA4DA81ODUyNTg4NjYzNDY3NzgMDzUyNzQwNTYxODY2NDc0MAwPMjc0MjY4MTczODA3MTE3DA83NzY2MzcwNDY2NDA3NTQMDzUzNTEzMzMzMTM2NDA1MwwPMTA1MDYzMDAxMjIxNjUwDA81ODMzMTY2MjA2NDc3NzcMDzQzMzM3NDYzMDMyMTU2NAwPNDcxMjA0MzgzODAxODg3DA81NjUwNTIxMjU1MzUxMDYMDzM2NTMxODEzNzA2NzMwNgwPMjQzMjg4NzgzMjY3NzI3DA8zNzQxMDg2MjYxMDAxMjQMDzc4MjA4NDIyNzUwMDM3MQwPMzU0NzU3MjYzNjAzMzg1DA83NDM3MTU2MzAwODAwODYMDzM4MzIzNzc3NzMzMTE3NwwPMzU2MjIyMzUwMDc2MTE3DA84MDIwMzQxNjcwMjU1NzcMDzU1ODE1NTI1MjM0NDQzMwwPODE4ODcxMTQ0MDQxNDY3DA8yODQzNDI1NjAyMjg1NzcMDzA0NTQyMDcxNjEzODAwMAwPNzQ4MzgxMDQyMzIxMzgxDA8zNzE1MjA4NjI3MzMyODgMDzMxMjgzMjQwNjYxMzA1NQwPODA1ODgzMDUzNDIzMzUzDA8zODEzNzQ0NzI1MDQ4MjYMDzU2Mzc0ODE0NDI3MjU0NgwPNjE2MTA3Nzg1MTcwMjg1DA8wODQ4NjY2MzI1MTEyODAMDzMxNjEyNzE4NjUxNzgzMwwPMTAwMjQ2MTE1MDU0NzgzDA84NzQ3MTgwNzEzMzc0NDcMDzA1MzQ3NzgwMTEyNDEzNQwPNzcwNjM0MjQ1MzM4MTM0DA82MTQ2NzUyMjY1MzcwNDYMDzU1NjA4MTM4MDMzMTQ0NgwPNTgyMzI1NzU1MjU0MjM2DA8zMzAyMTI1NDcyNjQ0MTMMDzE1NDg3MDE0ODcwNzMyMQwPNTI3Njc3ODIyNTUxNjE1DA82ODY0MDgzNDE2MTQzNTAMDzQyNTAyNzM4NjAxMTc4OAwPMDg0MDExNDg4NzQ4ODY1DA81NTgxMjUyNjg0MzYwNzYMDzE0NzEyODE3NjczNzUwNgwPMzEwNzAzMjI2MTQwODE3DA8yNjA2NjAwODQ0NzQ2MjYMDzEyMjMxNjgzNjUwODE4MQwPNTAzMjA2ODI0MTc1NDY1DA8xMDY3MzIzNDE1NTg0ODcMDzgyMzI4NDcxMjIwMjg0NgwPNTIwMjUxMTIyMTU0MDM3DA80NzE2NTIyMTMxMTgyMTEMDzYwNzAzMjU4MzAxNTM4NQwPNzM4NjU2NjUwMzYyNTQwDA81NjQyNzUwMTg0MTI4MzUMDzU4MDIwNDM4NDg2NzM1MQwPMzYxNjA2NTgxNDU4NzczDA84MTAwNTg0NjA0MDY3MzgMDzA1ODA0MDAyMzMxMjE0MgwPNjg0NDY0MzQzNzg0MjQ3DA8xNjU1NTgxNjIzODQwNzEMDzU0ODA1MDgzMTY0NDczNQwPODU1NjY2NTI4ODM2NTUyDA82NjE0NjcyNjMwNDYwNDgMDzYwMzUzNTMxODEyNjAxOAwPMDE0MjM2MjU1MDM2NzEzDA84NDQ1MjQyNzYzNDc1MTQMDzY3MDc4MzY3MjYyMzYxMAwPMjY4MjU1NjgzMDcyNDc3DA8xNzUyMTY1MzgyODg4MDEMDzg2NjQxMTI0MDc1MzM4MgwPNDg1Mzc4MDgyNTQ4NTY3DA84ODU3Nzc2NTcxNzc1MzAMDzgxNzQyMjcwMjQwNDYyMwwPMzI2MzcxMzYwODcxNDAwDA8yNDcyNDg1MDA0MDY4MzcMDzA2MDE1NzIwNTQwMTIzMgwPNjgxNDMwNDEyMTA4MDE3DA82ODQwNzM0Mzg4MjgxNTgMDzU0MTI4MzQ3ODQyMTE4OAwPNjM2NDI1ODYyNTgxODg0DA84NzM4NjQ4MTc2MDA3NDcMDzM2MTg4MTcyNjQwMTUwNAwPMTM4NTY3ODI4ODAwNjEzDA8wNDE2NDI1MDM2MjUzNzUMDzUxODEzMTQwODg3MDgxMgwPMjcxNTM4ODc2NTEzNzM4DA8xODY4Mjc2MzU0MTEyODEMDzUyMzU4MjQ0ODU4MDUwOAwPMzg1MTg1MTg2ODE1NTMxDA84MjU4MzUzMTc2NDMwNDIMDzU4MzAzNTY0NTgwMzg2NwwPODQ1NTMxMzQ3MTg4ODMxDA84MDUyNzYyODA0MzI0ODIMDzQyMzcwMjAxMDQ4NjUyOAwPMjEwODIwMDA1ODU4MTQ4DA83MzQ3MTA3MjMzNTAwNTYMDzc1NjA2NDYyNTA3NDQzNwwPMjcwMjY1MDMyMTQzMDcyDA8wNjY2NDcxNTQ4MjA2NzQMDzU2NTAxNTE3MzQ3NTMxNQwPNjQ1MjQ3NDEyNTM3NTUwDA81MDY3MjAwODY2NTY4MjgMDzc2MTEwNTQ3NTUxMDYyMgwPNjY4NjMyODg2NzMxNTA4DA82NDE2NzI1ODQxNDUzNjAMDzY2NjcxMjIxODQwNzQ2NQwPNTg0MTIyMTM3MDAxMzIxDA84NDgyMzc1NTQzODgwMjcMDzc1NTg4NzI3MzYxMzI4NgwPMjY1MjI0NDAyNDM2ODExDA83MzMyNjMwMzg3NzAxMzUMDzE4Mjc1MDExMDE0Njc3MwwPNTgwNTUzMzA2MDgxMjA1DA80NzQ2MzMwNTIyMzUzNTYMDzg4NTgxMDYyMjIxNjQzMQwPMjQ1Mzc4ODQ2MzE0MjgwDA8zMzEwODIzNjg2MTM3MDYMDzA4MzQzMTA0NjYyNzE0OAwPMTc3NzgwNTQ2MjQyNzI1DA84NTIyNjYyMDU3MjI0NzYMDzM2NTgxMjg3ODMyMzQ1MQwPNzAzNDA3MTU1MzEzMDcyDA84NzgyODIxMjQwMTAwNjMMDzI1MjU4ODA0Mjc2NDYwNQwPMDIzODAyNjg2NzUyNjI1DA82NDQyMDI4MDUxMjA2ODEMDzE1NzAxMjU1ODU4NjU2MQwPMDM4ODAzNDUyNTU1MTI4DA82Mzc1MjMzNTUxNjUwMTAMDzQ2MjQxNjg3NTI2MjI3MQwPMDEzNjUzODAzODc0MjI0DA8wMTUyNzE0NDI0MzQ4MDcMDzI3NTc4NjcxNjc3MzYwMgwPODA2NDM0MTQ0MzEzMDczDA81NjMzMDEzNTY3NTIwMjMMDzcyMTc3NDI4NzAwMjIzNgwPMTg4ODQzNjEwMzQ2MDEyDA8zNTMyMTE1ODYxNTA2MDMMDzQxMDQyMDA0MzcxNTg2NAwPNTAzODY0NDIxMTg4MDEzDA83NTUwNDI3ODE4MTA2MTQMDzAxODQ4NzI0NjYyMzQwMgwPMDg2MDUxMzIwNDI4MTM1DA84ODcyMDc1NDU1NjA3NDMMDzg4NDQwNTIxMjExNzA2OAwPMDg2MjY4NDY0Mzg3NjA2DA8zODIwMzY2MzQ4NDEyNDYMDzI0NzI1MDExMTI2NTQ2NAwPNDA0ODQzNTIxNjg3NzAwDA8zNjg3MDEwNjcxNDM0ODMMDzgwODA3MjY0NDI2MTE4MwwPNTYzNTEzMDgwNTIzODI3DA82ODExMjczODg0NzY1NzUMDzY3MjI3MTcwMzQxNTcyMAwPMTA3NzcxNzAyMjU1NDY4DA8yMzc1MTQxNzY0MjMwMjYMDzQ4ODgxMzM2MjcyNjMwMgwPMzYwMDAyNTUyNzYwMzE4DA8yMTA0MzgxMDAwNzM0ODYMDzUzNjU2NDY2MDIyNTEwMwwPNDU3NjcxMjM0MDUwNjYxDA84Njg2NjY3Nzc3MDAyNjUMDzI2NzExNTEwMzQ0MjY4NgwPODc2MjYwMzUwNDExNzE2DA8wNjY2MjUxNTExNDMyMTcMDzIzNTI3MTMyMzM0MzUwOAwPMjg1MTgxNjI2NTU2NDAyDA82MDA0NzAwNzE2NzcxMzYMDzE3NDc3Njg0MDA1MTc3MgwPODY4ODczODUyNDI4NjgyDA81NjE2ODQ3ODYyNjczODYMDzMzNTI4MDA0NzMxNjg4MgwPMDM4Mzg3ODMzMzY1NjU4DA8wMzc1MDMxMjc3NTU3NzcMDzc4NzA2NTAwNzE1MDI0NAwPMzcyMjUxMzEyNzYwNjI3DA8wMTcxMjIxMTc0Mzc3MjIMDzM3ODMwMjA0NDU0MDc3NQwPNDgyNzY2NDYyNTYxNzE3DA8xMDY4MDY4MTE3MTg2NjgMDzEyODM3NzQ4NDA3MDE2MgwPMzE1ODUwNDYzMDY1MzIxDA84MjAxNTEwMzQxNjcyNTcMDzY3NzQ0NTQ1NjAzNTcxNAwPNTY0MTQwMjY2Mzc4NzM2DA84ODc3NTc4MzU1NTMxMTQMDzQzMTUyNTcxODI0MjYxNAwPMTAxNTIyNjEzMTIwNTg4DA83MzUyNTczODcyMzIwMzQMDzAyMzQ4NTg2MDQyNzE2OAwPMjUyNDUwNDgzNzU4NjU0DA83MzQ4MjE4MTQzNzcwNjUMDzg4MDgzMTA3ODU3Mjg1MwwPNzUyMDE1MDgxMTQxNTcwDA8zNzc4ODYxMTU4NzMzNTcMDzEwNTgzODcxNDI4NjY0MQwPMjg3NzEzMzE4ODE4NzEyDA8wMzUwODg3NDU4MDI1MTAMDzc2NTU4NTMxMzM0MzI4MAwPNzg1NzAzNjExMjczNjgzDA80MjQ2ODcxMDc0NTM4NTcMDzQ3MTc2MTQ3NzUyMjQwOAwPMTIxODY4NzM3NzY2MTAxDA8zNzg2NzAwMTY1MTQ2NjQMDzg4MDE1MDY2ODIyNzA2MwwPMzQ3NjM2MzI1NzI2MDYxDA83NzUzMTY0ODQ0MzU3ODAMDzU3MjMxODI1ODY2NTcyMAwPNzQzODI2MzIxODg0NjE1DA84ODU4MjQ1NjQ0ODczNDYMDzc1NjA0NjYwODU3NDE2OAwPMjIzNTI2Nzg0MDI0ODM2DA82NjQzMDA3NzQxODA1ODYMDzYwNDAxMDcyNTUwNDQ2NQwPNzY0MDE4Nzg3NjAyNTUxDA8xNDI1MzMyNTQyODczMjAMDzEzNDU3ODYxMTgzODU0MAwPNzM3NDU1MDcxMzEwMDU1DA8zMDMwMDg4MTI0MjU3MzMMDzc0ODU3MzU3MDIwNjcwMAwPNDIxNTAxMjA2MjU0MTE2DA80ODMzNjg0Njc1NDgwNjQMDzUyMTIyMzU4ODYwNzAzMgwPNTUyNjg3NTAxODI2MTY1DA80MTM2MjQwMjUwNzYyNDUMDzU2NjI3NzYwNjMwNzUzMgwPNzgwNTc4MzMzMjgwODA2DA84ODIxNjMwODc1MzIwMjUMDzI1ODI0NTc4NjU3NTcyNQwPNjMwNjIxNzEzMzQxNDU4DA83MjQxMjA1NTU2MzY2ODgMDzUwNzE4MDUwODU1NzA1NwwPNDQzMTY1MTc4ODA2ODMyDA84NDYzNTE2NTc1MDgzMTgMDzM0MDEyNTIwMDQ4ODY2NgwPNzg4MjcwODE2MDEwNjQ4DA82ODEyMjczMDQ2MzE2NTcMDzU0ODYxMDEzODMxNDgyMAwPNDI4NjA0Mzg2MTc2MTIyDA8wNDU2ODQ2MzU1NzcyNTgMDzU3MTEzNTMyMjg4NzIzNAwPNTQ2MzMzMjYzMzU3ODc4DA8zMDgyNzY2NTY0NzM0MDUMDzU0ODQ3MTMzNTM2NTYxOAwPNjY3NjM0MjIyMDE0MTQzDA8yNTMwNTcwMDI2ODY2MDcMDzc0NDUxNDgzNDc3NTA0NAwPNzMxODY2MzA0MDgxNTc1DA82MjU3NjcxNDgwNTc2MjcMDzY4NjQ2NzI4NDI4Mjc3MwwPNDAzMDUwMDM4NTQwMjAzDA8xNTQ3NDYzNzIyNzY1ODcMDzEzMTY1NTc3Nzg2MTE0NgwPMzY4Njc2MDMwMjQyMDMyDA8zMDY2MjM4MzYzNDY1MzMMDzUzNDgxMDc2NzI4MjI2NQwPNjYwMDEyNDA0MjI1NDU0DA8zMTg0MDc1ODYwNzgwMzYMDzMzMjQzMzc1MDg0NDUxMgwPNTA1MjMyMTE0NjgyMDA0DA8xMjYyNjcyNDM2NzQ0NTIMDzQ3NDQzNDYyNjAwMDA4NgwPNTY1MzI1NjMzNjcyNTQyDA8zMjc3MjMwNjUxNDcyMTgMDzcxNjQ2NzEzMDg2Mzg1MwwPMDQ1MDI3ODgzMzQ0NDYwDA8wNDQ3Mjg1MTA0MDE2MzUMDzU4ODgxNDYwNDg1Mjc1MwwPNDgzMzY0ODIzMzYyNjUwDA82NDMzMTUzMTcwMDgxNjQMDzAzNzQwNjEzNjM3Njc1MwwPODYzMjg2MjQ0MzgwMzQzDA80NjMyNzUzODMxNDMwMzcMDzM2NTQ3MzU2MDc0NjMyMgwPODc4MzM2NjY3NzI3NTQ3DA8zMDU2NDYzMzcwNjczNzEMDzM3MDA4MzE1MjY4NjE1NwwPODg4NTM1NzY3ODg3MzAwDA8zMzYwNzUyMTIxMjI3NjIMDzUwMDgzNTM0MTExMTQwNAwPMDQzNjg4NDg4Njc3MTE3DA82NDY0MzIyODM2MTAyNzQMDzE3MTIyMjA3ODIyNDgwMAwPMjUzMDEyMjg0NTg2MjUyDA80MzYyODIxMTg0NzU3MDQMDzgzMDQxNDU4NDM2MjQzMAwPNzY2ODIzNjYzMTI1MDI4DA8xMjAzODEyNjI3ODE3MTEMDzAxNjM1Nzg2NTg3MTQ3MQwPMDMyNzM3Nzg2MjgyMzY4DA8wMjYzMzAwMzcxNDUzMjEMDzgwODcyMzU1ODQ0MTgxMgwPNDI4MjMzMzI1MjQ1MDgyDA8xODgwMzAyMTczODA4MjcMDzI1MjYwMzI0NzcxNjg0MgwPMDE4MzM1MjA4NDAyMDczDA8zODgzNDQxMzMwNjU4ODgMDzAxODUxMjAwMTE1MTY2MQwPMDgzMjgzMTM2NjY1NjcyDA84NjMzODU3ODU0MTIwODgMDzgxNzg0MjQ2MjUxNTA3MQwPNTM2ODA1ODIyNzgxODU1DA8xNDA0NjYzNzY3MzQyMjQMDzMxNDUxMjgwODQzNjEzNgwPNzUzNjY3NTAxMjgzNTE1DA8zMjQ4MzM1MTMyMzEyMDcMDzc0NTMwMTY4NjI1MTg2NwwPMjE2NjMwNzM3NjEzNjM2DA81NzgxODUxNjY2Nzg1NzUMDzc0MjI0MDQ1NjI2MzU3NQwPODA2NDUyMDQyMzI1NDg2DA81NTAwMTExMDgyNzg4MjMMDzQxNTIwNzM3MjM4NDc1NAwPNjIwNTA4NTUxNTMyNDEwDA80NTM4NTYwNzA1NjgyNDAMDzE1NzY1MDIwNDM2NjUyOAwPMjcwNDUyNjc3Mjc1MDc1DA8wMTgyNzE2NTIwMDU1MjMMDzU2Nzg0NjA0NDI0MDEyNQwPNDYwNTgxMDUwNDg1MjM3DA80NjM1NTQwNzgxNjMxMzYMDzQ3ODAwMTAyNTAxMzU4NAwPNDc3NzUwMzEyMDg4NzYwDA84MDU1MzQwMTYwNzUyMDEMDzg1Mjg2MTcxNjQyNzExOAwPNzU2NjA3MzEyMzcwNTg2DA81NTQ3MTQ4NTAwNTQ2NTAMDzEzMzI2ODQ2MzMwMDMwNQwPMjYyNTU0MTYyNTU3NTMyDA80Mjg3NjI4NTc2NDE0MDMMDzg1MzQ1MzEyMTgzNDY0MAwPNDAzMTgyMjU4MDU0NDQ2DA84MzYzODAwNTczODY4MjgMDzIzNDAwODQxMzIzMDIzMQwPNDg4MzE1NzA2MDQ0ODAyDA82MzY4MjI3ODQzMTczNjUMDzg2ODg1MTU3NTA1Njg3NgwPNjY0NDAzMzA4NDIxNzMwDA8zMzI4MTQyNjA0NDExNTEMDzYyNTY3NjcyMjI4MjM1NwwPNTc1NzYwNDAyNjE2NzQyDA8xODQ1NTg4MzE4MzI4MzYMDzg3MDIxMDMxNjM0MjczMwwPNjg1NzQyMDg1MjYwNDExDA83NTY4ODU3NjUzMjczMzYMDzA0NjU3MzQ4MzU2MzYwOAwPNjE3MDQyMTU1ODEwMDgyDA84NTU4NDU4NzIxMjExNTgMDzc1MzYzNzI4MDgyNDIyNwwPNTM3MzAzNzU0MzYzMTI3DA81MzYyNjU4NjQ0MzcwMjIMDzc3MjcxODU4ODcxNDI0MwwPMDUwNjY2MDAwNTgyMzE3DA81MjE1NDY3MDYwMzYzMTAMDzczODQ1ODcyNzU1NTY1MgwPMTE1NTUwNzYxNjcwNzQ4DA82NzcwMDcyNjgwMTQzNTEMDzI4ODU3NTgzNTA1NzI1NwwPMzcxNjIzMjQyMjgwNzQ3DA8zNTU2Njg2NDAwMzgwNzQMDzQxNzExMzQ4ODQ0MDc1NAwPNzY2MzAwMjU4MTI2NzcyDA8xODU1ODE0NDUwMTM2NzMMDzg1ODIzMDY1NjYxNzY2NQwPMzIyNjQ2NzA3Njc3NjU3DA83ODg4ODU2MTAxODczNzIMDzc2MDgyNDcyMDI4NzcxNwwPNTc4Mjc0MTMzNDM3MTgwDA8yNDEyMzMzNDE4NzEyNTIMDzcyMjg3MjQ4MzY4MjA1MwwPNTQ0MDQyNDIzMzU2NDQ3DA83MjI2MDg3NTUwNjQ4MTEMDzM1NTE2NDU4NTcxMzcyNQwPNTE1NDI4NTQwNTQ0NzU0DA8yODUyNzU4NTE3MDc4NDcMDzY0Njc0NjUwMTEwNzQ2MAwPMDA3MDczMTQ1NjU1NTgwDA8wNTIzMTc1ODA0MDQ2NjQMDzUwNTAwMTY3NTg2MjU2MAwPMzEwMzQ4ODA0NDQxNzM1DA8wNzE0NzI1NzA4MTYyNTAMDzYzMjA4Mjg0NDY4MzE3NQwPNjUxNjY2MTgzNDY3MDI4DA8zNDgxMjA0ODI1NzM2NDgMDzE3MjUwODIxMDUxMTg2NgwPMzg2MTI2NTYxMzM3NzMzDA81NjAxMzU2MDYwMjE2ODcMDzI4MjY2NzgzNDUwMTI1MgwPMDIzMjY4NzIxODYxNDEwDA8xNDE4NjgyODg1MTQyNjgMDzcwNjMyMDQ4MDYyNTQ2NQwPNTA0NDMwNzE1MTA4NzQxDA8xNTQ4MTAwMjU4NDMzNTAMDzgxMTY4NjYyMTEwNTY0NwwPODY4NDM0MzU4MDY0MTA2DA82MzE2ODQ2MjMzMDA3NjgMDzgxODc0MzgxMDc2NjY3OAwPMTE0MzQyNDI0NTYwMzE2DA8wODU0MDQ3NjM4NTc4NjEMDzM1MTAyMjcyMjE4NzI0NgwPNzc2Njc4MzE3NDMyNDAwDA82MzIwNDE4Mjc2NzEyMzEMDzc2NDA3MjEzODMxNjEyMAwPNjMxNTUxODMzMTc2NjA2DA8yMzIwNDA4NzQ1NDc1MzcMDzI2NTA2MjExMjEyNjEyOAwPMjc0NDM1MDgyNzIzODYyDA80MDI0NjA0MjAwMzIyNzgMDzgwODg0MTI0ODExODYwMwwPMzAxMDM0NDE0NjUwNjcxDA8wNTc4NTM0ODc1NTg2MDIMDzc2MDYxNTMxNjU4MzAxNgwPNzgxMTgyNDIxNzUwNTA4DA8yMTEzNzY3MDczNDExNjYMDzc0MzM0NzQxNDgxNzI4NwwPMjg4NjE3NTM4MDQ0MjY2DA80MDMwODExMjE0MzE2MDEMDzc3NDU1MDgxNDQwMjYzNwwPNjc2NDQ2NDEyMjUzMzUxDA80NjE4ODQwNDgyMjI0MTMMDzQ2ODcwNDc1MDEyMzM1MwwPNTA4MzM0Njc3NjI1ODYyDA82NTY2MzEzNjQzMDE3MzIMDzcxMzI2NTgyNTUyMDIwMgwPNjIzMTQ2ODM0Mjg3NzI0DA8zODIwNTg3Mjc2Njg4NjcMDzA3MjcwNjYwNzc1MTUyMAwPNDg1NzY3NDI2NDU0MDE4DA84NTI0MDAzNTE2NDY1MjIMDzIyODEwNTgzMDY0MTM3NgwPMDAzNDczMTIzNTYwODcyDA8yMDA1ODA0Njg1NzY0NDIMDzc2MDg3MTc2NzUzNDUyNAwPNzg2MDI4Mzg2NTAyNDE4DA8xMzY4NTAwMTg1NDA4MzMMDzIyMzY1MzA3Nzg0MjQ1OAwPMTI4NzM4MDg3MjcxMzQyDA8xMjA4Mzc2MjQwMjQ0MzIMDzA3NTE3NTgxMzA2MDc0NAwPNjM4NTY0MTAyNTEyMzMzDA8wMjE4MjcyMzA3NDQ3MzUMDzAzMjAyNTQzMjc1ODUwMgwPMDY3Nzc1MTc1MDAzMjMwDA8wNzc1NDc0ODgwMTg0NzIMDzc0NjcwNjczNTAwMzMyMQwPODQ4MzgwODA0MjAxNDExDA8zMTQ4NTYwNTI0MzQ4NjAMDzI4ODAzNDUyNDI4MjQ0NQwPMDIyNTI4NTExNzg2NDQwDA82MDQwNjgxMDg1NzA1MjMMDzY1NTYyMjY3ODcwNTE2MgwPNTY0NDIxMDIyNTI3NzQzDA8wMjE1MjE3MDI1MDI4ODQMDzYzNzgwMTY1NTA0MDc2NwwPMzA3MTE4NDExMTc2NTU3DA8wMDYxNzI3NTM0NDQxMjAMDzU1MzgxNzI4Nzg4MDA3OAwPMzI2MjU2NjQ0MTIyNDc3DA8zNTgyNjQ0NDI2NzQ1NzcMDzQyMTg3MDg3MjMyNDIwNQwPNTE3NTMzMzE4ODY1NTE1DA81MDQ1Mjc3NjI1ODQ3NzAMDzcxNDAyNDQxMjEyNzgzOAwPNTIzMTYxODE4Mzg1NTEwDA8wMDI3Nzg2MzEyMDQ0ODQMDzMzNTUxMDcxMTYxODAwOAwPNDU1MDYwODMzMzMyMjM4DA80NTM4NzExNjE1MDg1MDMMDzQ0MzQ3MjUxNzM4MDU2NwwPNjIwMDM1MDg1MzU0NDcxDA81NjE4NjMzNTE2MjU0MDUMDzE1Mzc4NjYwMDgxNDM2NAwPNzgwMDgyNjEzODc2MzgzDA81Njc0Nzg1NTg0ODczMjcMDzM1NTIwNDg4NTMwMTM3NAwPNDA4MDAwNzU3MDQzODYxDA81NjgxNjQ1ODcyMzIwMTgMDzQ4MTUzMjMxODUyNzM0MAwPMzE0NDI0NjY4Mjc4NDg2DA81NDc3NzIwODcwMDU4NjMMDzMzMjExMTUwODMzODI2MgwPNDU3MjI4MzM3NjAzNzAwDA80ODQyODAzODQyNjg1NTYMDzEzMjMxMjQ3Nzc3ODQ2NAwPNjI3NjQyMDY2NTA0MzUzDA82NTAwNjEyMTIxNjY2MzcMDzE1MTA3ODY0MTc3NDUwMAwPNDEwODIyNDIwNzcyMDg0DA83NjEyMjY3ODYxODU4MjcMDzcxMDMyNTE1MjcwNDIxNAwPODY2NjU4MzA4MjEwMjcyDA80MjI3ODc4NDg1NTg3NDcMDzgzNzcxNDQ4MTI2MTg1NwwPNjM1ODY2MTA1MTIxMTcxDA83NDU2MDExNTM2MzAzNzUMDzg1MjUyNjE3MjM1MDUyOAwPNjI1MDM3NzY2MTc1MDc0DA84NzAyNDIyMjMyMjAyMzUMDzQ0MzQwMDMxNTYyNTY0NAwPODUzNDUyNzgyODAwMzcxDA8xMDM1MTY3NTY0NDgzNTYMDzQyMzUxMzYwNjcwMjUzOAwPMTcyMTAxNDg2MjcyNDUxDA80MzIzNDI0NDg3NjUwMDUMDzc1NjI4MDAxNDU1ODQxNAwPMTE1NjU2ODE2NzAwMDM0DA8wMjc4MjQ0MDc3MzU4NTIMDzM1NzYxNTgxMDYyNTA4MAwPMTIwNTQ4NjUzNTgwNTgxDA80MTI2MDg3NzAzMjI4NzMMDzYwMzgwNjQ4NjIxNTY0NQwPODQxNzE1NjIyMzQ4NjczDA82ODI0MjQ0MDIzNjUwMzcMDzQ0NzQwNTU0ODI1NjI3MgwPMTEwNDQwMTMwMjIyODM0DA8xNTQ0NDMzNzU1NjgzMTYMDzI3MTExNDU4MTYwNjM3OAwPNDIyNjU0MzI0MzM2NjA3DA83NjQ0MTQ1MDcyNDg0NDYMDzE3MzU3NzgxMjE1NDQ2MwwPNzcwNjAwMzAxMzgwNzAxDA80NTM0MzYzNjQwNzIwMjEMDzgzNzIyNTQ1NTUyMjAyMgwPNjAyMzQ2MjIwMjUyODA3DA84MzAyMDExMDQwNjA2MjIMDzUyODQ4NTgzMzg2MDI4MwwPMTc1NDc2NTA0NDQxMDQwDA83MTM1NDE2Njc3NDE2NzYMDzIwODU2NDcwMzYyNDU3NwwPMDA4NDcwMDIxMjg4MDU3DA8zMDAwMDA1ODIwODQ4NzYMDzE4MzI0NzEwNDIwNTQxNQwPMzEzODY2NTA3NTM0NjI1DA8zNzcwMDcyMDgxMjgzMTMMDzIyNzQ2ODIyMjE0MDIzMAwPODE2MjU3MDEyMDI0MjE3DA83NjAyMDMwMDY4MTM3MTEMDzQxMjgyNTE0NTQzMzIzOAwPMzI2MzU2MTE4Njg2NjQ3DA82NTM2NDIwMTcwMzI0MzMMDzEwODQ3MjYzMDAxODc1MAwPNzM3MDI3ODI4NDUzNzQzDA8xODQ4NzI1MjI1NDg1NzIMDzgxNTQ3NTA1MzYxNDEzNwwPNzUyMTg2ODY3MzYzMzMwDA82NTM0MzgyNjU0MTQyODUMDzIwMjQyMjI1MTA1NzQ1MQwPNzE1MzQ1MDI2MDY0MTIwDA8xNTcwNjc0MzM4MzA1NjUMDzcxNDcyNjIzODQ4MTA2NwwPMjg0NjM4NTY3MjM1MDYwDA8yNzQ3NjAzNDc3NTMwMzEMDzIyMTYzNjgwNTE3NDAzNQwPNjgzMjI2MTEzMTUxODA1DA82NTgwMzE2NDIyMzU0NzQMDzYyNjQwNzYyODAyMjAzMwwPMjIxMzgxNDgzMTMyMzI3DA8xNjU2NzEwNTI3ODI1NDgMDzY1ODgyMTU2ODU2ODY2NAwPMzY3MTU3NDUxMjIxNzU3DA8zNzMzMzUyNTE0MDgzODYMDzcwNDYwNjYwNTEyNzA3MwwPMjgzODg0ODU2ODI1MzA3DA8wODQzNzIyMzgwMTYxNzMMDzM3ODAyODExNzgyMjE3MgwPMzU3MjQ1MDI3MDQ1MDM2DA82NDUxNzAzNjg2NDQ3NzUMDzE1MDQyNTY0MDAxMTUwMQwPODYyMDMzNDQwNDgxNDcwDA82NzE4MDgwMTU1MDUxNDUMDzQ0NDI1NjQ3MjA1MTQ1MQwPNTU0MjM1MzI1NTg2MTIzDA84MzQ1NDUwODgyMjA3MjEMDzc4NjU1MjIxODYwODIxNQwPMzgyMDU1NjIyNTE0ODMwDA81MDMyNTMzMzExNDcyNjcMDzAxNDc2ODA4MzA0MDgzMQwPNTE0MzY4ODgxNDQxNTI0DA84ODMyMTUzMDMyNTQxMjUMDzAyNDQyNzE2MTIyMjg0MQwPNjI1NTYyMTQ3NDc2NDA2DA84NzM4NTA2MTgxNzc3MTMMDzIyNjM2NzU0MDczNjAxMQwPMzYzNjA4NDQ0Njg4MDEyDA80NzMzNzYzNTAwNzc2ODUMDzY3NTA1ODUxMDY3NDgwOAwPNTc1MDM1NDYxMzg2NDEyDA80NjU4Mjg0Mzg0NjY4MTgMDzIwNjE2NTg4NjU1NTczMAwPMjUzNjQxNDQzMTEyMjA0DA8xODE1MTE0MDI3NTA4MzMMDzU2NDYxNDQ1MTAxNTM3MgwPMDEyODQ2MzI2NjM2MjUxDA8zNjUzMDg2ODgwNTY3MjYMDzg4Njg2NjA2ODEzNDQ1MwwPNjM4ODMwMzEyNDA4MzgwDA81NTUzNzA4MDc2NTI0MDcMDzE2NDY0MTI3NzE1MjM2MwwPMzg3MTA2NTg4NDQ2NjEwDA8xNTIxMTc4ODY2NjI1MjYMDzU0MTU3ODIyMzQ1MjEwNAwPMDQ3MTMwODYwMzU0NDA2DA84MzQ2NDA3NTI4MDQ1NTcMDzExMDc4NjcxNDQ0NjI1NwwPMzUwMjEyMzAzNjgwMTQ0DA8xODc4ODI4ODQ3NDIyNzYMDzg1MzU1NDg4NTg0NTMxMgwPMTQ2NzY3MjI0Njc1MTY1DA84MTY1MjEwMjU0MjIwMTUMDzM1Nzg2NzMzNTczMTc1OAwPNzQwMjUwNTgyMDI3MzM0DA84MDcwNzA0NzUyNDA3MTQMDzcyMDA0MDI1MTgwMzczNwwPMDMyMjI4NzU1ODA3NDcwDA8zNDY0NTQyNzA1NDIxNTEMDzQ0MTMxODAyNzA4NzMzMAwPNjg2NjEyMDgyNjEwODg3DA8wMzUwNTY4NDQwNjA4NzMMDzUzMTc1NTQ4NDg4MTQ2MwwPNTc0ODA4NDUyMzU0MjU0DA8zODQyMDUwMjU1MTUwNTEMDzgxNTU1NDAwMjg4ODgyMwwPNjg0MDMzMDYwMTc4MzYzDA8yNTE3NDc3MjU2MTEwMTIMDzUzODQ0NDcwNDgzMjUwNAwPMDY2MzUyNTQzNjQwNTI2DA8xNjY0NzU1MTAzNjAwMjIMDzMwODE3ODA0NjI3MDQ2NgwPNTEyODQwMTI2MzUzMjYzDA82NTU3NjY3NzE0NDU2NDYMDzIyNDc3NjQ4MDE3NTc1NQwPNDc2MTAwMjYyMDMwNzQzDA8xMjE1NTExMDc3MjYxNDcMDzExNDc2NTMyMDU0MDEyNQwPNzY1Mjc2Njg0MTE1MjQ1DA80NDc1Nzg1NDgwMzEwODAMDzQ0MzgyMDY0ODQ0MDYwNgwPMDg3MDAwMDgzNjIyMDMwDA8yNjg4NDM3MzYxNDM2MDUMDzgzMjMxNTM4MTQ3MzE0NgwPMzI2Njg1MjI4MjYzNDM3DA81ODgxODAxMzUwNTEwNTAMDzQ0NTEzNDYwMDUxMDA1OAwPMzI3NzQxNjUxNjU3MTU1DA80MTYwMTgyNTQwMjg1NDUMDzQ3MDE2MDE3MTE0Mzc3OAwPNzYwNjAxMjU3NzgwNjgwDA80NjE1MzQ4NDU1NTU3NjcMDzU2MjIzMzYxMzAxMTcyNgwPMTQzNzE2ODMxMTg4MjI0DA8wNDM3ODQ3MzU2NDYzMzEMDzg1MDU3MzQ4ODEyMTYwMAwPMzEzMTA3MjIwMjM0MjMxDA83NTczMDcyNjE2NTMzODIMDzE2MTEwODYyNjY1Nzg2NAwPNTUyNzUxMzAyNDA3ODg1DA8yNDA2MTg2MDc1NjEwMzgMDzA0NTA2MzcwNzQyODQ0MgwPODUzNzA1NTIwNTYwNzY2DA8yNTI4NTI3NDU2NTQ4NDUMDzMyNzE3ODIxMjMwMjc1NAwPMjMxMzA4MTE0MzU3MjE3DA8zNDQ3NDU3ODY4MzIxNzQMDzI0NzM0NDc3MTI4ODE4NwwPMzM2ODEzODAxMTUxMzg3DA8xMTU4MjU1MDAxMzg2MjIMDzQxMTcxNDQ4MjAwMjAyNQwPMjQ0NDU1MjYyNjA4NjIyDA8wMDUzNDgzMzg3MjI1NzYMDzY1NzM2NzExMTc4NjYyMQwPMDE2MDU0MTIxODY3NDcwDA8xNDU2ODcwNDY4MDEzMjAMDzIwNTg1MjYyODE1NzA4NwwPNTIyNDY4MjQxMTQ2MTU1DA8zMzY2MjMyNTY4MzczMjUMDzAxMTMzNzg3Nzc0ODU3MgwPMTE0ODU4MDEzMjE4NTIzDA84Nzg1MDc0MjYwMDgwMTIMDzQ2MzM2NDE4NzE1NjYyMQwPNTcwMzMyMDYxMzI1MDUzDA83Nzg1MzA4ODQ2NTMyNjgMDzMzNjgxMjIxNDQ0Mjg3NwwPNjIxODI1MjYxMzMxODQzDA8yNTc1NzU3MTc3MzI1MDIMDzYyNDQ4MjU3NTI4NTAyMAwPMzQ4NDA1NjU2MTUyMjI3DA83NjY3MDAxMzU1MTQ1NzIMDzYzODM0NDE1MjUzMTcyNgwPNjAzMjEwODA1NzIyNzU1DA84NzAxNjcxMTM2ODU3MzYMDzYyMjI4NjQ0NjIyNTM4NgwPODcwNTgyNzYyNTg1MzUzDA8wNDMzNTg2MzAzMjU2ODcMDzc1ODI2NTA4NDQzNTA0MQwPMDM4MjM4NzI3ODUwNTQ2DA83MjYxMzQyMDgzMzYyMTEMDzU2ODM3NTIxMjU1MDgxMwwPNzM0MDQyMzExNDMwNzQ2DA83MDU3NDIwNTcyODU3MDQMDzg4NTA3NzAxNDYxMDc0MQwPODExNDI3NTA4NDgxMTIyDA80MzM2MzQ0NjQxNDU3NjQMDzc0MDAxMzY3NTc4MzE2MwwPODg1MzUwMzI2MTcwMDc4DA84NDQwMzY3MDI4MzYxMzQMDzc0ODA4NzY4NjA2NTcxMAwPODA3NDg3MTU2NzcyNjg3DA82NDY4NzIzNzU1MDU2NjcMDzI4NTE2Nzc0NTgyMDY1MwwPNDY2ODczNDUxODI0MzE4DA81NDg2NzIzMzA3MDgxODQMDzcyNjQ1NjgwMzI2MDI3NwwPMzE1MDM4ODAyMDY1NDgzDA83NjEzMjczNjM2NjM4ODEMDzQ2NjUzMzYyMzg1MjcwNAwPMTQ4ODE4MTQ4ODcxODE1DA82ODQzMDIzNDc2ODU4MDYMDzUzNjEyODQzMzMwMDgzNwwPNDAxMzQ4Njc0ODg3NzE0DA84NjQ1NzU4MDI4MTg4ODYMDzc2NTQ3NzIwMzIzMDEwMQwPMDA4MTI2MjA1Mzc2NzA0DA8wNjM4NjAwNTI4MjY0MTQMDzY4MDg0MTc0Mzc3MTQ2MwwPNDUyMzg3ODU4NjEzNzA4DA80MjYyMjA2NTMwNTIwNTMMDzc3NzM1NDE1ODQzMzg1NQwPODcyNDc2ODQyMzY4NjI3DA82NTQ3NDQ3NjMwNTMyNzUMDzg0NjU2MjMxMTYxNjYwOAwPNzEzMTUzNzM3MTE1MDMwDA8yMDQ2Nzg2MjczMTEzNjUMDzU4MTYwNDcxNzIwNjY0MQwPMTYxODIzMDIzMTUzNjEyDA83MTgwMDM4MDEwMzc4NjAMDzA2ODQyNDc0NTQwNjIzMQwPMzU0NzQyMzc2NDQ4MDU4DA8wODc4MzUyMjc4MTc3MTcMDzQ4ODYzNDEyNjExNjMxNAwPMDA0NDAxMDE1MDc2OTc1DA8wMDQ0MDEwMTE0Mzg0MDEMDzAwNDQwMTAxMTQxOTc0MAwPNjUxODAxNjc4NjQ1MDA0DA8zNjgyMDMwMDY0MDIzMjgMDzAwMDAwNTA2MTY2NTYwMAwPMzczNjczMTAyMjE1ODY3DA81NTAwNjE2NjQzNDcxNzAMDzI3MjgzODQ4NDUzNjcxNgwPMTUyMTM4MDIxNTg0MTAxDA8yMDMxMTA1NjM2MzM3MTgMDzQzNDI3MDYyNzMzODEwOAwPMzY4MTUxODcyMjE0Mzg0DA80NzI3MjI4NzExNTg4ODQMDzYxMzMxMjMwNjQ2MTA1MAwPODgxODgxNzEwNjI2NzI0DA8xNTIxNTE3MjA2MzEyMTcMDzA0MzUwNzIyNzU1NjQyNQwPMTY3ODAxMzIwNjIwMDQ4DA83MDQwMzU4MzEyNTQzMjIMDzQ3Mzg4MDM2MDg3ODE2MgwPMTE3NTQxODEwMDM2NTg1DA83NDIxMjQyMDUxNzYxMzIMDzEzMzg4MTI4NDM1MTUxMQwPNDE1ODcyMjUwNDg4MjYwDA8yMzUwNjIzNjcyODMzMzYMDzQyMTU3Mzc4MjMxMzcxNwwPODU2MjIxNjM2NTQyODM4DA82Mzc1NDI2MTI3MDUxMTcMDzg4ODU2NDAyODYzMTA3MQwPNzg4NDc3MjM1Njg0MjEzDA8zMzA0MjQxMjQ0ODM0MTgMDzI3NTQzNzExMTQ0NzIzNgwPNTMwNjQwNjM3ODIzMjQyDA8xMjExNDIzMjE1ODI0NDUMDzMxNDY2MzMzNjQxMDUzMgwPNzI1NzE2NDI4NDIzNTIwDA8zNjM4NTYyMDI0MjYxMTQMDzIzNTUxNTY2MzI0NDMwMwwPNjI4NzYxMjE4MDA4MjY4DA8xMzg0MDcxNzM0ODY3MTYMDzYzNjYxMzI2MTM3NjU4MgwPNTg3MTE2MjcyMDcxMTEwDA8yNDA1NDAzMDQzMjc3NDgMDzM0MTYxNDI2MDMxMDI3NAwPNDQwNTc4NzE0NDM1NjI0DA82MTc3NzY0MTYwNzUwMTMMDzA1NDE1MTAzNzI3NzYxNgwPNjMzNDU2MzM0NTQ0NjE2DA8wNjU3NzY1NTE4NDQzODIMDzIxMzMzMTU4NTY2ODE1NgwPNTgxNTAwMjY2ODY3NTIwDA81NDMzNDI4NDYwNzc0MzcMDzAzNjM3NTcyNzgwNjc1MAwPMDcyMzQ2ODg0NTU3MDg0DA8yMjcyNzYzNzIzODcyODYMDzEwNDg3NjUwNzUxNTU4MAwPODIxMDY1MTIzNjM4MjU1DA83MjMwNzc1ODA2MTE1MzEMDzI2MDYxNjMzNDIwNzU0NAwPMzU2NTY0NjM4MDYxNzQxDA8yNDY4NzMzNTA3MjgyODAMDzIyNTgwMjIwODI0NzcxMwwPNDQ4MTQ3MzEzNzAwODM0DA82MTYwMzg4NTgzODYxMDMMDzc4NjcyODgzODg2MjA3NQwPNjgwMTczNTYxNzgwMjg0DA81NjA4MzA4NDcyMDgxMDAMDzYyMjM0ODI0NjIzNTY3NAwPNDA3NDc4Mzg0MTExMzQxDA8xNDgxMDI1NzU3MzA3MjEMDzY1MDY1ODI2MTQ1MzE3MQwPMDgyMzU0MjIwNzQ2NzU3DA82MjQ4MjY2NDc4MTE1ODIMDzI3MjI2MTI3Mjc0NDA0NAwPNTIwMjIwNzgwMTc2MTY2DA81MDE1MzI4MDE0MDgxMjUMDzI1NDMwMzcwMDQyODgyOAwPNjc0NDc4ODY4MzQ4MjgxDA80NjMzMTY3NDU1MjcyNzUMDzQ3MTE4NTQ1MDIwMzEyMgwPNjM1NDgwMjg2MTEzNjUyDA82MTM0MzE4MjI4NTI3NzMMDzIyMTYzNDczNDg2MTA4NgwPNjE4NjU3NDcxNzUyMTE0DA8zMjg1MjU1MTIzMTgwNzAMDzQ2MTAzMTQ0NDAzMDMyNAwPNTc2ODU4NDI3MjE0MTg2DA82NjU0MDAwNjgwMjgxMzEMDzMwNTcyMzIxODQ0MTgxMwwPNTQ1MTg0NDYwMDg4NTQ2DA82ODExMDczNDM4Njg3MzgwDQYJKoZIhvcNAQEFBQADgYEAQq6zHN8SP8w71Yyq+cwwNQ2VZ4UMPRw/9JkW8ZUJWC4gae2lOfeyyjtN3akXaT+p+vETtfoPuCpPjvzPYoN1RZieyJnpSVzUrNw/lM6kSP5DjGg5K/WKWYad0VkQg56Kynp2YVX4yKUhBydd7iBeSGP900LAHRWCR++xq+r98mI=
-MIDlet-Jar-RSA-SHA1: PRpjLFh81oAjHdPSZ/9lTe64ICSSHOk/MQMdRSqwsoGMSPID91mBRFEYOIQ/5nocEscacSi81o089Y0gMpEIP8V/EWBD7WDP6xqjC0gSyac+QjZm1Bu7Pzav+JC5J3KEkKOGy4wgQKJx02bArR/P9LhYAe7T6LVVFbfFyw2lhJA=
--- a/javamanager/javainstaller/installer/tsrc/testdata/utils/EmptyLines.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
- 
-
-
-    
-	
-	 
-	    
-                
-                    
-                        
-                        
-         	
- 
-
- 
\ No newline at end of file
--- a/javamanager/javainstaller/installer/tsrc/testdata/utils/FL_Rocks.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-MIDlet-Version: 1.0
-MIDlet-Vendor: Standing Still Limited
-MIDlet-Jar-URL: http://195.114.231.97:7001/dls/delivery/ds/01AAvJ1WX3jmZsurMwoC/1/FL_Rocks.dm
-MIDlet-Install-Notify: http://195.114.231.97:7001/dls/delivery/ds/01AAvJ1WX3jmZsurMwoC/2/FL_Rocks/status
-MIDlet-Name: Rocks
-MIDlet-Jar-Size: 28196
--- a/javamanager/javainstaller/installer/tsrc/testdata/utils/NDRM.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-MIDlet-Jar-URL: NDRM.jar
-MIDlet-Install-Notify: http://uljava.gjmptw.de:8080/Index/Index/NDRM.jad?nstalled=NDRM_harmony
-MIDlet-Name: DRMonitor
-MIDlet-Vendor: m-internet.com Limited
-MIDlet-Version: 1.0
-MIDlet-Jar-Size: 24472
-MIDlet-Icon: /icon.png
-MIDlet-1: NDRM, /icon.png, ndrm.NDRMMIDlet
-
-
--- a/javamanager/javainstaller/installer/tsrc/testdata/utils/PlatformReqHTTP.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-MIDlet-1: PlatformReqHTTP, , com.nokia.midp.test.securitytests.PlatformReqHTTP
-MIDlet-Jar-Size: 2272
-MIDlet-Jar-URL: PlatformReqHTTP.jar
-MIDlet-Name: PlatformReqHTTP
-MIDlet-Vendor: Nokia
-MIDlet-Version: 1.0
-MicroEdition-Configuration: CLDC-1.0
-MicroEdition-Profile: MIDP-2.0
-URL: http://tcktest3.extra.wirelessfuture.com:8080/axis/servlet/marika.GetServlet
-MIDlet-Certificate-1-1: MIICPDCCAaUCBD+zblMwDQYJKoZIhvcNAQEEBQAwZTELMAkGA1UEBhMCZmkxEDAOBgNVBAgTB1Vua25vd24xEDAOBgNVBAcTB1RhbXBlcmUxDjAMBgNVBAoTBU5va2lhMQwwCgYDVQQLEwNKQ0YxFDASBgNVBAMTC01hcmlrYSBGYWJlMB4XDTAzMTExMzExNDMxNVoXDTEzMTExMDExNDMxNVowZTELMAkGA1UEBhMCZmkxEDAOBgNVBAgTB1Vua25vd24xEDAOBgNVBAcTB1RhbXBlcmUxDjAMBgNVBAoTBU5va2lhMQwwCgYDVQQLEwNKQ0YxFDASBgNVBAMTC01hcmlrYSBGYWJlMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDsUJbYMb9GlP99Ax9n6m2AIAg+b2zC0u6h7OuLP+ls9OpI0sLtE1uBABCePloS0uKwmjtsdFc1zLyA/bpbi644xDw3PMIEhppeuKbLrog5uMk5wD1bFk5kJXYwYEorWVrFpLDmqFwEMig2a+Uhf7eTq1Ze/JgMHoUDXRo0eVsnFwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBACuTqh37N34NnVzziuj66gmiE3rt7fKDTUCiqoHGfv7dpr4M0e8+y6FvtXtUXEajxX/DZbZuy0E9mZqmXsYyP2DDKbCg4cBJ23uOCffuYYVQFSnv4RQFVrQr4jMUHgX7wT5Ox4Ee8xcpsvWWfOgTY4zyEznOBUj6Uw4Xj7F+1yk8
-MIDlet-Jar-RSA-SHA1: UfQMdprNMMmJOk9INrJXe+Y06tnuL+zOJz4gJNEKnLPOzb6UwR2zczNddwfdBxENKbhw2RVp3GBQD2OZjB6UEU4kiw2S956RMlk5OVfqwXB5wvYPCePX6/8qgKSUmsBjNiEpXBGE2UT7MqbRApxmsf/OaDnzzd9Tlr9jUw+YU3w=
--- a/javamanager/javainstaller/installer/tsrc/testdata/utils/SimpleRMS8.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-Manifest-Version: 1.0
-MicroEdition-Configuration: CLDC-1.0
-MIDlet-Name: SimpleRMS
-Created-By: 1.5.0_12 (Sun Microsystems Inc.)
-MIDlet-Vendor: Unknown
-MIDlet-1: SimpleRMS, SimpleRMS.png, SimpleRMS
-MIDlet-Version: 1.0
-MicroEdition-Profile: MIDP-2.0
-
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/SimpleRMS8.jar has changed
--- a/javamanager/javainstaller/installer/tsrc/testdata/utils/SunShines3D_DEMO_nokia_N900_EN_IGP_ATandT_901.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-IGP-BS: MP3D=MP3D_BS;SCDA=SCDA_BS;ASP3=ASP3_BS;PSDK=PSDK_BS;
-IGP-CATEGORIES: WN=WN;BS=BS;PROMO=0;OP=OP;
-IGP-DEMOS: DEMOPG=DEL;
-IGP-PROMOS: MB3D=MB3D;PB07=PB07;BBRK=BBRK;
-IGP-VERSION: 2.5.0
-IGP-WN: RBPF=RBPF_WN;MMN=MMN_WN;BRBO=BRBO_WN;ASCR=ASCR_WN;
-MIDLET-FULLVERSION-URL: http://advers.bestgamfts.com/redir/?from=D725&game=MD3D&op=GONG&game_type=DM&lg=EN
-MIDlet-1: Sun Shines 3D Demo, /icon.png, HightS3D
-MIDlet-Data-Size: 8192
-MIDlet-Description: Sun Shines 3D, Emulated sun shine in full 3D!
-MIDlet-Icon: /icon.png
-MIDlet-Jar-Size: 754864
-MIDlet-Jar-URL: SunShines3D_DEMO_nokia_N900_EN_IGP_ATandT_901.jar
-MIDlet-Name: Sun Shines 3D Demo
-MIDlet-Vendor: Celedons Two
-MIDlet-Version: 1.0.4
-Nokia-MIDlet-Block-Uninstall: true
-Nokia-MIDlet-Category: Applications
-Nokia-MIDlet-UID-1: 0x20012293
-Nokia-Scalable-Icon: /icon.svg
-Nokia-Scalable-Icon-MIDlet-1: /icon.svg
-URL-OPERATOR: http://bestgamfts.hereis.com/redir/?from=D725&op=GONG&game_type=DM&lg=EN&ver=2.5.0
-URL-PT: 0
-URL-TEMPLATE-GAME: http://bestgamfts.hereis.com/redir/?from=D725&op=GONG&game=XXXX&game_type=DM&lg=EN&emb=1&ver=2.5.0
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/SunShines3D_DEMO_nokia_N900_EN_IGP_ATandT_901.zip has changed
--- a/javamanager/javainstaller/installer/tsrc/testdata/utils/TestMidlet.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-MIDlet-1: TestMidlet, TestMidlet.png, TestMidlet
-MIDlet-Jar-Size: 3674
-MIDlet-Jar-URL: TestMidlet.jar
-MIDlet-Name: TestMidlet
-MIDlet-Vendor: Nokia
-MIDlet-Version: 1.0
-MicroEdition-Configuration: CLDC-1.0
-MicroEdition-Profile: MIDP-2.0
-: Empty attribute name
- : White space only attribute name
- 	: White space only attribute name 2
-a<>: separators in attribute name
-bo: control characters in attribute name
-c:
--- a/javamanager/javainstaller/installer/tsrc/testdata/utils/TestMidlet2.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-a<>: separators in attribute name
-bo: control characters in attribute name
-c:
--- a/javamanager/javainstaller/installer/tsrc/testdata/utils/TestMidlet3.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-MIDlet-1: TestMidlet, TestMidlet.png, TestMidlet
-MIDlet-Jar-Size: 3674
-MIDlet-Jar-URL: TestMidlet.jar
-MIDlet-Name: TestMidlet
-MIDlet-Vendor: Nokia
-MicroEdition-Configuration: CLDC-1.0
-MicroEdition-Profile: MIDP-2.0
-o: attribute name starts with CTL characters
-MIDlet-Version: 1.0
--- a/javamanager/javainstaller/installer/tsrc/testdata/utils/calc2_en_de_es_ES_fr_it_tr_TR_nl_NL_pt_PT.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-MIDlet-1: Calculator, i.png,common.control.CalculatorMIDlet
-MIDlet-Name: Calculator
-MIDlet-Vendor: Nokia
-MIDlet-Version: 1.5
-MIDlet-Jar-Size: 123
-Nokia-MIDlet-Category: Application
-Nokia-UI-Enhancement: CanvasHasBackground
-MIDlet-Data-Size: 150
-Vertical-Move-Delta: 10
-Vertical-Move-Period: 2
-Inline-Editing-Supported: true
-Nokia-Platform: Nokia*
-Nokia-MIDlet-Category: Games
-Nokia-MIDlet-Name-en: Calculator
-Nokia-MIDlet-Name-de: Rechner
-Nokia-MIDlet-Name-es-ES: Calculadora
-Nokia-MIDlet-Name-fr: Calculatrice
-Nokia-MIDlet-Name-it: Calcolatrice
-Nokia-MIDlet-Name-tr-TR: Hesaplamalar
-Nokia-MIDlet-Name-nl-NL: Rekenmachine
-Nokia-MIDlet-Name-pt-PT: Calculadora
-Nokia-MIDlet-1-en: Calculator
-Nokia-MIDlet-1-de: Rechner
-Nokia-MIDlet-1-es-ES: Calculadora
-Nokia-MIDlet-1-fr: Calculatrice
-Nokia-MIDlet-1-it: Calcolatrice
-Nokia-MIDlet-1-tr-TR: Hesaplamalar
-Nokia-MIDlet-1-nl-NL: Rekenmachine
-Nokia-MIDlet-1-pt-PT: Calculadora
-MIDlet-Jar-Size: 84713
-MIDlet-Jar-URL: calc2_en_de_es_ES_fr_it_tr_TR_nl_NL_pt_PT.jar
-Nokia-MIDlet-Category: Best-Sellers
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/calc2_en_de_es_ES_fr_it_tr_TR_nl_NL_pt_PT.zip has changed
--- a/javamanager/javainstaller/installer/tsrc/testdata/utils/ceac00.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-MIDlet-Name: ASCII
-MIDlet-Vendor: Nokia
-MIDlet-Version: 1.0
-MIDlet-Jar-URL: http://195.134.231.83:7070/java-server/resources/man_jam/ceac00/bin/CEAC00.jar
-MIDlet-Jar-Size: 1494
-MicroEdition-Profile: MIDP-2.0
-MicroEdition-Configuration: CLDC-1.0
-MIDlet-1: ASCII,,USASCII.CEAC00_01
-MIDlet-Install-Notify: http://195.134.231.83:7070/java-server/getresult.jsp?phone=9F732D83F3B6AF98EB6577EA92366D95&tID=ceac00
-
-
-
--- a/javamanager/javainstaller/installer/tsrc/testdata/utils/cecn02.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-MIDlet-Name: ùÓùÔùÕ
-MIDlet-Vendor: Nokia
-MIDlet-Version: 1.0
-MIDlet-Jar-URL: http://195.134.231.83:7070/java-server/resources/man_jam/cecn02/bin/CECN02.jar
-MIDlet-Jar-Size: 1417
-MicroEdition-Profile: MIDP-2.0
-MicroEdition-Configuration: CLDC-1.0
-MIDlet-1: ùÓùÔùÕ, ,Big5.CECN02_01
-MIDlet-Install-Notify: http://195.134.231.83:7070/java-server/getresult.jsp?phone=C9EABB544D0A47788C684D71A5A1C8C9&tID=cecn02
-
-
-
--- a/javamanager/javainstaller/installer/tsrc/testdata/utils/cecn06.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-MIDlet-Name: ‚X‚Y‚Z‚[
-MIDlet-Vendor: Nokia
-MIDlet-Version: 1.0
-MIDlet-Jar-URL: http://195.134.231.83:7070/java-server/resources/man_jam/cecn06/bin/CECN06.jar
-MIDlet-Jar-Size: 1415
-MicroEdition-Profile: MIDP-2.0
-MicroEdition-Configuration: CLDC-1.0
-MIDlet-1: ‚X‚Y‚Z‚[,,GBK.CECN06_01
-MIDlet-Install-Notify: http://195.134.231.83:7070/java-server/getresult.jsp?phone=79CD95B6352F8388513D6DDB699817CF&tID=cecn06
-
-
-
--- a/javamanager/javainstaller/installer/tsrc/testdata/utils/ceis00.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-MIDlet-Name: ÷ùø
-
-MIDlet-Vendor: Nokia
-
-MIDlet-Version: 1.0
-
-MIDlet-Jar-URL: http://195.134.231.83:7070/java-server/resources/man_jam/ceis00/bin/CEIS00.jar
-
-MIDlet-Jar-Size: 1450
-
-MIDlet-1: ÷ùø, , ISO8859_1.CEIS00_01
-
-MicroEdition-Configuration: CLDC-1.0
-
-MicroEdition-Profile: MIDP-2.0
-
-MIDlet-Install-Notify: http://195.134.231.83:7070/java-server/getresult.jsp?phone=1D11AB7B2A1E2BC200165EB4CF554232&tID=ceis00
-
-
--- a/javamanager/javainstaller/installer/tsrc/testdata/utils/ceis09.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-MIDlet-Name: ¢£¤
-MIDlet-Vendor: Nokia
-MIDlet-Version: 1.0
-MIDlet-Jar-URL: http://195.134.231.83:7070/java-server/resources/man_jam/ceis09/bin/CEIS09.jar
-MIDlet-Jar-Size: 1457
-MicroEdition-Profile: MIDP-2.0
-MicroEdition-Configuration: CLDC-1.0
-MIDlet-1: ¢£¤, ,ISO8859_15.CEIS09_01
-MIDlet-Install-Notify: http://195.134.231.83:7070/java-server/getresult.jsp?phone=7F914DE931B9D04E5F731F1ADCD163F6&tID=ceis09
-
-
--- a/javamanager/javainstaller/installer/tsrc/testdata/utils/ceis14.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-MIDlet-Name: ??»
-MIDlet-Vendor: Nokia
-MIDlet-Version: 1.0
-MIDlet-Jar-URL: http://195.134.231.83:7070/java-server/resources/man_jam/ceis14/bin/CEIS14.jar
-MIDlet-Jar-Size: 1456
-MIDlet-1: ??», ,ISO8859_16.CEIS14_01
-MicroEdition-Configuration: CLDC-1.0
-MicroEdition-Profile: MIDP-2.0
-MIDlet-Install-Notify: http://195.134.231.83:7070/java-server/getresult.jsp?phone=336AA79A2E085DC20583865B841DBE6B&tID=ceis14
-
-
-
--- a/javamanager/javainstaller/installer/tsrc/testdata/utils/cejp04.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-MIDlet"DNa"De:"D"D@!"D"D"D"D"D"D"DMIDlet"DVe"Ddo"D"D"DNoki"D"D"DMIDlet"DVe"D"Dio"D"D"D1."D"D"DMIDlet"DJa"D"DURL:"DCEJP04"Dja"D"D"DMIDlet"DJa"D"DSi"De:"D1439"D"DMIDlet"D1:"D"D@!"D"D"D"D"D"D"D"DJISX0208"DCEJP04_0"D"D"DMicr"DEditio"D"DCo"Dfigu"Datio"D"D"DCLDC"D1."D"D"DMicr"DEditio"D"DPr"Dfile"D"DMIDP"D2."D"D"D
-MIDlet-Install-Notify: http://195.134.231.83:7070/java-server/getresult.jsp?phone=CF0B99F53572032690A4D26E0CB83D02&tID=cejp04
-
-
--- a/javamanager/javainstaller/installer/tsrc/testdata/utils/ceko01.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-MIDlet-Name: ÍÎÏÐ
-MIDlet-Vendor: Nokia
-MIDlet-Version: 1.0
-MIDlet-Jar-URL: http://195.134.231.83:7070/java-server/resources/man_jam/ceko01/bin/CEKO01.jar
-MIDlet-Jar-Size: 1429
-MIDlet-1: ÍÎÏÐ, ,KOI8_R.CEKO01_01
-MicroEdition-Configuration: CLDC-1.0
-MicroEdition-Profile: MIDP-2.0
-MIDlet-Install-Notify: http://195.134.231.83:7070/java-server/getresult.jsp?phone=64E5A88BE41622497EDF05039C15F26C&tID=ceko01
-
-
--- a/javamanager/javainstaller/installer/tsrc/testdata/utils/cems01.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-MIDlet-Name: ýþ€
-MIDlet-Vendor: Nokia
-MIDlet-Version: 1.0
-MIDlet-Jar-URL: http://195.134.231.83:7070/java-server/resources/man_jam/cems01/bin/CEMS01.jar
-MIDlet-Jar-Size: 1465
-MicroEdition-Profile: MIDP-2.0
-MicroEdition-Configuration: CLDC-1.0
-MIDlet-1: ýþ€, ,windows_1250.CEMS01_01
-MIDlet-Install-Notify: http://195.134.231.83:7070/java-server/getresult.jsp?phone=3F627BEFBC6E8A0FB9510BA4EB42AE6F&tID=cems01
-
-
-
--- a/javamanager/javainstaller/installer/tsrc/testdata/utils/cems11.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-MIDlet-Name: ýþÿ
-MIDlet-Vendor: Nokia
-MIDlet-Version: 1.0
-MIDlet-Jar-URL: http://195.134.231.83:7070/java-server/resources/man_jam/cems11/bin/CEMS11.jar
-MIDlet-Jar-Size: 1467
-MicroEdition-Profile: MIDP-2.0
-MicroEdition-Configuration: CLDC-1.0
-MIDlet-1: ýþÿ, ,windows_1256.CEMS11_01
-MIDlet-Install-Notify: http://195.134.231.83:7070/java-server/getresult.jsp?phone=3EBDFC736561D6876CF9ED93D3BF1B36&tID=cems11
-
-
-
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/ceut03.jad has changed
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/ceut04.jad has changed
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/ceut08.jad has changed
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/ceut09.jad has changed
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/einstein_EN_FR_IT_DE_ES_N97_v2942.jar has changed
Binary file javamanager/javainstaller/installer/tsrc/testdata/utils/javahelper.mif has changed
--- a/javamanager/javainstaller/installer/tsrc/testdata/utils/mine_en_fr_de_it_es_ES_pt_PT.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-MIDlet-Name: HecticMine
-MIDlet-1: HecticMine,/images/icon.png,com.nokia.mid.appl.mine.common.MineMIDlet
-Nokia-MIDlet-Category: Game
-MIDlet-Icon: /images/icon.png
-MIDlet-Vendor: Nokia
-MIDlet-Version: 3.0.4
-MIDlet-Description: HecticMine
-Period-Speed-ms: 100
-Vertical-Text-Offset: -2
-Nokia-Platform: Nokia*
-Nokia-MIDlet-Name-en: 
-Nokia-MIDlet-Name-fr: Hectic Mine
-Nokia-MIDlet-Name-de: Hectic Mine
-Nokia-MIDlet-Name-it: Hectic Mine
-Nokia-MIDlet-Name-es-ES: Hectic Mine
-Nokia-MIDlet-Name-pt-PT: Hectic Mine
-MIDlet-Jar-Size: 233616
-MIDlet-Jar-URL: mine_en_fr_de_it_es-ES_pt-PT.jar
-MIDlet-Certificate-1-1: MIIDhDCCAmygAwIBAgIEQhnyeTANBgkqhkiG9w0BAQUFADAzMQ4wDAYDVQQKEwVOb2tpYTEhMB8
- GA1UEAxMYTm9raWEgQ29udGVudCBTaWduaW5nIENBMB4XDTA1MDIyMTE0Mzg0OVoXDTE2MDEwMjExMDUwNFowKDEOMAwGA1UEC
- hMFTm9raWExFjAUBgNVBAMTDU5va2lhIENvbnRlbnQwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAK2PV8KLVSZ9OePe4k
- 78GeQ0MiujbMd1wU9/xqhUFPst50drxhKzH+fMxvXgQOJ7viReolqWyq+ZmKpikGa+6SdqHysnVBhAqo9SLMNjlMfoOXVJ/lvM
- gOk9k5oyVhBqFonw/FDDHmINC6w9o83e3gRq1C1m2T368yHbZtKifiVdAgMBAAGjggEtMIIBKTAOBgNVHQ8BAf8EBAMCB4AwEw
- YDVR0lBAwwCgYIKwYBBQUHAwMwggEABgNVHSAEgfgwgfUwgfIGCysGAQQBXgExAQMBMIHiMIHRBggrBgEFBQcCAjCBxBqBwVJl
- bGlhbmNlIG9uIHRoaXMgY2VydGlmaWNhdGUgYnkgYW55IHBhcnR5IGFzc3VtZXMgYWNjZXB0YW5jZSBvZiB0aGUgc3RhbmRhcm
- QgdGVybXMgYW5kIGNvbmRpdGlvbnMgYW5kIGxpbWl0YXRpb25zIG9mIHVzZSwgYXMgZGV0YWlsZWQgaW4gdGhlIENlcnRpZmlj
- YXRlIFByYWN0aWNlIFN0YXRlbWVudCBhdmFpbGFibGUgZnJvbSBOb2tpYS4wDAYIKwYBBQUHAgEWADANBgkqhkiG9w0BAQUFAA
- OCAQEAvXtgKSffVjD52zHgUEFBBmXFq3QjgWNh8+cQTD23wnPYgfA4GBomMmznLiV3X03SOOI42DUUenQ9baPb78iU8AngF6xd
- oOpFYlNtVka9YdD9mA0jtkoe4YEmykxPabSKDS50xVYgQG+5Y9H8nO9EyIiviP6drFmpRv635mf8Trlao63XIx4geoCMb9v8vS
- dfs0louKB9DrjwFki/uHAQvRcVYnFNtAwHdri22UMx+GMppuY4/oPVvQqxgzfP+1AX/w2lgG7pi3lbVVUB4MLhG36kZIk8/J7B
- lmATAL1/G5t19HR3+9doz5H94y3WQG7ClWN1eoQtjLlvLfZO/iu20g==
-MIDlet-Jar-RSA-SHA1: ncuy0soEPUB4OPGHNyLn1ldXU2FvKvs0bUKGn/aPQefKI15aOlrczlapIWreUukE3ArQImU/xwxWh0
- Q8LROEULJKXRIYyoGCCblM6o6EPYn+YT+CDd/HV8JlHS6OO+sAV//9vWuo9orIwSwdKN8wGl0g1JmPl8LF8V5/MjSmyh8=
\ No newline at end of file
--- a/javamanager/javainstaller/installer/tsrc/testdata/utils/utf8bom.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-MIDlet-Name: ışÿ
-MIDlet-Vendor: Nokia
-MIDlet-Version: 1.0
-MIDlet-Jar-URL: utf8bom.jar
-MIDlet-Jar-Size: 1417
-MicroEdition-Profile: MIDP-2.0
-MicroEdition-Configuration: CLDC-1.0
-MIDlet-1: ışÿ, ,UTF8BOM.UTF8BOM
--- a/javamanager/javainstaller/installer/tsrc/testserver/build/build.xml	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-<!--
-#
-# Copyright (c) 2010 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 name="InstallerTestServer" default="dist" basedir="..">
-    <property name="catalina.home" value="C:/apps/apache-tomcat-6.0.26"/>
-    <property name="build" value="${basedir}/build"/>
-    <property name="java.build" value="${build}/javabuild"/>
-    <property name="classes" value="${java.build}/WEB-INF/classes"/>
-    <property name="src" value="${basedir}/javasrc"/>
-    <property name="web" value="${basedir}/content"/>
-
-    <path id="compile.classpath">
-        <fileset dir="${catalina.home}/bin">
-            <include name="*.jar"/>
-        </fileset>
-        <pathelement location="${catalina.home}/lib"/>
-        <fileset dir="${catalina.home}/lib">
-            <include name="*.jar"/>
-        </fileset>
-    </path>
-
-    <target name="compile">
-        <mkdir dir="${classes}"/>
-        <javac source="1.5" target="1.5" destdir="${classes}" srcdir="${src}">
-            <classpath refid="compile.classpath"/>
-        </javac>
-    </target>
-
-    <target name="dist" depends="compile">
-        <jar jarfile="${build}/installertest.war" basedir="${java.build}"
-            manifest="${web}/META-INF/MANIFEST.MF"/>
-        <jar jarfile="${build}/installertest.war" basedir="${web}"
-            update="true"/>
-    </target>
-
-    <target name="clean">
-        <delete dir="${java.build}"/>
-        <delete file="${build}/installertest.war"/>
-    </target>
-</project>
--- a/javamanager/javainstaller/installer/tsrc/testserver/build/readme.txt	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-Building
---------
-
-Requirements:
-    * Apache Ant.
-    * Apache Tomcat. (Tested with 6.0.26)
-
-Change "catalina.home" property in build.xml file to match your Tomcat
-installation directory. Default is as follows:
-
-    <property name="catalina.home" value="C:/apps/apache-tomcat-6.0.26"/>
-
-To compile the project and to create .war archive just use either of following
-commands:
-
-    ant
-    ant dist
-
-To compile only use:
-
-    ant compile
-
-And to clean all build artifacts use:
-
-    ant clean
-
-Deployment
-----------
-
-After build is complete, "installertest.war" file is created into the "build"
-directory. Deploy it to Tomcat instance as any other .war file. For HTTP
-authentication tests it is assumed that user named "guest" with password
-"guest" and with role "guest" exits.
-
-Running the tests
------------------
-
-Before running tests add option "-server=server_ip_address:port" to
-NotificationPosterTest, DownloaderTest and InstallerEngineTest
-test suites in jiut.bat (for S60) or in build.xml (for Linux)
-in "javainstaller\installer\tsrc\build" directory.
--- a/javamanager/javainstaller/installer/tsrc/testserver/content/HelloWorld.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-MIDlet-1: HelloWorld, , helloworld.HelloWorld
-MIDlet-Jar-Size: 1511
-MIDlet-Jar-URL: HelloWorld.jar
-MIDlet-Name: HelloWorld
-MIDlet-Vendor: Nokia
-MIDlet-Version: 1.0
-MicroEdition-Configuration: CLDC-1.0
-MicroEdition-Profile: MIDP-2.0
\ No newline at end of file
Binary file javamanager/javainstaller/installer/tsrc/testserver/content/HelloWorld.jar has changed
--- a/javamanager/javainstaller/installer/tsrc/testserver/content/HelloWorld_8mb.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-MIDlet-1: HelloWorld, , helloworld.HelloWorld
-MIDlet-Jar-Size: 7867927
-MIDlet-Jar-URL: HelloWorld_8mb.jar
-MIDlet-Name: HelloWorld_8mb
-MIDlet-Vendor: Nokia
-MIDlet-Version: 1.0
-MicroEdition-Configuration: CLDC-1.0
-MicroEdition-Profile: MIDP-2.0
-MIDlet-Install-Notify: http://<SERVER><CONTEXT>/notify?tID=900_success
-MIDlet-Delete-Notify: http://<SERVER><CONTEXT>/notify?tID=912_deletion
Binary file javamanager/javainstaller/installer/tsrc/testserver/content/HelloWorld_8mb.jar has changed
--- a/javamanager/javainstaller/installer/tsrc/testserver/content/HelloWorld_ota.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-MIDlet-1: HelloWorld, , helloworld.HelloWorld
-MIDlet-Jar-Size: 1511
-MIDlet-Jar-URL: HelloWorld.jar
-MIDlet-Name: HelloWorld
-MIDlet-Vendor: Nokia
-MIDlet-Version: 1.0
-MicroEdition-Configuration: CLDC-1.0
-MicroEdition-Profile: MIDP-2.0
-MIDlet-Install-Notify: http://<SERVER><CONTEXT>/notify?tID=900_success
-MIDlet-Delete-Notify: http://<SERVER><CONTEXT>/notify?tID=912_deletion
--- a/javamanager/javainstaller/installer/tsrc/testserver/content/HelloWorld_redirect.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-MIDlet-1: HelloWorld, , helloworld.HelloWorld
-MIDlet-Jar-Size: 1719
-MIDlet-Jar-URL: http://<SERVER><CONTEXT>/redirect?name=HelloWorld_redirect.jar
-MIDlet-Name: HelloWorld_redirect
-MIDlet-Vendor: Nokia
-MIDlet-Version: 1.0
-MicroEdition-Configuration: CLDC-1.0
-MicroEdition-Profile: MIDP-2.0
-MIDlet-Install-Notify: http://<SERVER><CONTEXT>/notify?tID=900_success
Binary file javamanager/javainstaller/installer/tsrc/testserver/content/HelloWorld_redirect.jar has changed
--- a/javamanager/javainstaller/installer/tsrc/testserver/content/META-INF/MANIFEST.MF	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-Manifest-Version: 1.0
-Class-Path: 
-
--- a/javamanager/javainstaller/installer/tsrc/testserver/content/META-INF/context.xml	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-#
-# Copyright (c) 2010 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: 
-#
--->
-<Context docBase="installertest" path="/installertest">
-</Context>
\ No newline at end of file
--- a/javamanager/javainstaller/installer/tsrc/testserver/content/WEB-INF/web.xml	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-#
-# Copyright (c) 2010 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:
-#
--->
-<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
-  <display-name>installertest</display-name>
-
-  <servlet>
-    <description></description>
-    <display-name>redirect</display-name>
-    <servlet-name>redirect</servlet-name>
-    <servlet-class>com.nokia.mj.impl.installer.testserver.RedirectServlet</servlet-class>
-  </servlet>
-  <servlet-mapping>
-    <servlet-name>redirect</servlet-name>
-    <url-pattern>/redirect</url-pattern>
-  </servlet-mapping>
-
-  <servlet>
-    <description></description>
-    <display-name>jad</display-name>
-    <servlet-name>jad</servlet-name>
-    <servlet-class>com.nokia.mj.impl.installer.testserver.JadServlet</servlet-class>
-  </servlet>
-  <servlet-mapping>
-    <servlet-name>jad</servlet-name>
-    <url-pattern>*.jad</url-pattern>
-  </servlet-mapping>
-
-  <servlet>
-    <description></description>
-    <display-name>notify</display-name>
-    <servlet-name>notify</servlet-name>
-    <servlet-class>com.nokia.mj.impl.installer.testserver.NotifyServlet</servlet-class>
-  </servlet>
-  <servlet-mapping>
-    <servlet-name>notify</servlet-name>
-    <url-pattern>/notify</url-pattern>
-  </servlet-mapping>
-
-  <security-constraint>
-    <web-resource-collection>
-      <web-resource-name></web-resource-name>
-      <url-pattern>/httpauth/*</url-pattern>
-    </web-resource-collection>
-    <auth-constraint>
-      <role-name>guest</role-name>
-    </auth-constraint>
-  </security-constraint>
-  <login-config>
-    <auth-method>BASIC</auth-method>
-    <realm-name>httpauth</realm-name>
-  </login-config>
-
-  <security-role>
-    <role-name>guest</role-name>
-  </security-role>
-
-</web-app>
--- a/javamanager/javainstaller/installer/tsrc/testserver/content/httpauth/HelloWorld_http_auth.jad	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-MIDlet-1: HelloWorld, , helloworld.HelloWorld
-MIDlet-Jar-Size: 1721
-MIDlet-Jar-URL: HelloWorld_http_auth.jar
-MIDlet-Name: HelloWorld_http_auth
-MIDlet-Vendor: Nokia
-MIDlet-Version: 1.0
-MicroEdition-Configuration: CLDC-1.0
-MicroEdition-Profile: MIDP-2.0
\ No newline at end of file
Binary file javamanager/javainstaller/installer/tsrc/testserver/content/httpauth/HelloWorld_http_auth.jar has changed
--- a/javamanager/javainstaller/installer/tsrc/testserver/javasrc/com/nokia/mj/impl/installer/testserver/JadServlet.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-package com.nokia.mj.impl.installer.testserver;
-
-import java.io.BufferedReader;
-import java.io.FileReader;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * Servlet implementation class JadServlet
- */
-public class JadServlet extends HttpServlet
-{
-    private static final long serialVersionUID = 1L;
-
-    protected void processRequest(HttpServletRequest request,
-                                  HttpServletResponse response)
-    throws ServletException, IOException
-    {
-        ServletContext context = getServletContext();
-        String localPath = context.getRealPath(request.getServletPath());
-
-        response.setContentType("text/vnd.sun.j2me.app-descriptor");
-
-        BufferedReader in = null;
-        ServletOutputStream out = null;
-
-        try
-        {
-            in = new BufferedReader(new FileReader(localPath));
-            out = response.getOutputStream();
-
-            String line = in.readLine();
-            while (line != null)
-            {
-                if (line.startsWith("MIDlet-Jar-URL:")
-                        || line.startsWith("MIDlet-Install-Notify:")
-                        || line.startsWith("MIDlet-Delete-Notify:"))
-                {
-                    line = line.replaceAll("<SERVER>", request.getServerName()
-                                           + ":" + request.getServerPort());
-                    line = line.replaceAll("<CONTEXT>",
-                                           request.getContextPath());
-                }
-                out.println(line);
-                line = in.readLine();
-            }
-        }
-        catch (FileNotFoundException e)
-        {
-            response.sendError(HttpServletResponse.SC_NOT_FOUND,
-                               request.getServletPath());
-        }
-        finally
-        {
-            if (out != null)
-            {
-                out.close();
-            }
-            if (in != null)
-            {
-                in.close();
-            }
-        }
-    }
-
-    protected void doGet(HttpServletRequest request,
-                         HttpServletResponse response)
-    throws ServletException, IOException
-    {
-        processRequest(request, response);
-    }
-
-    protected void doPost(HttpServletRequest request,
-                          HttpServletResponse response)
-    throws ServletException, IOException
-    {
-        processRequest(request, response);
-    }
-
-}
--- a/javamanager/javainstaller/installer/tsrc/testserver/javasrc/com/nokia/mj/impl/installer/testserver/NotifyServlet.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-package com.nokia.mj.impl.installer.testserver;
-
-import java.io.IOException;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * Servlet implementation class NotifyServlet
- */
-public class NotifyServlet extends HttpServlet
-{
-    private static final long serialVersionUID = 1L;
-
-    protected void processRequest(HttpServletRequest request,
-                                  HttpServletResponse response)
-    throws ServletException, IOException
-    {
-        response.setStatus(HttpServletResponse.SC_OK);
-    }
-
-    protected void doGet(HttpServletRequest request,
-                         HttpServletResponse response)
-    throws ServletException, IOException
-    {
-        processRequest(request, response);
-    }
-
-    protected void doPost(HttpServletRequest request,
-                          HttpServletResponse response)
-    throws ServletException, IOException
-    {
-        processRequest(request, response);
-    }
-
-}
--- a/javamanager/javainstaller/installer/tsrc/testserver/javasrc/com/nokia/mj/impl/installer/testserver/RedirectServlet.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-package com.nokia.mj.impl.installer.testserver;
-
-import java.io.IOException;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * Servlet implementation class RedirectServlet
- */
-public class RedirectServlet extends HttpServlet
-{
-    private static final long serialVersionUID = 1L;
-
-    protected void processRequest(HttpServletRequest request,
-                                  HttpServletResponse response)
-    throws ServletException, IOException
-    {
-        int redirectCount = 1;
-        String redirectUrl = "http://" + request.getServerName() + ":"
-                             + request.getServerPort()
-                             + request.getContextPath();
-
-        String countParam = request.getParameter("count");
-        String nameParam = request.getParameter("name");
-
-        if (countParam != null)
-        {
-            try
-            {
-                redirectCount = Integer.parseInt(countParam);
-            }
-            catch (NumberFormatException nfe)
-            {
-            }
-        }
-
-        if (redirectCount > 1)
-        {
-            redirectUrl += request.getServletPath() + "?count="
-                           + (redirectCount - 1) + "&name=";
-        }
-        else
-        {
-            redirectUrl += "/";
-        }
-
-        redirectUrl += nameParam;
-        response.sendRedirect(redirectUrl);
-    }
-
-    protected void doGet(HttpServletRequest request,
-                         HttpServletResponse response)
-    throws ServletException, IOException
-    {
-        processRequest(request, response);
-    }
-
-    protected void doPost(HttpServletRequest request,
-                          HttpServletResponse response)
-    throws ServletException, IOException
-    {
-        processRequest(request, response);
-    }
-
-}
--- a/javamanager/javainstaller/installerui/build/build.xml	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installerui/build/build.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -1,6 +1,6 @@
 <!--
 #
-# Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2008-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"
@@ -12,7 +12,7 @@
 #
 # Contributors:
 #
-# Description:
+# Description: 
 #
 -->
 
@@ -50,16 +50,6 @@
     </copy>
   </target>
 
-  <target name="compile">
-    <condition property="installer.ui.excludes"
-	       value="com/nokia/mj/impl/installer/ui/eswt/*.java"
-	       else="com/nokia/mj/impl/installer/ui/eswt2/*.java">
-      <isset property="RD_JAVA_UI_QT"/>
-    </condition>
-    <echo message="installerui compilation excludes: ${installer.ui.excludes}"/>
-    <omj.javac excludes="${installer.ui.excludes}"/>
-  </target>
-
   <target name="create.internal.api.jar" depends="export.data">
       <omj.internal.apis includes="com/nokia/mj/impl/installer/ui/*.class"/>
   </target>
--- a/javamanager/javainstaller/installerui/build/javainstallerui_0x2002DCB6.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installerui/build/javainstallerui_0x2002DCB6.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../../inc
@@ -92,7 +92,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
Binary file javamanager/javainstaller/installerui/data/java_3_trusted.png has changed
Binary file javamanager/javainstaller/installerui/data/java_3_untrusted.png has changed
--- a/javamanager/javainstaller/installerui/data/javaapplicationinstaller.css	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,205 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-QScrollArea#dialogArea {
-	/* General size parameters for all installer dialogs */
-
-	/* this depends on display; NHD portrait width:360px and height:640px used */
-	/* Note that popup width and height is according to portrait dimensions, and is the same in portrait and landscape */
-	width: 346.6px; /*expr(var(hb-param-screen-short-edge)- 2*var(hb-param-margin-gene-screen)); /* 2un*/
-	/*height: /*the size of MessageBox with 3-5 rows of text? */
-	max-height: 626.6px; /*expr(var(hb-param-long-edge)-2*var(hb-param-margin-gene-screen));
-	/*position: vertically and horizontally centre of screen - is this needed?*/
-}
-
-QScrollArea#appInfoArea {
-	/* This is valid for all installation query application details,
-	 * and also for application details in short error message */
-	/* (ViewBase) */
-	/* Note: this text area becomes scrollable if there are more text
-	 * that can be displayed at one time (this could be also QAbstractScrollArea?)*/
-	margin-top: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-	margin-left: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-	margin-right: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-}
-
-QLabel#heading {
-	/* Any installation query heading text: its text size, and top/left margins */
-	font-size: 26.8px; /*hb-param-text-height-primary;/*4un*/
-	font-weight: bold;
-	max-height: 53.6px; /*expr(var(hb-param-text-height-primary)+2*var(hb-param-margin-gene-popup)) - same as hb-param-widget-popup-heading-height;*/
-	margin-top: 13.4px; /*hb-param-margin-gene-top; /*2un*/
-	margin-left: 13.4px; /*hb-param-margin-gene-left; /*2un*/
-}
-
-QLabel#contentIcon {
-	/* This is valid for all icons displayed in the installation query content area */
-	/* Application icon, question icon, error icon in installation error dialog etc */
-	margin-left: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-	margin-top: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-	/* size of icon - fixed size */
-	min-width: 53.6px; /*hb-param-graphic-size-primary-large;/*8un*/
-	max-width: 53.6px; /*hb-param-graphic-size-primary-large;/*8un*/
-	min-height: 53.6px; /* hb-param-graphic-size-primary-large;/*8un*/
-	max-height: 53.6px; /* hb-param-graphic-size-primary-large;/*8un*/
-}
-
-QComboBox#driveSelector{
-	/* Combo box in installationquery. Need to define the top margin at least (InstallConfirmationView). */
-	margin-top: 5.025px; /*hb-param-margin-gene-middle-vertical; /*0.75un*/
-}
-
-QProgressBar#progressBar{
-	/* Progress bar in installationquery. Need to define the top margin at least (ProgressView). */
-	margin-top: 5.025px; /*hb-param-margin-gene-middle-vertical; /*0.75un*/
-}
-
-QLabel#permissionDetails{
-	/* String that requests access for protected functionality in permission query */
-	/* (PermissionInfo) */
-	margin-left: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-	margin-top: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-}
-
-QLabel#errorLabel{
-	/* short error message from USIF (note: this is not Java specific error message but
-	 * common to all installers), (ErrorView) */
-	font-size: 23.45px; /*hb-param-text-height-secondary; /*3.5un*/
-	margin-top: 5.025px; /*hb-param-margin-gene-middle-vertical; /*0.75un*/
-}
-
-QLabel#detailsWarningLabel{
-	/* Application is certified / is not certified views and permission details
-	 * view texts (CertificateDetailsView, PermissionDetailsView) */
-	font-size: 23.45px; /*hb-param-text-height-secondary; /*3.5un*/
-}
-
-QLabel#urlLabel{
-	/* Text in authentication dialog (UsernamePasswordView) */
-	/* Note that this dialog is always in portrait */
-	font-size: 23.45px; /*hb-param-text-height-secondary; /*3.5un*/
-	margin-top: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-	margin-left: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-	margin-right: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-}
-
-QLabel#authLabel{
-	/* Text in authentication dialog (UsernamePasswordView) */
-	/* Note that this dialog is always in portrait */
-	font-size: 23.45px; /*hb-param-text-height-secondary; /*3.5un*/
-	margin-top: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-	margin-left: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-	margin-right: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-}
-
-QLabel#usernamePasswordLabel{
-	/* Label of username and password input fields in authentication dialog (UsernamePasswordView) */
-	/* Note that this dialog is always in portrait */
-	font-size: 23.45px; /*hb-param-text-height-secondary; /*3.5un*/
-	margin-top: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-	margin-left: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-	margin-right: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-}
-
-QLabel#usernamePasswordInputField{
-	/* Input fields of username and password in authentication dialog (UsernamePasswordView) */
-	/* Note that this dialog is always in portrait */
-	font-size: 23.45px; /*hb-param-text-height-secondary; /*3.5un*/
-	margin-top: 5.025px; /*hb-param-margin-gene-middle-vertical; /*0.75un*/
-	margin-left: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-	margin-right: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-	margin-bottom: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-}
-
-/* --- Buttons --- */
-
-QPushButton {
-	font-size: 20.1px;/* hb-param-text-height-tiny; /*3un*/
-}
-
-QPushButton#softKeyButton{
-	/* Installation query OK button (ConfirmationViewBase) */
-	margin-top: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-	height: 50.25px; /*hb-param-widget-popup-softkey-height;/*7.5un*/
-	/* this depends on display; NHD portrait width:360px and height:640px used */
-	width: 173.3px; /*expr((var(hb-param-screen-short-edge)-2*var(hb-param-margin-gene-screen))/2); /* width of one button is half of popup width*/
-}
-
-QPushButton#softKeyButtonWide{
-	/* Ok button to go back from a details view (application is certified / not certified views
-	 * and permission details view) (CertificateDetailsView, PermissionDetailsView)*/
-	/* this ok button has different top margin otherwise the same as OkCommand button with max-width */
-	margin-top: 5.025px; /*hb-param-margin-gene-middle-vertical; /*0.75un*/
-	height: 50.25px; /*hb-param-widget-popup-softkey-height;/*7.5un*/
-}
-
-QPushButton#securityButton{
-	/* Security lock icon button in installation query heading (ViewBase.createSecurityButton) */
-	margin-right: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-	/* size of icon */
-	min-width: 26.8px; /* hb-param-graphic-size-primary-small; /*4un*/
-	max-width: 26.8px; /* hb-param-graphic-size-primary-small; /*4un*/
-	min-height: 26.8px; /* hb-param-graphic-size-primary-small; /*4un*/
-	max-height: 26.8px; /* hb-param-graphic-size-primary-small; /*4un*/
-
-}
-
-QPushButton#detailsLink{
-	/* Button in permission query to view details (PermissionConfirmationView) */
-	margin-right: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-	margin-left: 13.4px; /*hb-param-margin-gene-left; /*2un*/
-	margin-top: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-}
-
-QPushButton#allowButton{
-	/* Allow always function button in permission query */
-	/* (PermissionConfirmationView) */
-	margin-right: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-	margin-left: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-	margin-top: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-
-}
-
-QPushButton#denyButton{
-	/* Ask me later function buttons in permission query */
-	/* (PermissionConfirmationView) */
-	margin-right: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-	margin-left: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-	margin-top: 5.025px; /*hb-param-margin-gene-middle-vertical; /*0.75un*/
-}
-
-QPushButton#cancelButton{
-	/* Cancel installing function button in permission query */
-	/* (PermissionConfirmationView) */
-	margin-right: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-	margin-left: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-	margin-top: 5.025px; /*hb-param-margin-gene-middle-vertical; /*0.75un*/
-	margin-bottom: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-
-}
-
-QCheckBox#retainDataButton {
-	/* Retain user data check box button in update query */
-	/* Note that there is 2*hb-param-margin-gene-middle-vertical margin at the top as this check box is placed
-	 * after drive selector combo */
-	/* (InstallConfirmationView) */
-	margin-right: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-	margin-left: 13.4px; /*hb-param-margin-gene-popup; /*2un*/
-	margin-top: 10.05px; /*expr(2*var(hb-param-margin-gene-middle-vertical));
-}
-
-/* --- End Buttons --- */
--- a/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/InstallerUi.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/InstallerUi.java	Wed Oct 13 14:23:59 2010 +0300
@@ -385,13 +385,6 @@
     }
 
     /**
-     * Executes given Runnable synchronously in the UI thread. 
-     */
-    public void syncExec(Runnable aRunnable)
-    {
-    }
-
-    /**
      * Writes an info log entry to JavaInstaller log.
      *
      * @param aMsg message to be logged
--- a/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/InstallerUiFactory.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/InstallerUiFactory.java	Wed Oct 13 14:23:59 2010 +0300
@@ -50,9 +50,9 @@
             installerUi = (InstallerUi)clazz.newInstance();
             installerUi.init(aMode, aListener);
         }
-        catch (Throwable t)
+        catch (Exception ex)
         {
-            logError("Instantiating " + className + " failed", t);
+            logError("Instantiating " + className + " failed", ex);
         }
         return installerUi;
     }
--- a/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt/InstallerUiEswt.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt/InstallerUiEswt.java	Wed Oct 13 14:23:59 2010 +0300
@@ -129,6 +129,7 @@
         // Create a hashtable for icons.
         iImageTable = new Hashtable();
         // Create a new thread to be the UI main thread.
+        iUiThreadExists = true;
         UIThreadSupport.startInUIThread(new Runnable()
         {
             public void run()
@@ -147,7 +148,6 @@
     private void uiMain()
     {
         log("uiMain: thread started");
-        iUiThreadExists = true;
         try
         {
             // Create the necessary views.
@@ -1000,14 +1000,6 @@
     }
 
     /**
-     * Executes given Runnable synchronously in the UI thread.
-     */
-    public void syncExec(Runnable aRunnable)
-    {
-        iParent.getDisplay().syncExec(aRunnable);
-    }
-
-    /**
      * Returns string title basing on mode of this InstallerUi.
      */
     protected String getTitle()
@@ -1152,11 +1144,14 @@
         {
             long startTime = System.currentTimeMillis();
             
+            int maxWidth = DisplayExtension.getBestImageWidth(DisplayExtension.LIST_ELEMENT);
+            int maxHeight = DisplayExtension.getBestImageHeight(DisplayExtension.LIST_ELEMENT);
+            
+            aDisplay.setData("org.eclipse.swt.internal.image.loadSize", new Point(maxWidth, maxHeight));
             Image image = new Image(aDisplay, aInputStream);
+            
             if (aScaleImage)
             {
-                int maxWidth = DisplayExtension.getBestImageWidth(DisplayExtension.LIST_ELEMENT);
-                int maxHeight = DisplayExtension.getBestImageHeight(DisplayExtension.LIST_ELEMENT);
                 Rectangle rect = image.getBounds();
                 if (maxWidth != rect.width || maxHeight != rect.height)
                 {
--- a/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/CertificateDetailsView.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/CertificateDetailsView.java	Wed Oct 13 14:23:59 2010 +0300
@@ -79,7 +79,7 @@
         Label detailsLabel = createLabel(
                                  InstallerUiTexts.get(InstallerUiTexts.NOT_CERTIFIED_TITLE),
                                  horizontalSpan, labelStyle);
-        setCssId(detailsLabel, "heading");
+        detailsLabel.setFont(iInstallerUi.getBoldFont());
 
         // Add domain category label.
         createLabel("", horizontalSpan, labelStyle);
@@ -103,7 +103,6 @@
                                                       new String[] { appName }),
                                  horizontalSpan, labelStyle);
 
-        setCssId(warningLabel, "detailsWarningLabel");
     }
 
     /**
@@ -119,7 +118,7 @@
                              (InstallerUiTexts.get
                               (InstallerUiTexts.CERTIFICATE_TITLE),
                               horizontalSpan, labelStyle);
-        setCssId(detailsLabel, "heading");
+        detailsLabel.setFont(iInstallerUi.getBoldFont());
 
         SigningCertificate certificate = iCerts[iCertIndex];
 
--- a/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ConfirmationViewBase.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ConfirmationViewBase.java	Wed Oct 13 14:23:59 2010 +0300
@@ -100,8 +100,8 @@
                     createCommands();
                     setDefaultCommand();
                 }
-                iInstallerUi.loadCss();
                 setVisible(true);
+                iInstallerUi.unhide();
             }
         });
         // The UI thread must not be blocked. Let's wait for the answer
@@ -184,14 +184,6 @@
         if (iOkText != null)
         {
             iOkCommand = new Button(getCommandComposite(), SWT.PUSH);
-            if (iCancelText != null)
-            {
-                setCssId(iOkCommand, "softKeyButton");
-            }
-            else
-            {
-                setCssId(iOkCommand, "softKeyButtonWide");
-            }
             GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
             gridData.horizontalSpan = horizontalSpan;
             iOkCommand.setLayoutData(gridData);
@@ -238,14 +230,6 @@
         if (iCancelText != null)
         {
             iCancelCommand = new Button(getCommandComposite(), SWT.PUSH);
-            if (iOkText != null)
-            {
-                setCssId(iCancelCommand, "softKeyButton");
-            }
-            else
-            {
-                setCssId(iCancelCommand, "softKeyButtonWide");
-            }
             GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
             gridData.horizontalSpan = horizontalSpan;
             iCancelCommand.setLayoutData(gridData);
--- a/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ErrorDetailsView.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ErrorDetailsView.java	Wed Oct 13 14:23:59 2010 +0300
@@ -69,20 +69,20 @@
     protected void createView()
     {
         // Add title.
-        Label titleLabel = null;
         String title = InstallerUiTexts.get(InstallerUiTexts.INSTALL_FAILED);
         if (iInstallerUi.getInstallInfo() != null)
         {
-            titleLabel = createLabel(title, getColumns() - 1, SWT.WRAP);
+            Label titleLabel = createLabel(title, getColumns() - 1, SWT.WRAP);
+            titleLabel.setFont(iInstallerUi.getBoldFont());
             // Add security icon.
             iCertificates = iInstallerUi.getInstallInfo().getCertificates();
             createSecurityButton();
         }
         else
         {
-            titleLabel = createLabel(title, getColumns(), SWT.WRAP);
+            Label titleLabel = createLabel(title, getColumns(), SWT.WRAP);
+            titleLabel.setFont(iInstallerUi.getBoldFont());
         }
-        setCssId(titleLabel, "heading");
 
         int horizontalSpan = getColumns();
         int labelStyle = SWT.WRAP;
@@ -90,7 +90,6 @@
         // Begin widgets creation.
         Label errorLabel = createLabel(
             iException.getDetailedMessage(), horizontalSpan, labelStyle);
-        setCssId(errorLabel, "errorLabel");
         // End of widgets creation.
     }
 
--- a/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ErrorView.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ErrorView.java	Wed Oct 13 14:23:59 2010 +0300
@@ -78,7 +78,7 @@
         else
         {
             Label titleLabel = createLabel(title, getColumns(), SWT.WRAP);
-            setCssId(titleLabel, "heading");
+            titleLabel.setFont(iInstallerUi.getBoldFont());
         }
 
         int horizontalSpan = getColumns();
@@ -87,7 +87,6 @@
         // Begin widgets creation.
         Label errorLabel = createLabel(
             iException.getShortMessage(), horizontalSpan, labelStyle);
-        setCssId(errorLabel, "errorLabel");
         // End of widgets creation.
 
         if (iInstallerUi.getInstallInfo() != null)
--- a/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/InstallConfirmationView.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/InstallConfirmationView.java	Wed Oct 13 14:23:59 2010 +0300
@@ -33,6 +33,7 @@
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Link;
 import org.eclipse.swt.widgets.Listener;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.Text;
@@ -106,7 +107,15 @@
     protected void createView()
     {
         // Add header.
-        addHeader(null, iInstallInfo, null);
+        String title = InstallerUiTexts.get(InstallerUiTexts.INSTALL_QUERY);
+        if (iInstallInfo != null)
+        {
+            if (iInstallInfo.getOldVersion() != null)
+            {
+                title = InstallerUiTexts.get(InstallerUiTexts.UPDATE_QUERY);
+            }
+        }
+        addHeader(title, iInstallInfo, null);
 
         GridData gridData = null;
         int horizontalSpan = getColumns();
@@ -118,7 +127,6 @@
         {
             // Add installation drive selector.
             iDriveSelector = new Combo(getComposite(), SWT.READ_ONLY);
-            setCssId(iDriveSelector, "driveSelector");
             gridData = new GridData(GridData.FILL_HORIZONTAL);
             gridData.horizontalSpan = horizontalSpan;
             iDriveSelector.setLayoutData(gridData);
@@ -148,7 +156,6 @@
         {
             // Add retain user data option.
             iRetainDataButton = new Button(getComposite(), SWT.CHECK);
-            setCssId(iRetainDataButton, "retainDataButton");
             gridData = new GridData(GridData.FILL_HORIZONTAL);
             gridData.horizontalSpan = horizontalSpan;
             iRetainDataButton.setLayoutData(gridData);
--- a/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/InstallerUiEswt.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/InstallerUiEswt.java	Wed Oct 13 14:23:59 2010 +0300
@@ -27,6 +27,7 @@
 import com.nokia.mj.impl.installer.ui.LaunchAppInfo;
 import com.nokia.mj.impl.installer.ui.PermissionInfo;
 import com.nokia.mj.impl.installer.ui.UninstallInfo;
+import com.nokia.mj.impl.installer.ui.eswt.MinimalUi;
 import com.nokia.mj.impl.rt.ui.ConfirmData;
 import com.nokia.mj.impl.rt.ui.RuntimeUi;
 import com.nokia.mj.impl.rt.ui.RuntimeUiFactory;
@@ -36,7 +37,6 @@
 
 import java.io.InputStream;
 import java.io.IOException;
-import java.util.Enumeration;
 import java.util.Hashtable;
 
 import org.eclipse.ercp.swt.midp.UIThreadSupport;
@@ -47,10 +47,10 @@
 import org.eclipse.swt.graphics.FontData;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.graphics.ImageData;
+import org.eclipse.swt.graphics.ImageLoader;
 import org.eclipse.swt.graphics.Point;
 import org.eclipse.swt.graphics.Rectangle;
 import org.eclipse.swt.internal.extension.DisplayExtension;
-import org.eclipse.swt.internal.qt.BaseCSSEngine;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Composite;
@@ -62,15 +62,10 @@
  */
 public class InstallerUiEswt extends InstallerUi
 {
-    /** Disable UI temporarily. */
-    private static final boolean DISABLE_UI =
-        (System.getProperty("com.nokia.mj.impl.installer.ui.disableui")
-         == null? false: true);
     /** Default shell style. */
     private static final int SHELL_STYLE =
         SWT.BORDER | SWT.APPLICATION_MODAL | SWT.ON_TOP;
 
-    private BaseCSSEngine iCssEngine = null;
     private Shell iParent = null;
     private Shell iDialog = null;
     private ProgressView iProgressView = null;
@@ -103,9 +98,8 @@
     private boolean iDisplayProgress = false;
     /** Flag telling if the first progress bar update has been traced. */
     private boolean iProgressBarUpdateTraced = false;
-
-    /** Certificate details view, owned by the view where it was opened. */
-    private CertificateDetailsView iCertificateDetailsView = null;
+    /** Flag telling if MinimalUi should be used if UI creation fails. */
+    private boolean iMinimalUiEnabled = true;
 
     /** Hashtable for storing the loaded icons. */
     private static Hashtable iImageTable = null;
@@ -141,6 +135,7 @@
         // Create a hashtable for icons.
         iImageTable = new Hashtable();
         // Create a new thread to be the UI main thread.
+        iUiThreadExists = true;
         UIThreadSupport.startInUIThread(new Runnable()
         {
             public void run()
@@ -159,14 +154,12 @@
     private void uiMain()
     {
         log("uiMain: thread started");
-        iUiThreadExists = true;
         try
         {
             // Create the necessary views.
             DisplayExtension display = new DisplayExtension();
             StartUpTrace.doTrace("InstallerUiEswt display created");
             display.setAppName(""); // Remove display title.
-            iCssEngine = new BaseCSSEngine(display);
             iParent = new Shell(display);
             iDialog = new Shell(iParent, SHELL_STYLE);
             iDefaultShellBounds = iDialog.internal_getDefaultBounds();
@@ -189,10 +182,10 @@
             });
 
             // Initialize best icon size.
-            //iBestIconSize = new Point(
-            //    display.getBestImageWidth(DisplayExtension.ALERT),
-            //    display.getBestImageHeight(DisplayExtension.ALERT));
-            //log("Best icon size: " + iBestIconSize);
+            iBestIconSize = new Point(
+                display.getBestImageWidth(DisplayExtension.ALERT),
+                display.getBestImageHeight(DisplayExtension.ALERT));
+            log("Best icon size: " + iBestIconSize);
 
             synchronized (iInitWaitObject)
             {
@@ -223,7 +216,10 @@
                     display.sleep();
                 }
             }
-            disposeResources();
+            if (iBoldFont != null && !iBoldFont.isDisposed())
+            {
+                iBoldFont.dispose();
+            }
             display.dispose();
             log("uiMain: display disposed");
             synchronized (iExitWaitObject)
@@ -256,10 +252,6 @@
     public void cancelConfirmations()
     {
         super.cancelConfirmations();
-        if (iCertificateDetailsView != null)
-        {
-            iCertificateDetailsView.confirmCancel();
-        }
         if (iInstallConfirmationView != null)
         {
             iInstallConfirmationView.confirmCancel();
@@ -310,14 +302,24 @@
         super.confirm(aInstallInfo);
 
         waitForUi();
+        boolean result = true;
         if (!isUiReady())
         {
-            // If UI is not ready by the time confirmation is requested,
-            // throw an exception.
-            throw new RuntimeException("JavaInstallerUi not ready");
+            result = false;
+            if (iMinimalUiEnabled)
+            {
+                result = MinimalUi.confirmStatic(aInstallInfo);
+                log("MinimalUi installation confirmation returns " + result);
+                return result;
+            }
+            else
+            {
+                // If UI is not ready by the time confirmation is requested,
+                // throw an exception.
+                throw new RuntimeException("JavaInstallerUi not ready");
+            }
         }
 
-        boolean result = true;
         if (result)
         {
             StartUpTrace.doTrace("InstallerUiEswt confirm");
@@ -397,9 +399,6 @@
             return true;
         }
 
-        // Ensure that UI is visible when this prompt is displayed.
-        unhide();
-
         synchronized (iProgressSyncObject)
         {
             // Do not display progress bar during dialog.
@@ -464,7 +463,6 @@
     public void updateProgress(int aProgress)
     {
         super.updateProgress(aProgress);
-        if (DISABLE_UI) return; // Disable UI temporarily.
         if (!isUiReady())
         {
             return;
@@ -475,14 +473,7 @@
         // updating it.
         synchronized (iProgressSyncObject)
         {
-            if (iDlProgressView != null && iDlProgressView.isVisible())
-            {
-                // If download progress is being displayed,
-                // do not display installation progress.
-                return;
-            }
-            if (iDisplayProgress && !iProgressView.isVisible() &&
-                iCertificateDetailsView == null)
+            if (iDisplayProgress && !iProgressView.isVisible())
             {
                 // Re-create iProgressView here so that it gets
                 // application info that was set when confirm()
@@ -518,7 +509,6 @@
     public void ended()
     {
         super.ended();
-        if (DISABLE_UI) return; // Disable UI temporarily.
         if (!isUiReady())
         {
             return;
@@ -563,7 +553,6 @@
     public void started(DownloadInfo aDownloadInfo)
     {
         super.started(aDownloadInfo);
-        if (DISABLE_UI) return; // Disable UI temporarily.
         if (!isUiReady())
         {
             return;
@@ -590,7 +579,6 @@
     public void updateProgress(DownloadInfo aDownloadInfo)
     {
         super.updateProgress(aDownloadInfo);
-        if (DISABLE_UI) return; // Disable UI temporarily.
         if (!isUiReady())
         {
             return;
@@ -616,8 +604,7 @@
 
         synchronized (iProgressSyncObject)
         {
-            if (iDisplayProgress && !iDlProgressView.isVisible() &&
-                iCertificateDetailsView == null)
+            if (iDisplayProgress && !iDlProgressView.isVisible())
             {
                 iDlProgressView.setVisible(true);
             }
@@ -641,7 +628,6 @@
     public void ended(DownloadInfo aDownloadInfo)
     {
         super.ended(aDownloadInfo);
-        if (DISABLE_UI) return; // Disable UI temporarily.
         if (!isUiReady())
         {
             return;
@@ -653,8 +639,7 @@
         }
         synchronized (iProgressSyncObject)
         {
-            if (iDisplayProgress && !iProgressView.isVisible() &&
-                iCertificateDetailsView == null)
+            if (iDisplayProgress && !iProgressView.isVisible())
             {
                 iProgressView.setVisible(true);
             }
@@ -669,7 +654,6 @@
     public void setOcspIndicator(boolean aOn)
     {
         super.setOcspIndicator(aOn);
-        if (DISABLE_UI) return; // Disable UI temporarily.
         waitForUi();
         if (!isUiReady())
         {
@@ -685,18 +669,16 @@
                 {
                     public void run()
                     {
-                        iOcspProgressView = new ProgressView(
-                            self, iDialog,
-                            InstallerUiTexts.get(InstallerUiTexts.OCSP_CHECK_PROGRESS),
-                            true);
+                        iOcspProgressView = new ProgressView(self, iDialog,
+                                                             InstallerUiTexts.get(InstallerUiTexts.OCSP_CHECK_PROGRESS),
+                                                             true);
                     }
                 });
                 iOcspProgressView.addCancelCommand();
             }
             if (iOcspProgressView != null)
             {
-                if (!iOcspProgressView.isVisible() &&
-                    iCertificateDetailsView == null)
+                if (!iOcspProgressView.isVisible())
                 {
                     iOcspProgressView.setVisible(true);
                 }
@@ -772,11 +754,9 @@
     public void error(InstallerExceptionBase aInstallerException)
     {
         super.error(aInstallerException);
-        if (DISABLE_UI) return; // Disable UI temporarily.
 
         waitForUi();
-        waitForCertificateDetailsView();
-        if (!isUiReady() || iHidden || iConfirmationsCanceled) {
+        if (!isUiReady()) {
             return;
         }
 
@@ -819,6 +799,45 @@
     }
 
     /**
+     * Notify user that an error has occurred using RuntimeUI.
+     *
+     * @param aInstallerException exception indicating the error reason
+     */
+    /*
+    private void showRuntimeUiError(InstallerExceptionBase aInstallerException)
+    {
+        boolean identified = false;
+        if (iInstallInfo != null)
+        {
+            if (iInstallInfo.getCertificates() != null)
+            {
+                identified = true;
+            }
+        }
+        else if (iUninstallInfo != null)
+        {
+            if (iUninstallInfo.getCertificates() != null)
+            {
+                identified = true;
+            }
+        }
+        String tmpTitle = InstallerUiTexts.get(InstallerUiTexts.INSTALL_FAILED);
+
+        // Ensure that no confirmations are being displayed.
+        cancelConfirmations();
+        // Hide progress view before displaying error message.
+        if (iProgressView != null)
+        {
+            iProgressView.setVisible(false);
+        }
+        // Use RuntimeUi to display uninstallation error message.
+        RuntimeUi runtimeUi = RuntimeUiFactory.getRuntimeUi(identified);
+        runtimeUi.error(tmpTitle, aInstallerException);
+        runtimeUi.destroy();
+    }
+    */
+
+    /**
      * Seeks confirmation from the user.
      *
      * @param aAppName     the name of the application on behalf of which the
@@ -831,19 +850,10 @@
      */
     public boolean confirm(String aAppName, ConfirmData aConfirmData)
     {
-        if (DISABLE_UI) return true; // Disable UI temporarily.
         waitForUi();
         if (!isUiReady()) {
             return true;
         }
-        waitForCertificateDetailsView();
-        if (iConfirmationsCanceled)
-        {
-            return false;
-        }
-
-        // Ensure that UI is visible when this prompt is displayed.
-        unhide();
 
         if (iRuntimeConfirmationView == null)
         {
@@ -878,17 +888,12 @@
      */
     public String[] getUsernamePassword(String aUrl)
     {
-        if (DISABLE_UI) return new String[] { "", "" }; // Disable UI temporarily.
         waitForUi();
-        waitForCertificateDetailsView();
-        if (!isUiReady() || iConfirmationsCanceled)
+        if (!isUiReady())
         {
             return null;
         }
 
-        // Ensure that UI is visible when this prompt is displayed.
-        unhide();
-
         synchronized (iProgressSyncObject)
         {
             // Do not display progress bar during dialog.
@@ -938,15 +943,11 @@
      */
     public boolean launchAppQuery(LaunchAppInfo aLaunchAppInfo)
     {
-        if (DISABLE_UI) return false; // Disable UI temporarily.
         waitForUi();
-        waitForCertificateDetailsView();
-        if (!isUiReady() || iConfirmationsCanceled ||
-            iHidden || getInstallInfo() == null)
+        if (!isUiReady() || iConfirmationsCanceled || getInstallInfo() == null)
         {
-            // Either UI is not yet ready, user has cancelled
-            // installation or UI is hidden; in all these cases
-            // do nothing.
+            // Either UI is not yet ready, or user has cancelled
+            // installation, in both cases do nothing.
             return false;
         }
 
@@ -963,46 +964,31 @@
             });
         }
         boolean result = iLaunchAppQueryView.launchAppQuery(aLaunchAppInfo);
-        iLaunchAppQueryView.dispose();
-        iLaunchAppQueryView = null;
-        if (!result)
+        iParent.getDisplay().syncExec(new Runnable()
         {
-            iParent.getDisplay().syncExec(new Runnable()
+            public void run()
             {
-                public void run()
-                {
-                    iParent.dispose();
-                }
-            });
-        }
+                iParent.dispose();
+            }
+        });
+        iLaunchAppQueryView = null;
         log("LaunchAppQuery returns " + result + " for " + aLaunchAppInfo);
         return result;
     }
 
     /**
-     * Executes given Runnable synchronously in the UI thread.
-     */
-    public void syncExec(Runnable aRunnable)
-    {
-        if (!iParent.getDisplay().isDisposed())
-        {
-            iParent.getDisplay().syncExec(aRunnable);
-        }
-    }
-
-    /**
      * Hides or unhides InstallerUi.
      */
     public void hide(boolean aHide)
     {
-        iHidden = aHide;
-        if (iDialog != null)
+        final boolean hide = aHide;
+        if (iParent != null)
         {
-            iDialog.getDisplay().syncExec(new Runnable()
+            iParent.getDisplay().syncExec(new Runnable()
             {
                 public void run()
                 {
-                    iDialog.setMinimized(iHidden);
+                    iParent.setMinimized(hide);
                 }
             });
         }
@@ -1021,66 +1007,24 @@
     }
 
     /**
-     * Sets flag telling if certificate details view is open.
-     */
-    protected void setCertificateDetailsView(CertificateDetailsView aView)
-    {
-        if (iCertificateDetailsView != null && aView == null)
-        {
-            // Certificate details view has been closed,
-            // notify possible waiters.
-            synchronized (iCertificateDetailsView)
-            {
-                iCertificateDetailsView.notify();
-            }
-        }
-        iCertificateDetailsView = aView;
-    }
-
-    /**
-     * Waits until certificate details view is closed.
-     */
-    protected void waitForCertificateDetailsView()
-    {
-        if (iCertificateDetailsView != null)
-        {
-            // If certificate details view is open, wait until
-            // user closes it.
-            synchronized (iCertificateDetailsView)
-            {
-                try
-                {
-                    iCertificateDetailsView.wait();
-                }
-                catch (InterruptedException ie)
-                {
-                }
-            }
-        }
-    }
-
-    /**
      * Returns string title basing on mode of this InstallerUi.
      */
     protected String getTitle()
     {
-        String result = super.getTitle();
-        if (isUiReady())
+        String result = null;
+        if (iMode == MODE_INSTALL)
+        {
+            result = InstallerUiTexts.get(InstallerUiTexts.INSTALLING);
+        }
+        else if (iMode == MODE_UNINSTALL)
         {
-            if (iMode == MODE_INSTALL)
-            {
-                result = InstallerUiTexts.get(InstallerUiTexts.INSTALLING);
-            }
-            else if (iMode == MODE_UNINSTALL)
-            {
-                result = InstallerUiTexts.get("Uninstalling");
-            }
-            else if (iMode == MODE_APP_CONVERSION)
-            {
-                result = InstallerUiTexts.get(
-                    "Converting data for application " +
-                    iAppConversionCurrent + "/" + iAppConversionTotal);
-            }
+            result = InstallerUiTexts.get("Uninstalling");
+        }
+        else if (iMode == MODE_APP_CONVERSION)
+        {
+            result = InstallerUiTexts.get(
+                "Converting data for application " +
+                iAppConversionCurrent + "/" + iAppConversionTotal);
         }
         return result;
     }
@@ -1100,24 +1044,16 @@
         {
             return iSecurityIcon;
         }
-        String iconFilename = "java_3_untrusted.png";
+        String iconFilename = ResourceUtil.UNTRUSTED_ICON_NAME;
         if (aIdentified)
         {
-            iconFilename = "java_3_trusted.png";
+            iconFilename = ResourceUtil.TRUSTED_ICON_NAME;
         }
-        try
+        String resourceDir = ResourceUtil.getResourceDir(0);
+        for (int i = 1; iSecurityIcon == null && resourceDir != null; i++)
         {
-            String resourceDir = ResourceUtil.getResourceDir(0);
-            for (int i = 1; iSecurityIcon == null && resourceDir != null; i++)
-            {
-                iSecurityIcon = loadImage(
-                    aDisplay, resourceDir + iconFilename, false);
-                resourceDir = ResourceUtil.getResourceDir(i);
-            }
-        }
-        catch (Throwable t)
-        {
-            log("Can not load security icon: " + t);
+            iSecurityIcon = loadImage(aDisplay, resourceDir + iconFilename, false);
+            resourceDir = ResourceUtil.getResourceDir(i);
         }
         return iSecurityIcon;
     }
@@ -1208,21 +1144,19 @@
         try
         {
             long startTime = System.currentTimeMillis();
-            Image image = new Image(aDisplay, aInputStream);
-            ImageData imageData = image.getImageData();
+            ImageData[] imageDatas = new ImageLoader().load(aInputStream);
+            ImageData imageData = imageDatas[0];
             if (aScaleImage)
             {
                 Point bestSize = getBestImageSize(
-                    imageData.width, imageData.height);
+                                     imageData.width, imageData.height);
                 if (bestSize.x != imageData.width ||
                         bestSize.y != imageData.height)
                 {
-                    Point oldSize =
-                        new Point(imageData.width, imageData.height);
                     imageData = imageData.scaledTo(bestSize.x, bestSize.y);
                     log("Image " + aImageName + " scaled from " +
-                        oldSize.x + "x" + oldSize.y + " to " +
-                        bestSize.x + "x" + bestSize.y);
+                        imageDatas[0].width + "x" + imageDatas[0].height +
+                        " to " + bestSize.x + "x" + bestSize.y);
                 }
             }
             result = new Image(aDisplay, imageData);
@@ -1244,8 +1178,8 @@
      */
     private static Point getBestImageSize(int aWidth, int aHeight)
     {
-        final int MAX_WIDTH = (iBestIconSize == null? 50: iBestIconSize.x);
-        final int MAX_HEIGHT = (iBestIconSize == null? 50: iBestIconSize.y);
+        final int MAX_WIDTH = iBestIconSize.x;
+        final int MAX_HEIGHT = iBestIconSize.y;
         Point result = new Point(aWidth, aHeight);
         if (result.x > MAX_WIDTH || result.y > MAX_HEIGHT)
         {
@@ -1373,57 +1307,4 @@
     {
         return iActiveView;
     }
-
-    /**
-     * Loads JavaInstaller UI stylesheet.
-     */
-    void loadCss()
-    {
-        String cssFilename = "javaapplicationinstaller.css";
-        String cssPath = null;
-        try
-        {
-            if (iCssEngine != null)
-            {
-                boolean loaded = false;
-                String resourceDir = ResourceUtil.getResourceDir(0);
-                for (int i = 1; !loaded && resourceDir != null; i++)
-                {
-                    cssPath = resourceDir + cssFilename;
-                    FileUtility cssFile = new FileUtility(cssPath);
-                    if (cssFile.exists())
-                    {
-                        iCssEngine.loadCSS(cssPath);
-                        log("CSS loaded from " + cssPath);
-                        break;
-                    }
-                    resourceDir = ResourceUtil.getResourceDir(i);
-                }
-            }
-        }
-        catch (Throwable t)
-        {
-            logError("Loading CSS from " + cssPath + " failed", t);
-        }
-    }
-
-    private void disposeResources() {
-        if (iBoldFont != null && !iBoldFont.isDisposed())
-        {
-            iBoldFont.dispose();
-        }
-        if (iSecurityIcon != null && !iSecurityIcon.isDisposed())
-        {
-            iSecurityIcon.dispose();
-        }
-        Enumeration e = iImageTable.elements();
-        while (e.hasMoreElements())
-        {
-            Image img = (Image)e.nextElement();
-            if (img != null && !img.isDisposed())
-            {
-                img.dispose();
-            }
-        }
-    }
 }
--- a/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/InstallerUiTexts.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/InstallerUiTexts.java	Wed Oct 13 14:23:59 2010 +0300
@@ -30,6 +30,73 @@
     /*** ----------------------------- PUBLIC ------------------------------ */
 
     // Define constants for localised text ids.
+    public static final String OK = "Ok";
+    public static final String CANCEL = "Cancel";
+    public static final String BACK = "Ok";
+    public static final String HIDE = "Hide";
+    public static final String SHOW = "Show";
+    public static final String CLOSE = "Close";
+    public static final String INSTALL_QUERY = "Install?";
+    public static final String UPDATE_QUERY = "Update?";
+    public static final String OCSP_CHECK_PROGRESS = "Checking certificate validity";
+    public static final String INSTALLING = "Installing";
+    public static final String INSTALL_FAILED = "Installation failed";
+    public static final String INSTALLATION_COMPLETE = "Installed";
+    public static final String DOWNLOADING = "Downloading";
+    public static final String CONNECT_TO = "Connect to";
+    public static final String DOWNLOAD_APPLICATION = "To download %U you need to authenticate yourself";
+    public static final String USERNAME = "Username:";
+    public static final String PASSWORD = "Password:";
+    public static final String SUITE_NAME = "%U (%U)";
+    public static final String SUITE_VENDOR = "%U";
+    public static final String SUITE_VERSION = "%U";
+    public static final String APP_NAME = "%U";
+    public static final String SIZE_KB = "%U kB";
+    public static final String SIZE_MB = "%U MB";
+    public static final String RETAIN_USER_DATA = "Retain application data";
+    // Certificate info texts.
+    public static final String NOT_CERTIFIED_TITLE = "Application is not certified.";
+    public static final String NOT_CERTIFIED_INFO = "Application %U is from an unknown source.";
+    public static final String CERTIFICATE_TITLE = "Application is certified.";
+    public static final String DOMAIN = "Domain: %U";
+    public static final String DOMAIN_MANU = "Manufacturer";
+    public static final String DOMAIN_OPER = "Operator";
+    public static final String DOMAIN_ITP = "Trusted 3rd party";
+    public static final String DOMAIN_UTP = "Untrusted 3rd party";
+    public static final String ISSUER = "Issuer: %U";
+    public static final String SUBJECT = "Subject: %U";
+    public static final String ORGANIZATION = "Organization: %U";
+    public static final String VALID_FROM = "Valid from: %U";
+    public static final String VALID_UNTIL = "Valid until: %U";
+    public static final String SERIAL_NUMBER = "Serial number: %U";
+    public static final String FINGERPRINT = "Fingerprint: %U";
+    // Texts for installation drive selection.
+    public static final String DRIVE_TYPE_UNKNOWN = "%U: Unknown";
+    public static final String DRIVE_TYPE_UNKNOWN_KB = "%U: Unknown (%N kB)";
+    public static final String DRIVE_TYPE_UNKNOWN_MB = "%U: Unknown (%N MB)";
+    public static final String DRIVE_TYPE_UNKNOWN_GB = "%U: Unknown (%N GB)";
+    public static final String DRIVE_TYPE_PHONE_MEMORY = "%U: Phone memory";
+    public static final String DRIVE_TYPE_PHONE_MEMORY_KB = "%U: Phone memory (%N kB)";
+    public static final String DRIVE_TYPE_PHONE_MEMORY_MB = "%U: Phone memory (%N MB)";
+    public static final String DRIVE_TYPE_PHONE_MEMORY_GB = "%U: Phone memory (%N GB)";
+    public static final String DRIVE_TYPE_MEMORY_CARD = "%U: Memory card";
+    public static final String DRIVE_TYPE_MEMORY_CARD_KB = "%U: Memory card (%N kB)";
+    public static final String DRIVE_TYPE_MEMORY_CARD_MB = "%U: Memory card (%N MB)";
+    public static final String DRIVE_TYPE_MEMORY_CARD_GB = "%U: Memory card (%N GB)";
+    public static final String DRIVE_TYPE_INTERNAL_MASS_STORAGE = "%U: Internal Mass Storage";
+    public static final String DRIVE_TYPE_INTERNAL_MASS_STORAGE_KB = "%U: Internal Mass Storage (%N kB)";
+    public static final String DRIVE_TYPE_INTERNAL_MASS_STORAGE_MB = "%U: Internal Mass Storage (%N MB)";
+    public static final String DRIVE_TYPE_INTERNAL_MASS_STORAGE_GB = "%U: Internal Mass Storage (%N GB)";
+    // Texts for permission confirmation view.
+    public static final String PERM_QUERY = "Application %U asks permissions to access protected device functionality.";
+    public static final String PERM_VIEW_DETAILS = "Details";
+    public static final String PERM_ALLOW_ALWAYS = "Allow always";
+    public static final String PERM_ASK_ME_LATER = "Ask me later";
+    public static final String PERM_CANCEL = "Cancel installing";
+    public static final String PERM_VIEW_DETAILS_TITLE = "Application asks permissions for:";
+
+    /*
+    // Define constants for localised text ids.
     public static final String OK = "button_ok";
     public static final String CANCEL = "button_cancel";
     public static final String BACK = "button_back_ok";
@@ -47,8 +114,9 @@
     public static final String DOWNLOAD_APPLICATION = "info_auth_yourself";
     public static final String USERNAME = "dialog_username";
     public static final String PASSWORD = "dialog_password";
-    public static final String SUITE_NAME_VERSION = "info_app_suite_name_version";
+    public static final String SUITE_NAME = "info_app_suite_name";
     public static final String SUITE_VENDOR = "info_vendor";
+    public static final String SUITE_VERSION = "info_version";
     public static final String APP_NAME = "info_app_name";
     public static final String SIZE_KB = "info_size_kb";
     public static final String SIZE_MB = "info_size_mb";
@@ -93,6 +161,7 @@
     public static final String PERM_ASK_ME_LATER = "button_perm_ask_me_later";
     public static final String PERM_CANCEL = "button_perm_cancel_installing";
     public static final String PERM_VIEW_DETAILS_TITLE = "title_perm_view_details";
+    */
 
     /**
      * Method for retrieving a text string with given id and no parameters.
@@ -114,12 +183,12 @@
      */
     public static String get(String aTextId, Object[] aTextParameters)
     {
-        if (iRes == null)
-        {
-            iRes = ResourceLoader.getInstance(
-                null, null, "javaapplicationinstaller", "txt_java_inst_");
-        }
-        return iRes.format(aTextId, aTextParameters);
+        return new com.nokia.mj.impl.utils.Formatter(aTextId).format(aTextParameters);
+        //if (iRes == null)
+        //{
+        //    iRes = ResourceLoader.getInstance("javaapplicationinstaller", "txt_java_inst_");
+        //}
+        //return iRes.format(aTextId, aTextParameters);
     }
 
     /*** ---------------------------- PROTECTED --------------------------- */
--- a/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/LaunchAppQueryView.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/LaunchAppQueryView.java	Wed Oct 13 14:23:59 2010 +0300
@@ -18,9 +18,12 @@
 
 package com.nokia.mj.impl.installer.ui.eswt2;
 
+import com.nokia.mj.impl.installer.ui.InstallInfo;
 import com.nokia.mj.impl.installer.ui.LaunchAppInfo;
 
+import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Button;
 
 /**
  * LaunchAppQueryView asks from the user if the installed
@@ -28,6 +31,9 @@
  */
 public class LaunchAppQueryView extends ConfirmationViewBase
 {
+    private LaunchAppInfo iLaunchAppInfo = null;
+    private Button iDefaultButton = null;
+
     /** Constructor */
     protected LaunchAppQueryView()
     {
@@ -40,7 +46,7 @@
     {
         super(aInstallerUi, aParent, 8);
         setTitle(InstallerUiTexts.get(InstallerUiTexts.INSTALLATION_COMPLETE));
-        setCommands(InstallerUiTexts.get(InstallerUiTexts.SHOW),
+        setCommands("Show", //InstallerUiTexts.get(InstallerUiTexts.SHOW),
                     InstallerUiTexts.get(InstallerUiTexts.CLOSE));
     }
 
@@ -52,6 +58,7 @@
             return false;
         }
 
+        iLaunchAppInfo = aLaunchAppInfo;
         // Use confirm() from super class to display the view.
         boolean result = confirm();
         // Return the result to the client.
@@ -61,8 +68,8 @@
     protected void createView()
     {
         // Add header.
-        addHeader(InstallerUiTexts.get(InstallerUiTexts.INSTALLATION_COMPLETE),
-                  iInstallerUi.getInstallInfo(), null);
+        String title = "Installed";
+        addHeader(title, iInstallerUi.getInstallInfo(), null);
         // Add content to the application info Composite.
         addAppInfo(iInstallerUi.getInstallInfo(), true);
     }
@@ -74,4 +81,26 @@
     {
         // User selection data is initialized in button listeners.
     }
+
+    /**
+     * Returns SWT style for this view.
+     */
+    protected int getStyle()
+    {
+        return SWT.V_SCROLL;
+    }
+
+    /**
+     * Called after view and commands have been created. Subclasses
+     * can overrride this method to set focus to their own default
+     * commands.
+     */
+    protected void setDefaultCommand()
+    {
+        if (iDefaultButton != null)
+        {
+            iDefaultButton.setFocus();
+            getShell().setDefaultButton(iDefaultButton);
+        }
+    }
 }
--- a/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/PermissionConfirmationView.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/PermissionConfirmationView.java	Wed Oct 13 14:23:59 2010 +0300
@@ -35,6 +35,7 @@
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Link;
 import org.eclipse.swt.widgets.Listener;
 import org.eclipse.swt.widgets.Shell;
 
@@ -61,7 +62,7 @@
     protected PermissionConfirmationView(
         InstallerUiEswt aInstallerUi, Composite aParent)
     {
-        super(aInstallerUi, aParent, 8);
+        super(aInstallerUi, aParent, 8, true);
         setTitle(InstallerUiTexts.get(InstallerUiTexts.INSTALLING));
         setCommands(null, null);
     }
@@ -92,30 +93,39 @@
     protected void createView()
     {
         // Add header.
-        addHeader(null, iInstallInfo, null);
+        String title = "Install?";
+        String appName = "";
+        if (iInstallInfo != null)
+        {
+            if (iInstallInfo.getOldVersion() != null)
+            {
+                title = "Update?";
+            }
+            appName = iInstallInfo.getName();
+        }
+        addHeader(title, iInstallInfo, null);
 
         GridData gridData = null;
+        int horizontalSpan = getColumns();
         int labelStyle = SWT.WRAP;
 
         // Add permission query label.
-        int detailsColumns = 2;
-        int horizontalSpan = getColumns() - detailsColumns;
-        Label permissionQueryLabel = createLabel(
-            InstallerUiTexts.get(InstallerUiTexts.PERM_QUERY),
+        Label domainLabel = createLabel(
+            InstallerUiTexts.get(InstallerUiTexts.PERM_QUERY,
+                                 new String[] { appName }),
             horizontalSpan, labelStyle);
-        setCssId(permissionQueryLabel, "permissionDetails");
 
         // Add link for permission details.
         if (iPermissionInfo != null &&
                 iPermissionInfo.getPermissionNames() != null &&
                 iPermissionInfo.getPermissionNames().length > 0)
         {
-            horizontalSpan = detailsColumns;
-            Button detailsButton = new Button(getComposite(), SWT.NONE);
-            setCssId(detailsButton, "detailsLink");
-            detailsButton.setText(
-                InstallerUiTexts.get(InstallerUiTexts.PERM_VIEW_DETAILS));
-            detailsButton.addListener(SWT.Selection, new Listener()
+            Link detailsLink = new Link(getComposite(), SWT.NONE);
+            detailsLink.setText(
+                "<a>" +
+                InstallerUiTexts.get(InstallerUiTexts.PERM_VIEW_DETAILS) +
+                "</a>");
+            detailsLink.addListener(SWT.Selection, new Listener()
             {
                 public void handleEvent(Event aEvent)
                 {
@@ -124,15 +134,15 @@
             });
             gridData = new GridData(GridData.FILL_HORIZONTAL);
             gridData.horizontalSpan = horizontalSpan;
-            detailsButton.setLayoutData(gridData);
-            addSoftKeyListenerFor(detailsButton);
+            detailsLink.setLayoutData(gridData);
+            addSoftKeyListenerFor(detailsLink);
         }
 
-        horizontalSpan = getColumns();
+        // Number of pixels on top of the buttons.
+        int verticalIndent = 5;
 
         // Add allow button.
         iAllowButton = new Button(getComposite(), SWT.NONE);
-        setCssId(iAllowButton, "allowButton");
         iAllowButton.setText(InstallerUiTexts.get(
                                  InstallerUiTexts.PERM_ALLOW_ALWAYS));
         iAllowButton.addListener(SWT.Selection, new Listener()
@@ -159,13 +169,13 @@
         });
         gridData = new GridData(GridData.FILL_HORIZONTAL);
         gridData.horizontalSpan = horizontalSpan;
+        gridData.verticalIndent = verticalIndent;
         iAllowButton.setLayoutData(gridData);
         iAllowButton.setFocus();
         addSoftKeyListenerFor(iAllowButton);
 
         // Add deny button.
         iDenyButton = new Button(getComposite(), SWT.NONE);
-        setCssId(iDenyButton, "denyButton");
         iDenyButton.setText(InstallerUiTexts.get(
                                 InstallerUiTexts.PERM_ASK_ME_LATER));
         iDenyButton.addListener(SWT.Selection, new Listener()
@@ -192,12 +202,12 @@
         });
         gridData = new GridData(GridData.FILL_HORIZONTAL);
         gridData.horizontalSpan = horizontalSpan;
+        gridData.verticalIndent = verticalIndent;
         iDenyButton.setLayoutData(gridData);
         addSoftKeyListenerFor(iDenyButton);
 
         // Add cancel button.
         iCancelButton = new Button(getComposite(), SWT.NONE);
-        setCssId(iCancelButton, "cancelButton");
         iCancelButton.setText(InstallerUiTexts.get(InstallerUiTexts.PERM_CANCEL));
         iCancelButton.addListener(SWT.Selection, new Listener()
         {
@@ -222,12 +232,9 @@
         });
         gridData = new GridData(GridData.FILL_HORIZONTAL);
         gridData.horizontalSpan = horizontalSpan;
+        gridData.verticalIndent = verticalIndent;
         iCancelButton.setLayoutData(gridData);
         addSoftKeyListenerFor(iCancelButton);
-
-        // After other widgets have been added, add content to
-        // application info Composite.
-        addAppInfo(iInstallInfo, false);
     }
 
     /**
--- a/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/PermissionDetailsView.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/PermissionDetailsView.java	Wed Oct 13 14:23:59 2010 +0300
@@ -64,7 +64,7 @@
                              (InstallerUiTexts.get
                               (InstallerUiTexts.PERM_VIEW_DETAILS_TITLE),
                               horizontalSpan, labelStyle);
-        setCssId(detailsLabel, "heading");
+        detailsLabel.setFont(iInstallerUi.getBoldFont());
 
         // Add permission names.
         String[] permNames = iPermissionInfo.getPermissionNames();
@@ -84,7 +84,6 @@
             Label permissionDetailsLabel = createLabel(
                                                iPermissionInfo.getPermissionsDetails(),
                                                horizontalSpan, labelStyle);
-            setCssId(permissionDetailsLabel, "detailsWarningLabel");
         }
     }
 
--- a/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ProgressView.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ProgressView.java	Wed Oct 13 14:23:59 2010 +0300
@@ -80,13 +80,12 @@
         if (iInstallerUi != null && iInstallerUi.getInstallInfo() != null)
         {
             // Add header.
-            addHeader(aMsg, iInstallerUi.getInstallInfo(), null);
+            addHeader(aMsg, iInstallerUi.getInstallInfo(), null, false);
         }
         else
         {
             setTitle(iMsg);
             iLabel = createLabel(iMsg, SWT.WRAP);
-            setCssId(iLabel, "heading");
         }
 
         iIndeterminate = aIndeterminate;
@@ -103,7 +102,6 @@
             iProgressBar.setMaximum(100);
             iProgressBar.setSelection(iValue);
         }
-        setCssId(iProgressBar, "progressBar");
         GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
         gridData.horizontalSpan = getColumns();
         iProgressBar.setLayoutData(gridData);
@@ -117,8 +115,6 @@
 
         // By default add cancel command to all progress bars.
         addCancelCommand();
-
-        iInstallerUi.loadCss();
     }
 
     /** Update text for this progress bar. */
@@ -173,17 +169,13 @@
         {
             public void run()
             {
-                // Set horizontalSpan to 2 for one button,
-                // and to 1 for two buttons.
-                int horizontalSpan = 1;
-                GridData gridData = null;
                 iHideCommand = new Button(getCommandComposite(), SWT.PUSH);
-                setCssId(iHideCommand, "softKeyButton");
-                gridData = new GridData(GridData.FILL_HORIZONTAL);
-                gridData.horizontalSpan = horizontalSpan;
+                GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
+                gridData.horizontalSpan = 1;
                 iHideCommand.setLayoutData(gridData);
                 iHideCommand.setText(InstallerUiTexts.get(InstallerUiTexts.HIDE));
-                iHideCommand.addSelectionListener(new SelectionListener()
+                iHideCommand.addSelectionListener
+                (new SelectionListener()
                 {
                     public void widgetDefaultSelected(SelectionEvent aEvent)
                     {
@@ -197,14 +189,13 @@
                 addSoftKeyListenerFor(iHideCommand);
 
                 iCancelCommand = new Button(getCommandComposite(), SWT.PUSH);
-                setCssId(iCancelCommand, "softKeyButton");
-                //setCssId(iCancelCommand, "softKeyButtonWide");
                 gridData = new GridData(GridData.FILL_HORIZONTAL);
-                gridData.horizontalSpan = horizontalSpan;
+                gridData.horizontalSpan = 1;
                 iCancelCommand.setLayoutData(gridData);
                 iCancelCommand.setText(
                     InstallerUiTexts.get(InstallerUiTexts.CANCEL));
-                iCancelCommand.addSelectionListener(new SelectionListener()
+                iCancelCommand.addSelectionListener
+                (new SelectionListener()
                 {
                     public void widgetDefaultSelected(SelectionEvent aEvent)
                     {
@@ -243,11 +234,8 @@
             public void run()
             {
                 getShell().setDefaultButton(null);
-                if (iHideCommand != null)
-                {
-                    iHideCommand.dispose();
-                    iHideCommand = null;
-                }
+                iHideCommand.dispose();
+                iHideCommand = null;
                 iCancelCommand.dispose();
                 iCancelCommand = null;
             }
--- a/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/RuntimeConfirmationView.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/RuntimeConfirmationView.java	Wed Oct 13 14:23:59 2010 +0300
@@ -57,18 +57,10 @@
         String[] answerOptions = iConfirmData.getAnswerOptions();
         switch (answerOptions.length)
         {
-        //case 1: setCommands(answerOptions[0], null); break;
-        case 1:
-            setCommands(InstallerUiTexts.get(InstallerUiTexts.OK), null);
-            break;
-        //case 2: setCommands(answerOptions[0], answerOptions[1]); break;
-        case 2:
-            setCommands(InstallerUiTexts.get(InstallerUiTexts.OK),
-                        InstallerUiTexts.get(InstallerUiTexts.CANCEL));
-            break;
+        case 1: setCommands(answerOptions[0], null); break;
+        case 2: setCommands(answerOptions[0], answerOptions[1]); break;
         default: setCommands(null, null); break;
         }
-
     }
 
     /**
@@ -76,13 +68,27 @@
      */
     protected void createView()
     {
-        // Add header.
-        addHeader(null, iInstallerUi.getInstallInfo(), null);
+        // Add title.
+        if (iInstallerUi.getInstallInfo() != null)
+        {
+            Label titleLabel = createLabel(iAppName, getColumns() - 1, SWT.WRAP);
+            titleLabel.setFont(iInstallerUi.getBoldFont());
+            // Add security icon.
+            iCertificates = iInstallerUi.getInstallInfo().getCertificates();
+            createSecurityButton();
+        }
+        else
+        {
+            Label titleLabel = createLabel(iAppName, getColumns(), SWT.WRAP);
+            titleLabel.setFont(iInstallerUi.getBoldFont());
+        }
 
         GridData gridData = null;
         int horizontalSpan = getColumns();
         int labelStyle = SWT.WRAP;
 
+        // Begin widgets creation.
+
         // Add question label.
         Label errorLabel = createLabel(
             iConfirmData.getQuestion(), horizontalSpan, labelStyle);
@@ -126,9 +132,7 @@
             iAnswerButtons[iConfirmData.getAnswerSuggestion()].setFocus();
         }
 
-        // After other widgets have been added, add content to
-        // application info Composite.
-        addAppInfo(iInstallerUi.getInstallInfo(), false);
+        // End of widgets creation.
     }
 
     /**
--- a/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/UsernamePasswordView.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/UsernamePasswordView.java	Wed Oct 13 14:23:59 2010 +0300
@@ -108,33 +108,28 @@
 
         int labelStyle = SWT.WRAP;
 
-        Label titleLabel = createLabel(
-            InstallerUiTexts.get(InstallerUiTexts.CONNECT_TO), labelStyle);
-        setCssId(titleLabel, "heading");
+        Label titleLabel = createLabel
+                           (InstallerUiTexts.get(InstallerUiTexts.CONNECT_TO), labelStyle);
+        titleLabel.setFont(iInstallerUi.getBoldFont());
 
-        Label urlLabel = createLabel(getServer(iUrl), labelStyle);
-        setCssId(urlLabel, "urlLabel");
+        Label urlLabel = createLabel(iUrl, labelStyle);
 
-        Label authLabel = createLabel(
-            InstallerUiTexts.get(InstallerUiTexts.DOWNLOAD_APPLICATION,
-                                 new String[] { iAppName }), labelStyle);
-        setCssId(authLabel, "authLabel");
+        Label authLabel = createLabel
+                          (InstallerUiTexts.get
+                           (InstallerUiTexts.DOWNLOAD_APPLICATION, new String[] { iAppName }),
+                           labelStyle);
 
-        Label usernameLabel = createLabel(
-            InstallerUiTexts.get(InstallerUiTexts.USERNAME), labelStyle);
-        setCssId(usernameLabel, "usernamePasswordLabel");
+        Label usernameLabel = createLabel
+                              (InstallerUiTexts.get(InstallerUiTexts.USERNAME), labelStyle);
 
         iUsernameText = new Text(getComposite(), SWT.BORDER);
-        setCssId(iUsernameText, "usernamePasswordInputField");
         iUsernameText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
         addSoftKeyListenerFor(iUsernameText);
 
-        Label passwordLabel = createLabel(
-            InstallerUiTexts.get(InstallerUiTexts.PASSWORD), labelStyle);
-        setCssId(passwordLabel, "usernamePasswordLabel");
+        Label passwordLabel = createLabel
+                              (InstallerUiTexts.get(InstallerUiTexts.PASSWORD), labelStyle);
 
         iPasswordText = new Text(getComposite(), SWT.PASSWORD | SWT.BORDER);
-        setCssId(iPasswordText, "usernamePasswordInputField");
         iPasswordText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
         addSoftKeyListenerFor(iPasswordText);
     }
@@ -156,31 +151,4 @@
     {
         return SWT.V_SCROLL;
     }
-
-    /**
-     * Returns server part from HTTP URL.
-     */
-    private String getServer(String aUrl)
-    {
-        String server = aUrl;
-        int i = server.indexOf("://");
-        if (i != -1)
-        {
-            server = server.substring(i + 3);
-            i = server.indexOf(":");
-            if (i != -1)
-            {
-                server = server.substring(0, i);
-            }
-            else
-            {
-                i = server.indexOf("/");
-                if (i != -1)
-                {
-                    server = server.substring(0, i);
-                }
-            }
-        }
-        return server;
-    }
 }
--- a/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ViewBase.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/installerui/javasrc/com/nokia/mj/impl/installer/ui/eswt2/ViewBase.java	Wed Oct 13 14:23:59 2010 +0300
@@ -34,7 +34,6 @@
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.graphics.Point;
 import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.internal.qt.WidgetConstant;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
@@ -43,7 +42,6 @@
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Widget;
 
 /**
  * Base class for different InstallerUi views.
@@ -52,8 +50,6 @@
 {
     /** Maximum view height in percentage from display client area height. */
     protected static final int MAX_VIEW_HEIGHT = 80;
-    /** Maximum view width in percentage from display client area width. */
-    protected static final int MAX_VIEW_WIDTH = 90;
     /** Parent shell for this view. */
     protected Shell iParent = null;
     /** Container for the contents of the view */
@@ -78,7 +74,7 @@
     private int iColumns = 1;
     /** Default content size. */
     private Point iDefaultContentSize = null;
-    /** Certificate details view. */
+    /** Certificate details view.  */
     private CertificateDetailsView iCertificateDetailsView = null;
     /** Certificates for this application. */
     protected SigningCertificate[] iCertificates = null;
@@ -103,7 +99,6 @@
         iParent = (Shell)aParent;
 
         iContainer = new Composite(iParent, 0);
-        setCssId(iContainer, "dialogArea");
         iContainer.setVisible(false);
 
         iColumns = aColumns;
@@ -221,7 +216,7 @@
     /** Set title for this view. */
     public void setTitle(String aTitle)
     {
-        // Dialog shells have no title.
+        // Dialog shells have no title anymore
     }
 
     /** Disposes this view. */
@@ -346,12 +341,12 @@
                     SWT.DEFAULT, SWT.DEFAULT));
         }
 
-        int contentWidth = iDefaultContentSize.x * MAX_VIEW_WIDTH / 100;
+        int contentWidth = iDefaultContentSize.x;
         if (aVerticalScrollBarVisible)
         {
             int verticalScrollBarWidth =
                 getScrolledComposite().getVerticalBar().getSize().x;
-            contentWidth -= verticalScrollBarWidth;
+            contentWidth = iDefaultContentSize.x - verticalScrollBarWidth;
         }
 
         // Recalculate the size of the content.
@@ -360,7 +355,7 @@
         Point cmdContentSize = cmdComp.computeSize(iDefaultContentSize.x, SWT.DEFAULT);
         cmdComp.setSize(cmdContentSize);
 
-        // Adjust Shell height and width.
+        // Adjust Shell height. The Shell never changes the x position, nor the width.
         Rectangle dispRect = shell.getDisplay().getClientArea();
         int offset = iDefaultContentSize.y - contentSize.y - cmdContentSize.y;
 
@@ -373,20 +368,18 @@
             offset -= maxHeight - newHeight;
             newHeight = maxHeight;
         }
-        int newWidth = defShellBounds.width;
-        int maxWidth = dispRect.width * MAX_VIEW_WIDTH / 100;
-        if (newWidth > maxWidth)
-        {
-            newWidth = maxWidth;
-        }
 
-        // Always center horizontally and vertically.
         Rectangle dispBounds = shell.getDisplay().getBounds();
-        int x = dispBounds.width - newWidth;
         int y = dispBounds.height - newHeight;
-        x /= 2;
+        // Always center vertically.
         y /= 2;
-        shell.setBounds(x, y, newWidth, newHeight);
+        // For landscape orientation center vertically
+        //if (dispRect.width > dispRect.height)
+        //{
+        //    y /= 2;
+        //}
+        // Set bounds when command Buttons are in use.
+        shell.setBounds(defShellBounds.x, y, defShellBounds.width, newHeight);
         Rectangle clientArea = shell.getClientArea();
         iContainer.setSize(clientArea.width, clientArea.height);
         iContainer.layout(true);
@@ -441,14 +434,6 @@
     }
 
     /**
-     * Sets CSS id for given widget.
-     */
-    protected void setCssId(Widget aWidget, String aCssId)
-    {
-        aWidget.setData(WidgetConstant.CSS_ID, aCssId);
-    }
-
-    /**
      * Adds header used in installation views.
      */
     protected void addHeader(
@@ -465,28 +450,26 @@
         boolean aSecurityButton)
     {
         // Add title.
-        if (aTitle == null)
+        String title = InstallerUiTexts.get(InstallerUiTexts.INSTALL_QUERY);
+        if (aInstallInfo != null)
         {
-            aTitle = InstallerUiTexts.get(InstallerUiTexts.INSTALL_QUERY);
-            if (aInstallInfo != null && aInstallInfo.getOldVersion() != null)
+            if (aInstallInfo.getOldVersion() != null)
             {
-                aTitle = InstallerUiTexts.get(InstallerUiTexts.UPDATE_QUERY);
+                title = InstallerUiTexts.get(InstallerUiTexts.UPDATE_QUERY);
             }
+            iCertificates = aInstallInfo.getCertificates();
+        }
+        if (aUninstallInfo != null)
+        {
+            title = "Uninstall?";
+            iCertificates = aUninstallInfo.getCertificates();
         }
         Label titleLabel = createLabel(aTitle, getColumns() - 1, SWT.WRAP);
-        setCssId(titleLabel, "heading");
+        titleLabel.setFont(iInstallerUi.getBoldFont());
 
-        if (aInstallInfo != null)
-        {
-            iCertificates = aInstallInfo.getCertificates();
-        }
-        else if (aUninstallInfo != null)
-        {
-            iCertificates = aUninstallInfo.getCertificates();
-        }
         if (aSecurityButton)
         {
-            // Add security button.
+            // Add security icon.
             createSecurityButton();
         }
         else
@@ -518,12 +501,11 @@
         {
             iconColumns = 2;
             Label iconLabel = createLabel(iSuiteIcon, iconColumns, SWT.NONE);
-            setCssId(iconLabel, "contentIcon");
         }
 
         // Create a Composite for displaying application info.
         iAppInfoScrolledComposite =
-            new ScrolledComposite(getComposite(), SWT.V_SCROLL);
+            new ScrolledComposite(getComposite(), SWT.H_SCROLL | SWT.V_SCROLL);
         iAppInfoScrolledComposite.setAlwaysShowScrollBars(false);
         iAppInfoScrolledComposite.setExpandHorizontal(true);
         GridData gridData = new GridData(GridData.FILL_BOTH);
@@ -532,7 +514,6 @@
         iAppInfoComposite = new Composite(iAppInfoScrolledComposite, SWT.NONE);
         iAppInfoComposite.setLayout(new GridLayout(1, true));
         iAppInfoScrolledComposite.setContent(iAppInfoComposite);
-        setCssId(iAppInfoScrolledComposite, "appInfoArea");
     }
 
     /**
@@ -549,7 +530,7 @@
         // Add suite name and version.
         createAppInfoLabel(
             InstallerUiTexts.get(
-                InstallerUiTexts.SUITE_NAME_VERSION,
+                InstallerUiTexts.SUITE_NAME,
                 new String[] { aInstallInfo.getName(),
                                aInstallInfo.getVersion() }));
         if (aFull)
@@ -572,20 +553,10 @@
         }
         if (size > 0)
         {
-            if (size > 1024*1024)
-            {
-                createAppInfoLabel(
-                    InstallerUiTexts.get(
-                        InstallerUiTexts.SIZE_MB,
-                        new Object[] { new Integer((int)(1 + size/(1024*1024))) }));
-            }
-            else
-            {
-                createAppInfoLabel(
-                    InstallerUiTexts.get(
-                        InstallerUiTexts.SIZE_KB,
-                        new Object[] { new Integer((int)(1 + size/1024)) }));
-            }
+            createAppInfoLabel(
+                InstallerUiTexts.get(
+                    InstallerUiTexts.SIZE_KB,
+                    new String[] { Long.toString(1 + size/1024) }));
         }
         if (aFull)
         {
@@ -668,7 +639,7 @@
         GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
         gridData.horizontalSpan = aColumns;
         gridData.horizontalAlignment = SWT.CENTER;
-        gridData.verticalAlignment = SWT.TOP;
+        gridData.verticalAlignment = SWT.CENTER;
         label.setLayoutData(gridData);
         return label;
     }
@@ -700,7 +671,6 @@
     protected Label createSecurityLabel(boolean aIdentified)
     {
         Label label = createLabel((Image)null, 1, SWT.NONE);
-        setCssId(label, "securityLabel");
         Image securityIcon = null;
         if (iInstallerUi != null)
         {
@@ -721,7 +691,6 @@
     protected Button createSecurityButton()
     {
         Button button = new Button(getComposite(), SWT.PUSH);
-        setCssId(button, "securityButton");
         GridData gridData = new GridData(
             GridData.FILL_HORIZONTAL | GridData.FILL_VERTICAL);
         gridData.horizontalSpan = 1;
@@ -803,7 +772,6 @@
         {
             public void run()
             {
-                iInstallerUi.setCertificateDetailsView(iCertificateDetailsView);
                 if (iCertificateDetailsView.confirm())
                 {
                     log("certificateDetailsView confirmed");
@@ -814,7 +782,6 @@
                 }
                 iCertificateDetailsView.dispose();
                 iCertificateDetailsView = null;
-                iInstallerUi.setCertificateDetailsView(null);
                 setVisible(true);
             }
         }, "InstallerUiCertViewThread").start();
--- a/javamanager/javainstaller/javasifplugin/build/javasifplugin.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/javasifplugin/build/javasifplugin.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -39,14 +39,9 @@
 START RESOURCE  ../data/2002BC6F.rss
 TARGET          javasifplugin.rsc
 END
-START RESOURCE  ../data/2002BC6F_iad.rss
-TARGET          javasifplugin.rsc
-TARGETPATH      resource/java/iad
-END
 
 // Sources
 SOURCEPATH      ../src
-SOURCE          asyncwaitcallback.cpp
 SOURCE          javasifplugin.cpp
 SOURCE          proxy.cpp
 SOURCE          resultsserver.cpp
@@ -57,14 +52,13 @@
 USERINCLUDE     ../inc
 USERINCLUDE     ../../../../inc
 
-SYSTEMINCLUDE   /epoc32/include/mw/hb/hbwidgets
+SYSTEMINCLUDE   ../../../../inc
 
 // Libraries
 LIBRARY         apgrfx.lib
 LIBRARY         apmime.lib
 LIBRARY         ecom.lib
 LIBRARY         efsrv.lib
-LIBRARY         hbwidgets.lib
 LIBRARY         sif.lib
 LIBRARY         javacomms.lib
-LIBRARY         javaruntimestarterutils.lib
+LIBRARY         javaruntimestarterutils.lib
\ No newline at end of file
--- a/javamanager/javainstaller/javasifplugin/data/2002BC6F.rss	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/javasifplugin/data/2002BC6F.rss	Wed Oct 13 14:23:59 2010 +0300
@@ -21,10 +21,6 @@
 
 //  RESOURCE DEFINITIONS
 
-#ifndef ECOM_VERSION_NO
-#define ECOM_VERSION_NO 1
-#endif
-
 RESOURCE REGISTRY_INFO registry_info
     {
     resource_format_version = RESOURCE_FORMAT_VERSION_2;
@@ -44,7 +40,7 @@
                 IMPLEMENTATION_INFO
                     {
                     implementation_uid  =  0x2002BC70;
-                    version_no          =  ECOM_VERSION_NO;
+                    version_no          =  1;
                     display_name        =  "Midlet installation implementation";
                     default_data        =  "";
                     opaque_data         =  "";
--- a/javamanager/javainstaller/javasifplugin/data/2002BC6F_iad.rss	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/*
-* Copyright (c) 2010 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:  ECOM resource definition for IAD
-*
-*/
-
-//  Version for IAD
-#define ECOM_VERSION_NO 2
-
-//  Include actual rss
-#include "2002BC6F.rss"
-
--- a/javamanager/javainstaller/javasifplugin/inc/asyncwaitcallback.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-/*
-* Copyright (c) 2005-2010 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:  This class implements general wait object for calling a desired
-*                callback function after asynchronous notification
-*
-*/
-
-#ifndef ASYNCWAITCALLBACK_H
-#define ASYNCWAITCALLBACK_H
-
-#include <e32base.h>
-
-namespace java
-{
-namespace installer
-{
-
-/**
- * This class implements wait object for calling a desired
- * callback function after rendezvous returns specified
- * reason code from the process that this object is listening to.
- */
-NONSHARABLE_CLASS(CAsyncWaitCallBack) : public CActive
-{
-public:  // Constructors and destructor
-
-    static CAsyncWaitCallBack* NewL(TCallBack aCallBack);
-
-    // Destructor.
-    virtual ~CAsyncWaitCallBack();
-
-public:  // From base classes
-
-    // from base class CActive
-
-    void RunL();
-
-    void DoCancel();
-
-public:
-
-    void Wait(RProcess aProcessToListen, TInt aActivatingReasonCode);
-
-private:
-
-    // Constructor.
-    CAsyncWaitCallBack();
-
-    // 2nd phase constructor.
-    void ConstructL(TCallBack aCallBack);
-
-private: //  Data
-
-    // Callback member
-    TCallBack   iCallBack;
-
-    // When request completes with this status code,
-    // callback is called.
-    TInt iActivatingReasonCode;
-
-    RProcess iProcessToListen;
-};
-
-} // installer
-} // java
-
-#endif // ASYNCWAITCALLBACK_H
--- a/javamanager/javainstaller/javasifplugin/inc/javasifplugin.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/javasifplugin/inc/javasifplugin.h	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -22,13 +22,10 @@
 #define JAVASIFPLUGIN_H
 
 #include <e32base.h>
-#include <hbdevicenotificationdialogsymbian.h>
 #include <usif/sif/sifplugin.h>
 
-#include "asyncwaitcallback.h"
 #include "f32file.h"
-
-class ResultsServer;
+#include "resultsserver.h"
 
 using namespace Usif;
 
@@ -39,9 +36,9 @@
 const int INSTALLER_CANCEL_MESSAGE_ID = 603;
 const int INSTALLER_CANCEL_RESPONSE_MESSAGE_ID = 604;
 
-namespace java
+namespace Java
 {
-namespace installer
+namespace Installer
 {
 
 /**
@@ -198,11 +195,6 @@
     virtual void CancelOperation();
 
 
-    /**
-     * Hides 'preparing installation' dialog.
-     */
-    void HidePrepInstDialogL();
-
 private:
 
     /**
@@ -229,96 +221,16 @@
      */
     void CopyFilesIfNeededL(TFileName &aFileName);
 
-    /**
-     * Check if the file is Jad file. Argument KSifInParam_MimeType is
-     * used for check if it exists.
-     *
-     * @param[in] aFileHandle the file to be checked
-     * @param[in] aArguments Install request arguments
-     * @param[out] aIsJad set to ETrue if the file is Jad file
-     * @return KErrNone or Symbian error code
-     */
-    TInt IsJadFile(RFile& aFileHandle, const COpaqueNamedParams& aArguments, TBool& aIsJad);
-
-    /**
-     * Check if the file is Jad file.
-     *
-     * @param[in] aFileHandle the file to be checked
-     * @param[out] aIsJad set to ETrue if the file is Jad file
-     * @return KErrNone or Symbian error code
-     */
-    TInt IsJadFile(RFile& aFileHandle, TBool& aIsJad);
-
-    /**
-     * Uses the information in aArguments to create the correct command line for
-     * Java Installer.
-     *
-     * @param[in][out] aCommandLine the buffer to be filled with command line arguments
-     * @param[in]      aArguments The array of opaque params for the plug-in. An empty
-     *   array may be passed.  The following param is defined for the "SCOMO Install
-     *   Inactive" operation:
-     *   Name: InstallInactive, Type: Int, Value: ETrue
-     *   If a plug-in receives this param, it must install a component normally but the SCOMO
-     *   State should remain EDeactivated.
-     */
-    void BuildInstallCommandLine(
-        TPtr& aCommandLine,
-        const COpaqueNamedParams& aArguments);
-
-    /**
-     * Returns the value of int param found from aArguments or -1 if
-     * the param is not found. Must be called only for int params
-     * that have positive value range!
-     *
-     * @param[in] aName The name of the integer param to be obtained.
-     * @param[in] aArguments The array of opaque params for the plug-in.
-     * @return -1 if the named param if not found, otherwise the value of the
-     */
-    TInt GetPositiveIntParam(
-        const TDesC& aName,
-        const COpaqueNamedParams& aArguments);
-
-    /**
-     * Start ResultsServer for receiving Comms message(s) from
-     * Java Installer
-     *
-     * @param[in][out] aResults If Comms message contains installation or
-     *  uninstallation operation results, they will be stored in this variable
-     * @param[in][out] aComponentInfo If Comms message contains contains details of
-     *  a component, they will be stored into this variable
-     * @return
-     */
-    TInt StartResultsServer(
-        COpaqueNamedParams& aResults,
-        CComponentInfo& aComponentInfo);
-
-    /**
-     * If Java Installer is already running, set error category EInstallerBusy etc
-     * to aResults, set aStatus to KErrAlreadyExists and return ETrue
-     * @param[in][out] aResults
-     * @param[in][out] aStatus
-     * @return ETrue if Java Installer is running
-     */
-    TBool ExitIfJavaInstallerRunning(
-        COpaqueNamedParams& aResults,
-        TRequestStatus& aStatus);
-
-    /**
-     * Creates 'preparing installation' dialog.
-     */
-    void CreatePrepInstDialogL();
 
 private: //  Data
 
-    RFs mRFs;
-    RArray<RProcess> mHandlesToClose;
-    ResultsServer*   mResultsServer;
+    TRequestStatus* iStatus;
+    RFs iRFs;
+    RArray<RProcess> iHandlesToClose;
+    ResultsServer*   iResultsServer;
 
-    COpaqueNamedParams* mDummyResults;
-    CComponentInfo*     mDummyInfo;
-
-    CHbDeviceNotificationDialogSymbian* mPrepInstDialog;
-    CAsyncWaitCallBack* mWaitToHideDialog;
+    COpaqueNamedParams* iDummyResults;
+    CComponentInfo*     iDummyInfo;
 };
 
 } // Installer
--- a/javamanager/javainstaller/javasifplugin/inc/resultsserver.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/javasifplugin/inc/resultsserver.h	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -65,19 +65,18 @@
 
     CommsEndpoint* getComms()
     {
-        return &mComms;
+        return &iComms;
     }
 
 private:
     void clearData();
     void setComponentInfoL();
-    void resetDefaultErrorValues();
-    void setCommonErrorInfo();
 
 private:
-    CommsServerEndpoint  mComms;
-    COpaqueNamedParams  &mResults;
-    CComponentInfo      &mInfo;
+    int iRunning;   // 1 if running, 0 if not running
+    CommsServerEndpoint  iComms;
+    COpaqueNamedParams  &iResults;
+    CComponentInfo      &iInfo;
 
     std::map<std::wstring, int> iIntPairs;
     std::map<std::wstring, std::wstring> iStringPairs;
--- a/javamanager/javainstaller/javasifplugin/src/asyncwaitcallback.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,84 +0,0 @@
-/*
-* Copyright (c) 2009-2010 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:  This class implements general wait object for calling a desired
- *                callback function after asynchronous notification
- *
-*/
-
-#include "asyncwaitcallback.h"
-#include "logger.h"
-
-using namespace java::installer;
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-CAsyncWaitCallBack* CAsyncWaitCallBack::NewL(TCallBack aCallBack)
-{
-    CAsyncWaitCallBack* self = new(ELeave) CAsyncWaitCallBack();
-    CleanupStack::PushL(self);
-    self->ConstructL(aCallBack);
-    CleanupStack::Pop(self);
-    return self;
-}
-
-CAsyncWaitCallBack::CAsyncWaitCallBack():
-        CActive(CActive::EPriorityStandard), iActivatingReasonCode(0)
-{
-}
-
-CAsyncWaitCallBack::~CAsyncWaitCallBack()
-{
-}
-
-void CAsyncWaitCallBack::ConstructL(TCallBack aCallBack)
-{
-    iCallBack = aCallBack;
-    CActiveScheduler::Add(this);
-}
-
-void CAsyncWaitCallBack::RunL()
-{
-    // Execute callback only if the request completed with correct
-    // status code
-    if (iStatus == iActivatingReasonCode)
-    {
-        ILOG1(EJavaInstaller,
-              "CAsyncWaitCallBack called with notif code %d",
-              iStatus.Int());
-        iCallBack.CallBack();
-    }
-    else
-    {
-        WLOG1(EJavaInstaller,
-              "CAsyncWaitCallBack was called with unexpected notif code %d, reactivate",
-              iStatus.Int());
-        // Reactivate wait
-        iProcessToListen.Rendezvous(iStatus);
-        SetActive();
-    }
-}
-
-void CAsyncWaitCallBack::DoCancel()
-{
-    iProcessToListen.RendezvousCancel(iStatus);
-}
-
-void CAsyncWaitCallBack::Wait(RProcess aProcessToListen, TInt aActivatingReasonCode)
-{
-    iActivatingReasonCode = aActivatingReasonCode;
-    iProcessToListen = aProcessToListen;
-    iProcessToListen.Rendezvous(iStatus);
-    SetActive();
-}
-
--- a/javamanager/javainstaller/javasifplugin/src/javasifplugin.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/javasifplugin/src/javasifplugin.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -20,92 +20,33 @@
 
 #include <apgcli.h>
 #include <apmstd.h>
-#include <charconv.h>
-#include <data_caging_path_literals.hrh>
 #include <e32cmn.h>
 #include <e32property.h>
-#include <string.h>
-#include <usif/usiferror.h>
+#include <charconv.h>
+#include <data_caging_path_literals.hrh>
 
 #include "comms.h"
+#include "commsmessage.h"
 #include "commsclientendpoint.h"
-#include "commsmessage.h"
-#include "javacommonutils.h"
+#include "javasifplugin.h"
+#include "javauids.h"
+#include "logger.h"
 #include "javaoslayer.h"
 #include "javaprocessconstants.h"
 #include "javasymbianoslayer.h"
-#include "javauids.h"
-#include "logger.h"
-#include "resultsserver.h"
 #include "runtimeexception.h"
 
-#include "javasifplugin.h"
 
-
-using namespace java::installer;
+using namespace Java::Installer;
 using namespace java::util;
 using namespace java::comms;
 
 _LIT(KPrivateDataCage, "\\private\\");
 _LIT(KInboxDataCage, "\\private\\1000484b\\");
-_LIT(KJavaInstallerProcess, "Installer*");
-_LIT(KJavaInstallCopierProcess, "javainstallcopier.exe");
 _LIT(KJavaInstallerDataCage, "\\private\\102033e6\\");
 _LIT(KJavaInstallerTmp, "\\private\\102033E6\\installer\\tmp\\");
 _LIT(KAnyExtension, ".*");
-_LIT(KComponentInfo, " componentinfo");
-_LIT(KCommsResult, " -commsresult=");
-_LIT(KJad, " -jad=");
-_LIT(KJar, " -jar=");
-_LIT(KDoubleQuote, "\"");
-_LIT(KInstall, " install");
-_LIT(KSilent, " -silent");
-_LIT(KUninstall, " uninstall");
-_LIT(KCid, " -cid=");
-_LIT(KDrive, " -drive=");
-_LIT(KYes, "yes");
-_LIT(KNo, "no");
-_LIT(KOcsp, " -ocsp=");
-_LIT(KIgnoreOcspWarnings, " -ignore_ocsp_warnings=");
-_LIT(KUpgrade, " -upgrade=");
-_LIT(KUpgradeData, " -upgrade_data=");
-_LIT(KUntrusted, " -untrusted=");
-_LIT(KOverwrite, " -overwrite=");
-_LIT(KDownload, " -download=");
-_LIT(KIap, " -iap=");
-_LIT(KSnap, " -snap=");
-_LIT(KForceCancel, " -forcecancel");
-_LIT(KBase64, " -base64=");
-_LIT(KUsername, " -username=");
-_LIT(KPassword, " -password=");
-_LIT(KSourceUrl, " -sourceurl=");
-_LIT(KCharSet, " -charset=");
 
-_LIT(KJadMimeType, "text/vnd.sun.j2me.app-descriptor");
-_LIT8(K8JadMimeType, "text/vnd.sun.j2me.app-descriptor");
-
-// Long Java Installer command lines contain max 2 path names (512 chars max) and
-// some options -> 1536 is long enough buffer
-const TInt KLongCmdLineLen = 1536;
-
-// When starting Java Installer for uninstallation the command line is much shorter
-const TInt KShortCmdLineLen = 256;
-
-// Java Installer is executed with same Uid as Java Runtime
-_LIT_SECURE_ID(KJavaInstallerSecureID, KJavaMidpSecureId);
-
-/**
- * This function is called to hide the 'Preparing Installation' dialog.
- */
-LOCAL_C TInt HidePrepInstDialog(TAny* aPlugin)
-{
-    CJavaSifPlugin *pPlugin = (CJavaSifPlugin *)aPlugin;
-    if (NULL != pPlugin)
-    {
-        TRAP_IGNORE(pPlugin->HidePrepInstDialogL());
-    }
-    return KErrNone;
-}
 
 // ============================ MEMBER FUNCTIONS ===============================
 
@@ -120,33 +61,24 @@
 
 CJavaSifPlugin::~CJavaSifPlugin()
 {
-    mRFs.Close();
+    iRFs.Close();
 
-    TInt nHandles = mHandlesToClose.Count();
+    TInt nHandles = iHandlesToClose.Count();
     while (nHandles > 0)
     {
         nHandles--;
-        mHandlesToClose[nHandles].Close();
+        iHandlesToClose[nHandles].Close();
     }
-    mHandlesToClose.Reset();
-
-    delete mResultsServer;
-    mResultsServer = NULL;
-
-    delete mDummyResults;
-    mDummyResults = NULL;
+    iHandlesToClose.Reset();
 
-    delete mDummyInfo;
-    mDummyInfo = NULL;
-
-    delete mPrepInstDialog;
-    mPrepInstDialog = NULL;
+    delete iResultsServer;
+    iResultsServer = NULL;
 
-    if (mWaitToHideDialog)
-    {
-        delete mWaitToHideDialog;
-        mWaitToHideDialog = NULL;
-    }
+    delete iDummyResults;
+    iDummyResults = NULL;
+
+    delete iDummyInfo;
+    iDummyInfo = NULL;
 }
 
 CJavaSifPlugin::CJavaSifPlugin()
@@ -155,12 +87,11 @@
 
 void CJavaSifPlugin::ConstructL()
 {
-    User::LeaveIfError(mRFs.Connect());
-    User::LeaveIfError(mRFs.ShareProtected());
-    mResultsServer = NULL;
-    mDummyResults = COpaqueNamedParams::NewL(); // codescanner::forgottoputptroncleanupstack
-    mDummyInfo = CComponentInfo::NewL();
-    mWaitToHideDialog = NULL;
+    User::LeaveIfError(iRFs.Connect());
+    User::LeaveIfError(iRFs.ShareProtected());
+    iResultsServer = NULL;
+    iDummyResults = COpaqueNamedParams::NewL();
+    iDummyInfo = CComponentInfo::NewL();
 }
 
 void CJavaSifPlugin::GetComponentInfo(
@@ -170,7 +101,7 @@
     TRequestStatus& aStatus)
 {
     RFile fileHandle;
-    TInt err = fileHandle.Open(mRFs, aFileName, EFileShareReadersOnly | EFileRead);
+    TInt err = fileHandle.Open(iRFs, aFileName, EFileShareReadersOnly | EFileRead);
     if (KErrNone != err)
     {
         ELOG1(EJavaInstaller,
@@ -191,37 +122,22 @@
     CComponentInfo& aComponentInfo,
     TRequestStatus& aStatus)
 {
-    if (ExitIfJavaInstallerRunning(*mDummyResults, aStatus))
-    {
-        return;
-    }
-
     RProcess rJavaInstaller;
     TFileName fileName;
-    HBufC* pBufCommandLine = NULL;
-    TRAPD(err, pBufCommandLine = HBufC::NewL(KLongCmdLineLen))
-    if (KErrNone != err)
-    {
-        TRequestStatus *statusPtr(&aStatus);
-        User::RequestComplete(statusPtr, err);
-        return;
-    }
-    std::auto_ptr<HBufC> bufCommandLine(pBufCommandLine);
-    TPtr commandLine = pBufCommandLine->Des();
+    TBuf<1536> commandLine;
 
     // Build command line used to pass all necessary info to Java Installer
     std::auto_ptr<HBufC> installerStarterDll(
         stringToDes(java::runtime::JAVA_INSTALLER_STARTER_DLL));
     commandLine = installerStarterDll->Des();
-    commandLine.Append(KComponentInfo);
+    commandLine.Append(_L(" componentinfo"));
 
     // Ask Java Installer to send component info back
     // as Comms message. 11000 is IPC_ADDRESS_JAVA_SIF_PLUGIN_C Comms endpoint
     // that our ResultsServer will listen to.
-    commandLine.Append(KCommsResult);
-    commandLine.AppendNum(IPC_ADDRESS_JAVA_SIF_PLUGIN_C);
+    commandLine.Append(_L(" -commsresult=11000"));
 
-    err = aFileHandle.FullName(fileName);
+    TInt err = aFileHandle.FullName(fileName);
 
     // Java Installer does not have AllFiles capability.
     // So if the .jad/.jar file is in the private data cage of
@@ -238,30 +154,42 @@
     }
 
     // Check whether the file is .jad or .jar
-    TBool isJad;
-    err = IsJadFile(aFileHandle, isJad);
+    RApaLsSession apaSession;
+    err = apaSession.Connect();
     if (KErrNone != err)
     {
+        ELOG1(EJavaInstaller,
+              "CJavaSifPlugin::GetComponentInfo RApaLsSession Connect error %d", err);
         TRequestStatus *statusPtr(&aStatus);
         User::RequestComplete(statusPtr, err);
         return;
     }
+    TDataType jadFileMimeType(_L8("text/vnd.sun.j2me.app-descriptor"));
+    TBool isJad = EFalse;
+    err = apaSession.RecognizeSpecificData(aFileHandle, jadFileMimeType, isJad);
+    apaSession.Close();
+    if (KErrNone != err)
+    {
+        // Just log the error
+        ELOG1(EJavaInstaller,
+              "CJavaSifPlugin::GetComponentInfo RApaLsSession RecognizeSpecificData error %d",
+              err);
+    }
     if (isJad)
     {
         // Installation should be started from JAD file
-        commandLine.Append(KJad);
+        commandLine.Append(_L(" -jad="));
     }
     else
     {
         // from JAR file
-        commandLine.Append(KJar);
+        commandLine.Append(_L(" -jar="));
     }
-
     // Filename parameter must be surrounded in double quotes to
     // ensure that spaces in filename are passed correctly.
-    commandLine.Append(KDoubleQuote);
+    commandLine.Append(_L("\""));
     commandLine.Append(fileName);
-    commandLine.Append(KDoubleQuote);
+    commandLine.Append(_L("\""));
 
     // Start JavaInstaller
     std::auto_ptr<HBufC> installerProcess(
@@ -269,7 +197,21 @@
     err = rJavaInstaller.Create(installerProcess->Des(), commandLine);
     if (KErrNone == err)
     {
-        err = StartResultsServer(*mDummyResults, aComponentInfo);
+        // Destroy old Comms server if it exists
+        delete iResultsServer;
+        iResultsServer = NULL;
+        // Start new Comms server that receives component info and sets it to
+        // to aComponentInfo.
+        iResultsServer = new ResultsServer(*iDummyResults, aComponentInfo);
+        if (NULL == iResultsServer)
+        {
+            err = KErrNoMemory;
+        }
+        else
+        {
+            // Start the server
+            err = iResultsServer->start();
+        }
         if (KErrNone != err)
         {
             // server cannot be started
@@ -299,16 +241,7 @@
 
     // Do NOT close rJavaInstaller now -> the caller gets notification when the
     // process actually closes.
-    err = mHandlesToClose.Append(rJavaInstaller);
-    if ( err )
-    {
-        rJavaInstaller.Close();
-        ELOG1(EJavaInstaller, "CJavaSifPlugin::GetComponentInfo  mHandles"
-              "ToClose.Append failed with error %d", err);
-        TRequestStatus *statusPtr(&aStatus);
-        User::RequestComplete(statusPtr, err);
-        return;
-    }
+    iHandlesToClose.Append(rJavaInstaller);
 }
 
 void CJavaSifPlugin::Install(
@@ -319,12 +252,11 @@
     TRequestStatus& aStatus)
 {
     RFile fileHandle;
-    TInt err = fileHandle.Open(mRFs, aFileName, EFileShareReadersOnly | EFileRead);
+    TInt err = fileHandle.Open(iRFs, aFileName, EFileShareReadersOnly | EFileRead);
     if (KErrNone != err)
     {
         ELOG1(EJavaInstaller,
               "CJavaSifPlugin::Install Opening file for reading failed with error %d", err);
-        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, EUnexpectedError));
         TRequestStatus *statusPtr(&aStatus);
         User::RequestComplete(statusPtr, err);
         return;
@@ -341,29 +273,16 @@
     COpaqueNamedParams& aResults,
     TRequestStatus& aStatus)
 {
-    if (ExitIfJavaInstallerRunning(aResults, aStatus))
-    {
-        return;
-    }
-
-    // Create buffer for Java Installer command line
-    HBufC* pBufCommandLine = NULL;
-    TRAPD(err, pBufCommandLine = HBufC::NewL(KLongCmdLineLen))
-    if (KErrNone != err)
-    {
-        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, ELowMemory));
-        TRequestStatus *statusPtr(&aStatus);
-        User::RequestComplete(statusPtr, err);
-        return;
-    }
-    std::auto_ptr<HBufC> bufCommandLine(pBufCommandLine);
-    TPtr commandLine = pBufCommandLine->Des();
+    RProcess rJavaInstaller;
+    TFileName fileName;
+    // Max two path names and some options -> 1536 is enough
+    TBuf<1536> commandLine;
 
     // Build command line used to pass all necessary info to Java Installer
     std::auto_ptr<HBufC> installerStarterDll(
         stringToDes(java::runtime::JAVA_INSTALLER_STARTER_DLL));
     commandLine = installerStarterDll->Des();
-    commandLine.Append(KInstall);
+    commandLine.Append(_L(" install"));
 
     // Check whether this is silent installation
     TInt silentInstall = 0;
@@ -375,36 +294,175 @@
         {
             ELOG(EJavaInstaller,
                  "CJavaSifPlugin::Install The caller did not have TrustedUI capability");
-            TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, ESecurityError));
             TRequestStatus *statusPtr(&aStatus);
             User::RequestComplete(statusPtr, KErrPermissionDenied);
             return;
         }
 
-        commandLine.Append(KSilent);
+        commandLine.Append(_L(" -silent"));
     }
-    else
+
+    TBool paramFound = EFalse;
+    TInt  intValue = 0;
+    TDesC desValue = KNullDesC;
+
+    // KSifInParam_Drive -> -drive=install_target_drive (A, B, C, ..., Z)
+    TRAP_IGNORE(paramFound = aArguments.GetIntByNameL(KSifInParam_Drive, intValue));
+    if (paramFound)
+    {
+        // Value 0 is 'A:' drive and  value 25 is 'Z:' drive
+        if ((intValue > -1) && (intValue < 26))
+        {
+            commandLine.Append(_L(" -drive="));
+            TChar drive('A');
+            drive += intValue;
+            commandLine.Append(drive);
+        }
+        else
+        {
+            WLOG1(EJavaInstaller,
+                "CJavaSifPlugin::Install Ignoring illegal KSifInParam_Drive param (value %d)",
+                intValue);
+        }
+    }
+
+    // KSifInParam_PerformOCSP Yes/No/AskUser -> -ocsp=yes|no
+    TRAP_IGNORE(paramFound = aArguments.GetIntByNameL(KSifInParam_PerformOCSP, intValue));
+    if (paramFound)
     {
-        // Uncomment this to enable 'preparing installation' dialog.
-        //TRAP(err, CreatePrepInstDialogL());
-        //if (KErrNone != err)
-        //{
-        //    WLOG1(EJavaInstaller,
-        //          "CJavaSifPlugin::Install Creating preparing installation dialog failed, err=%d",
-        //          err);
-        //}
+        if (intValue == 0) // Yes
+        {
+            commandLine.Append(_L(" -ocsp=yes"));
+        }
+        else if (intValue == 1) // No
+        {
+            commandLine.Append(_L(" -ocsp=no"));
+        }
+        // AskUser is not supported
+    }
+
+    // KSifInParam_IgnoreOCSPWarnings Yes/No/AskUser -> -ignore_ocsp_warnings=yes|no
+    TRAP_IGNORE(paramFound = aArguments.GetIntByNameL(KSifInParam_IgnoreOCSPWarnings, intValue));
+    if (paramFound)
+    {
+        if (intValue == 0) // Yes
+        {
+            commandLine.Append(_L(" -ignore_ocsp_warnings=yes"));
+        }
+        else if (intValue == 1) // No
+        {
+            commandLine.Append(_L(" -ignore_ocsp_warnings=no"));
+        }
+        // AskUser is not supported
+    }
+
+    // KSifInParam_AllowUpgrade Yes/No/AskUser -> -upgrade=yes|no
+    TRAP_IGNORE(paramFound = aArguments.GetIntByNameL(KSifInParam_AllowUpgrade, intValue));
+    if (paramFound)
+    {
+        if (intValue == 0) // Yes
+        {
+            commandLine.Append(_L(" -upgrade=yes"));
+        }
+        else if (intValue == 1) // No
+        {
+            commandLine.Append(_L(" -upgrade=no"));
+        }
+        // AskUser is not supported
     }
 
-    BuildInstallCommandLine(commandLine, aArguments);
+    // KSifInParam_AllowUntrusted Yes/No/AskUser -> -untrusted=yes|no
+    TRAP_IGNORE(paramFound = aArguments.GetIntByNameL(KSifInParam_AllowUntrusted, intValue));
+    if (paramFound)
+    {
+        if (intValue == 0) // Yes
+        {
+            commandLine.Append(_L(" -untrusted=yes"));
+        }
+        else if (intValue == 1) // No
+        {
+            commandLine.Append(_L(" -untrusted=no"));
+        }
+        // AskUser is not supported
+    }
+
+    // KSifInParam_AllowOverwrite Yes/No/AskUser -> -overwrite=yes|no
+    TRAP_IGNORE(paramFound = aArguments.GetIntByNameL(KSifInParam_AllowOverwrite, intValue));
+    if (paramFound)
+    {
+        if (intValue == 0) // Yes
+        {
+            commandLine.Append(_L(" -overwrite=yes"));
+        }
+        else if (intValue == 1) // No
+        {
+            commandLine.Append(_L(" -overwrite=no"));
+        }
+        // AskUser is not supported
+    }
+
+    // KSifInParam_AllowDownload Yes/No/AskUser -> -download=yes|no
+    TRAP_IGNORE(paramFound = aArguments.GetIntByNameL(KSifInParam_AllowDownload, intValue));
+    if (paramFound)
+    {
+        if (intValue == 0) // Yes
+        {
+            commandLine.Append(_L(" -download=yes"));
+        }
+        else if (intValue == 1) // No
+        {
+            commandLine.Append(_L(" -download=no"));
+        }
+        // AskUser is not supported
+    }
+
+    // KSifInParam_UserName -> -username=download_username
+    TRAP_IGNORE(desValue = aArguments.StringByNameL(KSifInParam_UserName));
+    if (desValue.Length() > 0)
+    {
+        commandLine.Append(_L(" -username="));
+        commandLine.Append(desValue);
+    }
+
+    // KSifInParam_Password -> -password=download_password
+    TRAP_IGNORE(desValue = aArguments.StringByNameL(KSifInParam_Password));
+    if (desValue.Length() > 0)
+    {
+        commandLine.Append(_L(" -password="));
+        commandLine.Append(desValue);
+    }
+
+    // KSifInParam_SourceUrl -> -sourceurl=original (HTTP) URL of the JAD or JAR file
+    TRAP_IGNORE(desValue = aArguments.StringByNameL(KSifInParam_SourceUrl));
+    if (desValue.Length() > 0)
+    {
+        commandLine.Append(_L(" -sourceurl="));
+        commandLine.Append(desValue);
+    }
+
+    // KSifInParam_IAP -> -iap=IAP_ID (internet access point id)
+    TRAP_IGNORE(paramFound = aArguments.GetIntByNameL(KSifInParam_IAP, intValue));
+    if (paramFound)
+    {
+        commandLine.Append(_L(" -iap="));
+        commandLine.AppendNum(intValue);
+    }
+
+    // KSifInParam_Charset -> -charset=Internet-standard character set name
+    TRAP_IGNORE(desValue = aArguments.StringByNameL(KSifInParam_Charset));
+    if (desValue.Length() > 0)
+    {
+        commandLine.Append(_L(" -charset="));
+        commandLine.Append(desValue);
+    }
+
 
     // Ask Java Installer to send installation results back
     // as Comms message. 11000 is IPC_ADDRESS_JAVA_SIF_PLUGIN_C Comms endpoint
     // that our ResultsServer will listen to.
-    commandLine.Append(KCommsResult);
-    commandLine.AppendNum(IPC_ADDRESS_JAVA_SIF_PLUGIN_C);
+    commandLine.Append(_L(" -commsresult=11000"));
 
-    TFileName fileName;
-    err = aFileHandle.FullName(fileName);
+    TInt err = aFileHandle.FullName(fileName);
 
     // Java Installer does not have AllFiles capability.
     // So if the .jad/.jar file is in the private data cage of
@@ -415,53 +473,74 @@
     TRAP(err, CopyFilesIfNeededL(fileName));
     if (KErrNone != err)
     {
-        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, EUnexpectedError));
         TRequestStatus *statusPtr(&aStatus);
         User::RequestComplete(statusPtr, err);
         return;
     }
 
     // Check whether the file is .jad or .jar
-    TBool isJad = EFalse;
-    err = IsJadFile(aFileHandle, aArguments, isJad);
+    RApaLsSession apaSession;
+    err = apaSession.Connect();
     if (KErrNone != err)
     {
-        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, EUnexpectedError));
+        ELOG1(EJavaInstaller,
+              "CJavaSifPlugin::Install RApaLsSession Connect error %d", err);
         TRequestStatus *statusPtr(&aStatus);
         User::RequestComplete(statusPtr, err);
         return;
     }
+    TDataType jadFileMimeType(_L8("text/vnd.sun.j2me.app-descriptor"));
+    TBool isJad = EFalse;
+    err = apaSession.RecognizeSpecificData(aFileHandle, jadFileMimeType, isJad);
+    apaSession.Close();
+    if (KErrNone != err)
+    {
+        ELOG1(EJavaInstaller,
+              "CJavaSifPlugin::Install RApaLsSession RecognizeSpecificData error %d", err);
+    }
     if (isJad)
     {
         // Installation should be started from JAD file
-        commandLine.Append(KJad);
+        commandLine.Append(_L(" -jad="));
     }
     else
     {
         // from JAR file
-        commandLine.Append(KJar);
+        commandLine.Append(_L(" -jar="));
     }
     // Filename parameter must be surrounded in double quotes to
     // ensure that spaces in filename are passed correctly.
-    commandLine.Append(KDoubleQuote);
+    commandLine.Append(_L("\""));
     commandLine.Append(fileName);
-    commandLine.Append(KDoubleQuote);
+    commandLine.Append(_L("\""));
 
     // Start JavaInstaller
     std::auto_ptr<HBufC> installerProcess(
         stringToDes(java::runtime::JAVA_PROCESS));
-    RProcess rJavaInstaller;
     err = rJavaInstaller.Create(installerProcess->Des(), commandLine);
     if (KErrNone == err)
     {
-        err = StartResultsServer(aResults, *mDummyInfo);
+        // Destroy old Comms server if it exists
+        delete iResultsServer;
+        iResultsServer = NULL;
+        // Start new Comms server that receives component ids, sets them
+        // to aResults.
+        iResultsServer = new ResultsServer(aResults, *iDummyInfo);
+        if (NULL == iResultsServer)
+        {
+            err = KErrNoMemory;
+        }
+        else
+        {
+            // Start the server
+            err = iResultsServer->start();
+        }
         if (KErrNone != err)
         {
             // server cannot be started
             rJavaInstaller.Close();
             ELOG1(EJavaInstaller,
                   "CJavaSifPlugin::Install: Cannot start results server, err %d", err);
-            TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, EUnexpectedError));
             TRequestStatus *statusPtr(&aStatus);
             User::RequestComplete(statusPtr, err);
             return;
@@ -476,81 +555,37 @@
         rJavaInstaller.Close();
         ELOG1(EJavaInstaller,
               "CJavaSifPlugin::Install: starting JavaInstaller failed, err=%d", err);
-        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, EUnexpectedError));
         TRequestStatus *statusPtr(&aStatus);
         User::RequestComplete(statusPtr, err);
         return;
     }
 
-    if (!silentInstall)
-    {
-        TRAP(err, mWaitToHideDialog =
-             CAsyncWaitCallBack::NewL(TCallBack(HidePrepInstDialog, this)));
-        if (KErrNone == err)
-        {
-            // The active object will wait until JavaInstaller process calls Rendezvous.
-            // If JavaInstaller specifies reason code EJavaInstaller, then
-            // the active object will call callback function that will hide the
-            // 'Preparing installation' dialog. If reason code is not EJavaInstaller,
-            // the wait object will automatically wait for the next rendezvous.
-            mWaitToHideDialog->Wait( rJavaInstaller, EJavaInstaller );
-        }
-        else
-        {
-            ELOG1(EJavaInstaller, "CJavaSifPlugin::Install: Creating "
-                  "mWaitToHideDialog failed, err %d", err);
-        }
-    }
     rJavaInstaller.Resume();
 
     // Do NOT close rJavaInstaller now -> the caller gets notification when the
     // process actually closes.
-    err = mHandlesToClose.Append(rJavaInstaller);
-    if ( err )
-    {
-        rJavaInstaller.Close();
-        ELOG1(EJavaInstaller, "CJavaSifPlugin::Install  mHandles"
-              "ToClose.Append failed with error %d", err);
-        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, ELowMemory));
-        TRequestStatus *statusPtr(&aStatus);
-        User::RequestComplete(statusPtr, err);
-        return;
-    }
-
+    iHandlesToClose.Append(rJavaInstaller);
 }
 
 void CJavaSifPlugin::Uninstall(
     TComponentId aComponentId,
     const TSecurityContext& aSecurityContext,
     const COpaqueNamedParams& aArguments,
-    COpaqueNamedParams& aResults,
+    COpaqueNamedParams& /* aResults */,
     TRequestStatus& aStatus)
 {
-    if (ExitIfJavaInstallerRunning(aResults, aStatus))
-    {
-        return;
-    }
-
-    // Allocate buffer for Java Installer command line
-    HBufC* pBufCommandLine = NULL;
-    TRAPD(err, pBufCommandLine = HBufC::NewL(KShortCmdLineLen))
-    if (KErrNone != err)
-    {
-        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, ELowMemory));
-        TRequestStatus *statusPtr(&aStatus);
-        User::RequestComplete(statusPtr, err);
-        return;
-    }
-    std::auto_ptr<HBufC> bufCommandLine(pBufCommandLine);
-    TPtr commandLine = pBufCommandLine->Des();
+    RProcess rJavaInstaller;
+    TFileName fileName;
+    // Max one uid and some options -> 256 is enough
+    TBuf<256> commandLine;
 
     // Build command line used to pass all necessary info to Java Installer
     std::auto_ptr<HBufC> installerStarterDll(
         stringToDes(java::runtime::JAVA_INSTALLER_STARTER_DLL));
     commandLine = installerStarterDll->Des();
-    commandLine.Append(KUninstall);
+    commandLine.Append(_L(" uninstall"));
 
-    commandLine.Append(KCid);
+    commandLine.Append(_L(" -cid="));
     commandLine.AppendNum(aComponentId);
 
     // Check whether this is silent uninstallation
@@ -563,35 +598,24 @@
         {
             ELOG(EJavaInstaller,
                  "CJavaSifPlugin::Uninstall The caller did not have TrustedUI capability");
-            TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, ESecurityError));
             TRequestStatus *statusPtr(&aStatus);
             User::RequestComplete(statusPtr, KErrPermissionDenied);
             return;
         }
 
-        commandLine.Append(KSilent);
+        commandLine.Append(_L(" -silent"));
     }
 
+    // No need to start iResultsServer because Uninstall() does not
+    // return anything usefull in aResults. We could return extended
+    // error code there.
+
     // start JavaInstaller
     std::auto_ptr<HBufC> installerProcess(
         stringToDes(java::runtime::JAVA_PROCESS));
-    RProcess rJavaInstaller;
-    err = rJavaInstaller.Create(installerProcess->Des(), commandLine);
+    TInt err = rJavaInstaller.Create(installerProcess->Des(), commandLine);
     if (KErrNone == err)
     {
-        err = StartResultsServer(aResults, *mDummyInfo);
-        if (KErrNone != err)
-        {
-            // server cannot be started
-            rJavaInstaller.Close();
-            ELOG1(EJavaInstaller,
-                  "CJavaSifPlugin::Uninstall: Cannot start results server, err %d", err);
-            TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, EUnexpectedError));
-            TRequestStatus *statusPtr(&aStatus);
-            User::RequestComplete(statusPtr, err);
-            return;
-        }
-
         // the exit status of Java Installer will be passed to
         // the asynch caller through aStatus
         rJavaInstaller.Logon(aStatus);
@@ -603,7 +627,6 @@
         rJavaInstaller.Close();
         ELOG1(EJavaInstaller,
              "CJavaSifPlugin::Uninstall: starting JavaInstaller failed, err=%d", err);
-        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, EUnexpectedError));
         TRequestStatus *statusPtr(&aStatus);
         User::RequestComplete(statusPtr, err);
         return;
@@ -611,17 +634,7 @@
 
     // Do NOT close rJavaInstaller now -> the caller gets notification when the
     // process actually closes.
-    err = mHandlesToClose.Append(rJavaInstaller);
-    if ( err )
-    {
-        rJavaInstaller.Close();
-        ELOG1(EJavaInstaller, "CJavaSifPlugin::Uninstall  mHandles"
-              "ToClose.Append failed with error %d", err);
-        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, ELowMemory));
-        TRequestStatus *statusPtr(&aStatus);
-        User::RequestComplete(statusPtr, err);
-        return;
-    }
+    iHandlesToClose.Append(rJavaInstaller);
 }
 
 void CJavaSifPlugin::Activate(
@@ -651,7 +664,7 @@
     // Send cancel message to Java Installer
 
     // Check whether there is anything to cancel
-    if (mHandlesToClose.Count() < 1)
+    if (iHandlesToClose.Count() < 1)
     {
         // No Java Installer process running, do nothing
         WLOG(EJavaInstaller,
@@ -659,47 +672,64 @@
         return;
     }
 
-    CommsMessage message;
-    message.setReceiver(IPC_ADDRESS_JAVA_INSTALLER_SERVER_C);
-    message.setSender(IPC_ADDRESS_JAVA_SIF_PLUGIN_C);
-    message.setMessageId(INSTALLER_CANCEL_MESSAGE_ID);
+    try
+    {
+        CommsMessage message;
+        message.setModuleId(PLUGIN_ID_SAMPLE_C);
+        message.setReceiver(IPC_ADDRESS_JAVA_INSTALLER_SERVER_C);
+        message.setSender(IPC_ADDRESS_JAVA_SIF_PLUGIN_C);
+        message.setMessageId(INSTALLER_CANCEL_MESSAGE_ID);
 
-    CommsMessage replyMessage;
-    int timeout = 10; // 10 seconds  // codescanner::magicnumbers
+        CommsMessage replyMessage;
+        int timeout = 10; // 10 seconds
 
-    CommsClientEndpoint comms;
-    int err = comms.connect(IPC_ADDRESS_JAVA_INSTALLER_SERVER_C);
-    if (KErrNone == err)
-    {
-        err = comms.sendReceive(message, replyMessage, timeout);
+        CommsClientEndpoint comms;
+        int err = comms.connect(IPC_ADDRESS_JAVA_INSTALLER_SERVER_C);
+        if (KErrNone == err)
+        {
+            err = comms.sendReceive(message, replyMessage, timeout);
+        }
+        else
+        {
+            // Cannot connect to Java Installer Comms end point,
+            // for example Java Installer is still starting up or
+            // already exiting
+            WLOG1(EJavaInstaller,
+                "CJavaSifPlugin:CancelOperation: Cannot connect to Java Installer "
+                "Comms end point, err %d", err);
+            return;
+        }
+        if (err != 0)
+        {
+            // Sending message to Java Installer failed.
+            ELOG1(EJavaInstaller,
+                "CJavaSifPlugin:CancelOperation: Cannot send message to Java Installer, err %d",
+                err);
+            // Ignore possible errors in disconnect
+            (void)comms.disconnect();
+            return;
+        }
+
+        // Ignore the cancel result returned in replyMessage
+        // because current SIF API does not return cancel result
+
+        // Ignore possible errors in disconnect
+        (void)comms.disconnect();
     }
-    else
+    catch (ExceptionBase& e)
     {
-        // Cannot connect to Java Installer Comms end point,
-        // for example Java Installer is still starting up or
-        // already exiting
-        WLOG1(EJavaInstaller,
-            "CJavaSifPlugin:CancelOperation: Cannot connect to Java Installer "
-            "Comms end point, err %d", err);
+        ELOG1(EJavaInstaller,
+              "CJavaSifPlugin: Send cancel msg failed: ExceptionBase caught: %s ",
+              e.toString().c_str());
         return;
     }
-    if (err != 0)
+    catch (std::exception& e)
     {
-        // Sending message to Java Installer failed.
         ELOG1(EJavaInstaller,
-            "CJavaSifPlugin:CancelOperation: Cannot send message to Java Installer, err %d",
-            err);
-        // Ignore possible errors in disconnect
-        (void)comms.disconnect();  // codescanner::voidparameter
+              "CJavaSifPlugin: Send cancel msg failed: Exception %s caught", e.what());
         return;
     }
 
-    // Ignore the cancel result returned in replyMessage
-    // because current SIF API does not return cancel result
-
-    // Ignore possible errors in disconnect
-    (void)comms.disconnect();  // codescanner::voidparameter
-
     // It takes some time before Java Installer had really cancelled
     // the operation and exited. Wait for it to happen because this function
     // must return only after the original asynchronous call is completed.
@@ -707,14 +737,14 @@
     // This array contains process handles for all Java Installer processes
     // started from this sif plugin. The last handle is the active one.
     // Check if it is still running
-    if (mHandlesToClose[mHandlesToClose.Count()-1].ExitReason() != 0)
+    if (iHandlesToClose[iHandlesToClose.Count()-1].ExitReason() != 0)
     {
         // Process has already closed
         return;
     }
     // Wait until it exits
-    mHandlesToClose[mHandlesToClose.Count()-1].Logon(status);
-    User::WaitForRequest(status);  // codescanner::userWaitForRequest
+    iHandlesToClose[iHandlesToClose.Count()-1].Logon(status);
+    User::WaitForRequest(status);
     // Ignore the exit status of Java Installer because current SIF API
     // does not return cancel result
 
@@ -725,7 +755,7 @@
 {
     // Check if the file is in the private data cage of some process
     TInt idx = aFileName.FindF(KPrivateDataCage);
-    if ((idx != KErrNotFound) && (idx < 3))   // codescanner::magicnumbers
+    if ((idx != KErrNotFound) && (idx < 3))
     {
         // In case of device Inbox or Java Installer itself do nothing
         if ((aFileName.FindF(KInboxDataCage) != KErrNotFound) ||
@@ -740,37 +770,19 @@
         // (aFileName is <path>\<name>.<ext>, copy <path>\<name>.*
         // to Java Installer tmp dir.)
         TParse fp;
-        mRFs.Parse(aFileName, fp);
+        iRFs.Parse(aFileName, fp);
+
+        CFileMan* fm = CFileMan::NewL(iRFs);
         TFileName filesToCopy = fp.DriveAndPath();
         filesToCopy.Append(fp.Name());
         filesToCopy.Append(KAnyExtension);
-
-        // Use JavaInstallCopier.exe to copy the files.
-        RProcess rJavaInstallCopier;
-        TInt err = rJavaInstallCopier.Create(
-            KJavaInstallCopierProcess, filesToCopy);
-        if (KErrNone == err)
+        TInt err = fm->Copy(filesToCopy, KJavaInstallerTmp, CFileMan::ERecurse);
+        delete fm;
+        if (KErrNone != err)
         {
-            TRequestStatus status;
-            rJavaInstallCopier.Logon(status);
-            rJavaInstallCopier.Resume();
-            User::WaitForRequest(status); // codescanner::userWaitForRequest
-            err = rJavaInstallCopier.ExitReason();
-            rJavaInstallCopier.Close();
-            if (KErrNone != err)
-            {
-                ELOG1(EJavaInstaller,
-                      "CJavaSifPlugin::CopyFilesIfNeededL: copying files "
-                      "to JavaInstaller data cage failed, err=%d", err);
-                User::Leave(err);
-            }
-        }
-        else
-        {
-            rJavaInstallCopier.Close();
             ELOG1(EJavaInstaller,
-                  "CJavaSifPlugin::CopyFilesIfNeededL: starting "
-                  "JavaInstallCopier failed, err=%d", err);
+                  "CJavaSifPlugin::CopyFilesIfNeededL: copying files "
+                  "to Java Installer data cage failed, err=%d", err);
             User::Leave(err);
         }
 
@@ -783,446 +795,4 @@
     return;
 }
 
-
-TInt CJavaSifPlugin::IsJadFile(
-    RFile& aFileHandle,
-    const COpaqueNamedParams& aArguments,
-    TBool& aIsJad)
-{
-    TBool mimeTypeGiven = EFalse;
-
-    TRAP_IGNORE(
-        const TDesC &desValue = aArguments.StringByNameL(KSifInParam_MimeType);
-        if (desValue.Length() > 0)
-        {
-            mimeTypeGiven = ETrue;
-            if (!desValue.Compare(KJadMimeType))
-            {
-                aIsJad = ETrue;
-            }
-            else
-            {
-                aIsJad = EFalse;
-            }
-        }
-    )
-    if (mimeTypeGiven)
-    {
-        return KErrNone;
-    }
-
-    // Mime type was not given in the input arguments, must check the contents
-    // of the file itself
-    return IsJadFile(aFileHandle, aIsJad);
-}
-
-
-TInt CJavaSifPlugin::IsJadFile(
-    RFile& aFileHandle,
-    TBool& aIsJad)
-{
-    RApaLsSession apaSession;
-    TInt err = apaSession.Connect();
-    if (KErrNone != err)
-    {
-        ELOG1(EJavaInstaller,
-            "CJavaSifPlugin::IsJadFile RApaLsSession Connect error %d", err);
-        return err;
-    }
-
-    TDataType jadFileMimeType(K8JadMimeType);
-    err = apaSession.RecognizeSpecificData(aFileHandle, jadFileMimeType, aIsJad);
-    apaSession.Close();
-    if (KErrNone != err)
-    {
-        // Just log the error
-        ELOG1(EJavaInstaller,
-            "CJavaSifPlugin::IsJadFile RApaLsSession RecognizeSpecificData error %d",
-            err);
-        return err;
-    }
-
-    return KErrNone;
-}
-
-
-void CJavaSifPlugin::BuildInstallCommandLine(
-    TPtr& aCommandLine,
-    const COpaqueNamedParams& aArguments)
-{
-    // KSifInParam_Drive -> -drive=install_target_drive (A, B, C, ..., Z)
-    TInt intValue = GetPositiveIntParam(KSifInParam_Drive, aArguments);
-    // Value 0 is 'A:' drive and  value 25 is 'Z:' drive
-    if ((intValue > -1) && (intValue < 26))  // codescanner::magicnumbers
-    {
-        aCommandLine.Append(KDrive);
-        TChar drive('A');
-        drive += intValue;
-        aCommandLine.Append(drive);
-    }
-
-    // KSifInParam_PerformOCSP Yes/No/AskUser -> -ocsp=yes|no
-    intValue = GetPositiveIntParam(KSifInParam_PerformOCSP, aArguments);
-    if (intValue == 0) // Yes
-    {
-        aCommandLine.Append(KOcsp);
-        aCommandLine.Append(KYes);
-    }
-    else if (intValue == 1) // No
-    {
-        aCommandLine.Append(KOcsp);
-        aCommandLine.Append(KNo);
-    }
-    // AskUser is not supported
-
-    // KSifInParam_IgnoreOCSPWarnings Yes/No/AskUser -> -ignore_ocsp_warnings=yes|no
-    intValue = GetPositiveIntParam(KSifInParam_IgnoreOCSPWarnings, aArguments);
-    if (intValue == 0) // Yes
-    {
-        aCommandLine.Append(KIgnoreOcspWarnings);
-        aCommandLine.Append(KYes);
-    }
-    else if (intValue == 1) // No
-    {
-        aCommandLine.Append(KIgnoreOcspWarnings);
-        aCommandLine.Append(KNo);
-    }
-    // AskUser is not supported
-
-    // KSifInParam_AllowUpgrade Yes/No/AskUser -> -upgrade=yes|no
-    intValue = GetPositiveIntParam(KSifInParam_AllowUpgrade, aArguments);
-    if (intValue == 0) // Yes
-    {
-        aCommandLine.Append(KUpgrade);
-        aCommandLine.Append(KYes);
-    }
-    else if (intValue == 1) // No
-    {
-        aCommandLine.Append(KUpgrade);
-        aCommandLine.Append(KNo);
-    }
-    // AskUser is not supported
-
-    // KSifInParam_AllowUpgradeData Yes/No/AskUser -> -upgrade_data=yes|no
-    intValue = GetPositiveIntParam(KSifInParam_AllowUpgradeData, aArguments);
-    if (intValue == 0) // Yes
-    {
-        aCommandLine.Append(KUpgradeData);
-        aCommandLine.Append(KYes);
-    }
-    else if (intValue == 1) // No
-    {
-        aCommandLine.Append(KUpgradeData);
-        aCommandLine.Append(KNo);
-    }
-    // AskUser is not supported
-
-    // KSifInParam_AllowUntrusted Yes/No/AskUser -> -untrusted=yes|no
-    intValue = GetPositiveIntParam(KSifInParam_AllowUntrusted, aArguments);
-    if (intValue == 0) // Yes
-    {
-        aCommandLine.Append(KUntrusted);
-        aCommandLine.Append(KYes);
-    }
-    else if (intValue == 1) // No
-    {
-        aCommandLine.Append(KUntrusted);
-        aCommandLine.Append(KNo);
-    }
-    // AskUser is not supported
-
-    // KSifInParam_AllowOverwrite Yes/No/AskUser -> -overwrite=yes|no
-    intValue = GetPositiveIntParam(KSifInParam_AllowOverwrite, aArguments);
-    if (intValue == 0) // Yes
-    {
-        aCommandLine.Append(KOverwrite);
-        aCommandLine.Append(KYes);
-    }
-    else if (intValue == 1) // No
-    {
-        aCommandLine.Append(KOverwrite);
-        aCommandLine.Append(KNo);
-    }
-    // AskUser is not supported
-
-    // KSifInParam_AllowDownload Yes/No/AskUser -> -download=yes|no
-    intValue = GetPositiveIntParam(KSifInParam_AllowDownload, aArguments);
-    if (intValue == 0) // Yes
-    {
-        aCommandLine.Append(KDownload);
-        aCommandLine.Append(KYes);
-    }
-    else if (intValue == 1) // No
-    {
-        aCommandLine.Append(KDownload);
-        aCommandLine.Append(KNo);
-    }
-    // AskUser is not supported
-
-    // KSifInParam_IAP -> -iap=IAP_ID (internet access point id)
-    intValue = GetPositiveIntParam(KSifInParam_IAP, aArguments);
-    if (intValue > -1)
-    {
-        // IAP ids are always positive
-        aCommandLine.Append(KIap);
-        aCommandLine.AppendNum(intValue);
-    }
-
-    // KSifInParam_SNAP -> -snap=SNAP_ID (service network access point id)
-    intValue = GetPositiveIntParam(KSifInParam_SNAP, aArguments);
-    if (intValue > -1)
-    {
-        // SNAP ids are always positive
-        aCommandLine.Append(KSnap);
-        aCommandLine.AppendNum(intValue);
-    }
-
-    // When this param is given, Java Installer will cancel installation
-    // before committing anything. This option is for debugging purposes only.
-    // KForceCancel -> -forcecancel
-    // The value of parameter is ignored
-    TRAP_IGNORE(
-        const TDesC &desValue = aArguments.StringByNameL(KForceCancel);
-        if (desValue.Length() > 0)
-        {
-            aCommandLine.Append(KForceCancel);
-        }
-    )
-
-    std::wstring base64EncodedArgs;
-    // KSifInParam_UserName -> -username=download_username
-    TRAP_IGNORE(
-        const TDesC &desValue = aArguments.StringByNameL(KSifInParam_UserName);
-        if (desValue.Length() > 0)
-        {
-            try
-            {
-                std::wstring value((wchar_t *)(desValue.Ptr()), desValue.Length());
-                std::wstring encodedValue = JavaCommonUtils::wbase64encode(value);
-                aCommandLine.Append(KUsername);
-                aCommandLine.Append(
-                    (const unsigned short *)encodedValue.c_str(), (int)encodedValue.length());
-                base64EncodedArgs.append(L"username,");
-            }
-            catch (std::exception& e)
-            {
-                ELOG1(EJavaInstaller,
-                    "CJavaSifPlugin::BuildInstallCommandLine Base64 encoding user "
-                    "name failed, err %s", e.what());
-            }
-        }
-    )
-
-    // KSifInParam_Password -> -password=download_password
-    TRAP_IGNORE(
-        const TDesC &desValue = aArguments.StringByNameL(KSifInParam_Password);
-        if (desValue.Length() > 0)
-        {
-            try
-            {
-                std::wstring value((wchar_t *)(desValue.Ptr()), desValue.Length());
-                std::wstring encodedValue = JavaCommonUtils::wbase64encode(value);
-                aCommandLine.Append(KPassword);
-                aCommandLine.Append(
-                    (const unsigned short *)encodedValue.c_str(), (int)encodedValue.length());
-                base64EncodedArgs.append(L"password,");
-            }
-            catch (std::exception& e)
-            {
-                ELOG1(EJavaInstaller,
-                    "CJavaSifPlugin::BuildInstallCommandLine Base64 encoding password "
-                    "failed, err %s", e.what());
-            }
-        }
-    )
-
-    // KSifInParam_SourceUrl -> -sourceurl=original (HTTP) URL of the JAD or JAR file
-    TRAP_IGNORE(
-        const TDesC &desValue = aArguments.StringByNameL(KSifInParam_SourceUrl);
-        if (desValue.Length() > 0)
-        {
-            try
-            {
-                std::wstring value((wchar_t *)(desValue.Ptr()), desValue.Length());
-                std::wstring encodedValue = JavaCommonUtils::wbase64encode(value);
-                aCommandLine.Append(KSourceUrl);
-                aCommandLine.Append(
-                    (const unsigned short *)encodedValue.c_str(), (int)encodedValue.length());
-                base64EncodedArgs.append(L"sourceurl,");
-            }
-            catch (std::exception& e)
-            {
-                ELOG1(EJavaInstaller,
-                    "CJavaSifPlugin::BuildInstallCommandLine Base64 encoding source "
-                    "url failed, err %s", e.what());
-            }
-        }
-    )
-
-    // KSifInParam_Charset -> -charset=Internet-standard character set name
-    TRAP_IGNORE(
-        const TDesC &desValue = aArguments.StringByNameL(KSifInParam_Charset);
-        if (desValue.Length() > 0)
-        {
-            try
-            {
-                std::wstring value((wchar_t *)(desValue.Ptr()), desValue.Length());
-                std::wstring encodedValue = JavaCommonUtils::wbase64encode(value);
-                aCommandLine.Append(KCharSet);
-                aCommandLine.Append(
-                    (const unsigned short *)encodedValue.c_str(), (int)encodedValue.length());
-                base64EncodedArgs.append(L"charset,");
-            }
-            catch (std::exception& e)
-            {
-                ELOG1(EJavaInstaller,
-                    "CJavaSifPlugin::BuildInstallCommandLine Base64 encoding charset "
-                    "failed, err %s", e.what());
-            }
-        }
-    )
-
-    if (base64EncodedArgs.length() > 0)
-    {
-        // Tell Java Installer which arguments have been Base64 encoded
-        aCommandLine.Append(KBase64);
-        aCommandLine.Append(
-            (const unsigned short *)base64EncodedArgs.c_str(), (int)base64EncodedArgs.length());
-    }
-
-    return;
-}
-
-TInt CJavaSifPlugin::GetPositiveIntParam(
-        const TDesC& aName,
-        const COpaqueNamedParams& aArguments)
-{
-    // Assume that the value will not be found
-    TInt intValue = -1;
-
-    // If the value can be read, intValue will be set, otherwise this function
-    // returns -1
-    TRAP_IGNORE((void)aArguments.GetIntByNameL(aName, intValue));  // codescanner::voidparameter
-
-    return intValue;
-}
-
-
-TInt CJavaSifPlugin::StartResultsServer(
-    COpaqueNamedParams& aResults,
-    CComponentInfo& aComponentInfo)
-{
-    // Destroy old Comms server if it exists
-    delete mResultsServer;
-    mResultsServer = NULL;
-
-    // Start new Comms server
-    mResultsServer = new ResultsServer(aResults, aComponentInfo);  // codescanner::nonleavenew
-    if (NULL == mResultsServer)
-    {
-        return KErrNoMemory;
-    }
-    else
-    {
-        // Start the server
-        return mResultsServer->start();
-    }
-}
-
-
-TBool CJavaSifPlugin::ExitIfJavaInstallerRunning(
-    COpaqueNamedParams& aResults,
-    TRequestStatus& aStatus)
-{
-    // If Java Installer is already running, set error category EInstallerBusy etc
-    // to aResults and return
-
-    TInt err(KErrNone);
-    RProcess proc;
-    TFindProcess finder(KJavaInstallerProcess);
-    TFullName procName;
-
-    // Java Installer process SID is 0x102033E6 and name is "Installer"
-    while (finder.Next(procName) == KErrNone)
-    {
-        if (proc.Open(finder) != KErrNone)
-        {
-            continue;
-        }
-        if (proc.SecureId() == KJavaInstallerSecureID)
-        {
-            if (proc.ExitType() == EExitPending)
-            {
-                // Java Installer process is already running
-                proc.Close();
-
-                // return error information
-                TRAP(err, aResults.AddIntL(KSifOutParam_ErrCategory, EInstallerBusy));
-                if (KErrNone != err)
-                {
-                    ELOG1(EJavaInstaller,
-                        "CJavaSifPlugin::ExitIfJavaInstallerRunning aResults.AddIntL "
-                        "ErrCategory err %d", err);
-                }
-
-                TRAP(err, aResults.AddIntL(KSifOutParam_ErrCode, KErrInUse));
-                if (KErrNone != err)
-                {
-                    ELOG1(EJavaInstaller,
-                        "CJavaSifPlugin::ExitIfJavaInstallerRunning aResults.AddIntL "
-                        "ErrCode err %d", err);
-                }
-
-                TRAP(err, aResults.AddIntL(KSifOutParam_ExtendedErrCode, 0));
-                if (KErrNone != err)
-                {
-                    ELOG1(EJavaInstaller,
-                        "CJavaSifPlugin::ExitIfJavaInstallerRunning aResults.AddIntL "
-                        "ExtendedErrCode err %d", err);
-                }
-
-                // TODO: return also localized error message from usif
-                // common localization file after the localized strings are available
-
-                TRequestStatus *statusPtr(&aStatus);
-                User::RequestComplete(statusPtr, KErrInUse);
-                return ETrue;
-            }
-       }
-       proc.Close();
-    }
-
-    return EFalse;
-}
-
-/**
- * Creates 'preparing installation' dialog.
- */
-void CJavaSifPlugin::CreatePrepInstDialogL()
-{
-    ILOG(EJavaInstaller, "CJavaSifPlugin::CreatePrepInstDialogL creating dialog");
-    mPrepInstDialog = CHbDeviceNotificationDialogSymbian::NewL();
-    _LIT(KPrepInstText, "Preparing installation...");
-    mPrepInstDialog->SetTitleL(KPrepInstText);
-    mPrepInstDialog->SetTimeout(20*1000); // ms
-    mPrepInstDialog->ShowL();
-    ILOG(EJavaInstaller, "CJavaSifPlugin::CreatePrepInstDialogL dialog created");
-}
-
-void CJavaSifPlugin::HidePrepInstDialogL()
-{
-    ILOG(EJavaInstaller, "CJavaSifPlugin::HidePrepInstDialogL hiding dialog");
-    // Stop further timed calls
-    if (mWaitToHideDialog)
-    {
-        mWaitToHideDialog->Cancel();
-    }
-    // Close wait dialog.
-    if (mPrepInstDialog)
-    {
-        mPrepInstDialog->Close();
-    }
-    ILOG(EJavaInstaller, "CJavaSifPlugin::HidePrepInstDialogL dialog hidden");
-}
-
 //  End of File
--- a/javamanager/javainstaller/javasifplugin/src/proxy.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/javasifplugin/src/proxy.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 - 2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -26,7 +26,7 @@
 // CONSTANTS
 const TImplementationProxy KImplementationTable[] =
     { IMPLEMENTATION_PROXY_ENTRY(KJavaSifPluginEcomImplUid,
-                                 java::installer::CJavaSifPlugin::NewL)
+                                 Java::Installer::CJavaSifPlugin::NewL)
     };
 
 // -----------------------------------------------------------------------------
--- a/javamanager/javainstaller/javasifplugin/src/resultsserver.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/javasifplugin/src/resultsserver.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 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"
@@ -11,18 +11,14 @@
 *
 * Contributors:
 *
-* Description:  Comms server, part of Java Sif plugin.
-*               When started  in 'commsresult' mode from Java Sif plugin
-*               Java Installer sends the results of the operation
-*               it executes (install, uninstall or component info)
-*               to this server.
+* Description:  Comms server,
+*    part of Java platform 2.0 javarestoreconverter process
 *
 */
 
 
 #include <iostream>
 #include <unistd.h>
-#include <usif/usiferror.h>
 
 #include "comms.h"
 #include "javasymbianoslayer.h"
@@ -33,7 +29,7 @@
 using namespace std;
 
 ResultsServer::ResultsServer(COpaqueNamedParams& aResults, CComponentInfo& aInfo) :
-        mResults(aResults), mInfo(aInfo)
+        iResults(aResults), iInfo(aInfo)
 {
 }
 
@@ -48,43 +44,23 @@
 
 int ResultsServer::start()
 {
-    // Write reasonable error codes to mResults that can be used if
-    // Java Installer never returns InstallerResultMessage.
-    // If InstallerResultMessage is received the values will be overwritten.
-    TRAPD(err, mResults.AddIntL(KSifOutParam_ErrCategory, EUnexpectedError));
-    if (KErrNone != err)
-    {
-        ELOG1(EJavaInstaller,
-            "ResultsServer::start mResults.AddIntL ErrCategory err %d", err);
-    }
-
-    TRAP(err, mResults.AddIntL(KSifOutParam_ErrCode, KErrUnknown));
-    if (KErrNone != err)
-    {
-        ELOG1(EJavaInstaller,
-            "ResultsServer::start mResults.AddIntL ErrCode err %d", err);
-    }
-
-    TRAP(err, mResults.AddIntL(KSifOutParam_ExtendedErrCode, 0));
-    if (KErrNone != err)
-    {
-        ELOG1(EJavaInstaller,
-            "ResultsServer::start mResults.AddIntL ExtendedErrCode err %d", err);
-    }
-
-    // TODO: return also localized error message (KSifOutParam_ErrMessage and
-    // perhaps also KSifOutParam_ErrMessageDetails) from usif
-    // common localization file after the localized strings are available
-
-
-    mComms.registerDefaultListener(this);
-    return mComms.start(IPC_ADDRESS_JAVA_SIF_PLUGIN_C);
+    iRunning = 1;
+    iComms.registerDefaultListener(this);
+    return iComms.start(IPC_ADDRESS_JAVA_SIF_PLUGIN_C);
 }
 
 int ResultsServer::stop()
 {
-    mComms.unregisterDefaultListener(this);
-    return mComms.stop();
+    if (iRunning > 0)
+    {
+        iRunning = 0;
+        iComms.unregisterDefaultListener(this);
+        return iComms.stop();
+    }
+    else
+    {
+        return 0;
+    }
 }
 
 /**
@@ -141,8 +117,66 @@
 
             if (KErrNone != result)
             {
-                // return common error information;
-                setCommonErrorInfo();
+                // return common error information
+                TRAP(err, iResults.AddIntL(KSifOutParam_ExtendedErrCode, result));
+                if (KErrNone != err)
+                {
+                    ELOG1(EJavaInstaller,
+                        "ResultsServer::processMessage iResults.AddIntL ExtendedErrCode err %d",
+                        err);
+                }
+
+                TRAP(err, iResults.AddIntL(KSifOutParam_ErrCode, result));
+                if (KErrNone != err)
+                {
+                    ELOG1(EJavaInstaller,
+                        "ResultsServer::processMessage iResults.AddIntL ErrCode err %d", err);
+                }
+
+                TRAP(err, iResults.AddIntL(
+                    KSifOutParam_ErrCategory, iIntPairs[L"error-category"]));
+                if (KErrNone != err)
+                {
+                    ELOG1(EJavaInstaller,
+                        "ResultsServer::processMessage iResults.AddIntL ErrCategory err %d",
+                        err);
+                }
+
+                HBufC *message = wstringToBuf(iStringPairs[L"error-message"]);
+                if (message == NULL)
+                {
+                    ELOG(EJavaInstaller,
+                          "ResultsServer::processMessage iResults.wstringToBuf returned NULL ");
+                }
+                else
+                {
+                    TRAP(err, iResults.AddStringL(KSifOutParam_ErrMessage, *message));
+                    if (KErrNone != err)
+                    {
+                        ELOG1(EJavaInstaller,
+                            "ResultsServer::processMessage iResults.AddStringL ErrMessage err %d",
+                            err);
+                    }
+                    delete message;
+                }
+
+                message = wstringToBuf(iStringPairs[L"error-details"]);
+                if (message == NULL)
+                {
+                    ELOG(EJavaInstaller,
+                          "ResultsServer::processMessage iResults.wstringToBuf 2 returned NULL ");
+                }
+                else
+                {
+                    TRAP(err, iResults.AddStringL(KSifOutParam_ErrMessageDetails, *message));
+                    if (KErrNone != err)
+                    {
+                        ELOG1(EJavaInstaller,
+                            "ResultsServer::processMessage iResults.AddStringL ErrMessageDetails "
+                            "err %d", err);
+                    }
+                    delete message;
+                }
 
                 if (INSTALL_OPERATION == operation)
                 {
@@ -163,21 +197,17 @@
             }
             else
             {
-                // Operation succeeded
-
-                // Overwrite (reset) the default error values set for the case where no
-                // InstallerResultMessage is never received
-                resetDefaultErrorValues();
+                // operation succeeded
 
                 if (INSTALL_OPERATION == operation)
                 {
                     // Return the component ids of the installed Java application.
                     TComponentId resultComponentId = iIntPairs[L"suite-cid"];
-                    TRAP(err, mResults.AddIntL(KSifOutParam_ComponentId, resultComponentId));
+                    TRAP(err, iResults.AddIntL(KSifOutParam_ComponentId, resultComponentId));
                     if (KErrNone != err)
                     {
                         ELOG1(EJavaInstaller,
-                              "ResultsServer::processMessage mResults.AddIntL cid error %d", err);
+                              "ResultsServer::processMessage iResults.AddIntL cid error %d", err);
                     }
                 }
                 else if (UNINSTALL_OPERATION == operation)
@@ -209,7 +239,7 @@
             reply.setMessageId(INSTALLER_RESULT_RESPONSE_MESSAGE_ID);
             reply << 0;
 
-            int err = mComms.send(reply);
+            int err = iComms.send(reply);
             if (err != 0)
             {
                 ELOG1(EJavaInstaller,
@@ -232,95 +262,6 @@
 }
 
 
-/**
- * Set common error information.
- * Note that the information is in member variables
- * iIntPairs and iStringPairs
- */
-void ResultsServer::setCommonErrorInfo()
-{
-    // return common error information
-    TRAPD(err, mResults.AddIntL(KSifOutParam_ErrCode, iIntPairs[L"error-code"]));
-    if (KErrNone != err)
-    {
-        ELOG1(EJavaInstaller,
-            "ResultsServer::setCommonErrorInfo mResults.AddIntL ErrCode err %d", err);
-    }
-
-    TRAP(err, mResults.AddIntL(
-        KSifOutParam_ErrCategory, iIntPairs[L"error-category"]));
-    if (KErrNone != err)
-    {
-        ELOG1(EJavaInstaller,
-            "ResultsServer::setCommonErrorInfo mResults.AddIntL ErrCategory err %d",
-            err);
-    }
-
-    HBufC *message = wstringToBuf(iStringPairs[L"error-message"]);
-    if (!message)
-    {
-        ELOG(EJavaInstaller,
-              "ResultsServer::setCommonErrorInfo mResults.wstringToBuf returned NULL ");
-    }
-    else
-    {
-        TRAP(err, mResults.AddStringL(KSifOutParam_ErrMessage, *message));
-        if (KErrNone != err)
-        {
-            ELOG1(EJavaInstaller,
-                "ResultsServer::setCommonErrorInfo mResults.AddStringL ErrMessage err %d",
-                err);
-        }
-        delete message;
-    }
-
-    message = wstringToBuf(iStringPairs[L"error-details"]);
-    if (!message)
-    {
-        ELOG(EJavaInstaller,
-              "ResultsServer::setCommonErrorInfo mResults.wstringToBuf 2 returned NULL ");
-    }
-    else
-    {
-        TRAP(err, mResults.AddStringL(KSifOutParam_ErrMessageDetails, *message));
-        if (KErrNone != err)
-        {
-            ELOG1(EJavaInstaller,
-                "ResultsServer::setCommonErrorInfo mResults.AddStringL ErrMessageDetails "
-                "err %d", err);
-        }
-        delete message;
-    }
-}
-
-
-/**
- * Overwrite (reset) the default error values to 'no error'.
- * The default error values were originally set for the case
- * where no InstallerResultMessage is never received and we must
- * return sensible error information.
- */
-void ResultsServer::resetDefaultErrorValues()
-{
-    TRAPD(err, mResults.AddIntL(KSifOutParam_ErrCategory, 0));
-    if (KErrNone != err)
-    {
-        ELOG1(EJavaInstaller,
-            "ResultsServer::resetDefaultErrorValues mResults.AddIntL ErrCategory err %d", err);
-    }
-
-    TRAP(err, mResults.AddIntL(KSifOutParam_ErrCode, 0));
-    if (KErrNone != err)
-    {
-        ELOG1(EJavaInstaller,
-            "ResultsServer::resetDefaultErrorValues mResults.AddIntL ErrCode err %d", err);
-    }
-
-    // TODO: reset also localized error message KSifOutParam_ErrMessage and
-    // perhaps also KSifOutParam_ErrMessageDetails if they have been set in start()
-}
-
-
 void ResultsServer::clearData()
 {
     iIntPairs.clear();
@@ -359,7 +300,7 @@
         ss >> midletUidN;
 
         //LOG1WSTR(EJavaInstaller, EInfo,
-        //  "ResultsServer::processMessage: checking %S", midletUidN.c_str());
+        //         "ResultsServer::processMessage: checking %s", midletUidN.c_str());
 
         int uid = iIntPairs[midletUidN];
         if (uid == 0)
@@ -385,8 +326,8 @@
         CleanupStack::Pop(applicationInfo);
 
         n++;
-    } // sanity check: no suite can have 10000 midlets
-    while (n < 10000);   // codescanner::magicnumbers
+    }
+    while (n < 10000);  // sanity check: no suite can have 10000 midlets
 
     CComponentInfo::CNode *rootNode = NULL;
     rootNode = CComponentInfo::CNode::NewLC(
@@ -407,7 +348,7 @@
                );
 
     // Store whole component info tree
-    mInfo.SetRootNodeL(rootNode);
+    iInfo.SetRootNodeL(rootNode);
     CleanupStack::Pop(rootNode);
     CleanupStack::PopAndDestroy(&applications);
 }
--- a/javamanager/javainstaller/javasifplugin/tsrc/build/testsifapi.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/javasifplugin/tsrc/build/testsifapi.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -23,7 +23,7 @@
 symbian {
     TARGET.UID2          = 0
     TARGET.UID3          = 0xE0E5E262
-    TARGET.CAPABILITY    = all -tcb -drm
+    TARGET.CAPABILITY    = WriteDeviceData TrustedUI
 
 
     LIBS +=  -lestor -lapparc -lapgrfx -lefsrv -lsif
--- a/javamanager/javainstaller/javasifplugin/tsrc/src.s60/main.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/javasifplugin/tsrc/src.s60/main.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -31,16 +31,7 @@
 using namespace Usif;
 
 _LIT(KTestMIDlet, "E:\\stopwatch10midp2.jad");
-_LIT(KTestMIDlet2, "E:\\stopwatch11midp2.jar");
-_LIT(KTestMIDlet3, "E:\\Private\\10281e17\\SimpleRMS.jar");
-_LIT(KUserName, "user");
-_LIT(KPassWord, "password");
-_LIT(KEmptyString, "");
-_LIT(KSourceUrl, "\\sourceurl\\foo");
-_LIT(KCharSet, "charset");
-_LIT(KJadMimeType, "text/vnd.sun.j2me.app-descriptor");
-_LIT(KJarMimeType, "application/java-archive");
-
+//_LIT(KTestMIDlet, "C:\\data\\installs\\DS_Snow.jad");
 
 /**
  * Installs a component by file name
@@ -73,82 +64,6 @@
     CleanupStack::PopAndDestroy(1);
 }
 
-
-/**
- * This test case requires that you start Java Installer 
- * manually before executing this one and keep it running 
- * this test case ends.
- *
- *
- * Keep the installer running until 1) installation has failed
- * 2) uninstallation has failed and 3) getComponentInfo had failed
- * because the installer is already running.
- */
-static void sifInstallerAlreadyRunningL()
-{
-    LOG(EJavaConverters, EInfo,
-        "testsifapi: sifInstallerAlreadyRunningL: Called");
-
-    RSoftwareInstall installer;
-    TInt err = installer.Connect();
-    if (KErrNone != err)
-    {
-        ELOG1(EJavaConverters,
-              "testsifapi: sifInstallerAlreadyRunningL: Cannot connect to RSoftwareInstall, err %d", err);
-        User::Leave(err);
-    }
-    CleanupClosePushL(installer);
-
-/*
-    LOG(EJavaConverters, EInfo,
-        "testsifapi: sifInstallerAlreadyRunningL: Starting the first installer process");
-    TRequestStatus status;
-    installer.Install(KTestMIDlet, status);
-
-    // wait for second
-    User::After(1000000);
-*/
-
-    LOG(EJavaConverters, EInfo,
-        "testsifapi: sifInstallerAlreadyRunningL: Starting the concurrent installation");
-    // Try to start concurrent installation, will fail
-    TRequestStatus status2;
-    installer.Install(KTestMIDlet2, status2, EFalse);
-    User::WaitForRequest(status2);
-    LOG1(EJavaConverters, EInfo,
-        "testsifapi: sifInstallerAlreadyRunningL: The return status of concurrent install operation was %d", status2.Int());
-
-    LOG(EJavaConverters, EInfo,
-        "testsifapi: sifInstallerAlreadyRunningL: Starting the concurrent uninstallation");
-    // Try to start concurrent uninstallation, will fail
-    TRequestStatus status3;
-    installer.Uninstall(15, status3, EFalse);
-    User::WaitForRequest(status3);
-    LOG1(EJavaConverters, EInfo,
-        "testsifapi: sifInstallerAlreadyRunningL: The return status of concurrent uninstall operation was %d", status3.Int());
-
-    LOG(EJavaConverters, EInfo,
-        "testsifapi: sifInstallerAlreadyRunningL: Starting the concurrent get component info");
-    // Try to start concurrent GetComponentInfo, will fail
-    TRequestStatus status4;
-    CComponentInfo *info = CComponentInfo::NewL();
-    installer.GetComponentInfo(KTestMIDlet, *info, status4);
-    User::WaitForRequest(status4);
-    delete info;
-    LOG1(EJavaConverters, EInfo,
-        "testsifapi: sifInstallerAlreadyRunningL: The return status of concurrent GetComponentInfo operation was %d", status4.Int());
-
-/*
-    User::WaitForRequest(status);
-
-    LOG1(EJavaConverters, EInfo,
-        "testsifapi: sifInstallerAlreadyRunningL: The return status of install operation was %d", status.Int());
-*/
-
-    // free resources before returning
-    CleanupStack::PopAndDestroy(1);
-}
-
 /**
  * Installs a component by file handle using opaque arguments/results
  */
@@ -174,9 +89,8 @@
         User::Leave(err);
     }
 
-// TEMP TEST
     RFile installFile;
-    err = installFile.Open(fs, KTestMIDlet3, EFileShareReadersOnly | EFileRead);
+    err = installFile.Open(fs, KTestMIDlet, EFileShareReadersOnly | EFileRead);
     if (KErrNone != err)
     {
         ELOG1(EJavaConverters,
@@ -211,32 +125,6 @@
     // Silent installation request
     arguments->AddIntL(KSifInParam_InstallSilently, 1);
 
-    // drive E:
-    arguments->AddIntL(KSifInParam_Drive, 4);
-
-    // 0 is TSifPolicy::EUserAllowed == Yes
-    arguments->AddIntL(KSifInParam_PerformOCSP, 0);
-    arguments->AddIntL(KSifInParam_IgnoreOCSPWarnings, 0);
-
-    arguments->AddIntL(KSifInParam_AllowUpgrade, 0);
-    arguments->AddIntL(KSifInParam_AllowUntrusted, 0);
-    arguments->AddIntL(KSifInParam_AllowOverwrite, 0);
-    arguments->AddIntL(KSifInParam_AllowDownload, 0);
-
-
-// TEMP TEST prevent overflow
-//    arguments->AddStringL(KSifInParam_UserName, KUserName);
-//    arguments->AddStringL(KSifInParam_Password, KPassWord);
-
-    arguments->AddStringL(KSifInParam_SourceUrl, KSourceUrl);
-
-    arguments->AddIntL(KSifInParam_IAP, 3);
-
-    arguments->AddStringL(KSifInParam_Charset, KEmptyString);
-
-    arguments->AddStringL(KSifInParam_MimeType, KJadMimeType);
-
-
     LOG(EJavaConverters, EInfo,
         "testsifapi: sifByHandleAndArgsAndResultsInstallL: arguments created");
 
@@ -267,90 +155,6 @@
     return componentId;
 }
 
-/**
- * Installs a component by file handle using other opaque arguments than
- * sifByHandleAndArgsAndResultsInstallL()
- */
-static TInt secondSifByFileAndArgsAndResultsInstallL()
-{
-    RSoftwareInstall installer;
-    TInt err = installer.Connect();
-    if (KErrNone != err)
-    {
-        ELOG1(EJavaConverters,
-              "testsifapi: secondSifByFileAndArgsAndResultsInstallL: Cannot connect to RSoftwareInstall, err %d", err);
-        User::Leave(err);
-    }
-    CleanupClosePushL(installer);
-
-    LOG(EJavaConverters, EInfo,
-        "testsifapi: secondSifByFileAndArgsAndResultsInstallL: RSoftwareInstall connected");
-
-    TRequestStatus status;
-    COpaqueNamedParams *arguments = COpaqueNamedParams::NewL();
-    CleanupStack::PushL(arguments);
-    COpaqueNamedParams *results = COpaqueNamedParams::NewL();
-    CleanupStack::PushL(results);
-
-    // Silent installation request
-    arguments->AddIntL(KSifInParam_InstallSilently, 1);
-
-    // illegal drive number 33
-    arguments->AddIntL(KSifInParam_Drive, 33);
-
-    // 1 is No
-    arguments->AddIntL(KSifInParam_PerformOCSP, 1);
-    arguments->AddIntL(KSifInParam_IgnoreOCSPWarnings, 1);
-
-    arguments->AddIntL(KSifInParam_AllowUpgrade, 1);
-    arguments->AddIntL(KSifInParam_AllowUntrusted, 1);
-    arguments->AddIntL(KSifInParam_AllowOverwrite, 1);
-    arguments->AddIntL(KSifInParam_AllowDownload, 1);
-
-// TEMP TEST prevent overflow
-//    arguments->AddStringL(KSifInParam_UserName, KEmptyString);
-//    arguments->AddStringL(KSifInParam_Password, KEmptyString);
-
-    arguments->AddStringL(KSifInParam_SourceUrl, KEmptyString);
-
-    arguments->AddIntL(KSifInParam_SNAP, 8);
-
-    arguments->AddStringL(KSifInParam_Charset, KCharSet);
-
-    arguments->AddStringL(KSifInParam_MimeType, KJarMimeType);
-
-    // forcecancel argument value is ignored, forcecancel is set if the value length > 0
-    arguments->AddStringL(_L("-forcecancel"), KCharSet);
-
-    LOG(EJavaConverters, EInfo,
-        "testsifapi: secondSifByFileAndArgsAndResultsInstallL: arguments created");
-
-    installer.Install(KTestMIDlet2, *arguments, *results, status);
-
-    User::WaitForRequest(status);
-
-    LOG1(EJavaConverters, EInfo,
-        "testsifapi: secondSifByFileAndArgsAndResultsInstallL: The return status of install operation was %d", status.Int());
-
-
-    TInt componentId = 0;
-    TBool idExisted = results->GetIntByNameL(KSifOutParam_ComponentId, componentId);
-    if ( idExisted )
-    {
-        LOG1(EJavaConverters, EInfo,
-            "testsifapi: secondSifByFileAndArgsAndResultsInstallL: Component id was %d", componentId);
-    }
-    else
-    {
-        LOG(EJavaConverters, EInfo,
-            "testsifapi: secondSifByFileAndArgsAndResultsInstallL: No component id was returned");
-    }
-
-    // free resources before returning
-    CleanupStack::PopAndDestroy(3);
-
-    return componentId;
-}
 
 static void sifUninstallL(TInt &aComponentId)
 {
@@ -492,50 +296,8 @@
         logApplicationInfo(*(info->RootNodeL().Applications()[nInd]));
     }
 
-    CleanupStack::PopAndDestroy(info);
-
-
-    User::After(1000000);
-
-    // Get component info also from jar
-    TRequestStatus status2;
-    CComponentInfo *info2 = CComponentInfo::NewL();
-    CleanupStack::PushL(info2);
-
-    installer.GetComponentInfo(KTestMIDlet2, *info2, status2);
-
-    User::WaitForRequest(status2);
-
-    LOG1(EJavaConverters, EInfo,
-        "testsifapi: sifGetComponentInfoL: The return status of get "
-        "component info operation 2 was %d", status.Int());
-
-    LOG(EJavaConverters, EInfo,
-        "testsifapi: sifGetComponentInfoL: Logging root node (suite2)");
-
-    logComponentInfoNode(info2->RootNodeL());
-
-    LOG(EJavaConverters, EInfo,
-        "testsifapi: sifGetComponentInfoL: Logging child nodes (MIDlets2)");
-
-    TInt nMIDlets2 = info2->RootNodeL().Children().Count();
-    TInt nInd2;
-    for (nInd2 = 0; nInd2 < nMIDlets2; nInd2++)
-    {
-        logComponentInfoNode(*(info2->RootNodeL().Children()[nInd2]));
-    }
-
-    nMIDlets2 = info2->RootNodeL().Applications().Count();
-    for (nInd2 = 0; nInd2 < nMIDlets2; nInd2++)
-    {
-        logApplicationInfo(*(info2->RootNodeL().Applications()[nInd2]));
-    }
-
-    CleanupStack::PopAndDestroy(info2);
-
-
     // free resources before returning
-    CleanupStack::PopAndDestroy(1);
+    CleanupStack::PopAndDestroy(2);
 }
 
 
@@ -588,18 +350,6 @@
     LOG(EJavaConverters, EInfo,
         "testsifapi: cancelFunction: Called");
 
-    // TEMP TEST
-    // This thread does not have active scheduler,
-    // create and install it
-    CActiveScheduler* as = new CActiveScheduler();
-    if (NULL == as)
-    {
-        ELOG(EJavaConverters,
-            "testsifapi: cancelFunction: Cannot create active scheduler");
-            return 1;
-    }
-    CActiveScheduler::Install(as);
-
     // Wait for 6 seconds so that the operation to be cancelled
     // has had time to really do something already
     User::After(6000000);
@@ -609,13 +359,9 @@
 
     ((RSoftwareInstall *)installer)->CancelOperation();
 
-    LOG(EJavaConverters, EInfo, "testsifapi: cancelFunction: Starting CActiveScheduler");
-    CActiveScheduler::Start();
-
     LOG(EJavaConverters, EInfo,
         "testsifapi: cancelFunction: CancelOperation() was called");
 
-    delete as;
     return 0;
 }
 
@@ -653,7 +399,6 @@
         "testsifapi: cancelFromSameThread: CancelOperation() returned");
 }
 
-
 static void cancelInstallL()
 {
     LOG(EJavaConverters, EInfo,
@@ -693,30 +438,6 @@
 
 }
 
-static void cancelNoOperationL()
-{
-    LOG(EJavaConverters, EInfo,
-        "testsifapi: cancelNoOperationL: Called");
-
-    RSoftwareInstall installer;
-    TInt err = installer.Connect();
-    if (KErrNone != err)
-    {
-        ELOG1(EJavaConverters,
-            "testsifapi: cancelNoOperationL: Cannot connect to RSoftwareInstall, err %d", err);
-        User::Leave(err);
-    }
-    CleanupClosePushL(installer);
-
-    cancelFromSameThread(installer);
-
-    LOG(EJavaConverters, EInfo,
-        "testsifapi: cancelNoOperationL: cancelFrom<X>Thread returned");
-
-    // free resources before returning
-    CleanupStack::PopAndDestroy(1);
-
-}
 
 /**
  * Create cleanup stack and run the cleaner code inside TRAP harness
@@ -724,35 +445,35 @@
  */
 TInt E32Main()
 {
-//    __UHEAP_MARK;
+/*
+    ELOG2(EJavaConverters,
+        "testsifapi: Starting testing long long long long long long long long long long "
+        "long long long long long long long long long long long long long long long long "
+        "long long long long long long long long long long long long long long long long "
+        "long long long long long long long long long long long long long buffer %d %d", 0, 1);
+
+    LOG(EJavaConverters, EInfo,
+        "testsifapi: sifByHandleAndArgsAndResultsInstallL: Called");
+*/
+
+    __UHEAP_MARK;
     CTrapCleanup* cleanupStack = CTrapCleanup::New();
 
     TInt err = KErrNone;
 
 
-    LOG(EJavaConverters, EInfo, "testsifapi: starting cancelNoOperationL");
-    TRAP(err, cancelNoOperationL());
-    if (KErrNone != err)
-    {
-        ELOG1(EJavaConverters, "testsifapi: cancelNoOperationL leaved with err %d", err);
-    }
+    /*
+        TRAP(err, cancelInstallL());
+        if (KErrNone != err)
+        {
+            ELOG1(EJavaConverters, "testsifapi: cancelInstallL leaved with err %d", err);
+        }
 
-    // Wait for a moment
-    User::After(500000);
+        // Wait for a moment
+        User::After(500000);
+    */
 
 
-    LOG(EJavaConverters, EInfo, "testsifapi: starting cancelInstallL");
-    TRAP(err, cancelInstallL());
-    if (KErrNone != err)
-    {
-        ELOG1(EJavaConverters, "testsifapi: cancelInstallL leaved with err %d", err);
-    }
-
-    // Wait for a moment
-    User::After(500000);
-
-
-    LOG(EJavaConverters, EInfo, "testsifapi: starting sifSimplestInstallL");
     TRAP(err, sifSimplestInstallL());
     if (KErrNone != err)
     {
@@ -763,25 +484,8 @@
     User::After(500000);
 
 
-
-    // This test case must be executed sepatately, while manually started 
-    // Java Installer is running
-    LOG(EJavaConverters, EInfo, "testsifapi: starting sifInstallerAlreadyRunningL");
-    TRAP(err, sifInstallerAlreadyRunningL());
-    if (KErrNone != err)
-    {
-        ELOG1(EJavaConverters, "testsifapi: sifInstallerAlreadyRunningL leaved with err %d", err);
-    }
+    TInt componentId = 0;
 
-    // Wait for a moment
-    User::After(500000);
-
-
-    TInt componentId = 0;
-    TInt componentId2 = 0;
-
-
-    LOG(EJavaConverters, EInfo, "testsifapi: starting sifByHandleAndArgsAndResultsInstallL");
     TRAP(err, componentId = sifByHandleAndArgsAndResultsInstallL());
     if (KErrNone != err)
     {
@@ -791,22 +495,7 @@
     // Wait for a moment
     User::After(500000);
 
-
-    // This installation will fail because MIDlet is untrusted and installing
-    // untrusted is denied AND because charset is illegal
-    LOG(EJavaConverters, EInfo, "testsifapi: starting secondSifByFileAndArgsAndResultsInstallL");
-    TRAP(err, componentId2 = secondSifByFileAndArgsAndResultsInstallL());
-    if (KErrNone != err)
-    {
-        ELOG1(EJavaConverters,
-            "testsifapi: secondSifByFileAndArgsAndResultsInstallL leaved with err %d", err);
-    }
-    // Wait for a moment
-    User::After(500000);
-
-
-    // if this fails, it leaks memory
-    LOG(EJavaConverters, EInfo, "testsifapi: starting sifGetComponentInfoL");
+    // TODO: if this fails, it leaks memory
     TRAP(err, sifGetComponentInfoL());
     if (KErrNone != err)
     {
@@ -816,7 +505,6 @@
     // Wait for a moment
     User::After(500000);
 
-    LOG(EJavaConverters, EInfo, "testsifapi: starting sifActivationTestL");
     TRAP(err, sifActivationTestL(componentId));
     if (KErrNone != err)
     {
@@ -831,7 +519,6 @@
     // TODO: if this fails, it leaks memory
     if (0 != componentId)
     {
-        LOG(EJavaConverters, EInfo, "testsifapi: starting sifUninstallL");
         TRAP(err, sifUninstallL(componentId));
         if (KErrNone != err)
         {
@@ -843,9 +530,8 @@
         User::After(500000);
     }
 
-
     delete cleanupStack;
 //    __UHEAP_MARKEND;
-//    __UHEAP_MARKENDC(1);
+    __UHEAP_MARKENDC(1);
     return KErrNone;
 }
--- a/javamanager/javainstaller/subsystem.mk	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/subsystem.mk	Wed Oct 13 14:23:59 2010 +0300
@@ -20,19 +20,22 @@
 	installerui/build \
 	installer/build \
 
-ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
-    NONQTSUBSYSTEMS = javasifplugin/build
-    SYMBIAN_ONLY = javasifplugin/build
-    COMPONENTS += installcopier/build
+NONQTSUBSYSTEMS = \
+	appinstuiplugin/build
+
+SYMBIAN_ONLY = \
+	appinstuiplugin/build
+
+ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK    
+    NONQTSUBSYSTEMS += javasifplugin/build
+    SYMBIAN_ONLY += javasifplugin/build
 else
-    NONQTSUBSYSTEMS = appinstuiplugin/build
-    SYMBIAN_ONLY = appinstuiplugin/build
 ifndef RD_JAVA_S60_RELEASE_5_0_IAD
     NONQTSUBSYSTEMS += iconsizenotifplugin/build
     SYMBIAN_ONLY += iconsizenotifplugin/build
 endif
 endif
-
+    
 LINUX_ONLY =
 
 include ${JAVA_SRC_ROOT}/build/Makefile.subsystem
--- a/javamanager/javalauncher/build/javalauncher_0x2001E262.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javalauncher/build/javalauncher_0x2001E262.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../inc
@@ -102,7 +102,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javamanager/javalauncher/src.s60/javalauncher.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javalauncher/src.s60/javalauncher.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -92,7 +92,7 @@
     JavaStorageApplicationList_t  foundEntries;
 
 
-    // Get MIDlet-n from APPLICATION_PACKAGE_ATTRIBUTES_TABLE based on
+    // Get MIDlet-n from APPLICATION_PACKAGE_ATTRIBUTES_TABLE based on 
     // PACKAGE_ID and NAME.
     attribute.setEntry(ID, aPackageId);
     findPattern.insert(attribute);
@@ -107,7 +107,7 @@
         return KErrNotFound;
     }
 
-    // Found the MIDlet-n argument. Now getting the MIDlet name and
+    // Found the MIDlet-n argument. Now getting the MIDlet name and 
     // main class. Name is the first argument and main class is the last
     // in the comma separated list.
     std::wstring value = foundEntries.front().begin()->entryValue();
@@ -549,10 +549,6 @@
         err = getUidFromCommandLine(cmdLineBuf, uid);
         if (KErrNone != err)
         {
-            ELOG1WSTR(EJavaCaptain,
-                "JavaLauncher: process command line was %s",
-                 (wchar_t *)(cmdLineBuf.PtrZ()));
-
             CleanupStack::PopAndDestroy(pBufCmdLine);
             CleanupStack::PopAndDestroy(commandLine);
             return err;
@@ -676,8 +672,8 @@
         LOG(EJavaCaptain, EInfo, "javalauncher: startJavaCaptain javacaptain.exe was started ok");
 #endif
 
-        // Wait 3 seconds so that Java Captain has time to start and get read to answer Comms
-        User::After(3000000); // codescanner::userafter
+        // Wait 3 seconds so that Java Captain has time to start
+        User::After(3000000);
     }
     else
     {
@@ -777,8 +773,6 @@
               "javalauncher: OMJ app launch: Exception %s caught", e.what());
     }
 
-    delete pBufCmdLine;
-
     return err;
 }
 
--- a/javamanager/javamanager.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javamanager.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -17,13 +17,12 @@
 SUBDIRS += preinstaller/build/javapreinstaller.pro 
 SUBDIRS += debugapi/build/debugapi.pro 
 SUBDIRS += javalauncher/build/javalauncher.pro 
-SUBDIRS += javaupgradeapp/build/javaupgradeapp.pro 
 SUBDIRS += javacaptain 
 SUBDIRS += javainstaller 
 SUBDIRS += javaregistry 
 SUBDIRS += javabackup 
 SUBDIRS += javasettings 
+BLD_INF_RULES.prj_extensions += "$${LITERAL_HASH}include \"javasidchecker/build/bld.inf\""  
 BLD_INF_RULES.prj_extensions += "$${LITERAL_HASH}include \"javarecognizer/build/bld.inf\""  
-BLD_INF_RULES.prj_extensions += "$${LITERAL_HASH}include \"javasidchecker/build/bld.inf\""  
 BLD_INF_RULES.prj_extensions += "$${LITERAL_HASH}include \"javaappschemeplugin/build/bld.inf\""  
 BLD_INF_RULES.prj_extensions += "prj_extensions" 
--- a/javamanager/javarecognizer/build/recjar.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javarecognizer/build/recjar.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -19,11 +19,8 @@
 
 
 #include <../../../inc/project_defines.hrh>
-#include <data_caging_paths.hrh>
 #include <platform_paths.hrh>
 
-#include <../../../inc/java_stdcpp_support_for_dll.hrh>
-
 
 TARGET          recjar.dll
 CAPABILITY      TrustedUI ProtServ
@@ -35,22 +32,17 @@
 // Use bytepair compression to enable code paging
 PAGED
 
-APP_LAYER_SYSTEMINCLUDE
-
 USERINCLUDE     ../inc
-USERINCLUDE     ../../../inc 
-
 SOURCEPATH      ../src
 
 SOURCE          recjar.cpp
 START RESOURCE  ../data/102031FB.rss
 TARGET          recjar.rsc
 END
-START RESOURCE  ../data/102031FB_iad.rss
-TARGET          recjar.rsc
-TARGETPATH      resource/java/iad
-END
 
+SYSTEMINCLUDE   ../../../inc 
+APP_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE   /epoc32/include/ecom
 
 LIBRARY         euser.lib apmime.lib efsrv.lib
 
--- a/javamanager/javarecognizer/data/102031FB.rss	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javarecognizer/data/102031FB.rss	Wed Oct 13 14:23:59 2010 +0300
@@ -11,8 +11,8 @@
 *
 * Contributors:
 *
-* Description:	ECOM resource definition for MIME type recognizer for Symbian
-*		 application framework
+* Description:  ECOM resource definition for MIME type recognizer for Symbian
+*                application framework
 *
 */
 
@@ -20,10 +20,6 @@
 #include <ecom/registryinfov2.rh>
 #include "javauids.h"
 
-#ifndef ECOM_VERSION_NO
-#define ECOM_VERSION_NO 2
-#endif
-
 RESOURCE REGISTRY_INFO r_registry
 {
     resource_format_version = RESOURCE_FORMAT_VERSION_2;
@@ -38,11 +34,12 @@
 			IMPLEMENTATION_INFO
 				{
 				implementation_uid = KRecognizerEcomImplUid;
-				version_no	   =  ECOM_VERSION_NO;
+				// Version number is 2 so that this implementation should override the old one in ROM
+                version_no         =  2;
 				display_name = "recjar";
 				default_data = ""; // This means it accepts ALL types
 				opaque_data = "";
-				rom_only	   =  0;
+				rom_only           =  0;
 				}
 			};
 		}
--- a/javamanager/javarecognizer/data/102031FB_iad.rss	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/*
-* Copyright (c) 2010 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:  ECOM resource definition for IAD
-*
-*/
-
-//  Version for IAD
-#define ECOM_VERSION_NO 3
-
-//  Include actual rss
-#include "102031FB.rss"
-
--- a/javamanager/javarecognizer/src/recjar.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javarecognizer/src/recjar.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -100,7 +100,7 @@
                     weOwnFileHandle = ETrue;
                 }
 
-                TInt fileRemaining = 0;
+                TInt fileRemaining;
                 User::LeaveIfError(file->Size(fileRemaining));
                 if (fileRemaining > aBuffer.Length())
                 {
--- a/javamanager/javaregistry/build/eabi/javaregistryclientu.def	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javaregistry/build/eabi/javaregistryclientu.def	Wed Oct 13 14:23:59 2010 +0300
@@ -209,12 +209,4 @@
 	_ZNK4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry17UsedUserDiskSpaceEv @ 208 NONAME
 	_ZNK4Java7Manager8Registry34CWriteableJavaRegistryPackageEntry14IsPreinstalledEv @ 209 NONAME
 	_ZNK4Java25CJavaRegistryPackageEntry14IsPreinstalledEv @ 210 NONAME
-	_ZN4Java14CJavaAttributeD0Ev @ 211 NONAME
-	_ZN4Java14CJavaAttributeD1Ev @ 212 NONAME
-	_ZN4Java14CJavaAttributeD2Ev @ 213 NONAME
-	_ZN4Java18CJavaRegistryEntryD0Ev @ 214 NONAME
-	_ZN4Java18CJavaRegistryEntryD1Ev @ 215 NONAME
-	_ZN4Java18CJavaRegistryEntryD2Ev @ 216 NONAME
-	_ZThn4_N4Java14CJavaAttributeD0Ev @ 217 NONAME
-	_ZThn4_N4Java14CJavaAttributeD1Ev @ 218 NONAME
 
--- a/javamanager/javaregistry/build/javaregistryclient_0x10282476.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javaregistry/build/javaregistryclient_0x10282476.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../client/inc
@@ -112,7 +112,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javamanager/javaregistry/client/src/javaattribute.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javaregistry/client/src/javaattribute.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -92,7 +92,7 @@
 // ---------------------------------------------------------------------------
 // CJavaAttribute::~MJavaAttribute
 // ---------------------------------------------------------------------------
-EXPORT_C CJavaAttribute::~CJavaAttribute()
+CJavaAttribute::~CJavaAttribute()
 {
     delete iName;
     delete iValue;
--- a/javamanager/javaregistry/client/src/javaregistryentry.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javaregistry/client/src/javaregistryentry.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -115,7 +115,7 @@
 // CJavaRegistryEntry::~CJavaRegistryEntry
 // ---------------------------------------------------------------------------
 //
-EXPORT_C CJavaRegistryEntry::~CJavaRegistryEntry()
+CJavaRegistryEntry::~CJavaRegistryEntry()
 {
     if (iWritableEntry)
     {
--- a/javamanager/javaregistry/client/src/writeablejavaregistry.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javaregistry/client/src/writeablejavaregistry.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -363,17 +363,9 @@
 
                 if (KErrNotFound == err)
                 {
-                    // reset the error flag
-                    err = KErrNone;
                     if (IsPresent((*iter)))
                     {
-                        err = aUids.Append(uid);
-                    }
-                    if (err)
-                    {
-                        ELOG1(EJavaStorage, "Failed to add Uid to container. "
-                              "( error code = %d )", err);
-
+                        aUids.Append(uid);
                     }
                 }
             }
@@ -422,7 +414,7 @@
             }
         }
     }
-    catch (ExceptionBase& ee)
+    catch (ExceptionBase)
     {
         ELOG1WSTR(EJavaStorage, "MediaId conversion failed: '%s'", value);
     }
--- a/javamanager/javaregistry/client/src/writeablejavaregistryentry.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javaregistry/client/src/writeablejavaregistryentry.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -379,7 +379,7 @@
                 regAttr = CJavaAttribute::NewL(
                               nameBuf->Des(), valueBuf->Des(), trusted);
 
-                iAttributes.AppendL(regAttr);
+                iAttributes.Append(regAttr);
 
                 nameBuf.reset(0);
                 valueBuf.reset(0);
--- a/javamanager/javaregistry/javasizehelper/client/build/javasizehelperclient_0x2002DCD1.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javaregistry/javasizehelper/client/build/javasizehelperclient_0x2002DCD1.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../client/inc
@@ -100,7 +100,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javamanager/javaregistry/javasizehelper/server/build/javasizehelperserver_0x2002DCD2.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javaregistry/javasizehelper/server/build/javasizehelperserver_0x2002DCD2.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -46,7 +46,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -54,6 +53,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../inc
@@ -103,7 +103,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javamanager/javaregistry/legacy/server/src/javaregstore.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javaregistry/legacy/server/src/javaregstore.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -543,7 +543,7 @@
                 {
                     if (IsPresentL((*iter)))
                     {
-                        aUids.AppendL(uid);
+                        aUids.Append(uid);
                     }
                 }
             }
@@ -765,7 +765,7 @@
                         TInt err = uidToTUid(appUid, converted);
                         if (KErrNone == err)
                         {
-                            uids.AppendL(converted);
+                            uids.Append(converted);
                         }
                         else
                         {
--- a/javamanager/javaregistry/legacy/tsrc/build/testlegacyregistry.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javaregistry/legacy/tsrc/build/testlegacyregistry.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -20,10 +20,9 @@
 CAPABILITY all -tcb -allfiles -drm
 
 #include <../../../../../inc/java_stdcpp_support_for_exe.hrh>
-#include <platform_paths.hrh>
+#include <domain/osextensions/platform_paths.hrh>
 
-USERINCLUDE /epoc32/include/CppUTest    // Due to TestHarness.h et al
-
+USERINCLUDE /epoc32/include/cpputest
 USERINCLUDE ../src/utils
 USERINCLUDE ../../../../../inc // == (JAVA_SRC_ROOT)/inc
 USERINCLUDE ../../../../../jrt_plat/java_registry_api/inc
--- a/javamanager/javaregistry/legacy/tsrc/src/AllTests.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javaregistry/legacy/tsrc/src/AllTests.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -15,8 +15,8 @@
 *
 */
 
-#include <CppUTest/Platform.h>
-#include <CppUTest/CommandLineTestRunner.h>
+#include "Platform.h"
+#include "CommandLineTestRunner.h"
 
 int main(int ac, char** av)
 {
--- a/javamanager/javaregistry/legacy/tsrc/src/testinstalledappsregistry.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javaregistry/legacy/tsrc/src/testinstalledappsregistry.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -18,7 +18,7 @@
 #include <stdio.h>
 #include <string>
 
-#include <CppUTest/TestHarness.h>
+#include "TestHarness.h"
 
 #include "javastorage.h"
 #include "javastorageexception.h"
--- a/javamanager/javaregistry/legacy/tsrc/src/testinstalledappsregistryentry.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javaregistry/legacy/tsrc/src/testinstalledappsregistryentry.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -18,7 +18,7 @@
 #include <stdio.h>
 #include <string>
 
-#include <CppUTest/TestHarness.h>
+#include "TestHarness.h"
 
 #include "javastorage.h"
 #include "javastorageexception.h"
--- a/javamanager/javaregistry/legacy/tsrc/src/testlegacyregistry.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javaregistry/legacy/tsrc/src/testlegacyregistry.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -18,7 +18,7 @@
 #include <stdio.h>
 #include <string>
 
-#include <CppUTest/TestHarness.h>
+#include "TestHarness.h"
 
 #include "javacommonutils.h"
 #include "javaoslayer.h"
--- a/javamanager/javaregistry/legacy/tsrc/src/testmidletentry.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javaregistry/legacy/tsrc/src/testmidletentry.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -18,7 +18,7 @@
 #include <stdio.h>
 #include <string>
 
-#include <CppUTest/TestHarness.h>
+#include "TestHarness.h"
 
 #include "javacommonutils.h"
 #include "javaoslayer.h"
--- a/javamanager/javaregistry/legacy/tsrc/src/testsuiteentry.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javaregistry/legacy/tsrc/src/testsuiteentry.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -18,7 +18,7 @@
 #include <stdio.h>
 #include <string>
 
-#include <CppUTest/TestHarness.h>
+#include "TestHarness.h"
 
 #include "javacommonutils.h"
 #include "javaoslayer.h"
--- a/javamanager/javaregistry/tsrc/build/alltests.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javaregistry/tsrc/build/alltests.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -21,12 +21,12 @@
 
 #include <../../../../inc/java_stdcpp_support_for_exe.hrh>
 #include <platform_paths.hrh>
-
-APP_LAYER_SYSTEMINCLUDE
+ APP_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE
 
-USERINCLUDE /epoc32/include/CppUTest    // Due to TestHarness.h et al
+USERINCLUDE /epoc32/include/cpputest
+USERINCLUDE ../src/utils
 
-USERINCLUDE ../src/utils
 USERINCLUDE ../../../../inc // == (JAVA_SRC_ROOT)/inc
 
 // Using main() as entry point
--- a/javamanager/javaregistry/tsrc/src/AllTests.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javaregistry/tsrc/src/AllTests.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -15,8 +15,8 @@
 *
 */
 
-#include <CppUTest/Platform.h>
-#include <CppUTest/CommandLineTestRunner.h>
+#include "Platform.h"
+#include "CommandLineTestRunner.h"
 
 int main(int ac, char** av)
 {
--- a/javamanager/javaregistry/tsrc/src/AllTests.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javaregistry/tsrc/src/AllTests.h	Wed Oct 13 14:23:59 2010 +0300
@@ -15,7 +15,7 @@
 *
 */
 
-#include <CppUTest/Utest.h>
+#include "Utest.h"
 
 //Include this in the test main to execute these tests
 IMPORT_TEST_GROUP(TestRegistry);
--- a/javamanager/javaregistry/tsrc/src/testregistry.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javaregistry/tsrc/src/testregistry.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -19,7 +19,7 @@
 #include <string>
 #include <memory>
 
-#include <CppUTest/TestHarness.h>
+#include "TestHarness.h"
 
 #include "javastorage.h"
 #include "javastorageexception.h"
--- a/javamanager/javaregistry/tsrc/src/testregistryapplicationentry.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javaregistry/tsrc/src/testregistryapplicationentry.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -19,7 +19,7 @@
 #include <string>
 #include <memory>
 
-#include <CppUTest/TestHarness.h>
+#include "TestHarness.h"
 
 #include "javaregistry.h"
 #include "javaregistryapplicationentry.h"
--- a/javamanager/javaregistry/tsrc/src/testregistryentry.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javaregistry/tsrc/src/testregistryentry.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -20,7 +20,7 @@
 #include <x509certchain.h>
 #include <memory>
 
-#include <CppUTest/TestHarness.h>
+#include "TestHarness.h"
 
 #include "javastorage.h"
 #include "javastorageexception.h"
--- a/javamanager/javaregistry/tsrc/src/testregistrypackageentry.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javaregistry/tsrc/src/testregistrypackageentry.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -19,7 +19,7 @@
 #include <string>
 #include <memory>
 
-#include <CppUTest/TestHarness.h>
+#include "TestHarness.h"
 
 #include "javaprocessconstants.h"
 #include "javaregistry.h"
--- a/javamanager/javasettings/appmngrplugin/build/appmngr2midletruntime.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javasettings/appmngrplugin/build/appmngr2midletruntime.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -31,12 +31,8 @@
 
 PAGED
 
-APP_LAYER_SYSTEMINCLUDE
-
-USERINCLUDE     ../inc
-USERINCLUDE     ../../../../inc
-USERINCLUDE     ../javapackagelookup/inc
-USERINCLUDE     ../help/inc
+USERINCLUDE ../javapackagelookup/inc
+USERINCLUDE ../help/inc
 USERINCLUDE 	../../../javainstaller/iconsizenotifplugin/inc
 
 SOURCEPATH  ../javapackagelookup/src
@@ -64,10 +60,6 @@
 START RESOURCE          ../data/20016bf7.rss
 TARGET                  appmngr2midletplugin.rsc
 END
-START RESOURCE          ../data/20016bf7_iad.rss
-TARGET                  appmngr2midletplugin.rsc
-TARGETPATH              resource/java/iad
-END
 
 START RESOURCE          ../data/javaapplicationsettings.rss
 HEADER
@@ -75,6 +67,11 @@
 LANGUAGE_IDS
 END
 
+USERINCLUDE             ../inc
+
+APP_LAYER_SYSTEMINCLUDE
+SYSTEMINCLUDE           ../../../../inc
+
 LIBRARY                 bafl.lib                    // Syslibs BAFL
 LIBRARY                 appmngr2pluginapi.lib       // AppMngr2 Runtime API
 LIBRARY                 cone.lib                    // App Framework
@@ -86,9 +83,9 @@
 LIBRARY                 aknskins.lib                // S60 UI Framework
 LIBRARY                 efsrv.lib                   // File server
 LIBRARY                 egul.lib                    // Icons
-LIBRARY                 platformenv.lib             // PathInfo
+LIBRARY                 PlatformEnv.lib             // PathInfo
 LIBRARY                 featmgr.lib                 // FeatureManager
-LIBRARY                 CommonEngine.lib            // StringLoader
+LIBRARY                 commonengine.lib            // StringLoader
 LIBRARY                 sendui.lib                  // Send UI
 LIBRARY                 browserlauncher.lib         // BrowserLauncher API
 LIBRARY                 imut.lib                    // Encoding
@@ -106,10 +103,10 @@
 LIBRARY                 charconv.lib                // CnvUtfConverter
 LIBRARY                 hlplch.lib                  // Help
 LIBRARY                 apgrfx.lib                  // RApaLsSession
-LIBRARY                 AknIcon.lib                 // CAknIcon
+LIBRARY                 aknicon.lib                 // CAknIcon
 LIBRARY	                fbscli.lib                  // CFbsBitmap
-LIBRARY                 CdlEngine.lib               // AknLayoutScalable_Avkon
-LIBRARY                 AknLayout2Scalable.lib      // TAknWindowComponentLayout
+LIBRARY                 cdlengine.lib               // AknLayoutScalable_Avkon
+LIBRARY                 aknlayout2scalable.lib      // TAknWindowComponentLayout
 
 DEBUGLIBRARY            flogger.lib                 // File logger API
 
--- a/javamanager/javasettings/appmngrplugin/data/20016bf7.rss	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javasettings/appmngrplugin/data/20016bf7.rss	Wed Oct 13 14:23:59 2010 +0300
@@ -18,10 +18,6 @@
 
 #include "ecom/registryinfo.rh"
 
-#ifndef ECOM_VERSION_NO
-#define ECOM_VERSION_NO 1
-#endif
-
 RESOURCE REGISTRY_INFO theInfo
     {
     dll_uid = 0x20016BF7;
@@ -35,7 +31,7 @@
                 IMPLEMENTATION_INFO
                     {
                     implementation_uid = 0x20016BF8;
-                    version_no = ECOM_VERSION_NO;
+                    version_no = 1;
                     display_name = "Midlet plugin";
                     default_data = "";
                     opaque_data = "";
--- a/javamanager/javasettings/appmngrplugin/data/20016bf7_iad.rss	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/*
-* Copyright (c) 2010 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:  ECOM resource definition for IAD
-*
-*/
-
-//  Version for IAD
-#define ECOM_VERSION_NO 2
-
-//  Include actual rss
-#include "20016bf7.rss"
-
--- a/javamanager/javasettings/appmngrplugin/inc/appmngr2midletsettingshandler.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javasettings/appmngrplugin/inc/appmngr2midletsettingshandler.h	Wed Oct 13 14:23:59 2010 +0300
@@ -118,12 +118,12 @@
      *         ApplicationInfo::OPERATOR_DOMAIN
      *         ApplicationInfo::UNIDENTIFIED_THIRD_PARTY_DOMAIN
      */
-    const std::wstring GetSecurityDomainCategoryL();
+    const std::wstring GetSecurityDomainCategory();
 
     /**
      * Gets security domain name
      */
-    const std::wstring GetSecurityDomainNameL();
+    const std::wstring GetSecurityDomainName();
 
     /**
      * Gets security warnings mode value
--- a/javamanager/javasettings/appmngrplugin/inc/appmngr2midletsettingsutil.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javasettings/appmngrplugin/inc/appmngr2midletsettingsutil.h	Wed Oct 13 14:23:59 2010 +0300
@@ -60,7 +60,7 @@
 const int READ_USER_DATA_ACCESS_SETTINGS_DISPLAY_INDEX = 10;
 const int WRITE_USER_DATA_ACCESS_SETTINGS_DISPLAY_INDEX = 11;
 const int LOCATION_SETTINGS_DISPLAY_INDEX = 12;
-const int LANDMARK_SETTINGS_DISPLAY_INDEX = 13;
+const int LANDMARK_SETTINGS_DISPLAY_INDEX = 12;
 const int AUTHENTICATION_SETTINGS_DISPLAY_INDEX = 14;
 const int SMART_CARD_COMMUNICATION_SETTINGS_DISPLAY_INDEX = 15;
 const int BROADCAST_SETTINGS_DISPLAY_INDEX = 16;
@@ -210,7 +210,6 @@
 
 private:
     static const std::wstring getLocalizedSettingsName(std::wstring aSettingsName);
-    static HBufC* getLocalizedSettingsNameLC(std::wstring aSettingsName);
     static const std::wstring getLocalizedSettingsInteractionMode(int aInteractionMode);
     static const std::wstring getLocalizedOnScreenKeypadValue(std::wstring aOnScreenKeypadValue);
     static const std::wstring getLocalizedSecurityWarningsModeValue(std::wstring aSecurityWarningsModeValue);
--- a/javamanager/javasettings/appmngrplugin/src/appmngr2midletappinfo.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javasettings/appmngrplugin/src/appmngr2midletappinfo.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -779,15 +779,15 @@
             ELOG1(EJavaAppMngrPlugin, "GetAppIconL error %d", err);
         }
     }
-
+    
     CleanupStack::PopAndDestroy(&midletUids);
 
     // security domain
     CAppMngr2MidletSettingsHandler* settingsHandler
     = CAppMngr2MidletSettingsHandler::NewL(*iLocalizedMIDletName, iEntry->Uid(), iResourceHandler);
     CleanupStack::PushL(settingsHandler);
-    iSecurityDomainCategory = settingsHandler->GetSecurityDomainCategoryL();
-    iSecurityDomainName = settingsHandler->GetSecurityDomainNameL();
+    iSecurityDomainCategory = settingsHandler->GetSecurityDomainCategory();
+    iSecurityDomainName = settingsHandler->GetSecurityDomainName();
     CleanupStack::PopAndDestroy(settingsHandler);
     if (iSecurityDomainCategory != UNIDENTIFIED_THIRD_PARTY_DOMAIN_CATEGORY)
     {
@@ -998,20 +998,20 @@
 void CAppMngr2MidletAppInfo::GetAppIconL(TUid aMidletUid)
 {
     LOG(EJavaAppMngrPlugin, EInfo, "+ CAppMngr2MidletAppInfo::GetAppIconL");
-
+    
     ASSERT(!iAppBitmap);
     ASSERT(!iAppMask);
-
+    
     RApaLsSession lsSession;
-    User::LeaveIfError(lsSession.Connect());
+    User::LeaveIfError(lsSession.Connect()); 
     CleanupClosePushL(lsSession);
     CApaMaskedBitmap* apaBmp = CApaMaskedBitmap::NewLC();
-
+    
     TSize size = static_cast<CAppMngr2MidletRuntime&>(Runtime()).JavaRasterIconSize();
     TInt err = lsSession.GetAppIcon(aMidletUid, size, *apaBmp);
     if (err == KErrNone)
     {
-        iAppBitmap = new (ELeave) CFbsBitmap();
+        iAppBitmap = new (ELeave) CFbsBitmap(); 
         iAppMask = new (ELeave) CFbsBitmap();
         User::LeaveIfError(iAppBitmap->Duplicate(apaBmp->Handle()));
         User::LeaveIfError(iAppMask->Duplicate(apaBmp->Mask()->Handle()));
@@ -1025,6 +1025,6 @@
                                    EAknsAppIconTypeList, iAppBitmap, iAppMask);
         CleanupStack::Pop(2); // iAppBitmap, iAppMask
     }
-
+    
     LOG(EJavaAppMngrPlugin, EInfo, "- CAppMngr2MidletAppInfo::GetAppIconL");
 }
--- a/javamanager/javasettings/appmngrplugin/src/appmngr2midletinfoiterator.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javasettings/appmngrplugin/src/appmngr2midletinfoiterator.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -17,7 +17,7 @@
 
 
 #include <StringLoader.h>               // StringLoader
-#include <swinstcommonui.rsg>           // Resource IDs
+#include <SWInstCommonUI.rsg>           // Resource IDs
 #include <javaapplicationsettings.rsg>           // Midlet resource IDs
 #include <AknUtils.h>                   // AknTextUtils
 #include <SWInstDefs.h>                 // KJadMimeType
--- a/javamanager/javasettings/appmngrplugin/src/appmngr2midletmanifestreader.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javasettings/appmngrplugin/src/appmngr2midletmanifestreader.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -119,7 +119,7 @@
         {
             CJavaAttribute* javaAttribute
             = CJavaAttribute::NewL(namePtr, valuePtr, EFalse);
-            aAttributes.AppendL(javaAttribute);
+            aAttributes.Append(javaAttribute);
         }
 
         CleanupStack::PopAndDestroy(value);
--- a/javamanager/javasettings/appmngrplugin/src/appmngr2midletsettingshandler.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javasettings/appmngrplugin/src/appmngr2midletsettingshandler.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -244,11 +244,9 @@
 
     findEntry(queryResult, VALUE, value);
 
-    if (value.size() > 0
-        && ((value == L"no")
-        || (value == L"navigationkeys")
-        || (value == L"gameactions")))
+    if (value.size() > 0)
     {
+        // default is KValueGameactions if value is not defined
         predefined = true;
     }
     LOG(EJavaAppMngrPlugin, EInfo, " - CAppMngr2MidletSettingsHandler::OnScreenKeypadValuePreDefinedL ");
@@ -306,7 +304,7 @@
     LOG(EJavaAppMngrPlugin, EInfo, " - CAppMngr2MidletSettingsHandler::SetCurrentSuiteSnapL ");
 }
 
-const std::wstring CAppMngr2MidletSettingsHandler::GetSecurityDomainCategoryL()
+const std::wstring CAppMngr2MidletSettingsHandler::GetSecurityDomainCategory()
 {
     wstring securityDomainCategory = L"";
 
@@ -325,7 +323,6 @@
     catch (JavaStorageException& aJse)
     {
         ELOG1(EJavaAppMngrPlugin, "SECURITY_DOMAIN_CATEGORY value read failed: %d", aJse.mStatus);
-        User::Leave(KErrLocked);
     }
 
     findEntry(queryResult, SECURITY_DOMAIN_CATEGORY, securityDomainCategory);
@@ -334,7 +331,7 @@
 
 }
 
-const std::wstring CAppMngr2MidletSettingsHandler::GetSecurityDomainNameL()
+const std::wstring CAppMngr2MidletSettingsHandler::GetSecurityDomainName()
 {
     wstring securityDomainName = L"";
 
@@ -353,7 +350,6 @@
     catch (JavaStorageException& aJse)
     {
         ELOG1(EJavaAppMngrPlugin, "SECURITY_DOMAIN value read failed: %d", aJse.mStatus);
-        User::Leave(KErrLocked);
     }
 
     findEntry(queryResult, SECURITY_DOMAIN, securityDomainName);
--- a/javamanager/javasettings/appmngrplugin/src/appmngr2midletsettingsutil.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javasettings/appmngrplugin/src/appmngr2midletsettingsutil.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -488,121 +488,86 @@
 {
     wstring ret = aSettingsName;
     TRAP_IGNORE(
-        HBufC* localizedName = getLocalizedSettingsNameLC(aSettingsName);
-        if (localizedName != NULL)
+        HBufC* localizedName = NULL;
+        if (aSettingsName == ACCESS_POINT_SETTINGS)
+        {
+            localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_NETWORK_DESTINATION);
+        }
+        else if (aSettingsName == ON_SCREEN_KEYPAD_SETTINGS)
+        {
+            localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_KEYPAD);
+        }
+        else if (aSettingsName == SECURITY_WARNINGS_SETTINGS)
+        {
+            localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_SECURITY_WARNINGS);
+        }
+        else if (aSettingsName == NET_ACCESS_SETTINGS)
         {
-            ret = wstring((const wchar_t*)localizedName->Ptr(), localizedName->Length());
-            CleanupStack::PopAndDestroy(localizedName);
+            localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_NET_ACCESS);
+        }
+        else if (aSettingsName == LOW_LEVEL_NET_ACCESS_SETTINGS)
+        {
+            localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_LOW_LEVEL_NET_ACCESS);
+        }
+        else if (aSettingsName == CALL_CONTROL_SETTINGS)
+        {
+            localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_RESTRICTED_CALL_CONTROL);
+        }
+        else if (aSettingsName == MESSAGING_SETTINGS)
+        {
+            localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_MESSAGING);
+        }
+        else if (aSettingsName == RESTRICTED_MESSAGING_SETTINGS)
+        {
+            localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_RESTRICTED_MESSAGING);
+        }
+        else if (aSettingsName == APPLICATION_AUTO_INVOCATION_SETTINGS)
+        {
+            localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_APP_AUTO_INVOCAT);
         }
-    );
-    return ret;
-}
-
-HBufC* AppMngr2MidletSettingsUtil::getLocalizedSettingsNameLC(wstring aSettingsName)
-{
-    HBufC* localizedName = NULL;
-    if (aSettingsName == ACCESS_POINT_SETTINGS)
-    {
-        localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_NETWORK_DESTINATION);
-    }
-    else if (aSettingsName == ON_SCREEN_KEYPAD_SETTINGS)
-    {
-        localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_KEYPAD);
-    }
-    else if (aSettingsName == SECURITY_WARNINGS_SETTINGS)
-    {
-        localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_SECURITY_WARNINGS);
-    }
-    else if (aSettingsName == NET_ACCESS_SETTINGS)
-    {
-        localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_NET_ACCESS);
-    }
-    else if (aSettingsName == LOW_LEVEL_NET_ACCESS_SETTINGS)
-    {
-        localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_LOW_LEVEL_NET_ACCESS);
-    }
-    else if (aSettingsName == CALL_CONTROL_SETTINGS)
-    {
-        localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_RESTRICTED_CALL_CONTROL);
-    }
-    else if (aSettingsName == MESSAGING_SETTINGS)
-    {
-        localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_MESSAGING);
-    }
-    else if (aSettingsName == RESTRICTED_MESSAGING_SETTINGS)
-    {
-        localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_RESTRICTED_MESSAGING);
-    }
-    else if (aSettingsName == APPLICATION_AUTO_INVOCATION_SETTINGS)
-    {
-        localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_APP_AUTO_INVOCAT);
-    }
-    else if (aSettingsName == LOCAL_CONNECTIVITY_SETTINGS)
-    {
-        localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_LOCAL_CONN);
-    }
-    else if (aSettingsName == MULTIMEDIA_RECORDING_SETTINGS)
-    {
-        localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_MM_RECORD);
-    }
-    else if (aSettingsName == READ_USER_DATA_ACCESS_SETTINGS)
-    {
-        localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_READ_DATA);
-    }
-    else if (aSettingsName == WRITE_USER_DATA_ACCESS_SETTINGS)
-    {
-        localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_WRITE_DATA);
-    }
-    else if (aSettingsName == LOCATION_SETTINGS)
-    {
-        localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_LOCATION);
-    }
-    else if (aSettingsName == LANDMARK_SETTINGS)
-    {
-        localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_LANDMARKS);
-    }
-    else if (aSettingsName == AUTHENTICATION_SETTINGS)
-    {
-        localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_AUT);
-    }
-    else if (aSettingsName == SMART_CARD_COMMUNICATION_SETTINGS)
-    {
-        localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_SMARTCARD);
-    }
-    else if (aSettingsName == BROADCAST_SETTINGS)
-    {
-        localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_BROADCAST);
-    }
-    else if (aSettingsName == NFC_WRITE_ACCESS_SETTINGS)
-    {
-        localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_NFC_WRITE_ACCESS);
-    }
-    else if (aSettingsName == URL_START_SETTINGS)
-    {
-        localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_URL_START);
-    }
-    return localizedName;
-}
-
-const wstring AppMngr2MidletSettingsUtil::getLocalizedSettingsInteractionMode(int aInteractionMode)
-{
-    wstring ret = L"";
-    TRAP_IGNORE(
-        HBufC* localizedName = NULL;
-        switch (aInteractionMode)
+        else if (aSettingsName == LOCAL_CONNECTIVITY_SETTINGS)
+        {
+            localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_LOCAL_CONN);
+        }
+        else if (aSettingsName == MULTIMEDIA_RECORDING_SETTINGS)
+        {
+            localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_MM_RECORD);
+        }
+        else if (aSettingsName == READ_USER_DATA_ACCESS_SETTINGS)
+        {
+            localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_READ_DATA);
+        }
+        else if (aSettingsName == WRITE_USER_DATA_ACCESS_SETTINGS)
+        {
+            localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_WRITE_DATA);
+        }
+        else if (aSettingsName == LOCATION_SETTINGS)
+        {
+            localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_LOCATION);
+        }
+        else if (aSettingsName == LANDMARK_SETTINGS)
         {
-        case INTERACTION_MODE_BLANKET:
-            localizedName = StringLoader::LoadLC(R_JAVA_SETTING_VALUE_BLANK);
-            break;
-        case INTERACTION_MODE_SESSION:
-            localizedName = StringLoader::LoadLC(R_JAVA_SETTING_VALUE_SESSION);
-            break;
-        case INTERACTION_MODE_ONESHOT:
-            localizedName = StringLoader::LoadLC(R_JAVA_SETTING_VALUE_ONESHOT);
-            break;
-        case INTERACTION_MODE_DENIED:
-            localizedName = StringLoader::LoadLC(R_JAVA_SETTING_VALUE_NO);
-            break;
+            localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_LANDMARKS);
+        }
+        else if (aSettingsName == AUTHENTICATION_SETTINGS)
+        {
+            localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_AUT);
+        }
+        else if (aSettingsName == SMART_CARD_COMMUNICATION_SETTINGS)
+        {
+            localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_SMARTCARD);
+        }
+        else if (aSettingsName == BROADCAST_SETTINGS)
+        {
+            localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_BROADCAST);
+        }
+        else if (aSettingsName == NFC_WRITE_ACCESS_SETTINGS)
+        {
+            localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_NFC_WRITE_ACCESS);
+        }
+        else if (aSettingsName == URL_START_SETTINGS)
+        {
+            localizedName = StringLoader::LoadLC(R_JAVA_SETTING_NAME_URL_START);
         }
         if (localizedName != NULL)
         {
@@ -613,50 +578,71 @@
     return ret;
 }
 
+const wstring AppMngr2MidletSettingsUtil::getLocalizedSettingsInteractionMode(int aInteractionMode)
+{
+    HBufC* localizedName = NULL;
+    switch (aInteractionMode)
+    {
+    case INTERACTION_MODE_BLANKET:
+        localizedName = StringLoader::LoadLC(R_JAVA_SETTING_VALUE_BLANK);
+        break;
+    case INTERACTION_MODE_SESSION:
+        localizedName = StringLoader::LoadLC(R_JAVA_SETTING_VALUE_SESSION);
+        break;
+    case INTERACTION_MODE_ONESHOT:
+        localizedName = StringLoader::LoadLC(R_JAVA_SETTING_VALUE_ONESHOT);
+        break;
+    case INTERACTION_MODE_DENIED:
+        localizedName = StringLoader::LoadLC(R_JAVA_SETTING_VALUE_NO);
+        break;
+    default:
+        return L"";
+    }
+    wstring ret = wstring((const wchar_t*)localizedName->Ptr(), localizedName->Length());
+    CleanupStack::PopAndDestroy(localizedName);
+    return ret;
+}
+
 const wstring AppMngr2MidletSettingsUtil::getLocalizedSecurityWarningsModeValue(wstring aSecurityWarningsModeValue)
 {
-    wstring ret = L"";
-    TRAP_IGNORE(
-        HBufC* localizedName = NULL;
-        if (aSecurityWarningsModeValue == SECURITY_WARNINGS_DEFAULT_MODE)
-        {
-            localizedName = StringLoader::LoadLC(R_JAVA_SECURITY_WARNINGS_SETTING_VALUE_DEFAULT);
-        }
-        else if (aSecurityWarningsModeValue == SECURITY_WARNINGS_USER_DEFINED_MODE)
-        {
-            localizedName = StringLoader::LoadLC(R_JAVA_SECURITY_WARNINGS_SETTING_VALUE_USER_DEFINED);
-        }
-        if (localizedName != NULL)
-        {
-            ret = wstring((const wchar_t*)localizedName->Ptr(), localizedName->Length());
-            CleanupStack::PopAndDestroy(localizedName);
-        }
-    );
+    HBufC* localizedName = NULL;
+    if (aSecurityWarningsModeValue == SECURITY_WARNINGS_DEFAULT_MODE)
+    {
+        localizedName = StringLoader::LoadLC(R_JAVA_SECURITY_WARNINGS_SETTING_VALUE_DEFAULT);
+    }
+    else if (aSecurityWarningsModeValue == SECURITY_WARNINGS_USER_DEFINED_MODE)
+    {
+        localizedName = StringLoader::LoadLC(R_JAVA_SECURITY_WARNINGS_SETTING_VALUE_USER_DEFINED);
+    }
+    else
+    {
+        return L"";
+    }
+    wstring ret = wstring((const wchar_t*)localizedName->Ptr(), localizedName->Length());
+    CleanupStack::PopAndDestroy(localizedName);
     return ret;
 }
 
 const wstring AppMngr2MidletSettingsUtil::getLocalizedOnScreenKeypadValue(wstring aOnScreenKeypadValue)
 {
-    wstring ret = L"";
-    TRAP_IGNORE(
-        HBufC* localizedName = NULL;
-        if (aOnScreenKeypadValue == ON_SCREEN_KEYPAD_VALUE_NO)
-        {
-            localizedName = StringLoader::LoadLC(R_JAVA_KEYPAD_SETTING_VALUE_NO);
-        }
-        else if (aOnScreenKeypadValue == ON_SCREEN_KEYPAD_VALUE_GAMEACTIONS)
-        {
-            localizedName = StringLoader::LoadLC(R_JAVA_KEYPAD_SETTING_VALUE_GAME);
-        }
-        else if (aOnScreenKeypadValue == ON_SCREEN_KEYPAD_VALUE_NAVIGATION)
-        {
-            localizedName = StringLoader::LoadLC(R_JAVA_KEYPAD_SETTING_VALUE_NAVIGATION);
-        }
-        if (localizedName != NULL)
-        {
-            ret = wstring((const wchar_t*)localizedName->Ptr(), localizedName->Length());
-            CleanupStack::PopAndDestroy(localizedName);
-        }
-    );
+    HBufC* localizedName = NULL;
+    if (aOnScreenKeypadValue == ON_SCREEN_KEYPAD_VALUE_NO)
+    {
+        localizedName = StringLoader::LoadLC(R_JAVA_KEYPAD_SETTING_VALUE_NO);
+    }
+    else if (aOnScreenKeypadValue == ON_SCREEN_KEYPAD_VALUE_GAMEACTIONS)
+    {
+        localizedName = StringLoader::LoadLC(R_JAVA_KEYPAD_SETTING_VALUE_GAME);
+    }
+    else if (aOnScreenKeypadValue == ON_SCREEN_KEYPAD_VALUE_NAVIGATION)
+    {
+        localizedName = StringLoader::LoadLC(R_JAVA_KEYPAD_SETTING_VALUE_NAVIGATION);
+    }
+    else
+    {
+        return L"";
+    }
+    wstring ret = wstring((const wchar_t*)localizedName->Ptr(), localizedName->Length());
+    CleanupStack::PopAndDestroy(localizedName);
     return ret;
 }
--- a/javamanager/javasettings/subsystem.mk	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javasettings/subsystem.mk	Wed Oct 13 14:23:59 2010 +0300
@@ -17,7 +17,10 @@
 include $(JAVA_SRC_ROOT)/build/Makefile.defs
 
 
-ifndef RD_JAVA_APPLICATION_SETTINGS_QT
+ifdef RD_JAVA_APPLICATION_SETTINGS_QT
+COMPONENTS += appsettingsview_qt/build
+SYMBIAN_ONLY += appsettingsview_qt/build
+else
 ifndef RD_JAVA_S60_RELEASE_5_0_IAD
 NONQTSUBSYSTEMS += appmngrplugin/build
 SYMBIAN_ONLY += appmngrplugin/build
--- a/javamanager/javasidchecker/build/javasidchecker.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javasidchecker/build/javasidchecker.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -39,19 +39,16 @@
 // Includes
 USERINCLUDE     .
 USERINCLUDE     ../inc
-USERINCLUDE     ../../../inc
+
+SYSTEMINCLUDE ../../../inc /epoc32/include/ecom /epoc32/include/swi
 
 // Sources
 SOURCEPATH    ../src
 SOURCE        javasidchecker.cpp
 
-START RESOURCE ../data/10281FBE.rss
-target         javasidchecker.rsc
-END
-START RESOURCE ../data/10281FBE_iad.rss
-TARGET         javasidchecker.rsc
-TARGETPATH     resource/java/iad
-END
+start RESOURCE ../data/10281FBE.rss
+target javasidchecker.rsc
+end
 
 #ifdef RD_JAVA_OLD_SIDCHECKER_LIBRARY
 LIBRARY apfile.lib
--- a/javamanager/javasidchecker/data/10281FBE.rss	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javasidchecker/data/10281FBE.rss	Wed Oct 13 14:23:59 2010 +0300
@@ -25,10 +25,6 @@
 #include <ecom/registryinfov2.rh>
 #include "javauids.h"
 
-#ifndef ECOM_VERSION_NO
-#define ECOM_VERSION_NO 2
-#endif
-
 RESOURCE REGISTRY_INFO r_registry
 {
     resource_format_version = RESOURCE_FORMAT_VERSION_2;
@@ -43,7 +39,8 @@
 				IMPLEMENTATION_INFO
 				{
 					implementation_uid = KSidCheckerEcomImplUid;
-					version_no	   =  ECOM_VERSION_NO;
+					// Version number is 2 so that this implementation should override the old one in ROM
+                    version_no         =  2;
 					display_name = "JavaVerify";
 					default_data = "[10210e26]";
 					opaque_data  = "";
--- a/javamanager/javasidchecker/data/10281FBE_iad.rss	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/*
-* Copyright (c) 2010 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:  ECOM resource definition for IAD
-*
-*/
-
-//  Version for IAD
-#define ECOM_VERSION_NO 3
-
-//  Include actual rss
-#include "10281FBE.rss"
-
--- a/javamanager/javasidchecker/src/javasidchecker.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javasidchecker/src/javasidchecker.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -21,7 +21,7 @@
 
 
 #include <e32std.h>
-#include <ecom/implementationproxy.h>
+#include <implementationproxy.h>
 #include <appversion.h>
 
 #include "javauids.h"
--- a/javamanager/javaupgradeapp/build/bld.inf	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-/*
-* 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: Generated bld.inf -file
-*
-*/
-
-PRJ_PLATFORMS
-default
-
-PRJ_MMPFILES  
-javaupgradeapp_0x2002FF64.mmp 
--- a/javamanager/javaupgradeapp/build/javaupgradeapp.pro	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-#
-# Copyright (c) 2010 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: Helper application for uninstalling a java application and 
-#    then installing new application (java or native)
-#
-# 
-
-TEMPLATE=app
-TARGET=javaupgradeapp
-CONFIG += omj no_icon stl
-CONFIG -= qt
-
-symbian {
-    TARGET.UID2          = 0x2000CFEC
-    TARGET.UID3          = 0x2002FF64
-    TARGET.CAPABILITY = TrustedUI 
-    LIBS +=  -lestor -lapparc -lapgrfx
-}
-
-include(../../../build/omj.pri)
--- a/javamanager/javaupgradeapp/build/javaupgradeapp_0x2002FF64.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,129 +0,0 @@
-/*
-* 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: Generated file - do not edit manually
-*
-*/
-
-// ==============================================================================
-// Generated by qmake (2.01a) (Qt 4.6.4) on: (date)
-// This file is generated by qmake and should not be modified by the
-// user.
-//  Name        : javaupgradeapp.mmp
-// ==============================================================================
-
-TARGET		javaupgradeapp.exe
-TARGETTYPE		EXE
-
-UID		0x2000CFEC 0x2002FF64
-SECUREID		0x2002FF64
-
-EPOCALLOWDLLDATA
-
-
-// Qt Macros
-MACRO		UNICODE
-MACRO		QT_KEYPAD_NAVIGATION
-MACRO		QT_SOFTKEYS_ENABLED
-MACRO		QT_USE_MATH_H_FLOATS
-MACRO		RD_JAVA_SYMBIAN_TARGET
-MACRO		RD_JAVA_S60_RELEASE_9_2
-MACRO		RD_JAVA_S60_RELEASE_9_2_ONWARDS
-MACRO		RD_JAVA_S60_RELEASE_5_0_ONWARDS
-MACRO		RD_JAVA_STDCPPV5
-MACRO		RD_JAVA_EPOCALLOWDLLDATA_FIX
-MACRO		RD_JAVA_HTTP_EMC_ENABLED
-MACRO		RD_JAVA_NGA_ENABLED
-MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
-MACRO		RD_JAVA_OPENC_BETA_PATCH
-MACRO		RD_JAVA_INSTALLERUI_ENABLED
-MACRO		RD_JAVA_PREWARM
-MACRO		RD_JAVA_ADVANCED_TACTILE_FEEDBACK
-MACRO		RD_JAVA_MIDPRMS_DB
-MACRO		__SYMBIAN32__
-MACRO		J9EPOC32
-
-SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
-SYSTEMINCLUDE		../../inc
-SYSTEMINCLUDE		../../../inc
-SYSTEMINCLUDE		../src.s60
-SYSTEMINCLUDE		/epoc32/include/stdapis/stlportv5
-SYSTEMINCLUDE		/epoc32/include/mw
-SYSTEMINCLUDE		.
-
-SOURCEPATH 	../src.s60
-SOURCE		javaupgradeapp.cpp
-
-
-LIBRARY		estor.lib
-LIBRARY		apparc.lib
-LIBRARY		apgrfx.lib
-LIBRARY		javautils.lib
-LIBRARY		libpthread.lib
-LIBRARY		libstdcppv5.lib
-LIBRARY		libc.lib
-LIBRARY		libm.lib
-LIBRARY		euser.lib
-LIBRARY		libdl.lib
-LIBRARY		cone.lib
-LIBRARY		eikcore.lib
-LIBRARY		mediaclientaudio.lib
-LIBRARY		eikcoctl.lib
-LIBRARY		eiksrv.lib
-LIBRARY		avkon.lib
-LIBRARY		efsrv.lib
-LIBRARY		charconv.lib
-LIBRARY		ws32.lib
-LIBRARY		hal.lib
-LIBRARY		gdi.lib
-STATICLIBRARY	libcrt0.lib
-
-CAPABILITY		TrustedUI 
-
-OPTION CW -wchar_t on
-OPTION ARMCC --visibility_inlines_hidden
-#if defined(ARMCC_4_0)
-OPTION ARMCC --import_all_vtbl
-#endif
-OPTION GCCE -fvisibility-inlines-hidden
-
-VERSION 10.525
-
-ARMFPU softvfp
-
-PAGED
-
-BYTEPAIRCOMPRESSTARGET
-
-USERINCLUDE .
-
-#include <platform_paths.hrh>
-
- APP_LAYER_SYSTEMINCLUDE
-
- OS_LAYER_LIBC_SYSTEMINCLUDE
-
- OS_LAYER_SSL_SYSTEMINCLUDE
-
- SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlportv5)
-
-SYSTEMINCLUDE /epoc32/build/jrt/javabuild/inc.javah
-
-#ifdef WINSCW
-
-LIBRARY ewsd.lib
-
-#endif
-
-STDCPP
--- a/javamanager/javaupgradeapp/sis/java_upgradeapp.pkg	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-;
-; Copyright (c) 2010 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: Helper application for uninstalling a java application and
-;    then installing new application (any installation package file)
-;
-;Languages
-&EN
-
-
-#{"javaupgradeapp"},(0x2002FF64),1,1,0, TYPE=SA,RU
-
-;Localised Vendor name
-%{"Nokia"}
-
-;Unique Vendor name
-:"Nokia"
-
-;Supports Series 60 v 5.0
-;This line indicates that this installation is for the Series 60 platform v3.0
-;This line must appear _exactly_ as shown below in the sis file
-;If this line is missing or incorrect, the sis file will not be able
-;to be installed on Series 60 v5.0 platforms
-[0x1028315F], 0, 0, 0, {"Series60ProductID"}
-
-;
-"\epoc32\release\armv5\urel\javaupgradeapp.exe"-"c:\sys\bin\javaupgradeapp.exe"
--- a/javamanager/javaupgradeapp/src.s60/javaupgradeapp.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,434 +0,0 @@
-/*
-* Copyright (c) 2010 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:  Helper application for uninstalling a java application and
-*    then installing new application (java or native)
-*
-*/
-
-#include <apgcli.h>
-#include <apacmdln.h>
-#include <apmstd.h>
-#include <bacline.h>
-#include <e32cmn.h>
-#include <s32mem.h>
-#include <unistd.h>
-
-#include "exceptionbase.h"
-#include "javaoslayer.h"
-#include "javacommonutils.h"
-#include "javaprocessconstants.h"
-#include "javasymbianoslayer.h"
-#include "javauids.h"
-#include "logger.h"
-
-
-using namespace java::util;
-
-
-_LIT8(KHexValueStart, "0x");
-_LIT8(KSemiColon, ";");
-_LIT8(KUidArg, "uid=");
-_LIT8(KFileArg, "file=");
-
-const TInt KExtraLenForLogging = 2;
-const TInt KArgumentValueMaxLen = 1568;
-// Wait for 0.5 sec if ArcApp has not yet initialized
-const TInt KDelayWhenWaitingAppArc = 500000;
-
-
-/**
- * Set the value of the argument specified by aArgName to aArgValue
- *
- * @param aCmdLine command line to be parsed
- * @param aArgName the name of the argument
- * @param aArgValue the value parsed from command line will be returned here
- */
-static void getArgValueL(const TPtrC8 &aCmdLine, const TDesC8 &aArgName, HBufC **aArgValue)
-{
-    TBuf8<KArgumentValueMaxLen> valueBuf;
-    TInt argPos = aCmdLine.FindF(aArgName);
-    if (argPos >= 0)
-    {
-        TInt semicolonPos = aCmdLine.Mid(argPos).Find(KSemiColon);
-        if (KErrNotFound == semicolonPos)
-        {
-            semicolonPos = aCmdLine.Mid(argPos).Length();
-        }
-        TInt argLen = semicolonPos - aArgName.Length();
-        if (argLen >= KArgumentValueMaxLen)
-        {
-            // Protect from buffer overflow.
-            WLOG2(EUtils,
-                  "javaupgradeapp: argument value len too long (%d), cutting it to %d",
-                  argLen, (KArgumentValueMaxLen - 1));
-            argLen = KArgumentValueMaxLen - 1;
-        }
-        else if (argLen == 0)
-        {
-            User::Leave(KErrArgument);
-        }
-
-        valueBuf = aCmdLine.Mid(argPos + aArgName.Length(),  argLen);
-    }
-
-    // Allocate new HBufC
-    HBufC *pBufValue = HBufC::NewL(valueBuf.Length() + 2);
-
-    // Convert argument from UTF8 to UCS-2 (UTF16)
-    std::wstring tmp = JavaCommonUtils::utf8ToWstring((const char *)valueBuf.PtrZ());
-
-    // Return the argument inside the new HBufC
-    *pBufValue = (const TUint16 *)(tmp.c_str());
-    *aArgValue = pBufValue;
-}
-
-
-/**
- * Parse the name from the value of 'file' parameter in
- * command line given in aCmdLine
- *
- * @param aCmdLine  command line to be parsed, the format is
- *  <other_args>;file=YYY;<other_args>
- * @param aFileName will contain the name parsed from command line
- */
-static void getNameFromCommandLineL(const TPtrC8 &aCmdLine, HBufC **aFileName)
-{
-    TInt err = aCmdLine.FindF(KFileArg);
-    User::LeaveIfError(err);
-
-    getArgValueL(aCmdLine, KFileArg, aFileName);
-}
-
-
-/**
- * Parse the Uid from the value of 'uid' parameter in
- * command line given in aCmdLine
- *
- * @param aCmdLine  command line to be parsed, the format is
- *  uid=YYY;<other_args>
- * @param aUid will contain the Uid parsed from command line
- */
-static void getUidFromCommandLineL(const TPtrC8 &aCmdLine, TInt32 &aUid)
-{
-    TInt err(KErrNone);
-    TInt argPos = aCmdLine.FindF(KUidArg);
-    if (KErrNotFound != argPos)
-    {
-        TPtrC8 uidToParse = aCmdLine.Mid(argPos + KUidArg.iTypeLength);
-        TLex8 parseUid(uidToParse);
-        if (uidToParse.FindF(KHexValueStart) == 0)
-        {
-            parseUid.Inc(2); // skip hex prefix
-            TUint32 tmpValue;
-            err = parseUid.Val(tmpValue, EHex);
-            aUid = tmpValue;
-        }
-        else
-        {
-            err = parseUid.Val(aUid);
-        }
-
-        if (KErrNone != err)
-        {
-            ELOG1(EUtils,
-                  "javaupgradeapp failed parsing app Uid from cmdline uid param. Error %d",
-                  err);
-        }
-    }
-    else
-    {
-        ELOG(EUtils,
-             "javaupgradeapp cannot uninstall app because uid parameter is not given");
-    }
-
-    User::LeaveIfError(err);
-}
-
-
-/**
- * Parse the process command line.
- * Determine the uid of the Java application to be uninstalled and
- * the name of the application package to be installed.
- * Leaves if argument 'file' exist but file name cannot be found,
- * leaves if argument 'uid' exist but uid cannot be parsed from command line,
- * does NOT leave if only one of the arguments is present
- *
- * @param aFileName returns value of argument 'file'
- * @param aUid returns Uid of the Java application to be uninstalled
- */
-void getFileAndUidL(HBufC **aFileName, TInt32 *aUid)
-{
-    CApaCommandLine* commandLine;
-
-    // CApaCommandLine command line is used when this application has been
-    // launched using AppArc APIs.
-    TInt err = CApaCommandLine::GetCommandLineFromProcessEnvironment(commandLine);
-    if (KErrNone != err)
-    {
-        ELOG1(EUtils, "javaupgradeapp: Getting CApaCommandLine failed, err %d", err);
-        User::Leave(err);
-    }
-    CleanupStack::PushL(commandLine);
-
-    // Get the value of _application-args_
-    TPtrC8 args = commandLine->TailEnd();
-    HBufC8 *pBufCmdLine =
-        HBufC8::NewLC(args.Length() + KExtraLenForLogging);
-    if (args.Length() > 0)
-    {
-        // Copy the arguments to the new HBufC8
-        TPtr8 cmdLineBuf = pBufCmdLine->Des();
-        cmdLineBuf = args;
-
-        LOG1(EUtils, EInfo,
-            "javaupgradeapp: full cmd line is : %s",
-            cmdLineBuf.PtrZ());
-
-        // Get the midlet uid from the commandline
-        TRAPD(err, getUidFromCommandLineL(cmdLineBuf, *aUid));
-        // It is enough that either midlet uid OR installation package name
-        // have been given in commandline
-        if ((err != KErrNone) && (err != KErrNotFound))
-        {
-            User::Leave(err);
-        }
-
-        // Get the name of the installation package from the commandline
-        TRAPD(err2, getNameFromCommandLineL(cmdLineBuf, aFileName))
-        if (err2 != KErrNone)
-        {
-            if (err2 == KErrNotFound)
-            {
-                if (err == KErrNotFound)
-                {
-                    // Both arguments missing
-                    User::Leave(KErrArgument);
-                }
-            }
-            else
-            {
-                User::Leave(err2);
-            }
-        }
-    }
-    else
-    {
-        ELOG(EUtils, "javaupgradeapp: empty command line");
-        User::Leave(KErrArgument);
-    }
-
-    CleanupStack::PopAndDestroy(pBufCmdLine);
-    CleanupStack::PopAndDestroy(commandLine);
-}
-
-
-/**
- * Uninstall the java application specified by aUid parameter.
- *
- * @param aUid the Uid of the java application to be uninstalled
- */
-void uninstallJavaAppL(TInt32 aUid)
-{
-    RProcess rJavaInstaller;
-    TFileName fileName;
-    // Max one path name and some options -> 1536 is enough
-    TBuf<1536> commandLine;
-
-    // Build command line used to pass all necessary info to Java Installer
-    TInt len = strlen(java::runtime::JAVA_INSTALLER_STARTER_DLL);
-    TPtr8 ptr8InstallerDll((TUint8 *)java::runtime::JAVA_INSTALLER_STARTER_DLL, len, len);
-    commandLine.Copy(ptr8InstallerDll);
-
-    // Use command line options that make sure that uninstallation is done
-    // always, silently and so that the uninstalled java application will
-    // be preinstalled again if the user uninstalls it
-    commandLine.Append(_L(" uninstall -uid="));
-    commandLine.AppendNum(aUid);
-    commandLine.Append(_L(" -forceuninstall -silent -resetpreinstall"));
-
-    LOG1WSTR(EUtils, EInfo,
-        "javaupgradeapp:uninstallJavaAppL Java Installer command line is %s",
-        (wchar_t *)(commandLine.PtrZ()));
-
-    // start JavaInstaller
-    TBuf<64> installerProcess;  // Actual len of the process name is 9
-    len = strlen(java::runtime::JAVA_PROCESS);
-    TPtr8 ptr8Process((TUint8 *)java::runtime::JAVA_PROCESS, len, len);
-    installerProcess.Copy(ptr8Process);
-
-    TRequestStatus status;
-    TInt err = rJavaInstaller.Create(installerProcess, commandLine);
-    if (KErrNone == err)
-    {
-        LOG(EUtils, EInfo, "javaupgradeapp:uninstallJavaAppL calling Logon");
-        // Get notification when Java Installer exits (or panics)
-        rJavaInstaller.Logon(status);
-
-        LOG(EUtils, EInfo, "javaupgradeapp:uninstallJavaAppL calling Resume");
-        rJavaInstaller.Resume();
-    }
-    else
-    {
-        ELOG1(EUtils,
-              "javaupgradeapp:uninstallJavaAppL Cannot start Java Installer, error %d",
-              err);
-        User::Leave(err);
-    }
-
-    // now wait until Java Installer exits
-    User::WaitForRequest(status);
-
-    LOG(EUtils, EInfo, "javaupgradeapp:uninstallJavaAppL calling RProcess::Close");
-    // free resources before returning
-    rJavaInstaller.Close();
-}
-
-
-/**
- *
- *
- *
- */
-void installAppPackageL(HBufC *aBufFileName)
-{
-    // Open file using default handler,
-    // if the file is an installation package, it will be installed
-    RApaLsSession apaSession;
-    TInt err = apaSession.Connect();
-    if (KErrNone != err)
-    {
-        ELOG(EUtils,
-             "javaupgradeapp:installAppPackageL: Cannot connect to AppArc server");
-        User::Leave(err);
-    }
-    CleanupClosePushL(apaSession);
-
-    TInt      retryCounter(10);
-    TThreadId handlerTreadId;
-    do
-    {
-        err = apaSession.StartDocument(*aBufFileName, handlerTreadId);
-        if (RApaLsSession::EAppListInvalid == err)
-        {
-            // Application list has not yet been populated,
-            // try again after a short delay
-            retryCounter--;
-            if (retryCounter > 0)
-            {
-                User::After(KDelayWhenWaitingAppArc); // codescanner::userafter
-                continue;
-            }
-            else
-            {
-                ELOG(EUtils,
-                     "javaupgradeapp:installAppPackageL: RApaLsSession "
-                     "StartDocument returned EAppListInvalid for 10 times, exiting");
-                User::Leave(err);
-            }
-        }
-        else if (KErrNone != err)
-        {
-            ELOG1(EUtils,
-                "javaupgradeapp:installAppPackageL: RApaLsSession "
-                     "StartDocument returned error %d", err);
-            User::Leave(err);
-        }
-
-    } while (RApaLsSession::EAppListInvalid == err);
-
-    CleanupStack::PopAndDestroy(); // apaSession
-}
-
-
-/**
- * Get the uid of the Java application to be uninstaller and
- * start Java Installer to uninstall the application.
- * Then install the new application package given in cmdline
- *
- */
-void handleUpgradeL(void)
-{
-    HBufC *pBufFileName = NULL;
-    TInt32 uid(0);
-
-    getFileAndUidL(&pBufFileName, &uid);
-
-    if (uid != 0)
-    {
-        PLOG1(EUtils, "javaupgradeapp uninstalling app uid %x", uid);
-        uninstallJavaAppL(uid);
-    }
-    else
-    {
-        WLOG(EUtils, "javaupgradeapp: uid argument was not given");
-    }
-
-    if (pBufFileName != NULL)
-    {
-        PLOG1WSTR(EUtils,
-            "javaupgradeapp: installing new app package %s",
-            (wchar_t *)(pBufFileName->Des().PtrZ()));
-        installAppPackageL(pBufFileName);
-
-        delete pBufFileName;
-    }
-    else
-    {
-        WLOG(EUtils, "javaupgradeapp: file argument was not given");
-    }
-}
-
-
-/**
- * Main function of executable javaupgradeapp.exe.
- * "installer app" created by Services team starts this executable when
- * the "installer app" must be replaced with the real application (java/native or wrt)
- *
- * The command line format is
- * uid=<Uid>;file=<full_path_to_installation_file>
- * for example
- * uid=0x10137c4d;file=D:\\temp\\upgrade\\package.sis
- *
- * Sample code for starting this application from the "installer app" MIDlet
- * @code
-
-    MIDlet.platformRequest(
-        “nativeapp://application-exe=javaupgradeapp.exe;application-args=uid=0x10137c4d;file=D:\\temp\\upgrade\\package.sis”);
-
- * @endcode
- *
- */
-TInt E32Main(void)
-{
-    // TODO: check that only MIDP runtime process can start this in final version
-    // that goes to ROM
-
-
-    CTrapCleanup *pCleanupStack = CTrapCleanup::New();
-    if (NULL == pCleanupStack)
-    {
-        ELOG(EUtils, "Cannot create CleanupStack in javaupgradeapp.exe main()");
-        return KErrNoMemory;
-    }
-
-    TRAPD(err, handleUpgradeL());
-    if (KErrNone != err)
-    {
-        ELOG1(EUtils, "javaupgradeapp.exe: handleUpgradeL leaved with err %d", err);
-    }
-
-    delete pCleanupStack;
-    return err;
-}
-
--- a/javamanager/preinstaller/build/javapreinstaller.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/preinstaller/build/javapreinstaller.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -24,12 +24,10 @@
     SOURCES += ../src.s60/*.cpp
 
     LIBS += -lefsrv \
-            -lplatformenv \
+            -lPlatformEnv \
             -ljavacomms \
             -lcharconv \
-            -ljavastorage \
-            -lapparc \
-            -lapgrfx
+            -ljavastorage
 }
 
 include(../../../build/omj.pri)
--- a/javamanager/preinstaller/build/javapreinstaller_0x2002DCC6.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/preinstaller/build/javapreinstaller_0x2002DCC6.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../inc
@@ -69,12 +69,10 @@
 
 
 LIBRARY		efsrv.lib
-LIBRARY		platformenv.lib
+LIBRARY		PlatformEnv.lib
 LIBRARY		javacomms.lib
 LIBRARY		charconv.lib
 LIBRARY		javastorage.lib
-LIBRARY		apparc.lib
-LIBRARY		apgrfx.lib
 LIBRARY		javautils.lib
 LIBRARY		libpthread.lib
 LIBRARY		libstdcppv5.lib
@@ -87,10 +85,12 @@
 LIBRARY		mediaclientaudio.lib
 LIBRARY		eikcoctl.lib
 LIBRARY		eiksrv.lib
+LIBRARY		apparc.lib
 LIBRARY		avkon.lib
 LIBRARY		ws32.lib
 LIBRARY		hal.lib
 LIBRARY		gdi.lib
+LIBRARY		apgrfx.lib
 
 CAPABILITY		all -tcb 
 
@@ -101,7 +101,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javamanager/preinstaller/src.s60/main.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/preinstaller/src.s60/main.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -119,7 +119,7 @@
 
     // Start active scheduler. Preinstallation starts.
     LOG(EJavaPreinstaller, EInfo, "startPreinstallationL: Starting CActiveScheduler");
-    CActiveScheduler::Start(); // codescanner::activestart
+    CActiveScheduler::Start();
 
     // Now preinstallation has been done
     LOG(EJavaPreinstaller, EInfo, "startPreinstallationL: Cleaning up");
--- a/javamanager/preinstaller/src.s60/silentmidletinstall.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/preinstaller/src.s60/silentmidletinstall.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description:  OMJ Symbian preinstaller process
+* Description:  OMJ S60 preinstaller process
 *
 */
 
@@ -26,8 +26,6 @@
 
 #include "silentmidletinstall.h"
 #include "javacommonutils.h"
-#include "javauid.h"
-#include "javauids.h"
 #include "logger.h"
 #include "javaprocessconstants.h"
 #include "javasymbianoslayer.h"
@@ -53,7 +51,6 @@
 _LIT(KMidletName, "MIDlet-Name");
 _LIT(KMidletVendor, "MIDlet-Vendor");
 _LIT(KMidletVersion, "MIDlet-Version");
-_LIT(KMidletUid, "Nokia-MIDlet-UID-1");
 
 _LIT(KJadExtension, "*.jad");
 
@@ -99,9 +96,9 @@
  */
 void CSilentMIDletInstall::ConstructL()
 {
+    JELOG2(EJavaPreinstaller);
     iMIDletName = HBufC::NewL(KMaxBufferSize);
     iMIDletVendor = HBufC::NewL(KMaxBufferSize);
-    iMIDletUid = HBufC::NewL(KMaxBufferSize);
     iPreinstallServer = new(ELeave) PreinstallCommsServer();
 
     iNumberOfAppsToInstall = 0;
@@ -114,6 +111,7 @@
  */
 CSilentMIDletInstall::~CSilentMIDletInstall()
 {
+    JELOG2(EJavaPreinstaller);
     iJadFiles.ResetAndDestroy();
     iJadFiles.Close();
 
@@ -126,9 +124,6 @@
     delete iMIDletVendor;
     iMIDletVendor = NULL;
 
-    delete iMIDletUid;
-    iMIDletUid = NULL;
-
     delete iPreinstallServer;
     iPreinstallServer = NULL;
 }
@@ -138,6 +133,7 @@
  */
 void CSilentMIDletInstall::Start()
 {
+    JELOG2(EJavaPreinstaller);
     iState = EFindOutDeviceDrives;
 
     // Check if an explicit roll-back of a previous installation is needed
@@ -192,6 +188,8 @@
  */
 void CSilentMIDletInstall::CompleteRequest()
 {
+    JELOG2(EJavaPreinstaller);
+
     TRequestStatus *status = &iStatus;
     User::RequestComplete(status, KErrNone);
     if (!IsActive())
@@ -244,6 +242,8 @@
  */
 void CSilentMIDletInstall::RunL()
 {
+    JELOG2(EJavaPreinstaller);
+
     switch (iState)
     {
     case EFindOutDeviceDrives:
@@ -450,7 +450,7 @@
         LOG1WSTR(EJavaPreinstaller, EInfo,
                  "CSilentMIDletInstall::GetDirEntriesL Adding file %s",
                  (wchar_t *)(pathPtr.PtrZ()));
-        aVector.AppendL(path);
+        aVector.Append(path);
         CleanupStack::Pop(path);
     }
 
@@ -581,12 +581,13 @@
 /**
  * Parse MIDlet-Name, MIDlet-Vendor and MIDlet-Version parameters from JAD file.
  * Parameters are used to determine whether to pre-install MIDlet or not.
- * Parse also optional Nokia-MIDlet-UID-1 in case it is needed.
  *
  * @param ETrue if parsing succeeds otherwise EFalse.
  */
 TBool CSilentMIDletInstall::ParseJadL(const TDesC& aJadFileName)
 {
+    JELOG2(EJavaPreinstaller);
+
     HBufC *jadContent = NULL;
     // Trap leave thrown if reading jad content fails
     TRAPD(err, jadContent = GetJadContentL(aJadFileName));
@@ -647,23 +648,6 @@
          "CSilentMIDletInstall::ParseJadL MIDlet-Version is %d.%d.%d",
          iMIDletVersion.iMajor, iMIDletVersion.iMinor, iMIDletVersion.iBuild);
 
-    HBufC *midletUid = ParseAttribute(jadContent, KMidletUid);
-    if (NULL == midletUid)
-    {
-        // Ok, all MIDlets do not predefine Symbian Uid
-        iMIDletUid->Des().Zero();
-    }
-    else
-    {
-        // store midlet Uid to member variable and log it
-        TPtr uidPtr(iMIDletUid->Des());
-        uidPtr.Copy(*midletUid);
-        LOG1WSTR(EJavaPreinstaller, EInfo,
-            "CSilentMIDletInstall::ParseJadL Nokia-MIDlet-UID-1 %s",
-            (wchar_t *)(uidPtr.PtrZ()));
-        delete midletUid;
-    }
-
     CleanupStack::PopAndDestroy(jadContent);
     return ETrue;
 }
@@ -744,17 +728,10 @@
     // Do not preinstall application if it is found from this table
     // and the version number of the application is the same or less
     // than the version number in the table.
-    // If the application has been removed by javaupgradeupp or it has
-    // not yet been installed, the application is not in the table at all.
-    // Do not preinstall the application if there is a native application
-    // with the same Uid as the predefined Uid of the first Java
-    // application in the application suite.
 
-    TBool            apaSessionConnected(EFalse);
-    RApaLsSession    apaSession;
     JavaStorageEntry attribute;
     JavaStorageApplicationEntry_t findPattern;
-    JavaStorageApplicationList_t  foundEntries;
+    JavaStorageApplicationList_t foundEntries;
 
     for (TInt i = 0; i < iJadFiles.Count(); i++)
     {
@@ -802,8 +779,8 @@
                 {
                     // This application must not be preinstalled
                     LOG1WSTR(EJavaPreinstaller, EInfo,
-                        "CheckWhichAppsShouldBeInstalledL: User has removed application %s "
-                        "It must not be preinstalled again.", desToWstring(namePtr));
+                             "CheckWhichAppsShouldBeInstalledL: User has removed application %s "
+                             "It must not be preinstalled again.", desToWstring(namePtr));
                 }
                 else
                 {
@@ -841,34 +818,9 @@
             else
             {
                 skipInstall = EFalse;
-
                 LOG(EJavaPreinstaller, EInfo,
                     "CheckWhichAppsShouldBeInstalledL: Application has not "
                     "been installed previously");
-
-                // Check whether there is a native application installed
-                // with the same Uid as the predefined Uid of the first
-                // Java application in the suite.
-
-                // The string value of attribute Nokia-MIDlet-UID-1 from
-                // Jad file is in iMIDletUid if it was defined.
-                TInt err = KErrNone;
-                if (iMIDletUid->Length() > 0)
-                {
-                    if (!apaSessionConnected)
-                    {
-                        err = apaSession.Connect();
-                        apaSessionConnected = ETrue;
-                    }
-
-                    // If the presence of a possible native app cannot be
-                    // determined, let Java Installer try to install
-                    // the Java application
-                    if (KErrNone == err)
-                    {
-                        skipInstall = IsNativeAppPresent(apaSession);
-                    }
-                }
             }
 
             foundEntries.clear();
@@ -879,8 +831,8 @@
             skipInstall = ETrue;
             TPtr16 ptrJadName = iJadFiles[i]->Des();
             ELOG1WSTR(EJavaPreinstaller,
-                "CheckWhichAppsShouldBeInstalledL: Parsing JAD %s failed",
-                desToWstring(ptrJadName));
+                      "CheckWhichAppsShouldBeInstalledL: Parsing JAD %s failed",
+                      desToWstring(ptrJadName));
         }
 
         if (skipInstall)
@@ -894,11 +846,6 @@
         }
     }
 
-    if (apaSessionConnected)
-    {
-        apaSession.Close();
-    }
-
     js->close();
 }
 
@@ -1219,53 +1166,3 @@
 
     return midletVersion;
 } // DesToAppVersion
-
-
-/**
- * Parses the Uid in iMIDletUid and returns ETrue if there is a native
- * application with the same Uid installed into the device.
- * Returns EFalse in case of any error.
- *
- * @param[in] aApaSession open AppArc session
- * @return EFalse if no native application with Uid in iMIDletUid
- */
-TBool CSilentMIDletInstall::IsNativeAppPresent(const RApaLsSession& aApaSession)
-{
-    std::wstring uidValue((wchar_t *)(iMIDletUid->Ptr()), iMIDletUid->Length());
-    TUid appUid;
-    Uid javaUid(uidValue);
-    TInt err = uidToTUid(javaUid, appUid);
-
-    if (KErrNone != err)
-    {
-        WLOG1(EJavaPreinstaller,
-            "CSilentMIDletInstall::IsNativeAppPresent: Cannot convert %S to TUid",
-            uidValue.c_str());
-        return EFalse;
-    }
-
-    TUid appTypeUid;
-    err = aApaSession.GetAppType(appTypeUid, appUid);
-    if (KErrNone != err)
-    {
-        if (KErrNotFound == err)
-        {
-            // No such application in device
-            return EFalse;
-        }
-
-        // Cannot check presence from AppArc
-        ELOG1(EJavaPreinstaller,
-            "CSilentMIDletInstall::IsNativeAppPresent: RApaLsSession GetAppType error %d", err);
-        return EFalse;
-    }
-
-    if (appTypeUid.iUid != KMidletApplicationTypeUid)
-    {
-        // The application is present and it is not a MIDlet
-        return ETrue;
-    }
-
-    return EFalse;
-} // IsNativeAppPresent
-
--- a/javamanager/preinstaller/src.s60/silentmidletinstall.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/preinstaller/src.s60/silentmidletinstall.h	Wed Oct 13 14:23:59 2010 +0300
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description:  OMJ Symbian preinstaller process
+* Description:  OMJ S60 preinstaller process
  *
 */
 
@@ -19,7 +19,6 @@
 #ifndef SILENTMIDLETINSTALL_H
 #define SILENTMIDLETINSTALL_H
 
-#include <apgcli.h> // for RApaLsSession
 #include <f32file.h>
 #include <e32base.h>
 #include <javasymbianoslayer.h>
@@ -102,9 +101,6 @@
     // Parses the application version string given in aAppVersionString
     //  and returns the corresponding Symbian TAppVersion.
     TAppVersion DesToAppVersion(const HBufC *aAppVersionString);
-    // Parses the Uid in iMIDletUid and returns ETrue if there is a native
-    // application with the same Uid installed into the device
-    TBool IsNativeAppPresent(const RApaLsSession& aApaSession);
 
 
 private:
@@ -127,8 +123,6 @@
     HBufC* iMIDletVendor;
     // Variable used for parsing midlet version from jad file
     TAppVersion iMIDletVersion;
-    // Buffer used for parsing Uid of the first midlet from jad file
-    HBufC* iMIDletUid;
 
     // Drive status info for each non-remote, non-substed drive on device
     TUint iDriveStatuses[KMaxDrives];
--- a/javamanager/subsystem.mk	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/subsystem.mk	Wed Oct 13 14:23:59 2010 +0300
@@ -20,44 +20,29 @@
 	javacaptain \
 	javainstaller \
 	javaregistry \
-	javabackup
+	javabackup \
+	javasettings
 
 COMPONENTS = \
 	preinstaller/build \
 	debugapi/build \
-	javalauncher/build \
-	javaupgradeapp/build 
-    
+	javalauncher/build
+
 NONQTSUBSYSTEMS = \
-	javarecognizer/build 
+	javasidchecker/build \
+	javarecognizer/build \
+	javaappschemeplugin/build
 
 SYMBIAN_ONLY = \
 	javaregistry \
 	javalauncher/build \
-	javaupgradeapp/build \
 	javabackup \
+	javasidchecker/build \
 	javarecognizer/build \
 	preinstaller/build \
-	debugapi/build 
-
-ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS    
-NONQTSUBSYSTEMS += javasidchecker/build javaappschemeplugin/build 
-SYMBIAN_ONLY += javasidchecker/build javaappschemeplugin/build 
-javasidchecker/build : javaregistry
-else
-COMPONENTS += javaappscheme/build javaqtrequest/build 
-SYMBIAN_ONLY += javaappscheme/build javaqtrequest/build 
-endif
+	debugapi/build \
+	javaappschemeplugin/build
 
-ifdef RD_JAVA_APPLICATION_SETTINGS_QT
-COMPONENTS += javasettings_qt/build 
-SYMBIAN_ONLY += javasettings_qt/build 
-else
-SUBSYSTEMS += javasettings
-endif
-
-# Declare that release preparation removes subdirectories not in build, except
-# listed special cases
-REMOVE_NOTBUILT_EXCLUDING = inc
+javasidchecker/build : javaregistry
 
 include ${JAVA_SRC_ROOT}/build/Makefile.subsystem
--- a/javaruntimes/bld.inf	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaruntimes/bld.inf	Wed Oct 13 14:23:59 2010 +0300
@@ -23,6 +23,5 @@
 #include "jvmargmodifier/default/build/bld.inf"    
 #include "jvmargmodifier/file/build/bld.inf"    
 #include "starterutils/build/bld.inf"    
-#include "standalone/build/bld.inf"    
 #include "starter/build/bld.inf"    
 #include "midp/bld.inf"  
--- a/javaruntimes/installer/starterdll/build/javainstallerstarter_0x2002DCB5.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaruntimes/installer/starterdll/build/javainstallerstarter_0x2002DCB5.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../../inc
@@ -98,7 +98,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaruntimes/installer/starterdll/src/main.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaruntimes/installer/starterdll/src/main.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -221,7 +221,7 @@
 #endif
 
         // Wait 3 seconds so that Java Captain has time to start
-        User::After(3000000); // codescanner::userafter
+        User::After(3000000);
     }
     else
     {
@@ -384,12 +384,7 @@
     jvm->appendSystemProperty(
         L"-Dcom.nokia.mj.impl.rt.ui="
         L"com.nokia.mj.impl.installer.ui.eswt2.InstallerRuntimeUi");
-#ifdef __SYMBIAN32__
-#ifndef __WINS__
-    //jvm->appendSystemProperty(L"-Dcom.nokia.mj.impl.installer.ui.disableui=1");
-#endif //__WINS__
-#endif // __SYMBIAN32__
-#else // RD_JAVA_S60_RELEASE_10_1_ONWARDS
+#else
     jvm->appendSystemProperty(
         L"-Dcom.nokia.mj.impl.installer.ui="
         L"com.nokia.mj.impl.installer.ui.eswt.InstallerUiEswt");
--- a/javaruntimes/installer/starterexe/build/javainstaller_0x2001843A.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaruntimes/installer/starterexe/build/javainstaller_0x2001843A.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -47,7 +47,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -55,6 +54,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../../inc
@@ -100,7 +100,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaruntimes/javaruntimes.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaruntimes/javaruntimes.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -19,7 +19,6 @@
 SUBDIRS += installer/starterdll/build/javainstallerstarter.pro 
 SUBDIRS += installer/starterexe/build/javainstaller.pro 
 SUBDIRS += jvmargmodifier/file/build/javajvmargsmodifierfile.pro 
-SUBDIRS += standalone/build/javastarter.pro 
-SUBDIRS += starter/build/javamidp.pro 
+SUBDIRS += starter/build/java.pro 
 SUBDIRS += midp 
 BLD_INF_RULES.prj_extensions += "prj_extensions" 
--- a/javaruntimes/jvmargmodifier/default/build/javajvmargsmodifier_0x2002DCB8.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaruntimes/jvmargmodifier/default/build/javajvmargsmodifier_0x2002DCB8.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc
@@ -97,7 +97,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaruntimes/jvmargmodifier/file/build/javajvmargsmodifierfile.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaruntimes/jvmargmodifier/file/build/javajvmargsmodifierfile.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -21,4 +21,8 @@
 
 LIBS += -ljavafileutils
 
+symbian {
+LIBS += -laknnotify
+}
+
 include(../../../../build/omj.pri)
--- a/javaruntimes/jvmargmodifier/file/build/javajvmargsmodifierfile_0x2002DCB9.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaruntimes/jvmargmodifier/file/build/javajvmargsmodifierfile_0x2002DCB9.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../../inc
@@ -69,6 +69,7 @@
 
 
 LIBRARY		javafileutils.lib
+LIBRARY		aknnotify.lib
 LIBRARY		javautils.lib
 LIBRARY		libpthread.lib
 LIBRARY		libstdcppv5.lib
@@ -99,7 +100,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaruntimes/jvmargmodifier/file/src/jvmargsmodifier.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaruntimes/jvmargmodifier/file/src/jvmargsmodifier.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description:  A file argument reader implementation for JvmArgs modifier.
+* Description:  A default empty implementation for JvmArgs modifier.
 *
 */
 
@@ -23,17 +23,33 @@
 #include "jvmargsfilereader.h"
 #include "argsmodifier.h"
 
+#ifdef __SYMBIAN32__
+#include <AknGlobalNote.h>
+_LIT(KArgsTxt, "Note! Modified VM arguments used!");
+#endif
+
 void logArguments(std::wstring aArg)
 {
     WLOG1(EJavaRuntime, " '%S'", aArg.c_str());
 }
 
+#ifdef __SYMBIAN32__
+void showWarningDialogL()
+{
+    ::CAknGlobalNote* globalNote = CAknGlobalNote::NewL();
+    CleanupStack::PushL(globalNote);
+    globalNote->ShowNoteL(EAknGlobalInformationNote, KArgsTxt);
+    CleanupStack::PopAndDestroy(globalNote);
+}
+#endif
+
+
 OS_EXPORT
 void java::runtime::modifyJvmArguments(const std::wstring& aIdentifier,
                                        std::list<std::wstring>& aJvmArgs,
                                        std::list<std::wstring>& aApplicationAndArgs)
 {
-    PLOG(EJavaRuntime, "JVM File Argument modifier in use");
+    JELOG2(EJavaRuntime);
 
 #ifdef __SYMBIAN32__
     // Open the extension directory of the J9 VM.
@@ -54,6 +70,9 @@
         std::for_each(aJvmArgs.begin(), aJvmArgs.end(), logArguments);
         WLOG(EJavaRuntime, "new App arguments");
         std::for_each(aApplicationAndArgs.begin(), aApplicationAndArgs.end(), logArguments);
+#ifdef __SYMBIAN32__
+        TRAP_IGNORE(showWarningDialogL());
+#endif
     }
 }
 
--- a/javaruntimes/midp/runtime/build/build.xml	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaruntimes/midp/runtime/build/build.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -33,6 +33,7 @@
 
   <target name="system.properties">
       <properties>
+          microedition.hostname=localhost
           microedition.jtwi.version=1.0
           microedition.msa.version=1.1-SUBSET
           microedition.profiles=MIDP-2.1
--- a/javaruntimes/midp/runtime/build/javamidpruntime.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaruntimes/midp/runtime/build/javamidpruntime.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -23,7 +23,7 @@
         
 
 symbian {
-    INCLUDEPATH += /epoc32/include/ecom     # Due to schemehandler.inl in S60 5.0 2009w18 and SPB 10.1
+    INCLUDEPATH += /epoc32/include/ecom
     LIBS += -lecom -lflogger -lDrmRightsInfo -lcaf -lDrmHelper -lapgrfx -lapparc -ljavautils
 }
 
--- a/javaruntimes/midp/runtime/build/javamidpruntime_0x2002DCBF.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaruntimes/midp/runtime/build/javamidpruntime_0x2002DCBF.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		/epoc32/include/ecom
@@ -110,7 +110,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaruntimes/midp/runtime/javasrc/com/nokia/mj/impl/rt/midp/Main.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaruntimes/midp/runtime/javasrc/com/nokia/mj/impl/rt/midp/Main.java	Wed Oct 13 14:23:59 2010 +0300
@@ -38,14 +38,12 @@
     {
         // Do the start up trace.
         StartUpTrace.doTrace("Midp runtime ready");
-        if (Log.mOn) 
-        {
-            Log.logI("Starting MIDP runtime");
- 	          Log.logI("java.version: " +
-                     System.getProperty("java.version"));
-            Log.logI("java.fullversion: " +
-                     System.getProperty("java.fullversion"));
-        }
+        if (Log.mOn) Log.logI("Starting MIDP runtime");
+
+        System.out.println("java.version: " +
+                           System.getProperty("java.version"));
+        System.out.println("java.fullversion: " +
+                           System.getProperty("java.fullversion"));
         boolean ok = true;
 
         try
--- a/javaruntimes/midp/runtime/javasrc/com/nokia/mj/impl/rt/midp/SchemeHandlerBase.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-package com.nokia.mj.impl.rt.midp;
-
-import javax.microedition.io.ConnectionNotFoundException;
-
-/**
- * Java based platform request scheme handler base class.
- */
-public abstract class SchemeHandlerBase
-{
-
-    /*** ----------------------------- PUBLIC ------------------------------ */
-
-    /**
-     * Execute scheme.
-     *
-     * @param url to be invoked.
-     * @return  true if MIDlet must be closed prior content fetch.
-     * @throws ConnectionNotFoundException if URL execution fails.
-     */
-    public abstract boolean execute(String url) throws ConnectionNotFoundException;
-}
-
--- a/javaruntimes/midp/runtime/javasrc/com/nokia/mj/impl/rt/taskmanager/SchemeHandler.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
-* Copyright (c) 2010 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://taskmanager scheme handler.
-*
-*/
-package com.nokia.mj.impl.rt.taskmanager;
-
-import javax.microedition.io.ConnectionNotFoundException;
-
-import com.nokia.mj.impl.coreui.CoreUi;
-import com.nokia.mj.impl.rt.midp.SchemeHandlerBase;
-
-/**
- * TaskManager platform request scheme handler. These are java: taskmanager?hide
- * java: taskmanager?show. Using hide URL query application is hided
- * from the TaskManager and brought visible using show query.
- */
-public class SchemeHandler extends SchemeHandlerBase
-{
-
-    /*** ----------------------------- PUBLIC ------------------------------ */
-
-    /**
-     * Execute scheme. If url contains query ?hide application is removed
-     * from the TaskManager and if it contains ?show application is shown on
-     * TaskManager.
-     *
-     * @return false. Since MIDlet needs never be closed before content fetch.
-     * @throws ConnectionNotFoundException if URL was invalid.
-     */
-    public boolean execute(String url) throws ConnectionNotFoundException
-    {
-        if (url.indexOf("?hide") != -1)
-        {
-            CoreUi.hideApplication(true);
-        }
-        else if (url.indexOf("?show") != -1)
-        {
-            CoreUi.hideApplication(false);
-        }
-        else
-        {
-            throw new ConnectionNotFoundException("Invalid URL");
-        }
-
-        return false;
-    }
-}
-
--- a/javaruntimes/midp/runtime/javasrc/com/nokia/mj/impl/rt/utils/CmdLineArgsPermission.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaruntimes/midp/runtime/javasrc/com/nokia/mj/impl/rt/utils/CmdLineArgsPermission.java	Wed Oct 13 14:23:59 2010 +0300
@@ -77,10 +77,6 @@
      */
     public boolean equals(Object obj)
     {
-        if (!(obj instanceof CmdLineArgsPermission))
-        {
-            return false;
-        }
         return (obj.hashCode() == hashCode());
     }
 
--- a/javaruntimes/midp/runtime/javasrc/javax/microedition/midlet/MIDlet.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaruntimes/midp/runtime/javasrc/javax/microedition/midlet/MIDlet.java	Wed Oct 13 14:23:59 2010 +0300
@@ -25,18 +25,14 @@
 import com.nokia.mj.impl.rt.ui.RuntimeUi;
 import com.nokia.mj.impl.rt.ui.RuntimeUiFactory;
 
-import com.nokia.mj.impl.rt.midp.SchemeHandlerBase;
-
 import com.nokia.mj.impl.rt.support.ApplicationInfo;
 
 import com.nokia.mj.impl.security.midp.authorization.AccessControllerFactoryImpl;
 import com.nokia.mj.impl.security.midp.authorization.AccessControllerImpl;
 import com.nokia.mj.impl.security.utils.SecurityPromptMessage;
 
-import com.nokia.mj.impl.utils.Id;
 import com.nokia.mj.impl.utils.Logger;
 
-
 /**
  * A class to be extended by the MIDlet applcation. See MIDP spec for
  * further details.
@@ -59,8 +55,6 @@
      */
     private static boolean mConstructionAllowed = true;
 
-    private static final int DOMAIN_MANUFACTURER_OR_OPERATOR = 1;
-
     /*** ----------------------------- PUBLIC ------------------------------ */
 
     /**
@@ -144,7 +138,6 @@
     {
         Logger.PLOG(Logger.EJavaRuntime,
                     "MIDlet.platformRequest(): " + url);
-
         if (null == url)
         {
             throw new NullPointerException(
@@ -159,30 +152,24 @@
             return false;
         }
 
-        ApplicationInfo appInfo = ApplicationInfo.getInstance();
-        String domain = appInfo.getProtectionDomain();
-
-        // Handling for java scheme.
-        /*if (url.startsWith("java://"))
-        {
-            String handlerName = parseHandlerName(url);
-
-            if (handlerName.equals("taskmanager"))
-            {
-                // Check application is bound either Manufacturer or Operator domain.
-                enforceSecurityDomain(DOMAIN_MANUFACTURER_OR_OPERATOR, domain);
-            }
-
-            return invokeSchemeHandler(handlerName, url);
-        }*/
-
         // If the platform request is used to start arbitrary native application,
         // check that MIDlet is in manufacturer or operator domain
         if (startsArbitraryNativeApp(url))
         {
-            enforceSecurityDomain(DOMAIN_MANUFACTURER_OR_OPERATOR, domain);
+            ApplicationInfo appInfo = ApplicationInfo.getInstance();
+            String domain = appInfo.getProtectionDomain();
+            if ((ApplicationInfo.MANUFACTURER_DOMAIN.equals(domain) != true) &&
+                    (ApplicationInfo.OPERATOR_DOMAIN.equals(domain) != true))
+            {
+                Logger.WLOG(Logger.EJavaRuntime,
+                            "Only manufacturer or operator domain MIDlets can start arbitrary native apps.");
+
+                throw new ConnectionNotFoundException(
+                    "Request allowed only for manufacturer or operator MIDlets");
+            }
         }
 
+
         Logger.ILOG(Logger.EJavaRuntime,
                     "Before handleConfirmationNote()");
 
@@ -295,7 +282,7 @@
     }
 
 
-    private boolean showNote(String aAppName, Id aConfirmationQueryId)
+    private boolean showNote(String aAppName,String aConfirmationQueryId)
     {
         SecurityPromptMessage msg = SecurityPromptMessage.getInstance();
         String queryTxt = msg.getText(aConfirmationQueryId,null);
@@ -335,7 +322,9 @@
             mNoPromptSchemes = new Hashtable();
             mNoPromptSchemes.put("cti:","");
             mNoPromptSchemes.put("mailto:","");
+            mNoPromptSchemes.put("mms:","");
             mNoPromptSchemes.put("mmsto:","");
+            mNoPromptSchemes.put("rtsp:","");
             mNoPromptSchemes.put("sms:","");
             mNoPromptSchemes.put("tel:","");
         }
@@ -374,72 +363,6 @@
         return false;
     }
 
-    private String parseHandlerName(String url) throws ConnectionNotFoundException
-    {
-        // Parse handler name from URL. Remove java:// prefix.
-        String handlerName = url.substring(7).trim();
-
-        // name format: handlername?query
-        int nameEndIndex = handlerName.indexOf('?');
-
-        if (nameEndIndex != -1)
-        {
-            handlerName = handlerName.substring(0, nameEndIndex);
-            return handlerName;
-        }
-        else
-        {
-            throw new ConnectionNotFoundException("Handler not found for URL");
-        }
-    }
-
-    private boolean invokeSchemeHandler(String handlerName, String url)
-        throws ConnectionNotFoundException
-    {
-        try
-        {
-            // Avoid loading whatever class from the system using handler
-            // as package name.
-            Class clazz = Class.forName("com.nokia.mj.impl.rt." + handlerName + ".SchemeHandler");
-
-            SchemeHandlerBase handler = (SchemeHandlerBase)clazz.newInstance();
-
-            handler.execute(url);
-            return false;  // No need to close MIDlet.
-        }
-        catch (Throwable t)
-        {
-            Logger.ELOG(Logger.EJavaRuntime, "Cannot invoke scheme handler: " + t.toString());
-            // ClassNotFoundException, IllegalAccessException or InstantionException.
-            throw new ConnectionNotFoundException("Handler not found for URL");
-        }
-    }
-
-    private void enforceSecurityDomain(int type, String domain)
-        throws ConnectionNotFoundException
-    {
-        if (DOMAIN_MANUFACTURER_OR_OPERATOR == type)
-        {
-            if ((ApplicationInfo.MANUFACTURER_DOMAIN.equals(domain) != true) &&
-                    (ApplicationInfo.OPERATOR_DOMAIN.equals(domain) != true))
-            {
-                Logger.WLOG(Logger.EJavaRuntime,
-                            "Only manufacturer or operator domain MIDlets can invoke scheme");
-
-                throw new ConnectionNotFoundException(
-                    "Request allowed only for manufacturer or operator MIDlets");
-            }
-        }
-        else
-        {
-            Logger.ELOG(Logger.EJavaRuntime,
-                        "Security enforcement failed: unknown domain category");
-
-            throw new ConnectionNotFoundException(
-                "Security enforcement failed: unknown domain category");
-        }
-    }
-
     /*** ----------------------------- NATIVE ----------------------------- */
 
     private native void _managePlatformRequest(String url);
--- a/javaruntimes/midp/runtime/src.s60/platformrequesthandler.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaruntimes/midp/runtime/src.s60/platformrequesthandler.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -18,7 +18,9 @@
 
 #include <memory>
 
-#ifndef RD_JAVA_S60_RELEASE_10_1_ONWARDS
+#ifdef RD_JAVA_S60_RELEASE_10_1_ONWARDS
+#include <SchemeHandler.h>
+#else
 #include <schemehandler.h>
 #endif
 
@@ -66,7 +68,7 @@
 void PlatformRequestHandler::handleUri(const std::wstring& aUri)
 {
     JELOG2(EJavaRuntime);
-    TRAPD(err, launchAppL(aUri));
+    TRAPD(err,launchAppL(aUri););
     if (err != KErrNone)
     {
         ELOG1(EJavaRuntime, "ERROR!!! PlatformRequestHandler::handleUri() %d",
@@ -74,8 +76,8 @@
         if (KErrNotFound == err)
         {
             if ((aUri.find(L"localapp:jam/launch?") == 0) ||
-                (aUri.find(L"localapp://jam/launch?") == 0) ||
-                (aUri.find(L"javaapp:") == 0))
+                    (aUri.find(L"localapp://jam/launch?") == 0) ||
+                    (aUri.find(L"javaapp:") == 0))
             {
                 // The URI is supported but the MIDlet specified by the URI
                 // does not exist.
@@ -110,71 +112,9 @@
     }
     else
     {
-#ifdef RD_JAVA_S60_RELEASE_10_1_ONWARDS
-        std::wstring uri;
-        std::wstring okScheme(L"javaapp:");
-        if (aUri.find(L"localapp:jam/launch?") == 0)
-        {
-            // Remove the scheme not supported by the devices in 10.1 from the
-            // beginning, replace it with okScheme that is supported
-            uri = okScheme;
-            uri += aUri.substr(20);  // 20 == wstrlen(L"localapp:jam/launch?")
-        }
-        else if (aUri.find(L"localapp://jam/launch?") == 0)
-        {
-            uri = okScheme;
-            uri += aUri.substr(22);  // 22 == wstrlen(L"localapp://jam/launch?")
-        }
-        else if (aUri.find(L"javaapp://") == 0)
-        {
-            // TODO: after QtHighway has been fixed to that
-            // it can recognize "javaapp://" scheme, remove this.
-            // At 2010wk26 it recognizes only "javaapp:"
-            uri = okScheme;
-            uri += aUri.substr(10);  // 10 == wstrlen(L"javaapp://")
-        }
-        else
-        {
-            uri = aUri;
-        }
-        LOG1(EJavaRuntime, EInfo, "Platform request. Converted uri: %S", uri.c_str());
-
-        TPtrC ptr((const TUint16 *)uri.c_str(), uri.length());
-        // Start javaqtrequest.exe so that url is command line argument.
-        // javaqtrequest is a Qt application that will use Qt Highway API
-        // to send the url request to correct XQServiceProvider
-        _LIT(KJavaQtRequestExe, "javaqtrequest.exe");
-        RProcess rProcess;
-        TInt err = rProcess.Create(KJavaQtRequestExe, ptr);
-        if (KErrNone != err)
-        {
-            ELOG1(EJavaRuntime,
-                "PlatformRequestHandler: launchAppL: Starting javaqtrequest.exe failed, err %d",
-                err);
-            User::Leave(err);
-        }
-
-        // Wait until javaqtrequest exits
-        TRequestStatus status;
-        rProcess.Logon(status);
-        rProcess.Resume();
-        User::WaitForRequest(status);
-
-        // Check the exit code of javaqtrequest
-        err = status.Int();
-        rProcess.Close();
-        if (err != KErrNone)
-        {
-            ELOG1(EJavaRuntime,
-                "PlatformRequestHandler: launchAppL: javaqtrequest.exe exited with err %d",
-                err);
-            User::Leave(err);
-        }
-#else
         TPtrC ptr((const TUint16 *)aUri.c_str(), aUri.length());
         std::auto_ptr<CSchemeHandler> schemeHandler(CSchemeHandler::NewL(ptr));
         schemeHandler->HandleUrlStandaloneL(); // Process Uri in standalone mode.
-#endif
     }
 }
 
--- a/javaruntimes/midp/runtimestarter/build/javamidpstarter_0x2002DCC0.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaruntimes/midp/runtimestarter/build/javamidpstarter_0x2002DCC0.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc
@@ -101,7 +101,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaruntimes/midp/runtimestarter/src/midpruntimestarter.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaruntimes/midp/runtimestarter/src/midpruntimestarter.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -63,7 +63,7 @@
 
 
 MidpRuntimeStarter::MidpRuntimeStarter(): mMidletInfo(new MidletInfo()), // codescanner::nonleavenew
-    mRuntimeState(Constructed), mShudownOk(false)
+        mRuntimeState(Constructed), mShudownOk(false)
 {
     JELOG2(EJavaRuntime);
 }
@@ -350,6 +350,8 @@
 
 void MidpRuntimeStarter::startCoreUi(std::auto_ptr<java::util::DynamicLibLoader>& coreUiLoader)
 {
+    CoreUi& coreUi = CoreUi::getUiInstance(coreUiLoader);
+
     // Create the default UI only if not going into pre-warmed state.
     if (!mMidletInfo->mPreWarmStart)
     {
@@ -440,7 +442,7 @@
 
         // Start the coreUI.
         JavaOsLayer::startUpTrace("Starting CoreUI", -1, -1);
-        CoreUi::start(coreUiLoader, mMidletInfo->mMIDletUid, &uiParams);
+        coreUi.start(mMidletInfo->mMIDletUid, &uiParams);
         JavaOsLayer::startUpTrace("CoreUI started", -1, -1);
 
         getMIDletSuiteInfoFromStorage(javaStorage.get(), JAR_PATH,
@@ -608,16 +610,16 @@
         if (c & 0xFF00)
         {
             // 16 bit char, must send all bits
-            res += (L'A' + (c >> 12));
-            res += (L'A' + ((c & 0x0F00) >> 8));
-            res += (L'A' + ((c & 0x00F0) >> 4));
-            res += (L'A' + ((c & 0x000F)));
+            res += ( L'A' + (c >> 12) );
+            res += ( L'A' + ((c & 0x0F00) >> 8) );
+            res += ( L'A' + ((c & 0x00F0) >> 4) );
+            res += ( L'A' + ((c & 0x000F)) );
         }
         else
         {
             // 8 bit char, send only lowest 8 bits
-            res += (L'a' + ((c & 0x00F0) >> 4));
-            res += (L'a' + ((c & 0x000F)));
+            res += ( L'a' + ((c & 0x00F0) >> 4) );
+            res += ( L'a' + ((c & 0x000F)) );
         }
     }
 
--- a/javaruntimes/standalone/build/bld.inf	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/*
-* 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: Generated bld.inf -file
-*
-*/
-
-PRJ_PLATFORMS
-default
-
-PRJ_MMPFILES  
-javastarter_0x2002E6A7.mmp 
-#include "exports.inf" 
--- a/javaruntimes/standalone/build/javastarter_0x2002E6A7.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-/*
-* 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: Generated file - do not edit manually
-*
-*/
-
-// ==============================================================================
-// Generated by qmake (2.01a) (Qt 4.6.4) on: (date)
-// This file is generated by qmake and should not be modified by the
-// user.
-//  Name        : javastarter.mmp
-// ==============================================================================
-
-TARGET		javastarter.dll
-TARGETTYPE		DLL
-
-UID		0x1000008d 0x2002E6A7
-SECUREID		0x2002E6A7
-
-EPOCALLOWDLLDATA
-
-
-// Qt Macros
-MACRO		UNICODE
-MACRO		QT_KEYPAD_NAVIGATION
-MACRO		QT_SOFTKEYS_ENABLED
-MACRO		QT_USE_MATH_H_FLOATS
-MACRO		RD_JAVA_SYMBIAN_TARGET
-MACRO		RD_JAVA_S60_RELEASE_9_2
-MACRO		RD_JAVA_S60_RELEASE_9_2_ONWARDS
-MACRO		RD_JAVA_S60_RELEASE_5_0_ONWARDS
-MACRO		RD_JAVA_STDCPPV5
-MACRO		RD_JAVA_EPOCALLOWDLLDATA_FIX
-MACRO		RD_JAVA_HTTP_EMC_ENABLED
-MACRO		RD_JAVA_NGA_ENABLED
-MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
-MACRO		RD_JAVA_OPENC_BETA_PATCH
-MACRO		RD_JAVA_INSTALLERUI_ENABLED
-MACRO		RD_JAVA_PREWARM
-MACRO		RD_JAVA_ADVANCED_TACTILE_FEEDBACK
-MACRO		RD_JAVA_MIDPRMS_DB
-MACRO		__SYMBIAN32__
-MACRO		J9EPOC32
-
-SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
-SYSTEMINCLUDE		../inc
-SYSTEMINCLUDE		../../inc
-SYSTEMINCLUDE		../../../inc
-SYSTEMINCLUDE		../src
-SYSTEMINCLUDE		/epoc32/include/stdapis/stlportv5
-SYSTEMINCLUDE		/epoc32/include/mw
-SYSTEMINCLUDE		.
-
-SOURCEPATH 	../src
-SOURCE		javastarterimpl.cpp
-
-
-LIBRARY		javaruntimestarterutils.lib
-LIBRARY		javautils.lib
-LIBRARY		libpthread.lib
-LIBRARY		libstdcppv5.lib
-LIBRARY		libc.lib
-LIBRARY		libm.lib
-LIBRARY		euser.lib
-LIBRARY		libdl.lib
-LIBRARY		cone.lib
-LIBRARY		eikcore.lib
-LIBRARY		mediaclientaudio.lib
-LIBRARY		eikcoctl.lib
-LIBRARY		eiksrv.lib
-LIBRARY		apparc.lib
-LIBRARY		avkon.lib
-LIBRARY		efsrv.lib
-LIBRARY		charconv.lib
-LIBRARY		ws32.lib
-LIBRARY		hal.lib
-LIBRARY		gdi.lib
-LIBRARY		apgrfx.lib
-
-CAPABILITY		all -tcb 
-
-OPTION CW -wchar_t on
-OPTION ARMCC --visibility_inlines_hidden
-#if defined(ARMCC_4_0)
-OPTION ARMCC --import_all_vtbl
-#endif
-OPTION GCCE -fvisibility-inlines-hidden
-
-VERSION 10.525
-
-ARMFPU softvfp
-
-PAGED
-
-BYTEPAIRCOMPRESSTARGET
-
-USERINCLUDE .
-
-#include <platform_paths.hrh>
-
- APP_LAYER_SYSTEMINCLUDE
-
- OS_LAYER_LIBC_SYSTEMINCLUDE
-
- OS_LAYER_SSL_SYSTEMINCLUDE
-
-deffile ./~/javastarter.def
-
- SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlportv5)
-
-SYSTEMINCLUDE /epoc32/build/jrt/javabuild/inc.javah
-
-#ifdef WINSCW
-
-LIBRARY ewsd.lib
-
-#endif
-
-STDCPP
-
-#ifdef WINSCW
-DEFFILE ./bwins/javastarter.def
-#elif defined EABI
-DEFFILE ./eabi/javastarter.def
-#endif
--- a/javaruntimes/standalone/src/javastarterimpl.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaruntimes/standalone/src/javastarterimpl.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -171,12 +171,12 @@
 }
 
 JavaStarterImpl::JavaStarterImpl(const std::list<std::wstring>& args):
-    mJvmStarter(0),
-    mRuntimeStarterUtils(0),
-    mOriginalArgs(args),
-    mShudownOk(false),
-    mIsMainApp(true),
-    mConfiguration(JvmStarter::UNDEFINED)
+        mJvmStarter(0),
+        mRuntimeStarterUtils(0),
+        mOriginalArgs(args),
+        mShudownOk(false),
+        mIsMainApp(true),
+        mConfiguration(JvmStarter::UNDEFINED)
 
 {
     JELOG2(EJavaRuntime);
@@ -212,21 +212,14 @@
 
     // Create the start screen and start it if needed.
     std::auto_ptr<java::util::DynamicLibLoader> coreUiLoader;
+    CoreUi& coreUi = CoreUi::getUiInstance(coreUiLoader);
     if (mUiParams.getScreenMode() != NO_START_SCREEN)
     {
         LOG(EJavaRuntime, EInfo, "StartUI");
-        CoreUi::start(coreUiLoader, mAppUid, &mUiParams);
+        coreUi.start(mAppUid, &mUiParams);
         LOG(EJavaRuntime, EInfo, "StartUI ok");
     }
 
-    // Add the rest of the JVM args.
-    for (std::list<std::wstring>::const_iterator iter = mFlagArgs.begin();
-            iter != mFlagArgs.end(); ++iter)
-    {
-        LOG1(EJavaRuntime, EInfo, "Adding args %S", iter->c_str());
-        mJvmStarter->appendRawJvmArgument(*iter);
-    }
-
     // Sets the -jar, -jad, -cp (or -classpath) args if were provided.
     // Also a main class is set if needed.
     handleJadJarCpArgs();
--- a/javaruntimes/starter/build/bld.inf	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaruntimes/starter/build/bld.inf	Wed Oct 13 14:23:59 2010 +0300
@@ -19,5 +19,5 @@
 default
 
 PRJ_MMPFILES  
-javamidp_0x102033E6.mmp 
+java_0x102033E6.mmp 
 #include "exports.inf" 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javaruntimes/starter/build/java.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,52 @@
+#
+# 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: 
+#
+
+TEMPLATE=app
+TARGET=javamidp
+CONFIG += omj no_icon stl
+CONFIG -= qt
+
+include(../../../inc/build_defines.pri)
+
+symbian {
+
+contains(PROJECT_DEFINES,RD_JAVA_UI_QT) {
+    TARGET.EPOCSTACKSIZE = 81920
+}
+
+!contains(PROJECT_DEFINES,RD_JAVA_UI_QT) {
+    TARGET.EPOCSTACKSIZE = 16384
+}
+
+    TARGET.UID2 = 0x102033E6
+    TARGET.UID3 = 0x102033E6
+
+    TARGET.SID = 0x102033E6
+    TARGET.VID = 0x101FB657
+
+    TARGET.CAPABILITY = \
+        LocalServices NetworkServices ProtServ WriteDeviceData \
+        ReadDeviceData ReadUserData WriteUserData UserEnvironment  \
+        SwEvent Location MultiMediaDD NetworkControl TrustedUI
+}
+# For wins the max heap is 16 MB and for arm it is 64 MB
+MMP_RULES += "$${LITERAL_HASH}ifdef WINSCW"
+MMP_RULES += "EPOCHEAPSIZE        0x00001000 0x01000000"
+MMP_RULES += "$${LITERAL_HASH}else // WINSCW"
+MMP_RULES += "EPOCHEAPSIZE        0x00001000 0x04000000"
+MMP_RULES += "$${LITERAL_HASH}endif // WINSCW"
+
+include(../../../build/omj.pri)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javaruntimes/starter/build/java_0x102033E6.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,141 @@
+/*
+* 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: Generated file - do not edit manually
+*
+*/
+
+// ==============================================================================
+// Generated by qmake (2.01a) (Qt 4.6.4) on: (date)
+// This file is generated by qmake and should not be modified by the
+// user.
+//  Name        : java.mmp
+// ==============================================================================
+
+TARGET		javamidp.exe
+TARGETTYPE		EXE
+
+UID		0x102033E6 0x102033E6
+SECUREID		0x102033E6
+VENDORID		0x101FB657
+
+EPOCSTACKSIZE		16384
+EPOCALLOWDLLDATA
+
+
+// Qt Macros
+MACRO		UNICODE
+MACRO		QT_KEYPAD_NAVIGATION
+MACRO		QT_SOFTKEYS_ENABLED
+MACRO		QT_USE_MATH_H_FLOATS
+MACRO		RD_JAVA_SYMBIAN_TARGET
+MACRO		RD_JAVA_S60_RELEASE_9_2
+MACRO		RD_JAVA_S60_RELEASE_9_2_ONWARDS
+MACRO		RD_JAVA_S60_RELEASE_5_0_ONWARDS
+MACRO		RD_JAVA_STDCPPV5
+MACRO		RD_JAVA_EPOCALLOWDLLDATA_FIX
+MACRO		RD_JAVA_HTTP_EMC_ENABLED
+MACRO		RD_JAVA_NGA_ENABLED
+MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
+MACRO		RD_JAVA_OPENC_BETA_PATCH
+MACRO		RD_JAVA_INSTALLERUI_ENABLED
+MACRO		RD_JAVA_PREWARM
+MACRO		RD_JAVA_ADVANCED_TACTILE_FEEDBACK
+MACRO		RD_JAVA_MIDPRMS_DB
+MACRO		__SYMBIAN32__
+MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
+
+SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
+SYSTEMINCLUDE		../inc
+SYSTEMINCLUDE		../../inc
+SYSTEMINCLUDE		../../../inc
+SYSTEMINCLUDE		../src
+SYSTEMINCLUDE		/epoc32/include/stdapis/stlportv5
+SYSTEMINCLUDE		/epoc32/include/mw
+SYSTEMINCLUDE		.
+
+SOURCEPATH 	../src
+SOURCE		main.cpp
+
+
+LIBRARY		javautils.lib
+LIBRARY		libpthread.lib
+LIBRARY		libstdcppv5.lib
+LIBRARY		libc.lib
+LIBRARY		libm.lib
+LIBRARY		euser.lib
+LIBRARY		libdl.lib
+LIBRARY		cone.lib
+LIBRARY		eikcore.lib
+LIBRARY		mediaclientaudio.lib
+LIBRARY		eikcoctl.lib
+LIBRARY		eiksrv.lib
+LIBRARY		apparc.lib
+LIBRARY		avkon.lib
+LIBRARY		efsrv.lib
+LIBRARY		charconv.lib
+LIBRARY		ws32.lib
+LIBRARY		hal.lib
+LIBRARY		gdi.lib
+LIBRARY		apgrfx.lib
+STATICLIBRARY	libcrt0.lib
+
+CAPABILITY		LocalServices NetworkServices ProtServ WriteDeviceData ReadDeviceData ReadUserData WriteUserData UserEnvironment SwEvent Location MultiMediaDD NetworkControl TrustedUI 
+
+OPTION CW -wchar_t on
+OPTION ARMCC --visibility_inlines_hidden
+#if defined(ARMCC_4_0)
+OPTION ARMCC --import_all_vtbl
+#endif
+OPTION GCCE -fvisibility-inlines-hidden
+
+VERSION 10.0
+
+ARMFPU softvfp
+
+PAGED
+
+BYTEPAIRCOMPRESSTARGET
+
+USERINCLUDE .
+
+#ifdef WINSCW
+
+EPOCHEAPSIZE 0x00001000 0x01000000
+
+#else // WINSCW
+
+EPOCHEAPSIZE 0x00001000 0x04000000
+
+#endif // WINSCW
+
+#include <platform_paths.hrh>
+
+ APP_LAYER_SYSTEMINCLUDE
+
+ OS_LAYER_LIBC_SYSTEMINCLUDE
+
+ OS_LAYER_SSL_SYSTEMINCLUDE
+
+ SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlportv5)
+
+SYSTEMINCLUDE /epoc32/build/jrt/javabuild/inc.javah
+
+#ifdef WINSCW
+
+LIBRARY ewsd.lib
+
+#endif
+
+STDCPP
--- a/javaruntimes/starter/build/javamidp.pro	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-#
-# 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: 
-#
-
-TEMPLATE=app
-TARGET=javamidp
-CONFIG += omj no_icon stl
-CONFIG -= qt
-
-include(../../../inc/build_defines.pri)
-
-symbian {
-
-contains(PROJECT_DEFINES,RD_JAVA_UI_QT) {
-    TARGET.EPOCSTACKSIZE = 81920
-}
-
-!contains(PROJECT_DEFINES,RD_JAVA_UI_QT) {
-    TARGET.EPOCSTACKSIZE = 16384
-}
-
-    TARGET.UID2 = 0x102033E6
-    TARGET.UID3 = 0x102033E6
-
-    TARGET.SID = 0x102033E6
-    TARGET.VID = 0x101FB657
-
-    TARGET.CAPABILITY = \
-        LocalServices NetworkServices ProtServ WriteDeviceData \
-        ReadDeviceData ReadUserData WriteUserData UserEnvironment  \
-        SwEvent Location MultiMediaDD NetworkControl TrustedUI
-}
-# For wins the max heap is 16 MB and for arm it is 64 MB
-MMP_RULES += "$${LITERAL_HASH}ifdef WINSCW"
-MMP_RULES += "EPOCHEAPSIZE        0x00001000 0x01000000"
-MMP_RULES += "$${LITERAL_HASH}else // WINSCW"
-MMP_RULES += "EPOCHEAPSIZE        0x00001000 0x04000000"
-MMP_RULES += "$${LITERAL_HASH}endif // WINSCW"
-
-include(../../../build/omj.pri)
--- a/javaruntimes/starter/build/javamidp_0x102033E6.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +0,0 @@
-/*
-* 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: Generated file - do not edit manually
-*
-*/
-
-// ==============================================================================
-// Generated by qmake (2.01a) (Qt 4.6.4) on: (date)
-// This file is generated by qmake and should not be modified by the
-// user.
-//  Name        : javamidp.mmp
-// ==============================================================================
-
-TARGET		javamidp.exe
-TARGETTYPE		EXE
-
-UID		0x102033E6 0x102033E6
-SECUREID		0x102033E6
-VENDORID		0x101FB657
-
-EPOCSTACKSIZE		16384
-EPOCALLOWDLLDATA
-
-
-// Qt Macros
-MACRO		UNICODE
-MACRO		QT_KEYPAD_NAVIGATION
-MACRO		QT_SOFTKEYS_ENABLED
-MACRO		QT_USE_MATH_H_FLOATS
-MACRO		RD_JAVA_SYMBIAN_TARGET
-MACRO		RD_JAVA_S60_RELEASE_9_2
-MACRO		RD_JAVA_S60_RELEASE_9_2_ONWARDS
-MACRO		RD_JAVA_S60_RELEASE_5_0_ONWARDS
-MACRO		RD_JAVA_STDCPPV5
-MACRO		RD_JAVA_EPOCALLOWDLLDATA_FIX
-MACRO		RD_JAVA_HTTP_EMC_ENABLED
-MACRO		RD_JAVA_NGA_ENABLED
-MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
-MACRO		RD_JAVA_OPENC_BETA_PATCH
-MACRO		RD_JAVA_INSTALLERUI_ENABLED
-MACRO		RD_JAVA_PREWARM
-MACRO		RD_JAVA_ADVANCED_TACTILE_FEEDBACK
-MACRO		RD_JAVA_MIDPRMS_DB
-MACRO		__SYMBIAN32__
-MACRO		J9EPOC32
-
-SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
-SYSTEMINCLUDE		../inc
-SYSTEMINCLUDE		../../inc
-SYSTEMINCLUDE		../../../inc
-SYSTEMINCLUDE		../src
-SYSTEMINCLUDE		/epoc32/include/stdapis/stlportv5
-SYSTEMINCLUDE		/epoc32/include/mw
-SYSTEMINCLUDE		.
-
-SOURCEPATH 	../src
-SOURCE		main.cpp
-
-
-LIBRARY		javautils.lib
-LIBRARY		libpthread.lib
-LIBRARY		libstdcppv5.lib
-LIBRARY		libc.lib
-LIBRARY		libm.lib
-LIBRARY		euser.lib
-LIBRARY		libdl.lib
-LIBRARY		cone.lib
-LIBRARY		eikcore.lib
-LIBRARY		mediaclientaudio.lib
-LIBRARY		eikcoctl.lib
-LIBRARY		eiksrv.lib
-LIBRARY		apparc.lib
-LIBRARY		avkon.lib
-LIBRARY		efsrv.lib
-LIBRARY		charconv.lib
-LIBRARY		ws32.lib
-LIBRARY		hal.lib
-LIBRARY		gdi.lib
-LIBRARY		apgrfx.lib
-STATICLIBRARY	libcrt0.lib
-
-CAPABILITY		LocalServices NetworkServices ProtServ WriteDeviceData ReadDeviceData ReadUserData WriteUserData UserEnvironment SwEvent Location MultiMediaDD NetworkControl TrustedUI 
-
-OPTION CW -wchar_t on
-OPTION ARMCC --visibility_inlines_hidden
-#if defined(ARMCC_4_0)
-OPTION ARMCC --import_all_vtbl
-#endif
-OPTION GCCE -fvisibility-inlines-hidden
-
-VERSION 10.525
-
-ARMFPU softvfp
-
-PAGED
-
-BYTEPAIRCOMPRESSTARGET
-
-USERINCLUDE .
-
-#ifdef WINSCW
-
-EPOCHEAPSIZE 0x00001000 0x01000000
-
-#else // WINSCW
-
-EPOCHEAPSIZE 0x00001000 0x04000000
-
-#endif // WINSCW
-
-#include <platform_paths.hrh>
-
- APP_LAYER_SYSTEMINCLUDE
-
- OS_LAYER_LIBC_SYSTEMINCLUDE
-
- OS_LAYER_SSL_SYSTEMINCLUDE
-
- SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlportv5)
-
-SYSTEMINCLUDE /epoc32/build/jrt/javabuild/inc.javah
-
-#ifdef WINSCW
-
-LIBRARY ewsd.lib
-
-#endif
-
-STDCPP
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javaruntimes/starter/build/javamidp_installer.pkg	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,31 @@
+; javamidp_installer.pkg generated by qmake at 2010-09-28T12:11:56
+; This file is generated by qmake and should not be modified by the user
+;
+
+; Language
+&EN
+
+
+; SIS header: name, uid, version
+#{"javamidp installer"},(0xA000D7CE),1,0,0
+
+; Localised Vendor name
+%{"Vendor"}
+
+; Unique Vendor name
+:"Vendor"
+
+
+; Manual PKG pre-rules from PRO files
+pkg_depends_webkit
+pkg_depends_qt
+; Default HW/platform dependencies
+[0x101F7961],0,0,0,{"S60ProductID"}
+[0x102032BE],0,0,0,{"S60ProductID"}
+[0x102752AE],0,0,0,{"S60ProductID"}
+[0x1028315F],0,0,0,{"S60ProductID"}
+ 
+
+
+"R:/sf/app/jrt/javaruntimes/starter/build/javamidp.sis" - "c:\adm\javamidp.sis"
+@"R:/sf/mw/qt/smartinstaller.sis",(0x2002CCCD)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javaruntimes/starter/build/javamidp_template.pkg	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,32 @@
+; javamidp_template.pkg generated by qmake at 2010-09-28T12:11:56
+; This file is generated by qmake and should not be modified by the user
+;
+
+; Language
+&EN
+
+
+; SIS header: name, uid, version
+#{"javamidp"},(0x102033E6),1,0,0
+
+; Localised Vendor name
+%{"Vendor"}
+
+; Unique Vendor name
+:"Vendor"
+
+
+; Manual PKG pre-rules from PRO files
+pkg_depends_webkit
+pkg_depends_qt
+; Default HW/platform dependencies
+[0x101F7961],0,0,0,{"S60ProductID"}
+[0x102032BE],0,0,0,{"S60ProductID"}
+[0x102752AE],0,0,0,{"S60ProductID"}
+[0x1028315F],0,0,0,{"S60ProductID"}
+ 
+
+; Executable and default resource files
+"/epoc32/release/$(PLATFORM)/$(TARGET)/javamidp.exe"    - "!:\sys\bin\javamidp.exe"
+
+; Manual PKG post-rules from PRO files
--- a/javaruntimes/starterutils/build/exports.inf	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaruntimes/starterutils/build/exports.inf	Wed Oct 13 14:23:59 2010 +0300
@@ -11,14 +11,12 @@
 *
 * Contributors:
 *
-* Description:
+* Description: 
 *
 */
 
 PRJ_EXPORTS
 
-#include "../../../inc/build_defines.hrh"
-
 ../inc/jvmstarter.h             |../../../javaruntimes/inc/jvmstarter.h
 ../inc/runtimestarterutils.h    |../../../javaruntimes/inc/runtimestarterutils.h
 
--- a/javaruntimes/starterutils/build/javaruntimestarterutils_0x2002DCCC.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaruntimes/starterutils/build/javaruntimestarterutils_0x2002DCCC.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc
@@ -108,7 +108,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javaruntimes/starterutils/src.s60/j9starters60.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaruntimes/starterutils/src.s60/j9starters60.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -55,8 +55,8 @@
 
 J9StarterS60::J9StarterS60()
 #ifdef __WINSCW__
-    :
-    mVariant(0)
+        :
+        mVariant(0)
 #endif // __WINSCW__
 {
     JELOG2(EJavaRuntime);
@@ -65,8 +65,8 @@
 J9StarterS60::J9StarterS60(const Configuration configuration,
                            const std::wstring& indetifier)
 #ifdef __WINSCW__
-    :
-    mVariant(0)
+        :
+        mVariant(0)
 #endif // __WINSCW__
 {
     JELOG2(EJavaRuntime);
@@ -112,6 +112,7 @@
     mJvmArgs.push_back(L"-Xmso16k"); // Native thread stack size.
     mJvmArgs.push_back(L"-Dcom.nokia.mj.impl.rt.ui="
                        L"com.nokia.mj.impl.rt.ui.avkon.RuntimeUiAvkon");
+    mJvmArgs.push_back(L"-Dcom.nokia.coreui=coreuiavkon");
 #endif // RD_JAVA_UI_QT
 
     mJvmArgs.push_back(L"-Dfile.encoding=ISO-8859-1");
@@ -183,7 +184,7 @@
 void J9StarterS60::doOverideHeap(const std::wstring& arg, const std::wstring& size)
 {
     JELOG2(EJavaRuntime);
-    std::wstring maxHeapArg(arg);
+	std::wstring maxHeapArg(arg);
     maxHeapArg += size;
     maxHeapArg += L"K";
     mJvmArgs.push_back(maxHeapArg);
@@ -229,10 +230,6 @@
     {
         pathType = BOOT_CLASSPATH_TCKRUNNER;
     }
-    else if (mIdentifier == L"JavaControlPanel")
-    {
-        pathType = BOOT_CLASSPATH_JAVACONTROLPANEL;
-    }
 
     std::list<std::wstring> odcFiles;
     std::list<std::wstring> bcpEntities;
--- a/javaruntimes/subsystem.mk	Wed Sep 15 12:05:25 2010 +0300
+++ b/javaruntimes/subsystem.mk	Wed Oct 13 14:23:59 2010 +0300
@@ -26,8 +26,7 @@
 	installer/starterexe/build \
 	jvmargmodifier/default/build \
 	jvmargmodifier/file/build \
-	starterutils/build \
-	standalone/build \
+	starterutils/build
 
 ifdef RD_JAVA_S60_RELEASE_5_0_IAD
 	COMPONENTS += starter/build.iad
@@ -38,6 +37,5 @@
 starterutils/build: jvmargmodifier/default/build
 midp: starterutils/build
 installer/starterdll/build: starterutils/build
-standalone/build: starterutils/build
 
 include ${JAVA_SRC_ROOT}/build/Makefile.subsystem
--- a/javatools/bld.inf	Wed Sep 15 12:05:25 2010 +0300
+++ b/javatools/bld.inf	Wed Oct 13 14:23:59 2010 +0300
@@ -20,8 +20,6 @@
 
 #include "tckrunner/starter/build/bld.inf"    
 #include "tckrunner/runner/build/bld.inf"    
-#include "javacontrolpanel/starter/build/bld.inf"    
-#include "javacontrolpanel/controlpanel/build/bld.inf"    
 #include "javasecuritycustomization/build/bld.inf"    
-#include "javafinishjrtinstall/build/bld.inf"    
+#include "javacaptain_app/build/bld.inf"    
 #include "testcerts/bld.inf"  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javatools/javacaptain_app/build/bld.inf	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,22 @@
+/*
+* 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: 
+*
+*/
+
+PRJ_PLATFORMS
+default
+
+PRJ_MMPFILES
+javacaptainapp.mmp
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javatools/javacaptain_app/build/javacaptainapp.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,63 @@
+/*
+* 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: 
+*
+*/
+#include <bldvariant.hrh>
+#include <data_caging_paths.hrh>
+#include <platform_paths.hrh>
+#include <../../../inc/java_stdcpp_support_for_exe.hrh>
+#include <../../../inc/project_defines.hrh>
+
+TARGET          JavaCap.exe
+TARGETTYPE      exe
+UID             0x100039CE 0x20022D3C
+CAPABILITY      AllFiles WriteDeviceData PowerMgmt NetworkControl
+
+SOURCEPATH      ../src.s60
+SOURCE          javacap.cpp
+
+PAGED
+
+USERINCLUDE ../../../inc
+
+START RESOURCE  javacap.rss
+HEADER
+TARGETPATH      APP_RESOURCE_DIR
+LANG            SC
+END  // RESOURCE
+
+START RESOURCE  javacap_reg.rss
+// Do not change the UID below.
+TARGETPATH      /private/10003a3f/apps
+END
+
+LIBRARY         apparc.lib
+LIBRARY         cone.lib
+LIBRARY         eikcore.lib
+LIBRARY         eikcoctl.lib
+LIBRARY         avkon.lib
+LIBRARY         bafl.lib
+LIBRARY         egul.lib
+LIBRARY         ws32.lib
+LIBRARY         flogger.lib
+LIBRARY         efsrv.lib
+LIBRARY         centralrepository.lib
+
+LIBRARY javacomms.lib
+LIBRARY javaipc.lib
+LIBRARY javastorage.lib
+LIBRARY javadebugapi.lib
+  
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javatools/javacaptain_app/src.s60/javacap.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,685 @@
+/*
+* 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:  JavaCap
+*
+*/
+
+
+#include "comms.h"
+#include "rtcmessages.h"
+#include "coremessages.h"
+
+#include "logger.h"
+
+#include "javacap.h"
+#include "javacap.hrh"
+
+#include "javainifileutils.h"
+
+#include <centralrepository.h>
+#include <SWInstallerInternalCRKeys.h>
+
+#include "javastoragenames.h"                   // Storage constants.
+#include "securitystoragedatadefs.h"
+
+#include <javacap.rsg>
+
+_LIT(KJavaCapYes, "Yes");
+_LIT(KJavaCapNo,  "No");
+_LIT(KUserSecurityMode,  "User");
+_LIT(KNormalSecurityMode,  "Default");
+_LIT(KS60SecurityPolicyName,  "S60");
+_LIT(KMSASecurityPolicyName,  "MSA");
+_LIT(KATTSecurityPolicyName,  "AT&T");
+_LIT(KS60SecurityPolicy,  "s60");
+_LIT(KMSASecurityPolicy,  "msa");
+_LIT(KATTSecurityPolicy,  "att");
+// Java Security Policy Central Repository UID
+static const TUid KCRUidJavaSecurity = { 0x2001B289 };
+// IDs for security folder and file keys
+static const TUint32 KPolicy = 0x03;
+static const TUint32 KSecurityWarnings = 0x04;
+const int KS60SecurityPolicyId = 1;
+const int KMSASecurityPolicyId = 2;
+const int KATTSecurityPolicyId = 3;
+
+using namespace java::storage;
+using namespace std;
+using namespace java::util;
+using namespace java::comms;
+using namespace java::captain;
+
+void CJavaCaptainContainer::ConstructL(const TRect& aRect)
+{
+    JELOG2(EJavaCaptain);
+    mCaptainRunning = true;
+    mPrewarmEnabled = false;
+#if defined(RD_JAVA_PREWARM) && !defined (__WINS__)
+    mPrewarmEnabled = true;
+#endif // RD_JAVA_PREWARM
+    mPrewarmUiEnabled = false;
+    mDebugEnabled = false;
+    mRedirectEnabled = false;
+    iStorage.reset(JavaStorage::createInstance());
+    try
+    {
+        iStorage->open();
+    }
+    catch (JavaStorageException& aJse)
+    {
+        User::Leave(aJse.mStatus);
+    }
+    mUserSecurityModeEnabled = (GetSecurityWarningsMode() == SECURITY_WARNINGS_USER_DEFINED_MODE);
+    mSecurityPolicyId = GetSecurityPolicy();
+    mHeader = _L("Java states:");
+    updateStates();
+    CreateWindowL();
+    SetRect(aRect);
+    ActivateL();
+    mRedirector.reset(new LogRedirector());
+}
+
+CJavaCaptainContainer::~CJavaCaptainContainer()
+{
+    JELOG2(EJavaCaptain);
+}
+
+void CJavaCaptainContainer::Draw(const TRect& /*aRect*/) const
+{
+    JELOG2(EJavaCaptain);
+    CWindowGc& gc = SystemGc();
+    gc.Clear();
+
+    const CFont* usedFont = CEikonEnv::Static()->NormalFont();
+    gc.UseFont(usedFont);
+
+    gc.DrawText(mHeader,TPoint(10,20));
+    int pos = 50;
+    gc.DrawText(mCaptainState,TPoint(20,pos));
+    int gap = 25;
+    pos += gap;
+    gc.DrawText(mPrewarmState,TPoint(20,pos));
+    pos += gap;
+    gc.DrawText(mPrewarmUiState,TPoint(20,pos));
+    pos += gap;
+    gc.DrawText(mDebugState,TPoint(20,pos));
+    pos += gap;
+    gc.DrawText(mSecurityMode,TPoint(20,pos));
+    pos += gap;
+    gc.DrawText(mSecurityPolicy,TPoint(20,pos));
+    pos += gap;
+    gc.DrawText(mRedirectState,TPoint(20,pos));
+
+    gc.DiscardFont();
+}
+
+void CJavaCaptainContainer::updateStates()
+{
+
+    int propertyVal = java::util::JavaIniFileUtils::getProperty(java::util::UI_PREWARM);
+    if (propertyVal != -1)
+    {
+        mPrewarmUiEnabled = propertyVal;
+    }
+
+    mCaptainState = _L("Captain running:               ");
+    if (mCaptainRunning)
+    {
+        mCaptainState.Append(KJavaCapYes);
+    }
+    else
+    {
+        mCaptainState.Append(KJavaCapNo);
+    }
+
+    mPrewarmState = _L("Prewarm enabled:           ");
+    if (mPrewarmEnabled)
+    {
+        mPrewarmState.Append(KJavaCapYes);
+    }
+    else
+    {
+        mPrewarmState.Append(KJavaCapNo);
+    }
+
+    mPrewarmUiState = _L("Prewarm UI enabled:      ");
+    if (mPrewarmUiEnabled)
+    {
+        mPrewarmUiState.Append(KJavaCapYes);
+    }
+    else
+    {
+        mPrewarmUiState.Append(KJavaCapNo);
+    }
+
+    mDebugState = _L("Java Debug enabled:      ");
+    if (mDebugEnabled)
+    {
+        mDebugState.Append(KJavaCapYes);
+    }
+    else
+    {
+        mDebugState.Append(KJavaCapNo);
+    }
+
+    mSecurityMode = _L("Security warnings:      ");
+    if (mUserSecurityModeEnabled)
+    {
+        mSecurityMode.Append(KUserSecurityMode);
+    }
+    else
+    {
+        mSecurityMode.Append(KNormalSecurityMode);
+    }
+
+    mSecurityPolicy = _L("Security policy:      ");
+    switch (mSecurityPolicyId)
+    {
+    case KS60SecurityPolicyId:
+        mSecurityPolicy.Append(KS60SecurityPolicyName);
+        break;
+    case KMSASecurityPolicyId:
+        mSecurityPolicy.Append(KMSASecurityPolicyName);
+        break;
+    case KATTSecurityPolicyId:
+        mSecurityPolicy.Append(KATTSecurityPolicyName);
+        break;
+    default:
+        mSecurityPolicy.Append(KS60SecurityPolicyName);
+    }
+
+    mRedirectState = _L("Redirect logs:                   ");
+    if (mRedirectEnabled)
+    {
+        mRedirectState.Append(KJavaCapYes);
+    }
+    else
+    {
+        mRedirectState.Append(KJavaCapNo);
+    }
+
+    DrawDeferred();
+}
+
+void CJavaCaptainContainer::setCaptainState(bool running)
+{
+    mCaptainRunning = running;
+    updateStates();
+}
+
+
+
+#include "commsmessage.h"
+#include "commsclientendpoint.h"
+
+void CJavaCaptainContainer::handleStateChangeCmd(int cmd)
+{
+    switch (cmd)
+    {
+
+    case ETogglePrewarmEnable:
+    {
+        mPrewarmEnabled = !mPrewarmEnabled;
+        CommsMessage message;
+        message.setModuleId(PLUGIN_ID_JAVACAPTAIN_CORE_C);
+        if (mPrewarmEnabled)
+        {
+            message.setMessageId(CORE_MSG_ID_START_PREWARM);
+        }
+        else
+        {
+            message.setMessageId(CORE_MSG_ID_STOP_PREWARM);
+        }
+        CommsClientEndpoint comms;
+        comms.connect(IPC_ADDRESS_JAVA_CAPTAIN_C);
+        comms.send(message);
+        comms.disconnect();
+        break;
+    }
+    case ETogglePrewarmUiEnable:
+        mPrewarmUiEnabled = !mPrewarmUiEnabled;
+        java::util::JavaIniFileUtils::setProperty(java::util::UI_PREWARM, mPrewarmUiEnabled);
+        break;
+
+    case EDebugMode:
+    {
+        mDebugEnabled = !mDebugEnabled;
+
+        CommsMessage message;
+        std::wstring vmArgs = L"";
+        if (mDebugEnabled)
+        {
+            vmArgs = L"-Xrunjdwp:server=y,address=localhost:8000";
+        }
+        setSetExtraArguments(message, vmArgs, L"");
+
+        CommsClientEndpoint comms;
+        comms.connect(IPC_ADDRESS_JAVA_CAPTAIN_C);
+        comms.send(message);
+        comms.disconnect();
+    }
+    break;
+
+    case ESecurityMode:
+    {
+        mUserSecurityModeEnabled = !mUserSecurityModeEnabled;
+
+        if (mUserSecurityModeEnabled)
+        {
+            SetSecurityWarningsMode(SECURITY_WARNINGS_USER_DEFINED_MODE);
+        }
+        else
+        {
+            SetSecurityWarningsMode(SECURITY_WARNINGS_DEFAULT_MODE);
+        }
+    }
+    break;
+    case ES60SecurityPolicy:
+        mSecurityPolicyId = KS60SecurityPolicyId;
+        SetSecurityPolicy(mSecurityPolicyId);
+        break;
+    case EMSASecurityPolicy:
+        mSecurityPolicyId = KMSASecurityPolicyId;
+        SetSecurityPolicy(mSecurityPolicyId);
+        break;
+    case EATTSecurityPolicy:
+        mSecurityPolicyId = KATTSecurityPolicyId;
+        SetSecurityPolicy(mSecurityPolicyId);
+        break;
+
+    case ERedirectMode:
+        mRedirectEnabled = !mRedirectEnabled;
+        if (mRedirectEnabled)
+        {
+            mRedirector->start();
+        }
+        else
+        {
+            mRedirector->stop();
+        }
+        break;
+
+    default:
+        break;
+    }
+    updateStates();
+}
+
+std::wstring CJavaCaptainContainer::GetSecurityWarningsMode()
+{
+    try
+    {
+        JavaStorageApplicationEntry_t query;
+        JavaStorageApplicationList_t queryResult;
+        JavaStorageEntry attr;
+        attr.setEntry(ID, L"");
+        query.insert(attr);
+        attr.setEntry(SECURITY_WARNINGS, L"");
+        query.insert(attr);
+        iStorage->search(MIDP_PACKAGE_TABLE, query, queryResult);
+        JavaStorageApplicationList_t::const_iterator iterator;
+        JavaStorageApplicationList_t domainQueryResult;
+        for (iterator = queryResult.begin(); iterator != queryResult.end(); iterator++)
+        {
+            std::wstring securityWarnings = L"";
+            JavaStorageApplicationEntry_t entry = (*iterator);
+            findColumn(entry, SECURITY_WARNINGS, securityWarnings);
+            if (securityWarnings == SECURITY_WARNINGS_USER_DEFINED_MODE)
+            {
+                // make them all USER
+                SetSecurityWarningsMode(SECURITY_WARNINGS_USER_DEFINED_MODE);
+                return SECURITY_WARNINGS_USER_DEFINED_MODE;
+            }
+        }
+    }
+    catch (JavaStorageException& aJse)
+    {
+    }
+    // one mroe check: central repository
+    std::wstring securityWarningsMode = SECURITY_WARNINGS_DEFAULT_MODE;
+    TRAP_IGNORE(
+        CRepository* repository = CRepository::NewLC(KCRUidJavaSecurity);
+        TInt warningsMode;
+        User::LeaveIfError(repository->Get(KSecurityWarnings, warningsMode));
+        switch (warningsMode)
+{
+case 1:
+    securityWarningsMode = SECURITY_WARNINGS_USER_DEFINED_MODE;
+    break;
+case 2:
+    securityWarningsMode = SECURITY_WARNINGS_DEFAULT_MODE;
+    break;
+}
+CleanupStack::PopAndDestroy(repository););
+    return securityWarningsMode;
+}
+
+void CJavaCaptainContainer::SetSecurityWarningsMode(const std::wstring& aSecurityWarningsMode)
+{
+    try
+    {
+        JavaStorageApplicationEntry_t query;
+        JavaStorageApplicationList_t queryResult;
+        JavaStorageEntry attr;
+        attr.setEntry(ID, L"");
+        query.insert(attr);
+        iStorage->search(MIDP_PACKAGE_TABLE, query, queryResult);
+        JavaStorageApplicationList_t::const_iterator iterator;
+        JavaStorageApplicationList_t domainQueryResult;
+        for (iterator = queryResult.begin(); iterator != queryResult.end(); iterator++)
+        {
+            std::wstring uid = L"";
+            JavaStorageApplicationEntry_t entry = (*iterator);
+            findColumn(entry, ID, uid);
+            JavaStorageApplicationEntry_t oldEntry;
+            JavaStorageEntry oldAttr;
+            oldAttr.setEntry(ID, uid);
+            oldEntry.insert(oldAttr);
+            attr.setEntry(SECURITY_WARNINGS, aSecurityWarningsMode);
+            entry.clear();
+            entry.insert(attr);
+            iStorage->update(MIDP_PACKAGE_TABLE, entry, oldEntry);
+        }
+    }
+    catch (JavaStorageException& aJse)
+    {
+    }
+    // set the cenRep key as well
+    TRAP_IGNORE(
+        CRepository* repository = CRepository::NewLC(KCRUidJavaSecurity);
+        if (aSecurityWarningsMode == SECURITY_WARNINGS_USER_DEFINED_MODE)
+{
+    repository->Set(KSecurityWarnings, 1);
+    }
+    else
+    {
+        repository->Set(KSecurityWarnings, 2);
+    }
+    CleanupStack::PopAndDestroy(repository);
+    );
+}
+
+void  CJavaCaptainContainer::findColumn(const JavaStorageApplicationEntry_t& aEntry,
+                                        const wstring& aColName, wstring& aColValue)
+{
+    JavaStorageEntry findPattern;
+    findPattern.setEntry(aColName, L"");
+    JavaStorageApplicationEntry_t::const_iterator findIterator =
+        aEntry.find(findPattern);
+    if (findIterator != aEntry.end())
+    {
+        aColValue = findIterator->entryValue();
+    }
+}
+
+
+int CJavaCaptainContainer::GetSecurityPolicy()
+{
+    int securityPolicyId =KS60SecurityPolicyId;
+    TRAP_IGNORE(
+        CRepository* repository = CRepository::NewLC(KCRUidJavaSecurity);
+        HBufC* buf = HBufC::NewLC(NCentralRepositoryConstants::KMaxUnicodeStringLength);
+        TPtr policy(buf->Des());
+        User::LeaveIfError(repository->Get(KPolicy, policy));
+        if (policy.Compare(KS60SecurityPolicy) == 0)
+{
+    securityPolicyId = KS60SecurityPolicyId;
+}
+else if (policy.Compare(KMSASecurityPolicy) == 0)
+{
+    securityPolicyId = KMSASecurityPolicyId;
+}
+else if (policy.Compare(KATTSecurityPolicy) == 0)
+{
+    securityPolicyId = KATTSecurityPolicyId;
+}
+CleanupStack::PopAndDestroy(buf);
+CleanupStack::PopAndDestroy(repository););
+    return securityPolicyId;
+}
+
+void CJavaCaptainContainer::SetSecurityPolicy(int aSecurityPolicyId)
+{
+    TRAP_IGNORE(
+        CRepository* repository = CRepository::NewLC(KCRUidJavaSecurity);
+        switch (aSecurityPolicyId)
+{
+case KS60SecurityPolicyId:
+    User::LeaveIfError(repository->Set(KPolicy, KS60SecurityPolicy));
+        break;
+    case KMSASecurityPolicyId:
+        User::LeaveIfError(repository->Set(KPolicy, KMSASecurityPolicy));
+        break;
+    case KATTSecurityPolicyId:
+        User::LeaveIfError(repository->Set(KPolicy, KATTSecurityPolicy));
+        break;
+    }
+    CleanupStack::PopAndDestroy(repository););
+}
+
+//
+// CJavaCaptainAppUi
+//
+CJavaCaptainAppUi::~CJavaCaptainAppUi()
+{
+    JELOG2(EJavaCaptain);
+    RemoveFromStack(iAppView);
+    delete iAppView;
+    delete mPeriodic;
+}
+
+void CJavaCaptainAppUi::ConstructL()
+{
+    JELOG2(EJavaCaptain);
+    BaseConstructL();
+    iAppView=new(ELeave) CJavaCaptainContainer;
+    iAppView->SetMopParent(this);
+    iAppView->ConstructL(ClientRect());
+
+    iCoeEnv->RootWin().EnableFocusChangeEvents();
+    mPeriodic=CPeriodic::NewL(CActive::EPriorityStandard);
+
+    AddToStackL(iAppView);
+
+}
+
+_LIT(KExecutableName, "javacaptain.exe");
+
+void senMsgToSplash(int id)
+{
+    CommsMessage message;
+    message.setModuleId(1);
+    message.setMessageId(id);
+    CommsClientEndpoint comms;
+    comms.connect(10900);
+    comms.send(message);
+    comms.disconnect();
+}
+
+TInt CJavaCaptainAppUi::tick(TAny* appUi)
+{
+    CJavaCaptainAppUi* app = static_cast<CJavaCaptainAppUi*>(appUi);
+//    ELOG1(EJavaCaptain,"mActive: %d", app->mActive);
+    if (app->mActive)
+    {
+        senMsgToSplash(1);
+    }
+    else
+    {
+        senMsgToSplash(2);
+    }
+    app->mActive = !app->mActive;
+    return 0;
+}
+
+void CJavaCaptainAppUi::HandleCommandL(TInt aCommand)
+{
+    JELOG2(EJavaCaptain);
+
+    switch (aCommand)
+    {
+    case EAknSoftkeyExit:
+    case EEikCmdExit:
+        Exit();
+        break;
+    case ECaptainStart:
+    {
+        RProcess proc;
+        int st = proc.Create(KExecutableName, KExecutableName);
+        if (st == KErrNone)
+        {
+            proc.Resume();
+            iAppView->setCaptainState(true);
+        }
+        proc.Close();
+    }
+    break;
+
+    case ECaptainStop:
+    {
+        CommsMessage message;
+        message.setModuleId(PLUGIN_ID_JAVACAPTAIN_CORE_C);
+        message.setMessageId(CORE_MSG_ID_STOP_JAVACAPTAIN);
+        CommsClientEndpoint comms;
+        comms.connect(IPC_ADDRESS_JAVA_CAPTAIN_C);
+        comms.send(message);
+        comms.disconnect();
+        iAppView->setCaptainState(false);
+    }
+    break;
+
+    case EThreadDump:
+    {
+        CommsMessage message;
+        message.setModuleId(PLUGIN_ID_JAVACAPTAIN_CORE_C);
+        message.setMessageId(CORE_MSG_ID_DO_THREAD_DUMP);
+        CommsClientEndpoint comms;
+        comms.connect(IPC_ADDRESS_JAVA_CAPTAIN_C);
+        comms.send(message);
+        comms.disconnect();
+    }
+    break;
+
+    case ETogglePrewarmEnable:
+    case ETogglePrewarmUiEnable:
+    case EDebugMode:
+    case ESecurityMode:
+    case ES60SecurityPolicy:
+    case EMSASecurityPolicy:
+    case EATTSecurityPolicy:
+    case ERedirectMode:
+        iAppView->handleStateChangeCmd(aCommand);
+        break;
+
+    default:
+        Exit();
+        break;
+    }
+}
+
+CEikAppUi* CJavaCaptainEikDocument::CreateAppUiL()
+{
+    JELOG2(EJavaCaptain);
+    return(new(ELeave) CJavaCaptainAppUi);
+}
+
+void CJavaCaptainEikDocument::ConstructL()
+{
+    JELOG2(EJavaCaptain);
+}
+
+TUid CJavaCaptainApplication::AppDllUid() const
+{
+    JELOG2(EJavaCaptain);
+    return KUidJavaCaptain;
+}
+
+CApaDocument* CJavaCaptainApplication::CreateDocumentL()
+{
+    JELOG2(EJavaCaptain);
+    CJavaCaptainEikDocument* document=new(ELeave) CJavaCaptainEikDocument(*this);
+    CleanupStack::PushL(document);
+    document->ConstructL();
+    CleanupStack::Pop();
+    return(document);
+}
+
+#include <eikstart.h>
+
+LOCAL_C CApaApplication* NewApplication()
+{
+    JELOG2(EJavaCaptain);
+    return new CJavaCaptainApplication;
+}
+
+
+GLDEF_C TInt E32Main()
+{
+    JELOG2(EJavaCaptain);
+    return EikStart::RunApplication(NewApplication);
+}
+
+
+#include <fcntl.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+LogRedirector::LogRedirector() : mFd(-1)
+{
+    iJavaDiagnostic.reset(JavaDiagnostic::createInstance());
+}
+
+LogRedirector::~LogRedirector()
+{
+}
+
+void LogRedirector::start()
+{
+    iJavaDiagnostic->setDiagnosticListener(*this);
+    mFd = open("c:\\data\\javaredirect.log", O_WRONLY | O_CREAT | O_APPEND, S_IRUSR | S_IWUSR);
+}
+
+void LogRedirector::stop()
+{
+    iJavaDiagnostic->removeDiagnosticListener();
+    close(mFd);
+    mFd = -1;
+}
+
+void LogRedirector::systemOut(const TDesC8& aData)
+{
+    write(aData);
+}
+
+void LogRedirector::systemErr(const TDesC8& aData)
+{
+    write(aData);
+}
+
+void LogRedirector::log(const TDesC8& aData)
+{
+    write(aData);
+}
+
+void LogRedirector::write(const TDesC8& aData)
+{
+    if (mFd > 0)
+    {
+        ::write(mFd, (const char*)aData.Ptr(), aData.Size());
+    }
+};
+
+
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javatools/javacaptain_app/src.s60/javacap.h	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,132 @@
+/*
+* 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:  JavaCap
+*
+*/
+
+#ifndef JAVACAP_H
+#define JAVACAP_H
+
+#include <aknapp.h>
+#include <aknappui.h>
+#include <AknDoc.h>
+#include <memory>
+#include <f32file.h>
+#include "javastorage.h"
+#include "javadiagnostic.h"
+using namespace java::debug;
+
+const TUid KUidJavaCaptain={ 0x20022D3C };
+class LogRedirector;
+
+class CJavaCaptainContainer : public CCoeControl
+{
+public:
+    void ConstructL(const TRect& aRect);
+    ~CJavaCaptainContainer();
+    static void ThreadMain(CJavaCaptainContainer*);
+    void updateStates();
+    void setCaptainState(bool running);
+    void handleStateChangeCmd(int cmd);
+
+private:
+    void StartCaptain();
+    void Draw(const TRect& aRect) const;
+    std::wstring GetSecurityWarningsMode();
+    void SetSecurityWarningsMode(const std::wstring& aSecurityWarningsMode);
+    int GetSecurityPolicy();
+    void SetSecurityPolicy(int);
+    void findColumn(const java::storage::JavaStorageApplicationEntry_t& aEntry, const std::wstring& aColName, std::wstring& aColValue);
+
+
+private:
+    TBuf<20>        mHeader;
+    TBuf<40>        mCaptainState;
+    TBuf<40>        mPrewarmState;
+    TBuf<40>        mPrewarmUiState;
+    TBuf<40>        mDebugState;
+    TBuf<40>        mSecurityMode;
+    TBuf<40>        mSecurityPolicy;
+    TBuf<40>        mRedirectState;
+
+    bool            mCaptainRunning;
+    bool            mPrewarmEnabled;
+    bool            mPrewarmUiEnabled;
+    bool            mDebugEnabled;
+    bool            mUserSecurityModeEnabled;
+    int             mSecurityPolicyId;
+    bool            mRedirectEnabled;
+
+    std::auto_ptr<java::storage::JavaStorage> iStorage;
+    std::auto_ptr<LogRedirector> mRedirector;
+};
+
+class CJavaCaptainEikDocument : public CAknDocument
+{
+public:
+    void ConstructL();
+    CJavaCaptainEikDocument(CEikApplication& aApp): CAknDocument(aApp) { }
+    ~CJavaCaptainEikDocument() {}
+private:
+    // from CAknDocument
+    CEikAppUi* CreateAppUiL();
+};
+
+class CJavaCaptainAppUi : public CAknAppUi
+{
+public:
+    void ConstructL();
+    ~CJavaCaptainAppUi();
+
+public:
+    static TInt tick(TAny* splash);
+
+private:
+    void HandleCommandL(TInt aCommand);
+    CJavaCaptainContainer* iAppView;
+    bool                   mActive;
+    CPeriodic*             mPeriodic;
+};
+
+class CJavaCaptainApplication : public CAknApplication
+{
+private:
+    // from CApaApplication
+    CApaDocument* CreateDocumentL();
+    TUid AppDllUid() const;
+};
+
+class LogRedirector : public DiagnosticListener
+{
+public:
+    LogRedirector();
+    ~LogRedirector();
+
+    void start();
+    void stop();
+
+    // DiagnosticListener methods
+    virtual void systemOut(const TDesC8& aData);
+    virtual void systemErr(const TDesC8& aData);
+    virtual void log(const TDesC8& aData);
+
+private:
+    void write(const TDesC8& aData);
+    std::auto_ptr<java::debug::JavaDiagnostic> iJavaDiagnostic;
+
+    int mFd;
+};
+
+#endif // JAVACAP_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javatools/javacaptain_app/src.s60/javacap.hrh	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,38 @@
+/*
+* 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 _JAVACAP_HRH
+#define _JAVACAP_HRH
+
+enum JavaCapCommandIds
+{
+    ECaptainCtl = 1,
+    EPrewarmCtl,
+    ECaptainStart,
+    ECaptainStop,
+    ETogglePrewarmEnable,
+    ETogglePrewarmUiEnable,
+    EThreadDump,
+    EDebugMode,
+    ESecurityMode,
+    ESecurityPolicy,
+    ES60SecurityPolicy,
+    EMSASecurityPolicy,
+    EATTSecurityPolicy,
+    ERedirectMode
+};
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javatools/javacaptain_app/src.s60/javacap.rss	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,114 @@
+/*
+* 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: 
+*
+*/
+NAME JACA
+
+#include <eikon.rh>
+#include <avkon.rh>
+#include <avkon.rsg>
+#include <avkon.hrh>
+
+#ifdef RD_SCALABLE_UI
+#include <appinfo.rh>
+#endif
+
+#include "javacap.hrh"
+
+#include <data_caging_paths_strings.hrh>
+
+RESOURCE RSS_SIGNATURE { }
+
+RESOURCE TBUF { buf="javacap"; }
+
+RESOURCE EIK_APP_INFO
+    {
+    menubar = r_javacap_menubar;
+    cba=R_AVKON_SOFTKEYS_OPTIONS_EXIT;
+    }
+
+#ifdef RD_SCALABLE_UI
+RESOURCE LOCALISABLE_APP_INFO r_localisable_app_info
+{
+    short_caption = "JavaCap";
+    caption_and_icon = CAPTION_AND_ICON_INFO
+    {
+        caption = "JavaCap";
+    };
+}
+#endif
+
+//----------------------------------------------------
+//   
+//    r_javacap_menubar
+//
+//----------------------------------------------------
+//
+RESOURCE MENU_BAR r_javacap_menubar
+    {
+    titles =
+        {
+        MENU_TITLE { menu_pane = r_javacap_menu; txt = "Menu"; }
+        };
+    }
+
+//----------------------------------------------------
+//   
+//    r_askello_menu
+//
+//----------------------------------------------------
+//
+RESOURCE MENU_PANE r_javacap_menu
+{
+    items =
+    {
+        MENU_ITEM { command = ECaptainCtl; txt = "JavaCaptain"; cascade = r_javacap_sub_menu;},
+        MENU_ITEM { command = EPrewarmCtl; txt = "Prewarm"; cascade = r_javacap_prewarm_menu; },
+        MENU_ITEM { command = EThreadDump; txt = "Thread dump";},
+        MENU_ITEM { command = EDebugMode; txt = "Change debug mode";},
+        MENU_ITEM { command = ESecurityMode; txt = "Change security warnings";},
+        MENU_ITEM { command = ESecurityPolicy; txt = "SecurityPolicy"; cascade = r_javacap_secpolicy_sub_menu;},
+        MENU_ITEM { command = ERedirectMode; txt = "Change redirect mode";}
+    };
+}
+
+RESOURCE MENU_PANE r_javacap_sub_menu
+{
+    items =
+    {
+        MENU_ITEM { command = ECaptainStart; txt = "Start Captain"; },
+        MENU_ITEM { command = ECaptainStop; txt = "Stop Captain"; }
+    };
+}
+
+RESOURCE MENU_PANE r_javacap_secpolicy_sub_menu
+{
+    items =
+    {
+        MENU_ITEM { command = ES60SecurityPolicy; txt = "S60"; },
+        MENU_ITEM { command = EMSASecurityPolicy; txt = "MSA"; },
+        MENU_ITEM { command = EATTSecurityPolicy; txt = "AT&T"; }
+    };
+}
+
+RESOURCE MENU_PANE r_javacap_prewarm_menu
+{
+    items =
+    {
+        MENU_ITEM { command = ETogglePrewarmEnable; txt = "Prewarm (on/off)"; },
+        MENU_ITEM { command = ETogglePrewarmUiEnable; txt = "Prewarm UI (on/off)"; }
+    };
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javatools/javacaptain_app/src.s60/javacap_reg.rss	Wed Oct 13 14:23:59 2010 +0300
@@ -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: 
+*
+*/
+#include <appinfo.rh>
+
+UID2 KUidAppRegistrationResourceFile
+UID3 0x20022D3C
+
+RESOURCE APP_REGISTRATION_INFO
+{
+    app_file = "JavaCap";
+    embeddability = KAppNotEmbeddable;
+    newfile=KAppDoesNotSupportNewFile;
+}
+
+// End of File
--- a/javatools/javacontrolpanel/controlpanel/build/bld.inf	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-/*
-* 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: Generated bld.inf -file
-*
-*/
-
-PRJ_PLATFORMS
-default
-
-PRJ_MMPFILES  
-javacontrolpanel_0x2002FF62.mmp 
--- a/javatools/javacontrolpanel/controlpanel/build/build.xml	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-<!--
-#
-# Copyright (c) 2010 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 name="javacontrolpanel" basedir="." default="deploy">
-
-  <import file="../../../../build/utilities.xml"/>
-
-  <property name="bootclasspath" value="${bootclasspath.cldc}"/>
-
-  <property name="javah.classnames" 
-            value="com.nokia.mj.impl.javacontrolpanel.JavaCaptain,
-                   com.nokia.mj.impl.javacontrolpanel.Redirector,
-                   com.nokia.mj.impl.javacontrolpanel.SecurityConfig"/>
-
-</project>
--- a/javatools/javacontrolpanel/controlpanel/build/bwins/javacontrolpanelu.def	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	?jni_lookup@@YAP6AXXZPBD@Z @ 1 NONAME ; void (*)(void) jni_lookup(char const *)
-
--- a/javatools/javacontrolpanel/controlpanel/build/eabi/javacontrolpanelu.def	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	_Z10jni_lookupPKc @ 1 NONAME
-
--- a/javatools/javacontrolpanel/controlpanel/build/javacontrolpanel.pro	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-#
-# Copyright (c) 2010 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:
-#
-
-TARGET=javacontrolpanel
-TEMPLATE=lib
-
-CONFIG += omj java stl
-CONFIG -= qt
-
-LIBS += -ljavastorage
-
-symbian {
-    LIBS += -ljavadebugapi -lcentralrepository
-}
-
-include(../../../../build/omj.pri)
--- a/javatools/javacontrolpanel/controlpanel/build/javacontrolpanel_0x2002FF62.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,152 +0,0 @@
-/*
-* 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: Generated file - do not edit manually
-*
-*/
-
-// ==============================================================================
-// Generated by qmake (2.01a) (Qt 4.6.4) on: (date)
-// This file is generated by qmake and should not be modified by the
-// user.
-//  Name        : javacontrolpanel.mmp
-// ==============================================================================
-
-TARGET		javacontrolpanel.dll
-TARGETTYPE		DLL
-
-UID		0x1000008d 0x2002FF62
-SECUREID		0x2002FF62
-
-EPOCALLOWDLLDATA
-
-
-// Qt Macros
-MACRO		UNICODE
-MACRO		QT_KEYPAD_NAVIGATION
-MACRO		QT_SOFTKEYS_ENABLED
-MACRO		QT_USE_MATH_H_FLOATS
-MACRO		RD_JAVA_SYMBIAN_TARGET
-MACRO		RD_JAVA_S60_RELEASE_9_2
-MACRO		RD_JAVA_S60_RELEASE_9_2_ONWARDS
-MACRO		RD_JAVA_S60_RELEASE_5_0_ONWARDS
-MACRO		RD_JAVA_STDCPPV5
-MACRO		RD_JAVA_EPOCALLOWDLLDATA_FIX
-MACRO		RD_JAVA_HTTP_EMC_ENABLED
-MACRO		RD_JAVA_NGA_ENABLED
-MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
-MACRO		RD_JAVA_OPENC_BETA_PATCH
-MACRO		RD_JAVA_INSTALLERUI_ENABLED
-MACRO		RD_JAVA_PREWARM
-MACRO		RD_JAVA_ADVANCED_TACTILE_FEEDBACK
-MACRO		RD_JAVA_MIDPRMS_DB
-MACRO		__SYMBIAN32__
-MACRO		J9EPOC32
-
-SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
-SYSTEMINCLUDE		../../../../inc
-SYSTEMINCLUDE		../src
-SYSTEMINCLUDE		../src.s60
-SYSTEMINCLUDE		/epoc32/include/stdapis/stlportv5
-SYSTEMINCLUDE		/epoc32/include/mw
-SYSTEMINCLUDE		.
-
-SOURCEPATH 	../src
-SOURCE		javacaptain.cpp
-SOURCE		redirector.cpp
-SOURCE		securityconfig.cpp
-
-SOURCEPATH 	../src.s60
-SOURCE		logredirector.cpp
-SOURCE		security.cpp
-
-
-LIBRARY		javastorage.lib
-LIBRARY		javadebugapi.lib
-LIBRARY		centralrepository.lib
-LIBRARY		javautils.lib
-LIBRARY		libpthread.lib
-LIBRARY		libstdcppv5.lib
-LIBRARY		libc.lib
-LIBRARY		libm.lib
-LIBRARY		euser.lib
-LIBRARY		libdl.lib
-LIBRARY		cone.lib
-LIBRARY		eikcore.lib
-LIBRARY		mediaclientaudio.lib
-LIBRARY		eikcoctl.lib
-LIBRARY		eiksrv.lib
-LIBRARY		apparc.lib
-LIBRARY		avkon.lib
-LIBRARY		efsrv.lib
-LIBRARY		charconv.lib
-LIBRARY		ws32.lib
-LIBRARY		hal.lib
-LIBRARY		gdi.lib
-LIBRARY		apgrfx.lib
-
-CAPABILITY		all -tcb 
-
-OPTION CW -wchar_t on
-OPTION ARMCC --visibility_inlines_hidden
-#if defined(ARMCC_4_0)
-OPTION ARMCC --import_all_vtbl
-#endif
-OPTION GCCE -fvisibility-inlines-hidden
-
-VERSION 10.525
-
-ARMFPU softvfp
-
-PAGED
-
-BYTEPAIRCOMPRESSTARGET
-
-USERINCLUDE .
-
-#include <platform_paths.hrh>
-
- APP_LAYER_SYSTEMINCLUDE
-
- OS_LAYER_LIBC_SYSTEMINCLUDE
-
- OS_LAYER_SSL_SYSTEMINCLUDE
-
-deffile ./~/javacontrolpanel.def
-
- SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlportv5)
-
-SYSTEMINCLUDE /epoc32/build/jrt/javabuild/inc.javah
-
-SOURCEPATH /epoc32/build/jrt/javabuild/javacontrolpanel
-
-SOURCE lookup.cpp
-
-SOURCEPATH /epoc32/build/jrt/javabuild/javacontrolpanel
-
-SOURCE jxe.c
-
-#ifdef WINSCW
-
-LIBRARY ewsd.lib
-
-#endif
-
-STDCPP
-
-#ifdef WINSCW
-DEFFILE ./bwins/javacontrolpanel.def
-#elif defined EABI
-DEFFILE ./eabi/javacontrolpanel.def
-#endif
--- a/javatools/javacontrolpanel/controlpanel/javasrc/com/nokia/mj/impl/javacontrolpanel/JavaCaptain.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,206 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-package com.nokia.mj.impl.javacontrolpanel;
-
-import com.nokia.mj.impl.utils.Logger;
-import com.nokia.mj.impl.comms.*;
-import com.nokia.mj.impl.comms.exception.*;
-
-
-class JavaCaptain
-{
-    private final static int PLUGIN_ID_JAVACAPTAIN_CORE_C = 13;
-    private final static int CORE_MSG_ID_STOP_JAVACAPTAIN = 130;
-    private final static int CORE_MSG_ID_DO_THREAD_DUMP = 131;
-    private final static int CORE_MSG_ID_START_PREWARM = 132;
-    private final static int CORE_MSG_ID_STOP_PREWARM = 133;
-    private final static int CORE_MSG_ID_GET_PREWARM = 134;
-
-    private final static int PLUGIN_ID_RTC_C = 1;
-    private final static int RTC_MSG_ID_SET_EXTRA_ARGUMENTS = 150;
-    private final static int RTC_MSG_ID_GET_EXTRA_ARGUMENTS = 151;
-
-    private final static String JVM_DEBUG_ARGS = "-Xrunjdwp:server=y,address=localhost:8000";
-
-    public JavaCaptain()
-    {
-    }
-
-    public boolean isRunning()
-    {
-        CommsEndpoint comms = new CommsEndpoint();
-        boolean isRunning = false;
-        try
-        {
-            comms.connect(CommsEndpoint.JAVA_CAPTAIN);
-            comms.disconnect();
-            isRunning = true;
-        }
-        catch (CommsException e)
-        {
-            e.printStackTrace();
-        }
-        finally
-        {
-            comms.destroy();
-        }
-        return isRunning;
-    }
-
-    public void start()
-    {
-        _start();
-        // wait until JC message loop is up
-        for(int i = 0; i < 5; i++)
-        {
-            try
-            {
-                Thread.sleep(30);
-            }
-            catch(InterruptedException e) {}
-            if (isRunning())
-            {
-                break;
-            }
-        }
-    }
-
-    public void stop()
-    {
-        CommsMessage message = createMessage();
-        message.setMessageId(CORE_MSG_ID_STOP_JAVACAPTAIN);
-        // waits until JC message loop is down
-        sendReceive(message);
-    }
-
-    public boolean isPrewarmEnabled()
-    {
-        CommsMessage message = createMessage();
-        message.setMessageId(CORE_MSG_ID_GET_PREWARM);
-        CommsMessage reply = sendReceive(message);
-        int enabled = reply.readInt();
-        return enabled == 1 ? true : false;
-    }
-
-    public void enablePrewarm(boolean aEnable)
-    {
-        CommsMessage message = createMessage();
-        if (aEnable)
-        {
-            message.setMessageId(CORE_MSG_ID_START_PREWARM);
-        }
-        else
-        {
-            message.setMessageId(CORE_MSG_ID_STOP_PREWARM);
-        }
-        send(message);
-    }
-
-    public void doThreadDump()
-    {
-        CommsMessage message = createMessage();
-        message.setMessageId(CORE_MSG_ID_DO_THREAD_DUMP);
-        send(message);
-    }
-
-    public boolean isDebugEnabled()
-    {
-        CommsMessage message = createDebugMessage();
-        message.setMessageId(RTC_MSG_ID_GET_EXTRA_ARGUMENTS);
-        CommsMessage receivedMessage = sendReceive(message);
-        String vmArgs = receivedMessage.readString();
-        boolean enabled = false;
-        if(vmArgs.compareTo(JVM_DEBUG_ARGS) == 0)
-        {
-            enabled = true;
-        }
-        return enabled;
-    }
-
-    public void enableDebug(boolean aEnable)
-    {
-        String vmArgs = "";
-        if (aEnable)
-        {
-            vmArgs = JVM_DEBUG_ARGS;
-        }
-
-        CommsMessage message = createDebugMessage();
-        message.setMessageId(RTC_MSG_ID_SET_EXTRA_ARGUMENTS);
-        message.write(vmArgs);
-        message.write(""); // appArgs
-        send(message);
-    }
-
-    private void send(CommsMessage aMessage)
-    {
-        CommsEndpoint comms = new CommsEndpoint();
-        try
-        {
-            comms.connect(CommsEndpoint.JAVA_CAPTAIN);
-            comms.send(aMessage);
-            comms.disconnect();
-        }
-        catch (CommsException e)
-        {
-            e.printStackTrace();
-        }
-        finally
-        {
-            comms.destroy();
-        }
-    }
-
-    private CommsMessage sendReceive(CommsMessage aMessage)
-    {
-        CommsEndpoint comms = new CommsEndpoint();
-        CommsMessage receivedMessage = new CommsMessage();
-        try
-        {
-            comms.connect(CommsEndpoint.JAVA_CAPTAIN);
-            receivedMessage = comms.sendReceive(aMessage, CommsEndpoint.WAIT_FOR_EVER);
-            comms.disconnect();
-        }
-        catch (CommsException e)
-        {
-            e.printStackTrace();
-        }
-        finally
-        {
-            comms.destroy();
-        }
-        return receivedMessage;
-    }
-
-    private CommsMessage createMessage()
-    {
-        CommsMessage message = new CommsMessage();
-        message.setModuleId(PLUGIN_ID_JAVACAPTAIN_CORE_C);
-        return message;
-    }
-
-    private CommsMessage createDebugMessage()
-    {
-        CommsMessage message = new CommsMessage();
-        message.setModuleId(PLUGIN_ID_RTC_C);
-        return message;
-    }
-
-    private native void _start();
-
-}
--- a/javatools/javacontrolpanel/controlpanel/javasrc/com/nokia/mj/impl/javacontrolpanel/JavaControlPanel.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-package com.nokia.mj.impl.javacontrolpanel;
-
-import com.nokia.mj.impl.utils.Logger;
-import com.nokia.mj.impl.rt.support.JvmInternal;
-import com.nokia.mj.impl.rt.support.ThreadEventListener;
-
-class JavaControlPanel
-{
-    /**
-     * JavaControlPanel main program.
-     *
-     * @param aArgs command line arguments
-     */
-    public static void main(String[] aArgs)
-    {
-        Logger.ILOG(Logger.EUtils, "JavaControlPanel.main starts");
-        int exitCode = 0;
-
-        try
-        {
-            JvmInternal.setThreadEventListener(new ThreadEventListener()
-            {
-                public void threadStarting(Thread newThread, Thread parentThread) {}
-                public void threadDied(Thread thread) {}
-                public void uncaughtException(Thread thread, Throwable throwable)
-                {
-                    String threadName = null;
-                    if (thread != null)
-                    {
-                        threadName = thread.getName();
-                    }
-                    Logger.ELOG(Logger.EUtils, "Unhandled exception in " +
-                                threadName, throwable);
-                }
-            });
-            exitCode = mainWithResult(aArgs);
-        }
-        catch (Throwable t)
-        {
-            Logger.ELOG(Logger.EUtils, "Unhandled exception in main", t);
-            exitCode = -1;
-        }
-
-        Logger.ILOG(Logger.EUtils, "JavaControlPanel.main exits with code " + exitCode);
-        System.exit(exitCode);
-    }
-
-    /**
-     * JavaControlPanel main program which returns error code indicating
-     * operation result.
-     *
-     * @param aArgs command line arguments
-     * @return error code indicating operation result
-     */
-    public static int mainWithResult(String[] aArgs)
-    {
-        if (aArgs.length == 0)
-        {
-            JavaControlPanelUi ui = new JavaControlPanelUi();
-            ui.show();
-        }
-        else
-        {
-            Logger.WLOG(Logger.EUtils, "JavaControlPanel making thread dump and exiting");
-            new JavaCaptain().doThreadDump();
-        }
-        return 0;
-    }
-
-}
--- a/javatools/javacontrolpanel/controlpanel/javasrc/com/nokia/mj/impl/javacontrolpanel/JavaControlPanelUi.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,434 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-package com.nokia.mj.impl.javacontrolpanel;
-
-import com.nokia.mj.impl.rt.support.Jvm;
-import org.eclipse.swt.layout.*;
-import org.eclipse.ercp.swt.mobile.*;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.*;
-import org.eclipse.swt.widgets.*;
-import org.eclipse.swt.graphics.*;
-
-import com.nokia.mj.impl.utils.Logger;
-
-class JavaControlPanelUi
-{
-    private JavaCaptain iCaptain;
-    private Redirector iRedirector;
-    private SecurityConfig iSecurity;
-
-    private Shell iShell;
-    private Button iJavaCaptain;
-    private Button iPrewarm;
-    private Button iThreadDump;
-    private Button iJavaDebug;
-    private Button iRedirect;
-    private Combo iSecurityWarnings;
-    private Combo iSecurityPolicy;
-
-    static
-    {
-        Jvm.loadSystemLibrary("javacontrolpanel");
-    }
-
-    public JavaControlPanelUi()
-    {
-        iCaptain = new JavaCaptain();
-        iRedirector = new Redirector();
-        iSecurity = new SecurityConfig();
-    }
-
-    public void show()
-    {
-        Display display = new Display();
-        iShell = new Shell(display);
-
-        createUi();
-        iShell.pack();
-        iShell.open();
-        handleOrientationChange();
-
-        while (!iShell.isDisposed())
-        {
-            if (!display.readAndDispatch())
-            {
-                display.sleep();
-            }
-        }
-        display.dispose();
-    }
-
-    private void exitEventLoop()
-    {
-        iRedirector.stop();
-        iShell.dispose();
-    }
-
-    private void createUi()
-    {
-        try
-        {
-            setLayout();
-            createJavaCaptainUi();
-            createPrewarmUi();
-            createThreadDumpUi();
-            createJavaDebugUi();
-            createSecurityWarningsUi();
-            createSecurityPolicyUi();
-            createRedirectLogsUi();
-            createCommands();
-            platformAdaptation();
-        }
-        catch (Throwable e)
-        {
-            Logger.ELOG(Logger.EUtils, "createUi failed", e);
-            exitEventLoop();
-        }
-    }
-
-    private void setLayout()
-    {
-        iShell.setText("Java Control Panel");
-        iShell.setLayout(new GridLayout(2, false));
-    }
-
-    private void createJavaCaptainUi()
-    {
-        Label label = new Label(iShell, SWT.NONE);
-        label.setText("Java Captain");
-        label.setLayoutData(new GridData(SWT.CENTER));
-
-        iJavaCaptain = new Button(iShell, SWT.TOGGLE);
-        iJavaCaptain.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-        iJavaCaptain.addSelectionListener(new SelectionListener()
-        {
-            public void widgetDefaultSelected(SelectionEvent aEvent)
-            {
-                widgetSelected(aEvent);
-            }
-            public void widgetSelected(SelectionEvent event)
-            {
-                javaCaptainPressed();
-            }
-        });
-        toggleJavaCaptain(iCaptain.isRunning());
-    }
-
-    private void createPrewarmUi()
-    {
-        Label label = new Label(iShell, SWT.NONE);
-        label.setText("Prewarm");
-        label.setLayoutData(new GridData(SWT.CENTER));
-
-        iPrewarm = new Button(iShell, SWT.TOGGLE);
-        iPrewarm.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-        iPrewarm.addSelectionListener(new SelectionListener()
-        {
-            public void widgetDefaultSelected(SelectionEvent aEvent)
-            {
-                widgetSelected(aEvent);
-            }
-            public void widgetSelected(SelectionEvent event)
-            {
-                prewarmPressed();
-            }
-        });
-        togglePrewarm(iCaptain.isPrewarmEnabled());
-    }
-
-    private void createThreadDumpUi()
-    {
-        Label label = new Label(iShell, SWT.NONE);
-        label.setText("Thread Dump");
-        label.setLayoutData(new GridData(SWT.CENTER));
-
-        iThreadDump = new Button(iShell, SWT.PUSH);
-        iThreadDump.setText("Dump");
-        iThreadDump.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-        iThreadDump.addSelectionListener(new SelectionListener()
-        {
-            public void widgetDefaultSelected(SelectionEvent aEvent)
-            {
-                widgetSelected(aEvent);
-            }
-            public void widgetSelected(SelectionEvent event)
-            {
-                threadDumpPressed();
-            }
-        });
-    }
-
-    private void createJavaDebugUi()
-    {
-        Label label = new Label(iShell, SWT.NONE);
-        label.setText("Java Debug");
-        label.setLayoutData(new GridData(SWT.CENTER));
-
-        iJavaDebug = new Button(iShell, SWT.TOGGLE);
-        iJavaDebug.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-        iJavaDebug.addSelectionListener(new SelectionListener()
-        {
-            public void widgetDefaultSelected(SelectionEvent aEvent)
-            {
-                widgetSelected(aEvent);
-            }
-            public void widgetSelected(SelectionEvent event)
-            {
-                javaDebugPressed();
-            }
-        });
-        toggleJavaDebug(iCaptain.isDebugEnabled());
-    }
-
-    private void createSecurityWarningsUi()
-    {
-        Label label = new Label(iShell, SWT.NONE);
-        label.setText("Security Warnings");
-        label.setLayoutData(new GridData(SWT.CENTER));
-
-        iSecurityWarnings = new Combo(iShell, SWT.DROP_DOWN | SWT.READ_ONLY);
-        for(int i = 0; i < SecurityConfig.MODES.length; i++)
-        {
-            iSecurityWarnings.add(SecurityConfig.MODES[i]);
-        }
-        iSecurityWarnings.select(iSecurity.getWarningsMode());
-        iSecurityWarnings.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-        iSecurityWarnings.addSelectionListener(new SelectionListener()
-        {
-            public void widgetDefaultSelected(SelectionEvent aEvent)
-            {
-                widgetSelected(aEvent);
-            }
-            public void widgetSelected(SelectionEvent event)
-            {
-                securityWarningsSelected();
-            }
-        });
-    }
-
-    private void createSecurityPolicyUi()
-    {
-        Label label = new Label(iShell, SWT.NONE);
-        label.setText("Security Policy");
-        label.setLayoutData(new GridData(SWT.CENTER));
-
-        iSecurityPolicy = new Combo(iShell, SWT.DROP_DOWN | SWT.READ_ONLY);
-        for(int i = 0; i < SecurityConfig.POLICIES.length; i++)
-        {
-            iSecurityPolicy.add(SecurityConfig.POLICIES[i]);
-        }
-        iSecurityPolicy.select(iSecurity.getSecurityPolicy());
-        iSecurityPolicy.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-        iSecurityPolicy.addSelectionListener(new SelectionListener()
-        {
-            public void widgetDefaultSelected(SelectionEvent aEvent)
-            {
-                widgetSelected(aEvent);
-            }
-            public void widgetSelected(SelectionEvent event)
-            {
-                securityPolicySelected();
-            }
-        });
-    }
-
-    private void createRedirectLogsUi()
-    {
-        Label label = new Label(iShell, SWT.NONE);
-        label.setText("Redirect Logs");
-        label.setLayoutData(new GridData(SWT.CENTER));
-
-        iRedirect = new Button(iShell, SWT.TOGGLE);
-        iRedirect.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
-        iRedirect.addSelectionListener(new SelectionListener()
-        {
-            public void widgetDefaultSelected(SelectionEvent aEvent)
-            {
-                widgetSelected(aEvent);
-            }
-            public void widgetSelected(SelectionEvent event)
-            {
-                redirectPressed();
-            }
-        });
-        toggleRedirect(iRedirector.isRedirecting());
-    }
-
-    private void createCommands()
-    {
-        Command exit = new Command(iShell, Command.EXIT, 0);
-        exit.setText("Exit");
-        exit.addSelectionListener(new SelectionListener()
-        {
-            public void widgetDefaultSelected(SelectionEvent aEvent)
-            {
-                widgetSelected(aEvent);
-            }
-            public void widgetSelected(SelectionEvent aEvent)
-            {
-                exitEventLoop();
-            }
-        });
-    }
-
-    private void platformAdaptation()
-    {
-        if (isLinux())
-        {
-            configureUi();
-        }
-    }
-
-    private void configureUi()
-    {
-        // add second dummy command so that menu bar is visible
-        new Command(iShell, Command.GENERAL, 0).setText("");
-
-        // disable not supported services
-        iRedirect.setEnabled(false);
-        iSecurityPolicy.setEnabled(false);
-        iSecurityWarnings.setEnabled(false);
-    }
-
-    private void handleOrientationChange()
-    {
-        iShell.addControlListener(new ControlListener()
-        {
-            private boolean handleEvent = false;
-            public void controlMoved(ControlEvent e)
-            {
-            }
-            public void controlResized(ControlEvent e)
-            {
-                // ignore first event that comes during startup
-                if (handleEvent)
-                {
-                    // avoid flickering during orientation change
-                    iShell.setVisible(false);
-                    iShell.layout();
-                    iShell.setVisible(true);
-                }
-                handleEvent = true;
-            }
-        });
-    }
-
-
-    private void javaCaptainPressed()
-    {
-        if (iJavaCaptain.getSelection())
-        {
-            iCaptain.start();
-            javaCaptainStarted();
-        }
-        else
-        {
-            iCaptain.stop();
-        }
-        toggleJavaCaptain(iJavaCaptain.getSelection());
-    }
-
-    private void toggleJavaCaptain(boolean aSelected)
-    {
-        iJavaCaptain.setText( aSelected ? "Running" : "Stopped");
-        iJavaCaptain.setSelection(aSelected);
-    }
-
-    private void prewarmPressed()
-    {
-        iCaptain.enablePrewarm(iPrewarm.getSelection());
-        togglePrewarm(iPrewarm.getSelection());
-    }
-
-    private void togglePrewarm(boolean aSelected)
-    {
-        iPrewarm.setText( aSelected ? "Enabled" : "Disabled");
-        iPrewarm.setSelection(aSelected);
-    }
-
-    private void threadDumpPressed()
-    {
-        iCaptain.doThreadDump();
-    }
-
-    private void javaDebugPressed()
-    {
-        iCaptain.enableDebug(iJavaDebug.getSelection());
-        toggleJavaDebug(iJavaDebug.getSelection());
-    }
-
-    private void toggleJavaDebug(boolean aSelected)
-    {
-        iJavaDebug.setText( aSelected ? "Enabled" : "Disabled");
-        iJavaDebug.setSelection(aSelected);
-    }
-
-    private void securityWarningsSelected()
-    {
-        iSecurity.setWarningsMode(iSecurityWarnings.getSelectionIndex());
-    }
-
-    private void securityPolicySelected()
-    {
-        iSecurity.setSecurityPolicy(iSecurityPolicy.getSelectionIndex());
-    }
-
-    private void redirectPressed()
-    {
-        if (iRedirect.getSelection())
-        {
-            iRedirector.start();
-        }
-        else
-        {
-            iRedirector.stop();
-        }
-        toggleRedirect(iRedirect.getSelection());
-    }
-
-    private void toggleRedirect(boolean aSelected)
-    {
-        iRedirect.setText( aSelected ? "Yes" : "No");
-        iRedirect.setSelection(aSelected);
-    }
-
-    private void javaCaptainStarted()
-    {
-        // some JavaCaptain services return to default settings
-        // when JC is restarted so refresh states
-        togglePrewarm(iCaptain.isPrewarmEnabled());
-        toggleJavaDebug(iCaptain.isDebugEnabled());
-    }
-
-    private boolean isLinux()
-    {
-        String platform = System.getProperty("os.name");
-        if (platform != null && platform.equalsIgnoreCase("linux"))
-        {
-            return true;
-        }
-        return false;
-    }
-
-}
-
-
-
-
-
--- a/javatools/javacontrolpanel/controlpanel/javasrc/com/nokia/mj/impl/javacontrolpanel/Redirector.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-package com.nokia.mj.impl.javacontrolpanel;
-
-class Redirector
-{
-    private int iHandle;
-
-    public Redirector()
-    {
-    }
-
-    public void start()
-    {
-        stop();
-        iHandle = _start();
-    }
-
-    public void stop()
-    {
-        if (isRedirecting())
-        {
-            _stop(iHandle);
-            iHandle = 0;
-        }
-    }
-
-    public boolean isRedirecting()
-    {
-        if (iHandle != 0)
-        {
-            return true;
-        }
-        else
-        {
-            return false;
-        }
-    }
-
-    private native int _start();
-    private native void _stop(int aHandle);
-
-}
--- a/javatools/javacontrolpanel/controlpanel/javasrc/com/nokia/mj/impl/javacontrolpanel/SecurityConfig.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-package com.nokia.mj.impl.javacontrolpanel;
-
-import com.nokia.mj.impl.utils.Logger;
-
-
-class SecurityConfig
-{
-    private static final String SECURITY_WARNINGS_USER_DEFINED_MODE = "1";
-    private static final String SECURITY_WARNINGS_DEFAULT_MODE = "2";
-
-    private static final int S60_SECURITY_POLICY_ID = 1;
-    private static final int MSA_SECURITY_POLICY_ID = 2;
-    private static final int ATT_SECURITY_POLICY_ID = 3;
-
-    public static final String MODES[] = { "Default", "User"};
-    public static final String POLICIES[] = { "S60", "MSA", "AT&T"};
-
-    public SecurityConfig()
-    {
-    }
-
-    public int getSecurityPolicy()
-    {
-        int index = _getSecurityPolicy() - 1;
-        return index;
-    }
-
-    public void setSecurityPolicy(int aPolicyIndex)
-    {
-        int id = aPolicyIndex + 1;
-        _setSecurityPolicy(id);
-    }
-
-    public int getWarningsMode()
-    {
-        String mode = _getSecurityWarningsMode();
-        int index = 0;
-        if (mode.compareTo(SECURITY_WARNINGS_USER_DEFINED_MODE) == 0 )
-        {
-            index = 1;
-        }
-        return index;
-    }
-
-    public void setWarningsMode(int aModeIndex)
-    {
-        if (aModeIndex == 0)
-        {
-            _setSecurityWarningsMode(SECURITY_WARNINGS_DEFAULT_MODE);
-        }
-        else
-        {
-            _setSecurityWarningsMode(SECURITY_WARNINGS_USER_DEFINED_MODE);
-        }
-    }
-
-    private native String _getSecurityWarningsMode();
-    private native void _setSecurityWarningsMode(String aMode);
-    private native int _getSecurityPolicy();
-    private native void _setSecurityPolicy(int aPolicyId);
-
-}
--- a/javatools/javacontrolpanel/controlpanel/javasrc/com/nokia/mj/impl/rt/javacontrolpanel/ApplicationInfoImpl.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-package com.nokia.mj.impl.rt.javacontrolpanel;
-
-import com.nokia.mj.impl.rt.support.ApplicationInfo;
-import com.nokia.mj.impl.utils.Uid;
-
-/**
- * @author Nokia Corporation
- * @version 1.0
- */
-
-public class ApplicationInfoImpl extends ApplicationInfo
-{
-    private String iProtectionDomain = null;
-
-    /**
-     */
-    public String getRuntimeType()
-    {
-        // See runtime types defined in ApplicationInfo class.
-        return "JavaControlPanel";
-    }
-
-    /**
-     */
-    public String getProtectionDomain()
-    {
-        return MANUFACTURER_DOMAIN;
-    }
-
-    /**
-     */
-    public Uid getUid()
-    {
-        return Uid.createUid("[2002FF61]");
-    }
-
-    /**
-     */
-    public Uid getSuiteUid()
-    {
-        throw new RuntimeException
-        ("Get suite uid is not applicable for JavaControlPanel");
-    }
-
-    /**
-     */
-    public String getSuiteName()
-    {
-        return getName();
-    }
-
-    /**
-     */
-    public String getName()
-    {
-        return "JavaControlPanel";
-    }
-
-    /**
-     */
-    public String getVendor()
-    {
-        return "Nokia";
-    }
-
-    /**
-     */
-    public String getVersion()
-    {
-        return "1.0.0";
-    }
-
-    /**
-     */
-    public String getRootPath()
-    {
-        throw new RuntimeException
-        ("getRootPath is not applicable for JavaControlPanel");
-    }
-
-    /**
-     */
-    public String getMainClass()
-    {
-        throw new RuntimeException
-        ("Get main class is not applicable for JavaControlPanel");
-    }
-
-    /**
-     */
-    public String getAttribute(String key)
-    {
-        return null;
-    }
-}
--- a/javatools/javacontrolpanel/controlpanel/javasrc/com/nokia/mj/impl/rt/javacontrolpanel/ApplicationUtilsImpl.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-package com.nokia.mj.impl.rt.javacontrolpanel;
-
-import com.nokia.mj.impl.rt.support.ApplicationInfo;
-import com.nokia.mj.impl.rt.support.ApplicationUtils;
-import com.nokia.mj.impl.utils.Uid;
-import com.nokia.mj.impl.utils.Logger;
-
-import java.security.Permission;
-import java.security.AccessControlException;
-
-/**
- * @author Nokia Corporation
- * @version 1.0
- */
-public class ApplicationUtilsImpl extends ApplicationUtils
-{
-    public static void doShutdownImpl()
-    {
-        // Send shutdown notification to all registered listeners.
-        ((ApplicationUtilsImpl)sInstance).doShutdown();
-    }
-
-
-    public void notifyExitCmd()
-    {
-        Logger.ILOG(Logger.EUtils, "notifyExitCmd() - exiting");
-        System.exit(0);
-    }
-
-    public void checkPermission(Permission aPermission)
-    throws AccessControlException, NullPointerException
-    {
-        checkPermission(null, aPermission);
-    }
-
-    public void checkPermission(Uid aAppUid, Permission aPermission)
-    throws AccessControlException, NullPointerException
-    {
-        return;
-    }
-}
--- a/javatools/javacontrolpanel/controlpanel/src.s60/logredirector.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/*
-* Copyright (c) 2010 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: 
-*
-*/
-
-#include <fcntl.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include "logredirector.h"
-
-LogRedirector::LogRedirector() : mFd(-1)
-{
-    iJavaDiagnostic.reset(JavaDiagnostic::createInstance());
-}
-
-LogRedirector::~LogRedirector()
-{
-}
-
-void LogRedirector::start()
-{
-    iJavaDiagnostic->setDiagnosticListener(*this);
-    mFd = open("c:\\data\\javaredirect.log", O_WRONLY | O_CREAT | O_APPEND, S_IRUSR | S_IWUSR);
-}
-
-void LogRedirector::stop()
-{
-    iJavaDiagnostic->removeDiagnosticListener();
-    close(mFd);
-    mFd = -1;
-}
-
-void LogRedirector::systemOut(const TDesC8& aData)
-{
-    write(aData);
-}
-
-void LogRedirector::systemErr(const TDesC8& aData)
-{
-    write(aData);
-}
-
-void LogRedirector::log(const TDesC8& aData)
-{
-    write(aData);
-}
-
-void LogRedirector::write(const TDesC8& aData)
-{
-    if (mFd > 0)
-    {
-        ::write(mFd, (const char*)aData.Ptr(), aData.Size());
-    }
-};
-
--- a/javatools/javacontrolpanel/controlpanel/src.s60/logredirector.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
-* Copyright (c) 2010 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 LOGREDIRECTOR_H
-#define LOGREDIRECTOR_H
-
-#include <memory>
-#include "javadiagnostic.h"
-using namespace java::debug;
-
-class LogRedirector : public DiagnosticListener
-{
-public:
-    LogRedirector();
-    ~LogRedirector();
-
-    void start();
-    void stop();
-
-    // DiagnosticListener methods
-    virtual void systemOut(const TDesC8& aData);
-    virtual void systemErr(const TDesC8& aData);
-    virtual void log(const TDesC8& aData);
-
-private:
-    void write(const TDesC8& aData);
-    std::auto_ptr<JavaDiagnostic> iJavaDiagnostic;
-    int mFd;
-};
-
-#endif // LOGREDIRECTOR_H
-
--- a/javatools/javacontrolpanel/controlpanel/src.s60/security.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,220 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-
-#include <centralrepository.h>
-#include <SWInstallerInternalCRKeys.h>
-
-#include "security.h"
-#include "logger.h"
-#include "javastoragenames.h"
-#include "securitystoragedatadefs.h"
-
-using namespace java::storage;
-using namespace std;
-
-_LIT(KS60SecurityPolicy,  "s60");
-_LIT(KMSASecurityPolicy,  "msa");
-_LIT(KATTSecurityPolicy,  "att");
-// Java Security Policy Central Repository UID
-static const TUid KCRUidJavaSecurity = { 0x2001B289 };
-// IDs for security folder and file keys
-static const TUint32 KPolicy = 0x03;
-static const TUint32 KSecurityWarnings = 0x04;
-
-const int S60_SECURITY_POLICY_ID = 1;
-const int MSA_SECURITY_POLICY_ID = 2;
-const int ATT_SECURITY_POLICY_ID = 3;
-
-
-Security::Security()
-{
-    try
-    {
-        iStorage.reset(JavaStorage::createInstance());
-        iStorage->open();
-    }
-    catch (JavaStorageException& e)
-    {
-        ELOG1(EUtils, "open storage connection failed, %s",  e.toString().c_str());
-    }
-}
-
-Security::~Security()
-{
-}
-
-std::wstring Security::getSecurityWarningsMode()
-{
-    try
-    {
-        JavaStorageApplicationEntry_t query;
-        JavaStorageApplicationList_t queryResult;
-        JavaStorageEntry attr;
-        attr.setEntry(ID, L"");
-        query.insert(attr);
-        attr.setEntry(SECURITY_WARNINGS, L"");
-        query.insert(attr);
-        iStorage->search(MIDP_PACKAGE_TABLE, query, queryResult);
-        JavaStorageApplicationList_t::const_iterator iterator;
-        JavaStorageApplicationList_t domainQueryResult;
-        for (iterator = queryResult.begin(); iterator != queryResult.end(); iterator++)
-        {
-            std::wstring securityWarnings = L"";
-            JavaStorageApplicationEntry_t entry = (*iterator);
-            findColumn(entry, SECURITY_WARNINGS, securityWarnings);
-            if (securityWarnings == SECURITY_WARNINGS_USER_DEFINED_MODE)
-            {
-                // make them all USER
-                setSecurityWarningsMode(SECURITY_WARNINGS_USER_DEFINED_MODE);
-                return SECURITY_WARNINGS_USER_DEFINED_MODE;
-            }
-        }
-    }
-    catch (JavaStorageException& aJse)
-    {
-    }
-    // one more check: central repository
-    std::wstring securityWarningsMode = SECURITY_WARNINGS_DEFAULT_MODE;
-    TRAP_IGNORE
-    (
-        CRepository* repository = CRepository::NewLC(KCRUidJavaSecurity);
-        TInt warningsMode;
-        User::LeaveIfError(repository->Get(KSecurityWarnings, warningsMode));
-        switch (warningsMode)
-        {
-        case 1:
-            securityWarningsMode = SECURITY_WARNINGS_USER_DEFINED_MODE;
-            break;
-        case 2:
-            securityWarningsMode = SECURITY_WARNINGS_DEFAULT_MODE;
-            break;
-        }
-        CleanupStack::PopAndDestroy(repository);
-    );
-    return securityWarningsMode;
-}
-
-void Security::setSecurityWarningsMode(const std::wstring& aSecurityWarningsMode)
-{
-    try
-    {
-        JavaStorageApplicationEntry_t query;
-        JavaStorageApplicationList_t queryResult;
-        JavaStorageEntry attr;
-        attr.setEntry(ID, L"");
-        query.insert(attr);
-        iStorage->search(MIDP_PACKAGE_TABLE, query, queryResult);
-        JavaStorageApplicationList_t::const_iterator iterator;
-        JavaStorageApplicationList_t domainQueryResult;
-        for (iterator = queryResult.begin(); iterator != queryResult.end(); iterator++)
-        {
-            std::wstring uid = L"";
-            JavaStorageApplicationEntry_t entry = (*iterator);
-            findColumn(entry, ID, uid);
-            JavaStorageApplicationEntry_t oldEntry;
-            JavaStorageEntry oldAttr;
-            oldAttr.setEntry(ID, uid);
-            oldEntry.insert(oldAttr);
-            attr.setEntry(SECURITY_WARNINGS, aSecurityWarningsMode);
-            entry.clear();
-            entry.insert(attr);
-            iStorage->update(MIDP_PACKAGE_TABLE, entry, oldEntry);
-        }
-    }
-    catch (JavaStorageException& aJse)
-    {
-    }
-    // set the cenRep key as well
-    TRAP_IGNORE
-    (
-        CRepository* repository = CRepository::NewLC(KCRUidJavaSecurity);
-        if (aSecurityWarningsMode == SECURITY_WARNINGS_USER_DEFINED_MODE)
-        {
-            repository->Set(KSecurityWarnings, 1);
-        }
-        else
-        {
-            repository->Set(KSecurityWarnings, 2);
-        }
-        CleanupStack::PopAndDestroy(repository);
-    );
-}
-
-void Security::findColumn(const JavaStorageApplicationEntry_t& aEntry,
-                           const wstring& aColName, wstring& aColValue)
-{
-    JavaStorageEntry findPattern;
-    findPattern.setEntry(aColName, L"");
-    JavaStorageApplicationEntry_t::const_iterator findIterator =
-        aEntry.find(findPattern);
-    if (findIterator != aEntry.end())
-    {
-        aColValue = findIterator->entryValue();
-    }
-}
-
-int Security::getSecurityPolicy()
-{
-    int securityPolicyId = S60_SECURITY_POLICY_ID;
-    TRAP_IGNORE
-    (
-        CRepository* repository = CRepository::NewLC(KCRUidJavaSecurity);
-        HBufC* buf = HBufC::NewLC(NCentralRepositoryConstants::KMaxUnicodeStringLength);
-        TPtr policy(buf->Des());
-        User::LeaveIfError(repository->Get(KPolicy, policy));
-        if (policy.Compare(KS60SecurityPolicy) == 0)
-        {
-            securityPolicyId = S60_SECURITY_POLICY_ID;
-        }
-        else if (policy.Compare(KMSASecurityPolicy) == 0)
-        {
-            securityPolicyId = MSA_SECURITY_POLICY_ID;
-        }
-        else if (policy.Compare(KATTSecurityPolicy) == 0)
-        {
-            securityPolicyId = ATT_SECURITY_POLICY_ID;
-        }
-        CleanupStack::PopAndDestroy(buf);
-        CleanupStack::PopAndDestroy(repository);
-    );
-    return securityPolicyId;
-
-}
-
-void Security::setSecurityPolicy(int aSecurityPolicyId)
-{
-    TRAP_IGNORE
-    (
-        CRepository* repository = CRepository::NewLC(KCRUidJavaSecurity);
-        switch (aSecurityPolicyId)
-        {
-        case S60_SECURITY_POLICY_ID:
-            User::LeaveIfError(repository->Set(KPolicy, KS60SecurityPolicy));
-            break;
-        case MSA_SECURITY_POLICY_ID:
-            User::LeaveIfError(repository->Set(KPolicy, KMSASecurityPolicy));
-            break;
-        case ATT_SECURITY_POLICY_ID:
-            User::LeaveIfError(repository->Set(KPolicy, KATTSecurityPolicy));
-            break;
-        }
-    CleanupStack::PopAndDestroy(repository);
-    );
-}
-
-
--- a/javatools/javacontrolpanel/controlpanel/src.s60/security.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
-* Copyright (c) 2010 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 SECURITY_H
-#define SECURITY_H
-
-#include <string>
-#include <memory>
-#include "javastorage.h"
-
-class Security
-{
-public:
-    Security();
-    ~Security();
-
-    std::wstring getSecurityWarningsMode();
-    void setSecurityWarningsMode(const std::wstring& aMode);
-    int getSecurityPolicy();
-    void setSecurityPolicy(int aPolicyId);
-
-private:
-    void findColumn(const java::storage::JavaStorageApplicationEntry_t& aEntry,
-                    const std::wstring& aColName, std::wstring& aColValue);
-
-    std::auto_ptr<java::storage::JavaStorage> iStorage;
-};
-
-#endif // SECURITY_H
--- a/javatools/javacontrolpanel/controlpanel/src/javacaptain.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-/*
-* Copyright (c) 2010 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:  JavaCaptain
-*
-*/
-
-
-#include "com_nokia_mj_impl_javacontrolpanel_JavaCaptain.h"
-
-#ifdef __SYMBIAN32__
-#include <spawn.h>
-#else
-#include <stdio.h>
-#endif
-
-#include <cstring>
-#include <errno.h>
-#include "logger.h"
-
-/*
- * Class:     com_nokia_mj_impl_javacontrolpanel_JavaCaptain
- * Method:    _start
- * Signature: ()V
- */
-JNIEXPORT void JNICALL Java_com_nokia_mj_impl_javacontrolpanel_JavaCaptain__1start
-  (JNIEnv *, jobject)
-{
-    int rc = 0;
-    int pid = 0;
-    char* av[2];
-    int index = 0;
-    av[index++] = "javacaptain";
-    av[index] = NULL;
-
-#ifdef __SYMBIAN32__
-    rc = posix_spawn(&pid, "javacaptain", NULL, NULL, av, NULL);
-#else
-    if (!(pid = fork()))
-    {
-        rc = execvp("javacaptain", av);
-        if (rc == -1)
-        {
-            rc = errno;
-        }
-    }
-#endif // __SYMBIAN32__
-
-    if (rc)
-    {
-        ELOG3(EUtils,"%s failed, %s - errno=%d", __PRETTY_FUNCTION__, strerror(rc), rc);
-    }
-
-}
-
--- a/javatools/javacontrolpanel/controlpanel/src/redirector.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-
-#include "com_nokia_mj_impl_javacontrolpanel_Redirector.h"
-#include "logger.h"
-#ifdef __SYMBIAN32__
-#include "logredirector.h"
-#endif
-
-/*
- * Class:     com_nokia_mj_impl_javacontrolpanel_Redirector
- * Method:    _start
- * Signature: ()I
- */
-JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_javacontrolpanel_Redirector__1start
-  (JNIEnv *, jobject)
-{
-#ifdef __SYMBIAN32__
-    LogRedirector* redirector = new LogRedirector();
-    redirector->start();
-    return (jint)redirector;
-#else
-    return 0;
-#endif
-}
-
-/*
- * Class:     com_nokia_mj_impl_javacontrolpanel_Redirector
- * Method:    _stop
- * Signature: (I)V
- */
-JNIEXPORT void JNICALL Java_com_nokia_mj_impl_javacontrolpanel_Redirector__1stop
-  (JNIEnv *, jobject, jint aHandle)
-{
-#ifdef __SYMBIAN32__
-    LogRedirector* redirector = reinterpret_cast<LogRedirector*>(aHandle);
-    redirector->stop();
-    delete redirector;
-#endif
-}
--- a/javatools/javacontrolpanel/controlpanel/src/securityconfig.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-#include <string>
-#include "com_nokia_mj_impl_javacontrolpanel_SecurityConfig.h"
-#include "javajniutils.h"
-
-#ifdef __SYMBIAN32__
-#include "security.h"
-#endif
-
-/*
- * Class:     com_nokia_mj_impl_javacontrolpanel_SecurityConfig
- * Method:    _getSecurityWarningsMode
- * Signature: ()Ljava/lang/String;
- */
-JNIEXPORT jstring JNICALL Java_com_nokia_mj_impl_javacontrolpanel_SecurityConfig__1getSecurityWarningsMode
-  (JNIEnv* aEnv, jobject)
-{
-#ifdef __SYMBIAN32__
-    Security security;
-    std::wstring mode = security.getSecurityWarningsMode();
-    return java::util::JniUtils::wstringToJstring(aEnv, mode);
-#else
-    return java::util::JniUtils::wstringToJstring(aEnv, L"2");;
-#endif
-}
-
-/*
- * Class:     com_nokia_mj_impl_javacontrolpanel_SecurityConfig
- * Method:    _setSecurityWarningsMode
- * Signature: (Ljava/lang/String;)V
- */
-JNIEXPORT void JNICALL Java_com_nokia_mj_impl_javacontrolpanel_SecurityConfig__1setSecurityWarningsMode
-  (JNIEnv* aEnv, jobject, jstring aMode)
-{
-#ifdef __SYMBIAN32__
-    Security security;
-    std::wstring mode = java::util::JniUtils::jstringToWstring(aEnv, aMode);
-    security.setSecurityWarningsMode(mode);
-#endif
-}
-
-/*
- * Class:     com_nokia_mj_impl_javacontrolpanel_SecurityConfig
- * Method:    _getSecurityPolicy
- * Signature: ()I
- */
-JNIEXPORT jint JNICALL Java_com_nokia_mj_impl_javacontrolpanel_SecurityConfig__1getSecurityPolicy
-  (JNIEnv *, jobject)
-{
-#ifdef __SYMBIAN32__
-    Security security;
-    return security.getSecurityPolicy();
-#else
-    return 1;
-#endif
-}
-
-/*
- * Class:     com_nokia_mj_impl_javacontrolpanel_SecurityConfig
- * Method:    _setSecurityPolicy
- * Signature: (I)V
- */
-JNIEXPORT void JNICALL Java_com_nokia_mj_impl_javacontrolpanel_SecurityConfig__1setSecurityPolicy
-  (JNIEnv *, jobject, jint aPolicyId)
-{
-#ifdef __SYMBIAN32__
-    Security security;
-    security.setSecurityPolicy(aPolicyId);
-#endif
-}
-
--- a/javatools/javacontrolpanel/starter/build/bld.inf	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-/*
-* 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: Generated bld.inf -file
-*
-*/
-
-PRJ_PLATFORMS
-default
-
-PRJ_MMPFILES  
-javacontrolpanel_0x2002FF61.mmp 
--- a/javatools/javacontrolpanel/starter/build/javacontrolpanel.pro	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-#
-# Copyright (c) 2010 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:
-#
-
-TEMPLATE=app
-TARGET=javacontrolpanel
-CONFIG += omj no_icon stl
-CONFIG -= qt
-
-INCLUDEPATH += ../../../../javaruntimes/inc
-LIBS += -ljavacomms -ljavaruntimestarterutils
-
-symbian {
-    TARGET.EPOCHEAPSIZE  = 0x020000 0x800000
-    TARGET.EPOCSTACKSIZE = 0x14000
-    TARGET.UID2 = 0x20004c45
-    TARGET.UID3 = 0x2002FF61
-    TARGET.SID = 0x2002FF61
-
-    TARGET.CAPABILITY = AllFiles WriteDeviceData PowerMgmt NetworkControl
-
-    MMP_RULES += "START RESOURCE ../data/javacontrolpanel_reg.rss"
-    MMP_RULES += "TARGETPATH /private/10003a3f/apps"
-    MMP_RULES += "END"
-}
-
-include(../../../../build/omj.pri)
--- a/javatools/javacontrolpanel/starter/build/javacontrolpanel_0x2002FF61.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +0,0 @@
-/*
-* 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: Generated file - do not edit manually
-*
-*/
-
-// ==============================================================================
-// Generated by qmake (2.01a) (Qt 4.6.4) on: (date)
-// This file is generated by qmake and should not be modified by the
-// user.
-//  Name        : javacontrolpanel.mmp
-// ==============================================================================
-
-TARGET		javacontrolpanel.exe
-TARGETTYPE		EXE
-
-UID		0x20004c45 0x2002FF61
-SECUREID		0x2002FF61
-
-EPOCSTACKSIZE		0x14000
-EPOCHEAPSIZE		0x020000 0x800000
-EPOCALLOWDLLDATA
-
-
-// Qt Macros
-MACRO		UNICODE
-MACRO		QT_KEYPAD_NAVIGATION
-MACRO		QT_SOFTKEYS_ENABLED
-MACRO		QT_USE_MATH_H_FLOATS
-MACRO		RD_JAVA_SYMBIAN_TARGET
-MACRO		RD_JAVA_S60_RELEASE_9_2
-MACRO		RD_JAVA_S60_RELEASE_9_2_ONWARDS
-MACRO		RD_JAVA_S60_RELEASE_5_0_ONWARDS
-MACRO		RD_JAVA_STDCPPV5
-MACRO		RD_JAVA_EPOCALLOWDLLDATA_FIX
-MACRO		RD_JAVA_HTTP_EMC_ENABLED
-MACRO		RD_JAVA_NGA_ENABLED
-MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
-MACRO		RD_JAVA_OPENC_BETA_PATCH
-MACRO		RD_JAVA_INSTALLERUI_ENABLED
-MACRO		RD_JAVA_PREWARM
-MACRO		RD_JAVA_ADVANCED_TACTILE_FEEDBACK
-MACRO		RD_JAVA_MIDPRMS_DB
-MACRO		__SYMBIAN32__
-MACRO		J9EPOC32
-
-SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
-SYSTEMINCLUDE		../../../../javaruntimes/inc
-SYSTEMINCLUDE		../../../../inc
-SYSTEMINCLUDE		../src
-SYSTEMINCLUDE		/epoc32/include/stdapis/stlportv5
-SYSTEMINCLUDE		/epoc32/include/mw
-SYSTEMINCLUDE		.
-
-SOURCEPATH 	../src
-SOURCE		main.cpp
-
-
-LIBRARY		javacomms.lib
-LIBRARY		javaruntimestarterutils.lib
-LIBRARY		javautils.lib
-LIBRARY		libpthread.lib
-LIBRARY		libstdcppv5.lib
-LIBRARY		libc.lib
-LIBRARY		libm.lib
-LIBRARY		euser.lib
-LIBRARY		libdl.lib
-LIBRARY		cone.lib
-LIBRARY		eikcore.lib
-LIBRARY		mediaclientaudio.lib
-LIBRARY		eikcoctl.lib
-LIBRARY		eiksrv.lib
-LIBRARY		apparc.lib
-LIBRARY		avkon.lib
-LIBRARY		efsrv.lib
-LIBRARY		charconv.lib
-LIBRARY		ws32.lib
-LIBRARY		hal.lib
-LIBRARY		gdi.lib
-LIBRARY		apgrfx.lib
-STATICLIBRARY	libcrt0.lib
-
-CAPABILITY		AllFiles WriteDeviceData PowerMgmt NetworkControl 
-
-OPTION CW -wchar_t on
-OPTION ARMCC --visibility_inlines_hidden
-#if defined(ARMCC_4_0)
-OPTION ARMCC --import_all_vtbl
-#endif
-OPTION GCCE -fvisibility-inlines-hidden
-
-VERSION 10.525
-
-ARMFPU softvfp
-
-PAGED
-
-BYTEPAIRCOMPRESSTARGET
-
-USERINCLUDE .
-
-START RESOURCE ../data/javacontrolpanel_reg.rss
-
-TARGETPATH /private/10003a3f/apps
-
-END
-
-#include <platform_paths.hrh>
-
- APP_LAYER_SYSTEMINCLUDE
-
- OS_LAYER_LIBC_SYSTEMINCLUDE
-
- OS_LAYER_SSL_SYSTEMINCLUDE
-
- SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlportv5)
-
-SYSTEMINCLUDE /epoc32/build/jrt/javabuild/inc.javah
-
-#ifdef WINSCW
-
-LIBRARY ewsd.lib
-
-#endif
-
-STDCPP
--- a/javatools/javacontrolpanel/starter/data/javacontrolpanel_reg.rss	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/*
-* Copyright (c) 2010 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: javacontrolpanel_reg.rss
-*
-*/
-
-
-#include <appinfo.rh>
-
-UID2 KUidAppRegistrationResourceFile
-UID3 0x2002FF61
-
-RESOURCE APP_REGISTRATION_INFO
-{
-    app_file = "JavaControlPanel";
-    embeddability = KAppEmbeddable;
-    newfile = KAppDoesNotSupportNewFile;
-}
-
-// End of File
--- a/javatools/javacontrolpanel/starter/src/main.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-/*
-* Copyright (c) 2010 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 program for the Java Manager process
-*
-*/
-
-#include <memory>
-#include <unistd.h>
-
-#include "logger.h"
-#include "exceptionbase.h"
-#include "runtimeexception.h"
-#include "javacommonutils.h"
-#include "runtimestarterutils.h"
-#include "jvmstarter.h"
-
-using namespace java::runtime;
-using namespace java::util;
-
-int startJvm(int argc, char *argv[]);
-const wchar_t* const JavaControlPanel_MAIN_CLASS = L"com.nokia.mj.impl.javacontrolpanel.JavaControlPanel";
-
-int main(int argc, char *argv[])
-{
-    LOG(EUtils, EInfo, "JavaControlPanel main()");
-    int result = -1;
-    try
-    {
-        result = startJvm(argc, argv);
-    }
-    catch (RuntimeException& e)
-    {
-        ELOG1(EUtils, "JavaControlPanel main() RuntimeException caught: %s ",
-              e.toString().c_str());
-    }
-
-    catch (ExceptionBase& e)
-    {
-        ELOG1(EUtils, "JavaControlPanel main() ExceptionBase caught: %s ",
-              e.toString().c_str());
-    }
-
-    catch (std::exception& e)
-    {
-        ELOG1(EUtils, "JavaControlPanel main() Exception %s caught", e.what());
-    }
-
-    LOG1(EUtils, EInfo, "JavaControlPanel EXIT = %d", result);
-    return result;
-}
-
-int startJvm(int argc, char *argv[])
-{
-    JELOG2(EUtils);
-
-    // Create instance of RuntimeStarterUtils for thread supervisioning.
-    std::auto_ptr<RuntimeStarterUtils> starterUtils(new RuntimeStarterUtils());
-    starterUtils->startThreadSupervisor();
-
-    // Create starter for starting the JVM
-    std::auto_ptr<JvmStarter>
-    jvm(JvmStarter::getJvmStarterInstance(JvmStarter::CLDC,
-                                          L"JavaControlPanel"));
-
-    // Set the debugging features available provided by the captain.
-    // starterUtils->enableDevelopmentFeatures(*jvm.get());
-    // jvm->enableThreadDumping();
-
-    jvm->appendSystemProperty(L"-Dcom.nokia.rt.port=javacontrolpanel");
-    jvm->setMainClass(JavaControlPanel_MAIN_CLASS);
-
-    for (int i = 1; i < argc; ++i)
-    {
-        jvm->appendApplicationArgument(
-            JavaCommonUtils::utf8ToWstring(argv[i]));
-    }
-
-    // Start the JVM.
-    return jvm->startJvm();
-}
--- a/javatools/javafinishjrtinstall/build/bld.inf	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-/*
-* 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: Generated bld.inf -file
-*
-*/
-
-PRJ_PLATFORMS
-default
-
-PRJ_MMPFILES  
-javafinishjrtinstall_0x20031E4D.mmp 
--- a/javatools/javafinishjrtinstall/build/javafinishjrtinstall.pro	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-#
-# Copyright (c) 2010 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: This application is executed by the native installer
-#              after a new version of Jrt has been installed from
-#              .sisx package on top of older Jrt version (e.g. when
-#              updating Jrt 2.1 to Jrt 2.2 via IAD).
-#              This application restarts Java Captain so that new
-#              version of the Jrt dlls is taken into use.
-#              All running MIDlets exit when Java Captain closes.
-#
-
-TEMPLATE=app
-TARGET=javafinishjrtinstall
-CONFIG += omj no_icon stl
-CONFIG -= qt
-
-symbian {
-    TARGET.EPOCSTACKSIZE = 0x5000
-    TARGET.UID3          = 0x20031E4D
-    TARGET.CAPABILITY    = PowerMgmt
-
-    SOURCES += ../src.s60/*.cpp
-
-    LIBS += -ljavautils -ljavacomms
-    }
-
-include(../../../build/omj.pri)
--- a/javatools/javafinishjrtinstall/build/javafinishjrtinstall_0x20031E4D.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,129 +0,0 @@
-/*
-* 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: Generated file - do not edit manually
-*
-*/
-
-// ==============================================================================
-// Generated by qmake (2.01a) (Qt 4.6.4) on: (date)
-// This file is generated by qmake and should not be modified by the
-// user.
-//  Name        : javafinishjrtinstall.mmp
-// ==============================================================================
-
-TARGET		javafinishjrtinstall.exe
-TARGETTYPE		EXE
-
-UID		0 0x20031E4D
-SECUREID		0x20031E4D
-
-EPOCSTACKSIZE		0x5000
-EPOCALLOWDLLDATA
-
-
-// Qt Macros
-MACRO		UNICODE
-MACRO		QT_KEYPAD_NAVIGATION
-MACRO		QT_SOFTKEYS_ENABLED
-MACRO		QT_USE_MATH_H_FLOATS
-MACRO		RD_JAVA_SYMBIAN_TARGET
-MACRO		RD_JAVA_S60_RELEASE_9_2
-MACRO		RD_JAVA_S60_RELEASE_9_2_ONWARDS
-MACRO		RD_JAVA_S60_RELEASE_5_0_ONWARDS
-MACRO		RD_JAVA_STDCPPV5
-MACRO		RD_JAVA_EPOCALLOWDLLDATA_FIX
-MACRO		RD_JAVA_HTTP_EMC_ENABLED
-MACRO		RD_JAVA_NGA_ENABLED
-MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
-MACRO		RD_JAVA_OPENC_BETA_PATCH
-MACRO		RD_JAVA_INSTALLERUI_ENABLED
-MACRO		RD_JAVA_PREWARM
-MACRO		RD_JAVA_ADVANCED_TACTILE_FEEDBACK
-MACRO		RD_JAVA_MIDPRMS_DB
-MACRO		__SYMBIAN32__
-MACRO		J9EPOC32
-
-SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
-SYSTEMINCLUDE		../../../inc
-SYSTEMINCLUDE		../src.s60
-SYSTEMINCLUDE		/epoc32/include/stdapis/stlportv5
-SYSTEMINCLUDE		/epoc32/include/mw
-SYSTEMINCLUDE		.
-
-SOURCEPATH 	../src.s60
-SOURCE		main.cpp
-
-
-LIBRARY		javautils.lib
-LIBRARY		javacomms.lib
-LIBRARY		libpthread.lib
-LIBRARY		libstdcppv5.lib
-LIBRARY		libc.lib
-LIBRARY		libm.lib
-LIBRARY		euser.lib
-LIBRARY		libdl.lib
-LIBRARY		cone.lib
-LIBRARY		eikcore.lib
-LIBRARY		mediaclientaudio.lib
-LIBRARY		eikcoctl.lib
-LIBRARY		eiksrv.lib
-LIBRARY		apparc.lib
-LIBRARY		avkon.lib
-LIBRARY		efsrv.lib
-LIBRARY		charconv.lib
-LIBRARY		ws32.lib
-LIBRARY		hal.lib
-LIBRARY		gdi.lib
-LIBRARY		apgrfx.lib
-STATICLIBRARY	libcrt0.lib
-
-CAPABILITY		PowerMgmt 
-
-OPTION CW -wchar_t on
-OPTION ARMCC --visibility_inlines_hidden
-#if defined(ARMCC_4_0)
-OPTION ARMCC --import_all_vtbl
-#endif
-OPTION GCCE -fvisibility-inlines-hidden
-
-VERSION 10.525
-
-ARMFPU softvfp
-
-PAGED
-
-BYTEPAIRCOMPRESSTARGET
-
-USERINCLUDE .
-
-#include <platform_paths.hrh>
-
- APP_LAYER_SYSTEMINCLUDE
-
- OS_LAYER_LIBC_SYSTEMINCLUDE
-
- OS_LAYER_SSL_SYSTEMINCLUDE
-
- SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlportv5)
-
-SYSTEMINCLUDE /epoc32/build/jrt/javabuild/inc.javah
-
-#ifdef WINSCW
-
-LIBRARY ewsd.lib
-
-#endif
-
-STDCPP
--- a/javatools/javafinishjrtinstall/src.s60/main.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-/*
-* Copyright (c) 2010 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:  This application is executed by the native installer
-*               after a new version of Jrt has been installed from
-*               .sisx package on top of older Jrt version (e.g. when
-*               updating Jrt 2.1 to Jrt 2.2 via IAD).
-*               This application restarts Java Captain so that new
-*               version of the Jrt dlls is taken into use.
-*               All running MIDlets exit when Java Captain closes.
-*/
-
-
-#include <e32base.h>
-#include <e32std.h>
-#include <unistd.h>
-#include <w32std.h>
-
-#include "comms.h"
-#include "commsclientendpoint.h"
-#include "commsmessage.h"
-#include "coremessages.h"
-#include "logger.h"
-#include "rtcmessages.h"
-
-using namespace java::comms;
-using namespace java::captain;
-
-
-void stopJavaCaptain()
-{
-    CommsMessage message;
-    message.setModuleId(PLUGIN_ID_JAVACAPTAIN_CORE_C);
-    message.setMessageId(CORE_MSG_ID_STOP_JAVACAPTAIN);
-    CommsClientEndpoint comms;
-    comms.connect(IPC_ADDRESS_JAVA_CAPTAIN_C);
-    int rc = comms.send(message);
-    while (rc == 0)
-    {
-        sleep(1);
-        WLOG(EJavaConverters, "javafinishjrtinstall: Waiting JavaCaptain to exit...");
-        rc = comms.send(message);
-    }
-    comms.disconnect();
-}
-
-
-void startJavaCaptain()
-{
-    _LIT(KJavaCaptainExe, "javacaptain.exe");
-    _LIT(KJavaCaptainArg, "");
-    RProcess proc;
-    int err = proc.Create(KJavaCaptainExe, KJavaCaptainArg);
-    if (err == KErrNone)
-    {
-        proc.Resume();
-        LOG(EJavaConverters, EInfo, 
-            "javafinishjrtinstall: startJavaCaptain javacaptain.exe was started ok");
-    }
-    else
-    {
-        ELOG1(EJavaConverters, 
-            "javafinishjrtinstall: startJavaCaptain start javacaptain.exe failed: %d", err);
-    }
-    proc.Close();
-}
-
-
-/**
- * Create cleanup stack and run the cleaner code inside TRAP harness
- * to log unexpected leaves.
- */
-TInt E32Main()
-{
-    CTrapCleanup* cleanupStack = CTrapCleanup::New();
-    stopJavaCaptain();
-    startJavaCaptain();
-    delete cleanupStack;
-    return KErrNone;
-}
--- a/javatools/javasecuritycustomization/build/javasecuritycustomization_0x20028786.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javatools/javasecuritycustomization/build/javasecuritycustomization_0x20028786.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -46,7 +46,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -54,6 +53,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../../inc
@@ -99,7 +99,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javatools/javatools.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javatools/javatools.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -16,9 +16,7 @@
 TEMPLATE = subdirs
 SUBDIRS += tckrunner/starter/build/tckrunner.pro 
 SUBDIRS += tckrunner/runner/build/tckrunner.pro 
-SUBDIRS += javacontrolpanel/starter/build/javacontrolpanel.pro 
-SUBDIRS += javacontrolpanel/controlpanel/build/javacontrolpanel.pro 
 SUBDIRS += javasecuritycustomization/build/javasecuritycustomization.pro 
-SUBDIRS += javafinishjrtinstall/build/javafinishjrtinstall.pro 
+BLD_INF_RULES.prj_extensions += "$${LITERAL_HASH}include \"javacaptain_app/build/bld.inf\""  
 BLD_INF_RULES.prj_extensions += "$${LITERAL_HASH}include \"testcerts/bld.inf\""  
 BLD_INF_RULES.prj_extensions += "prj_extensions" 
--- a/javatools/subsystem.mk	Wed Sep 15 12:05:25 2010 +0300
+++ b/javatools/subsystem.mk	Wed Oct 13 14:23:59 2010 +0300
@@ -19,9 +19,7 @@
 # Common
 COMPONENTS = \
 	tckrunner/starter/build \
-	tckrunner/runner/build \
-	javacontrolpanel/starter/build \
-	javacontrolpanel/controlpanel/build \
+	tckrunner/runner/build
 
 # Platform specific
 ifeq ($(BUILDENV),symbian)
@@ -42,14 +40,10 @@
 	usersettingsconfigurator/build \
 	javarestoreconverter/build 
 
-else
-
-COMPONENTS += \
-	javafinishjrtinstall/build
-
 endif
 
 NONQTSUBSYSTEMS += \
+	javacaptain_app/build \
 	testcerts
 
 endif
--- a/javatools/tckrunner/runner/build/tckrunner_0x2002DCE3.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javatools/tckrunner/runner/build/tckrunner_0x2002DCE3.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../../../inc
@@ -95,7 +95,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javatools/tckrunner/runner/javasrc/com/nokia/mj/impl/rt/tckrunner/ApplicationUtilsImpl.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javatools/tckrunner/runner/javasrc/com/nokia/mj/impl/rt/tckrunner/ApplicationUtilsImpl.java	Wed Oct 13 14:23:59 2010 +0300
@@ -20,7 +20,6 @@
 import com.nokia.mj.impl.rt.support.ApplicationInfo;
 import com.nokia.mj.impl.rt.support.ApplicationUtils;
 import com.nokia.mj.impl.utils.Uid;
-import com.nokia.mj.impl.utils.Logger;
 
 import java.security.Permission;
 import java.security.AccessControlException;
@@ -40,8 +39,6 @@
 
     public void notifyExitCmd()
     {
-        Logger.ILOG(Logger.ETckRunner, "notifyExitCmd() - exiting");
-        System.exit(0);
     }
 
     public void checkPermission(Permission aPermission)
--- a/javatools/tckrunner/runner/src/tckrunnernative.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javatools/tckrunner/runner/src/tckrunnernative.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -58,13 +58,12 @@
 {
     int rc = 0;
 
-    const char* av[MAX_PARAMS + 6];
+    const char* av[MAX_PARAMS + 5];
     int index = 0;
     av[index++] = java::runtime::JAVA_PROCESS;
     av[index++] = java::runtime::JAVA_INSTALLER_STARTER_DLL;
     av[index++] = "poll";
     av[index++] = "-address=tck";
-    av[index++] = "-drive=C";
 
     int args = aEnv->GetArrayLength(aArgs);
     char** installerArgs = new char*[args];
--- a/javatools/tckrunner/starter/build/tckrunner_0x2002121E.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javatools/tckrunner/starter/build/tckrunner_0x2002121E.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -47,7 +47,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -55,6 +54,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../../../../javaruntimes/inc
@@ -101,7 +101,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javauis/amms_akn/build/build.xml	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/amms_akn/build/build.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -27,7 +27,7 @@
        file -->
 
   <target name="compile">
-    <omj.javac classpath="${compile.result.root}/javalegacyutils/classes/collection:${compile.result.root}/javamobilemedia/classes/first"/>
+    <omj.javac classpath="${compile.result.root}/javalegacyutils/classes/collection:${compile.result.root}/javamobilemedia/classes/first:${compile.result.root}/javautils/classes/first"/>
   </target>
 
   <!-- Needed by the utilities.xml. See the description form the utilities.xml
--- a/javauis/amms_akn/build/javaamms.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/amms_akn/build/javaamms.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -26,14 +26,17 @@
 DEFINES += __JAVA_JSR234_TUNER
 
 
-INCLUDEPATH +=  ../ammscontrol/inc \
+INCLUDEPATH +=  /epoc32/include/mmf/common \
+                /epoc32/include/caf \
+                ../ammscontrol/inc \
                 ../ammscontrol/audio3D/inc \
                 ../ammscontrol/audioeffect/inc \
                 ../mmacontrol/inc \
                 ../module/inc \
                 ../src_tuner/native/external_include \
                 ../src_tuner/native/inc \
-                ../ammscontrol/inc 
+                ../ammscontrol/inc \
+                ../../mmapi_akn/baseline/inc
 
 
 SOURCES +=  ../ammscontrol/src/*.cpp \
@@ -44,7 +47,8 @@
             ../module/src/*.cpp
           
 contains(PROJECT_DEFINES,RD_JAVA_HTTP_EMC_ENABLED) {
-        INCLUDEPATH +=  ../mmacontrol/inc.emc \
+        INCLUDEPATH +=  ../../mmapi_akn/baseline/inc.emc \
+        ../mmacontrol/inc.emc \
         
         SOURCES += ../mmacontrol/src.emc/*.cpp
          
@@ -53,24 +57,33 @@
         -lmmfdevsound
 }
 else{
-			 INCLUDEPATH += ../mmacontrol/inc.mmf \
+			 INCLUDEPATH +=  ../../mmapi_akn/baseline/inc.mmf \
+        ../mmacontrol/inc.mmf \
         
 			  SOURCES += ../mmacontrol/src.mmf/*.cpp
 			  
 }
 
+contains(PROJECT_DEFINES,RD_JAVA_NGA_ENABLED) {
+				INCLUDEPATH +=  ../../mmapi_akn/baseline/inc.nga
+}
+else {
+				INCLUDEPATH +=  ../../mmapi_akn/baseline/inc.dsa
+}
+
+
 LIBS += -lAudioEqualizerEffect \
         -lAudioEqualizerUtility \
         -lCustomCommandUtility \
         -lDistanceAttenuationEffect \
-        -lDopplerbase \
+        -lDopplerBase \
         -lEnvironmentalReverbEffect \
         -lEnvironmentalReverbUtility \
         -lListenerDopplerEffect \
         -lListenerLocationEffect \
         -lListenerOrientationEffect \
         -lLocationBase \
-        -lmediaclientaudio \
+        -lMediaClientAudio \
         -lOrientationBase \
         -lRoomLevelEffect \
         -lSourceDopplerEffect \
--- a/javauis/amms_akn/build/javaamms_0x2002DC96.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/amms_akn/build/javaamms_0x2002DC96.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -48,7 +48,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -56,8 +55,11 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
+SYSTEMINCLUDE		/epoc32/include/mmf/common
+SYSTEMINCLUDE		/epoc32/include/caf
 SYSTEMINCLUDE		../ammscontrol/inc
 SYSTEMINCLUDE		../ammscontrol/audio3D/inc
 SYSTEMINCLUDE		../ammscontrol/audioeffect/inc
@@ -65,7 +67,10 @@
 SYSTEMINCLUDE		../module/inc
 SYSTEMINCLUDE		../src_tuner/native/external_include
 SYSTEMINCLUDE		../src_tuner/native/inc
+SYSTEMINCLUDE		../../mmapi_akn/baseline/inc
+SYSTEMINCLUDE		../../mmapi_akn/baseline/inc.emc
 SYSTEMINCLUDE		../mmacontrol/inc.emc
+SYSTEMINCLUDE		../../mmapi_akn/baseline/inc.nga
 SYSTEMINCLUDE		../../inc
 SYSTEMINCLUDE		../../../inc
 SYSTEMINCLUDE		../ammscontrol/src
@@ -180,14 +185,14 @@
 LIBRARY		AudioEqualizerUtility.lib
 LIBRARY		CustomCommandUtility.lib
 LIBRARY		DistanceAttenuationEffect.lib
-LIBRARY		Dopplerbase.lib
+LIBRARY		DopplerBase.lib
 LIBRARY		EnvironmentalReverbEffect.lib
 LIBRARY		EnvironmentalReverbUtility.lib
 LIBRARY		ListenerDopplerEffect.lib
 LIBRARY		ListenerLocationEffect.lib
 LIBRARY		ListenerOrientationEffect.lib
 LIBRARY		LocationBase.lib
-LIBRARY		mediaclientaudio.lib
+LIBRARY		MediaClientAudio.lib
 LIBRARY		OrientationBase.lib
 LIBRARY		RoomLevelEffect.lib
 LIBRARY		SourceDopplerEffect.lib
@@ -214,6 +219,7 @@
 LIBRARY		libdl.lib
 LIBRARY		cone.lib
 LIBRARY		eikcore.lib
+LIBRARY		mediaclientaudio.lib
 LIBRARY		eikcoctl.lib
 LIBRARY		eiksrv.lib
 LIBRARY		apparc.lib
@@ -234,7 +240,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javauis/amms_akn/mmacontrol/inc.emc/cammspancontrol.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/amms_akn/mmacontrol/inc.emc/cammspancontrol.h	Wed Oct 13 14:23:59 2010 +0300
@@ -21,7 +21,7 @@
 
 //  INCLUDES
 #include <e32base.h>
-#include <mmf/common/mmfstandardcustomcommands.h>
+#include <mmfstandardcustomcommands.h>
 #include <midiclientutility.h>
 #include "cammscontrol.h"
 
--- a/javauis/amms_akn/mmacontrol/inc.mmf/cammspancontrol.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/amms_akn/mmacontrol/inc.mmf/cammspancontrol.h	Wed Oct 13 14:23:59 2010 +0300
@@ -21,8 +21,8 @@
 
 //  INCLUDES
 #include <e32base.h>
-#include <mmf/common/mmfstandardcustomcommands.h>
-#include <midiclientutility.h>
+#include <MMFStandardCustomCommands.h>
+#include <MidiClientUtility.h>
 #include "CAMMSControl.h"
 
 // CONSTANTS
--- a/javauis/amms_akn/mmacontrol/inc/cammscustomcommandutility.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/amms_akn/mmacontrol/inc/cammscustomcommandutility.h	Wed Oct 13 14:23:59 2010 +0300
@@ -22,7 +22,7 @@
 //  INCLUDES
 #include <e32base.h>
 #include <CustomCommandUtility.h>
-#include <mmf/common/mmfcontroller.h>
+#include <mmfcontroller.h>
 
 // CLASS DECLARATION
 
--- a/javauis/amms_akn/mmacontrol/src.emc/cammsprioritycontrol.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/amms_akn/mmacontrol/src.emc/cammsprioritycontrol.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -25,7 +25,7 @@
 #include <cmmaplayerevent.h>
 #include <cmmaaudioplayer.h>
 #include <cmmaemcaudioplayer.h>
-#include <mmf/common/mmfcontroller.h>
+#include <mmfcontroller.h>
 #include <midiclientutility.h>
 
 
--- a/javauis/amms_akn/mmacontrol/src.mmf/cammsprioritycontrol.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/amms_akn/mmacontrol/src.mmf/cammsprioritycontrol.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -24,8 +24,8 @@
 #include "CAMMSPriorityControl.h"
 #include <CMMAPlayerEvent.h>
 #include <CMMAAudioPlayer.h>
-#include <mmf/common/mmfcontroller.h>
-#include <midiclientutility.h>
+#include <MMFController.h>
+#include <MidiClientUtility.h>
 
 
 
--- a/javauis/amms_akn/mmacontrol/src/cammsaudiooutputcontrol.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/amms_akn/mmacontrol/src/cammsaudiooutputcontrol.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -23,7 +23,7 @@
 #include <cmmaplayerevent.h>
 #include <cmmaaudioplayer.h>
 #include <cmmavideoplayer.h>
-#include <mmf/common/mmfcontroller.h>
+#include <mmfcontroller.h>
 #include <midiclientutility.h>
 #include <cammscustomcommandutility.h>
 #include <JniEnvWrapper.h>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/amms_akn/src_tuner/javasrc/com/nokia/amms/control/tuner/TunerControlImpl.java	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,548 @@
+/*
+* Copyright (c) 2005 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:  This class implements
+ *                javax.microedition.amms.control.tuner.TunerControl
+ *
+*/
+
+
+package com.nokia.amms.control.tuner;
+
+import javax.microedition.media.MediaException;
+import javax.microedition.media.Control;
+import com.nokia.microedition.media.InternalPlayer;
+import com.nokia.microedition.media.PlayerImpl;
+import com.nokia.microedition.media.Locator;
+import com.nokia.microedition.media.ManagerImpl;
+import com.nokia.microedition.media.control.ControlImpl;
+import com.nokia.mj.impl.rt.legacy.NativeError;
+
+public class TunerControlImpl
+        extends ControlImpl
+        implements javax.microedition.amms.control.tuner.TunerControl
+{
+    //preset name max length
+    private static final int MAX_PRESET_NAME_LENGTH = 100;
+    //max number of presets
+    private static final int MAX_NUMBER_OF_PRESETS = 20;
+    //all frequencys are in 100 Hertzs
+    private static final int HERTZ_MULTIPLIER = 100;
+
+    /**
+     * Constructor
+     */
+    public TunerControlImpl()
+    {
+        //JDEBUG( "AMMS TunerControlImpl Constructor" );
+    }
+
+    /**
+     * Gets the minimum frequency supported by this tuner
+     * with the given modulation.
+     *
+     * @param modulation The modulation whose supported minimum frequency
+     * is asked.
+     * @return The minimum frequency in 100 Hertzs.
+     * @throws IllegalArgumentException if the <code>modulation</code> is not supported or it is null.
+     */
+    public int getMinFreq(String aModulation)
+    {
+        if (aModulation != MODULATION_FM)
+        {
+            throw new IllegalArgumentException("Modulation is not valid.");
+        }
+
+        int minFreq = _getMinFreq(iEventSource,
+                                  iControlHandle);
+
+        NativeError.check(minFreq);
+
+        return minFreq / HERTZ_MULTIPLIER;
+    }
+
+    /**
+     * Gets the maximum frequency supported by this tuner
+     * with the given modulation.
+     *
+     * @param modulation The modulation whose supported maximum frequency
+     * is asked.
+     * @return The maximum frequency in 100 Hertzs.
+     * @throws IllegalArgumentException if the <code>modulation</code> is not supported or it is null.
+     */
+    public int getMaxFreq(String aModulation)
+    {
+        if (aModulation != MODULATION_FM)
+        {
+            throw new IllegalArgumentException("Modulation is not valid.");
+        }
+
+        int maxFreq = _getMaxFreq(iEventSource,
+                                  iControlHandle);
+
+        NativeError.check(maxFreq);
+
+        return maxFreq / HERTZ_MULTIPLIER;
+    }
+
+    /**
+     * Tunes to the given frequency or to the closest supported frequency.
+     *
+     * @param freq The frequency in 100 Hertzs that will be taken into use.
+     * If that frequency is not supported, the closest supported
+     * frequency will be taken into use.
+     *
+     * @param modulation The modulation to be used. <code>TunerControl</code> specifies
+     * predefined constants <code>MODULATION_FM</code> and <code>MODULATION_AM</code>
+     * but other modulations can be supported as well. Supported modulations can be queried
+     * by <code>System</code> property <code>tuner.modulations</code>.
+     *
+     * @throws IllegalArgumentException if <code>freq</code> is not inside the frequency band supported
+     * by the device or if the <code>modulation</code> is not supported or the <code>modulation</code> is null.
+     *
+     * @return the frequency in 100 Hertzs that was taken into use.
+     */
+    public int setFrequency(int aFreq, String aModulation)
+    {
+        if (aModulation != MODULATION_FM)
+        {
+            throw new IllegalArgumentException("Modulation is not valid.");
+        }
+
+        int freqInUse = _setFrequency(iEventSource,
+                                      iControlHandle,
+                                      aFreq * HERTZ_MULTIPLIER);
+
+        NativeError.check(freqInUse);
+
+        return freqInUse / HERTZ_MULTIPLIER;
+    }
+
+    /**
+     * Gets the frequency which the tuner has been tuned to.
+     *
+     * @return The frequency to which the device has been tuned, in 100 Hertzs.
+     */
+    public int getFrequency()
+    {
+        int freq = _getFrequency(iEventSource, iControlHandle);
+
+        NativeError.check(freq);
+
+        return freq / HERTZ_MULTIPLIER;
+    }
+
+    /**
+     * <p>Seeks for the next broadcast signal. If the end of the Player's
+     * frequency band is reached before a signal was found, the scan
+     * continues from the other end until a signal is found or the
+     * starting frequency is reached.</p>
+     *
+     * <p>After seeking, the frequency of the Player is the one that
+     * was returned or if nothing was found, the original frequency.</p>
+     *
+     * @param startFreq the frequency in 100 Hertzs wherefrom the scan starts (inclusive)
+     *
+     * @param modulation The modulation to be used. <code>TunerControl</code> specifies
+     * predefined constants <code>MODULATION_FM</code> and <code>MODULATION_AM</code>
+     * but other modulations can be supported as well. Supported modulations can be queried
+     * by <code>System</code> property <code>tuner.modulations</code>.
+     * @param upwards if <code>true</code>, the scan proceeds towards higher frequencies,
+     * otherwise towards lower frequencies
+     *
+     * @return The found frequency in 100 Hertzs or, if no signal was found, 0.
+     *
+     * @throws IllegalArgumentException if <code>startFreq</code> is not between the supported minimum
+     * and maximum frequencies or if the <code>modulation</code> is null.
+     * @throws MediaException if the seek functionality is not available for the given modulation.
+     */
+    public int seek(int aStartFreq, String aModulation, boolean aUpwards)
+    throws MediaException
+    {
+        if (aModulation != MODULATION_FM)
+        {
+            throw new IllegalArgumentException("Modulation is not valid.");
+        }
+
+        int foundFreq = _seek(iEventSource,
+                              iControlHandle,
+                              aStartFreq * HERTZ_MULTIPLIER,
+                              aUpwards);
+
+        NativeError.check(foundFreq);
+
+        return foundFreq / HERTZ_MULTIPLIER;
+    }
+
+    /**
+     * Gets the current squelching (muting in frequencies without broadcast)
+     * setting.
+     *
+     * @return <code>true</code> if squelch is on or <code>false</code> if squelch is off.
+     */
+    public boolean getSquelch()
+    {
+        int retValue = _getSquelch(iEventSource, iControlHandle);
+
+        NativeError.check(retValue);
+
+        if (retValue == NativeError.KErrNone)
+        {
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Sets squelching on or off. Squelching means muting the frequencies
+     * that do not contain radio broadcast.
+     *
+     * @param squelch <code>true</code> to turn the squelch on or <code>false</code> to turn the squelch off.
+     * @throws MediaException if the given squelch setting is not supported.
+     */
+    public void setSquelch(boolean aSquelch) throws MediaException
+    {
+        int err = _setSquelch(iEventSource, iControlHandle, aSquelch);
+
+        NativeError.check(err);
+    }
+
+    /**
+     * Gets the modulation in use.
+     *
+     * @return The modulation currently in use.
+     */
+    public String getModulation()
+    {
+        //only FM modulation is supported
+        return MODULATION_FM;
+    }
+
+    /**
+     * Gets the strength of the recepted signal.
+     *
+     * @return A value between 0 and 100 where 0 means the faintest and 100 the strongest possible signal strength.
+     * @throws MediaException if querying the signal strength is not supported.
+     */
+    public int getSignalStrength() throws MediaException
+    {
+        int signalStrength = _getSignalStrength(iEventSource,
+                                                iControlHandle);
+
+        if (signalStrength != NativeError.KErrNone)
+        {
+            throw new MediaException("Signal strength is not supported.");
+        }
+
+        return signalStrength;
+    }
+
+    /**
+     * Gets the stereo mode in use.
+     *
+     * @return The stereo mode in use. Stereo mode is one of <code>MONO</code>,
+     * <code>STEREO</code> or <code>AUTO</code>.
+     */
+    public int getStereoMode()
+    {
+        int stereoMode = _getStereoMode(iEventSource, iControlHandle);
+
+        NativeError.check(stereoMode);
+
+        return stereoMode;
+    }
+
+    /**
+     * Sets the stereo mode.
+     *
+     * @param mode The stereo mode to be used. Stereo mode is one of <code>MONO</code>,
+     * <code>STEREO</code> or <code>AUTO</code>.
+     * @throws IllegalArgumentException if the given mode is not supported.
+     */
+    public void setStereoMode(int aStereoMode)
+    {
+        if (aStereoMode != MONO && aStereoMode != STEREO && aStereoMode != AUTO)
+        {
+            throw new IllegalArgumentException();
+        }
+
+        int err = _setStereoMode(iEventSource, iControlHandle, aStereoMode);
+
+        if (err != NativeError.KErrNone)
+        {
+            throw new IllegalArgumentException("Stereo mode is not supported.");
+        }
+    }
+
+    /**
+     * Gets the number of presets. The numbering of presets starts from one and the largest
+     * preset number equals the value returned from this method.
+     *
+     * @return The number of presets, or zero if the presets are not supported.
+     */
+    public int getNumberOfPresets()
+    {
+
+        return 0;
+    }
+
+    /**
+     * Tunes the tuner by using settings specified in the preset. Changes to
+     * presets following a <code>usePreset</code> call do not tune the tuner automatically.
+     *
+     * @param preset the preset to be used.
+     * @throws IllegalArgumentException if <code>preset</code> &lt 1 or <code>preset</code> &gt number of presets.
+     */
+    public void usePreset(int aPreset)
+    {
+        if (aPreset < 0 || aPreset > MAX_NUMBER_OF_PRESETS)
+        {
+            throw new IllegalArgumentException("Preset out of preset range.");
+        }
+        int err = _usePreset(iEventSource, iControlHandle, aPreset);
+
+        NativeError.check(err);
+    }
+
+    /**
+     * Configures the preset using current frequency and modulation
+     * (and stereo mode if native presets support storing it).
+     *
+     * @param preset the preset to be set.
+     * @throws IllegalArgumentException if <code>preset</code> &lt 1 or <code>preset</code> &gt number of preset range.
+     * @throws SecurityException if setting presets has been prohibited.
+     */
+    public void setPreset(int aPreset)
+    {
+        if (aPreset < 0 || aPreset > MAX_NUMBER_OF_PRESETS)
+        {
+            throw new IllegalArgumentException("Preset out of preset range.");
+        }
+        int err = _setPreset(iEventSource, iControlHandle, aPreset);
+
+        NativeError.check(err);
+    }
+
+    /**
+     * Configures the preset using given settings.
+     * The stereo mode might not be stored if it is not supported by the presets.
+     * (In that case, <code>IllegalArgumentException</code> is not thrown.)
+     *
+     * @param preset the preset to be configured.
+     * @param freq the frequency of the preset in 100 Hertzs.
+     * @param mod the modulation of the preset.
+     * @param stereoMode the stereo mode of the preset.
+     * @throws IllegalArgumentException if <code>preset</code> &lt 1 or <code>preset</code> &gt number of presets or
+     * <code>freq</code> or <code>modulation</code> are not available or if the <code>modulation</code> is null or if <code>stereoMode</code> is not a supported stereo mode.
+     * @throws SecurityException if setting presets has been prohibited.
+     */
+    public void setPreset(int aPreset, int aFreq, String aModulation, int aStereoMode)
+    {
+        if (aPreset < 0 || aPreset > MAX_NUMBER_OF_PRESETS)
+        {
+            throw new IllegalArgumentException("Preset out of preset range.");
+        }
+        if (aModulation != MODULATION_FM)
+        {
+            throw new IllegalArgumentException("Modulation is not valid.");
+        }
+        if (aStereoMode != MONO && aStereoMode != STEREO && aStereoMode != AUTO)
+        {
+            throw new IllegalArgumentException("Stereo mode is not supported.");
+        }
+
+        int err = _setPreset(iEventSource, iControlHandle, aPreset, aFreq * HERTZ_MULTIPLIER, aStereoMode);
+
+        NativeError.check(err);
+    }
+
+    /**
+     * Gets the preset's frequency.
+     *
+     * @param preset the preset whose frequency is to be returned.
+     * @return The frequency of the preset in 100 Hertzs.
+     * @throws IllegalArgumentException if <code>preset</code> &lt 1 or <code>preset</code> &gt number of presets.
+     */
+    public int getPresetFrequency(int aPreset)
+    {
+        if (aPreset < 0 || aPreset > MAX_NUMBER_OF_PRESETS)
+        {
+            throw new IllegalArgumentException("Preset out of preset range.");
+        }
+
+        int presetFreq = _getPresetFrequency(iEventSource, iControlHandle, aPreset);
+
+        NativeError.check(presetFreq);
+
+        return presetFreq / HERTZ_MULTIPLIER;
+    }
+
+    /**
+     * Gets the preset's modulation.
+     *
+     * @param preset the preset whose modulation is to be returned.
+     * @return The modulation of the preset.
+     * @throws IllegalArgumentException if <code>preset</code> &lt 1 or <code>preset</code> &gt number of presets.
+     */
+    public String getPresetModulation(int aPreset)
+    {
+        if (aPreset < 0 || aPreset > MAX_NUMBER_OF_PRESETS)
+        {
+            throw new IllegalArgumentException("Preset out of preset range.");
+        }
+        return MODULATION_FM;
+    }
+
+    /**
+     * Gets the preset's stereo mode.
+     *
+     * @param preset the preset whose stereo mode is to be returned.
+     * @return The stereo mode of the preset. Stereo mode is one of
+     * <code>MONO</code>, <code>STEREO</code> or <code>AUTO</code>.
+     * @throws IllegalArgumentException if <code>preset</code> &lt 1 or <code>preset</code> &gt number of presets.
+     * @throws MediaException if the presets do not support storing of the stereo mode.
+     */
+    public int getPresetStereoMode(int aPreset) throws MediaException
+    {
+        if (aPreset < 0 || aPreset > MAX_NUMBER_OF_PRESETS)
+        {
+            throw new IllegalArgumentException("Preset out of preset range.");
+        }
+
+        int presetStereoMode = _getPresetStereoMode(iEventSource, iControlHandle, aPreset);
+
+        NativeError.check(presetStereoMode);
+
+        return presetStereoMode;
+    }
+
+    /**
+     * Gets the preset name.
+     *
+     * @param preset the preset whose name is to be returned.
+     * @return A <code>String</code> containing the preset name.
+     * @throws IllegalArgumentException if <code>preset</code> &lt 1 or <code>preset</code> &gt number of presets.
+     */
+    public String getPresetName(int aPreset)
+    {
+        if (aPreset < 0 || aPreset > MAX_NUMBER_OF_PRESETS)
+        {
+            throw new IllegalArgumentException("Preset out of preset range.");
+        }
+
+        int[] error = new int[ 1 ];
+
+        String presetName = _getPresetName(iEventSource, iControlHandle, aPreset, error);
+
+        NativeError.check(error[ 0 ]);
+
+        return presetName;
+    }
+
+    /**
+     * Sets the preset name.
+     *
+     * @param preset the preset whose name is to be set.
+     * @param name the name of the preset.
+     * @throws IllegalArgumentException if <code>preset</code> &lt 1 or <code>preset</code> &gt number of presets or
+     * if the <code>name</code> is null.
+     * @throws SecurityException if setting presets has been prohibited.
+     */
+    public void setPresetName(int aPreset, String aName)
+    {
+        if (aPreset < 0 || aPreset > MAX_NUMBER_OF_PRESETS)
+        {
+            throw new IllegalArgumentException("Preset out of preset range.");
+        }
+        if (aName.length() > MAX_PRESET_NAME_LENGTH)
+        {
+            throw new IllegalArgumentException("Preset name too long");
+        }
+
+        int err = _setPresetName(iEventSource, iControlHandle, aPreset, aName);
+
+        NativeError.check(err);
+    }
+
+
+    private native int _getMinFreq(int aEventSourceHandle,
+                                   int aTunerControlHandle);
+
+    private native int _getMaxFreq(int aEventSourceHandle,
+                                   int aTunerControlHandle);
+
+    private native int _setFrequency(int aEventSourceHandle,
+                                     int aTunerControlHandle,
+                                     int aFreq);
+
+    private native int _getFrequency(int aEventSourceHandle,
+                                     int aTunerControlHandle);
+
+
+    private native int _seek(int aEventSourceHandle,
+                             int aTunerControlHandle,
+                             int aStartFreq,
+                             boolean aUpwards);
+
+    private native int _getSquelch(int aEventSourceHandle,
+                                   int aTunerControlHandle);
+
+    private native int _setSquelch(int aEventSourceHandle,
+                                   int aTunerControlHandle,
+                                   boolean aSquelch);
+
+    private native int _getSignalStrength(int aEventSourceHandle,
+                                          int aTunerControlHandle);
+
+    private native int _getStereoMode(int aEventSourceHandle,
+                                      int aTunerControlHandle);
+
+    private native int _setStereoMode(int aEventSourceHandle,
+                                      int aTunerControlHandle,
+                                      int aStereoMode);
+
+    private native int _usePreset(int aEventSourceHandle,
+                                  int aTunerControlHandle,
+                                  int aPreset);
+
+    private native int _setPreset(int aEventSourceHandle,
+                                  int aTunerControlHandle,
+                                  int aPreset);
+
+    private native int _setPreset(int aEventSourceHandle,
+                                  int aTunerControlHandle,
+                                  int aPreset,
+                                  int aFreq,
+                                  int aStereoMode);
+
+    private native int _getPresetFrequency(int aEventSourceHandle,
+                                           int aTunerControlHandle,
+                                           int aPreset);
+
+    private native int _getPresetStereoMode(int aEventSourceHandle,
+                                            int aTunerControlHandle,
+                                            int aPreset);
+
+    private native int _setPresetName(int aEventSourceHandle,
+                                      int aTunerControlHandle,
+                                      int aPreset,
+                                      String aName);
+
+    private native String _getPresetName(int aEventSourceHandle,
+                                         int aTunerControlHandle,
+                                         int aPreset,
+                                         int[] aError);
+
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/amms_akn/src_tuner/javasrc/com/nokia/microedition/media/protocol/capture/radio/Protocol.java	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,84 @@
+/*
+* Copyright (c) 2005 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:  This class is capture://radio protocol
+ *
+*/
+
+package com.nokia.microedition.media.protocol.capture.radio;
+
+import com.nokia.microedition.media.Locator;
+import com.nokia.microedition.media.InternalPlayer;
+import com.nokia.microedition.media.PlayerImpl;
+import javax.microedition.media.MediaException;
+import com.nokia.mj.impl.rt.legacy.NativeError;
+import com.nokia.microedition.media.ManagerImpl;
+import com.nokia.amms.control.tuner.TunerControlImpl;
+
+/**
+ * This class is capture://radio protocol.
+ */
+public class Protocol
+        implements com.nokia.microedition.media.protocol.Protocol
+{
+    // Constants
+    private static final String TUNER_CONTROL_NAME =
+        "javax.microedition.amms.control.tuner.TunerControl";
+
+    /**
+     * Default constructor.
+     */
+    public Protocol()
+    {
+    }
+
+    /**
+     * From Protocol
+     */
+    public InternalPlayer createPlayer(Locator aLocator)
+    throws java.io.IOException,
+                MediaException,
+                java.lang.SecurityException
+    {
+        //   JDEBUG( "AMMS Tuner Protocol createPlayer" );
+
+        String locatorParameters = aLocator.getParameters();
+
+        // Create native tuner player. The native tuner player
+        // creates a native tuner control and adds it to its list.
+        // Handle for the native player are returned.
+        int playerHandle = 0;
+        playerHandle = _createNativeTunerPlayer(
+                           ManagerImpl.getEventSource(),
+                           locatorParameters);
+
+//      JDEBUG( "AMMS Tuner Protocol createPlayer playerHandle = " + playerHandle  );
+
+        NativeError.check(playerHandle);
+
+        PlayerImpl tunerPlayer = new PlayerImpl(playerHandle);
+
+        return tunerPlayer;
+    }
+
+    /**
+     * Creates native tuner player.
+     * Native tuner player creates and adds native tuner control.
+     *
+     * @param aEventSourceHandle Handle to event source.
+     * @param aLocatorParameters
+     * @return Error code.
+     */
+    private native int _createNativeTunerPlayer(int aEventSourceHandle,
+            String aLocatorParameters);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/amms_akn/src_tuner/native/external_include/fmradioenginecrkeys.h	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,47 @@
+/*
+* Copyright (c) 2005 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:  Definition of central repository keys for FM Radio Engine.
+*
+*/
+
+
+#ifndef FMRADIOENGINECRKEYS_H
+#define FMRADIOENGINECRKEYS_H
+
+// FM Radio Engine UID
+const TUid KCRUidFMRadioEngine = {0x101F7CBC};
+
+// Radio headset volume
+const TUint32 KRadioHeadsetVolume =  0x00000001;
+
+// Radio speaker volume
+const TUint32 KRadioSpeakerVolume = 0x00000002;
+
+// The last played radio frequency
+const TUint32 KFmRadioFrequency = 0x00000003;
+
+// The last played radio channel
+const TUint32 KFmRadioChannel = 0x00000004;
+
+// The radio mode before radio off
+const TUint32 KFmRadioMode = 0x00000005;
+
+// The first preset channel's location in central repository
+const TUint32 KFmRadioPresetChannel1 = 0x0000000A;
+
+#endif // FMRADIOENGINECRKEYS_H
+
+// End of file
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/amms_akn/src_tuner/native/external_include/tuner.h	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,2535 @@
+/*
+* 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:  Header file for Tuner component.
+*
+*/
+
+
+#ifndef TUNER_H
+#define TUNER_H
+
+#include <e32base.h>
+#include <MCustomCommand.h>
+#include <mmf/common/mmfbase.h>
+#include <mmf/common/mmfutilities.h>
+#include <mmf/common/mmfcontrollerframework.h>
+#include <mmf/common/mmfstandardcustomcommands.h>
+#include <mmf/common/mmfaudio.h>
+#include <Mda/Common/audio.h>
+class RRadioSession;
+
+/**
+@file
+@publishedAll
+@prototype
+*/
+/**
+The Tuner Capabilities structure defines the capabilities of the tuner
+on the device, as retrieved using the function GetCapabilities.
+*/
+class TTunerCapabilities
+{
+public:
+    inline TTunerCapabilities();
+    inline TTunerCapabilities(TUint32 aTunerBands, TUint32 aAdditionalFunctions);
+public:
+    /**
+    Bitfield (as defined by CMMTunerUtility::TTunerBand) with the bits of the
+    supported bands set
+    */
+    TUint32 iTunerBands;
+
+    /** Tuner Function bit flags - may be extended in future */
+    enum TTunerFunctions
+    {
+        /** Recording of Tuner Audio is possible */
+        ETunerFunctionRecording                 = 0x01,
+        /** Tuner can record and play back simultaneously */
+        ETunerFunctionSimultaneousPlayAndRecord = 0x02,
+        /** The tuner requires an external antenna (e.g. a headset) to function */
+        ETunerFunctionRequiresAntenna           = 0x04,
+        /** CMMRdsTunerUtility supported */
+        ETunerFunctionRds                       = 0x08,
+        /** The tuner can be used when the device is in flight mode */
+        ETunerFunctionAvailableInFlightMode     = 0x10
+    };
+
+    /** Bitfield (as defined by ETunerFunctions) with the bits of the supported functions set */
+    TUint32 iAdditionalFunctions;
+};
+
+/**
+Class representing a frequency.
+*/
+class TFrequency
+{
+public:
+    inline TFrequency();
+    explicit inline TFrequency(TInt aFrequency);
+    inline TInt operator==(const TFrequency& aFrequency) const;
+    inline TInt operator!=(const TFrequency& aFrequency) const;
+    inline TInt operator> (const TFrequency& aFrequency) const;
+    inline TInt operator>=(const TFrequency& aFrequency) const;
+    inline TInt operator< (const TFrequency& aFrequency) const;
+    inline TInt operator<=(const TFrequency& aFrequency) const;
+public:
+    /**
+    The Frequency, in Hertz. A TInt is at least 32 bits, giving a maximum frequency
+    of at least 2.4GHz (i.e. 0x7fffffff Hz)
+    */
+    TInt iFrequency;
+};
+
+
+class MMMTunerObserver;
+class MMMTunerChangeObserver;
+class MMMTunerStereoObserver;
+class MMMSignalStrengthObserver;
+class MMMTunerAudioPlayerObserver;
+class MMMTunerAudioRecorderObserver;
+class CMMTunerAudioPlayerUtility;
+class CMMTunerAudioRecorderUtility;
+class CMMTunerScannerUtility;
+class CMMRdsTunerUtility;
+
+/**
+The MMF Tuner API is present to allow clients to control
+the tuner hardware present on a device.
+*/
+class CMMTunerUtility : public CBase
+{
+    friend class CMMTunerAudioPlayerUtility;
+    friend class CMMTunerAudioRecorderUtility;
+    friend class CMMTunerScannerUtility;
+    friend class CMMRdsTunerUtility;
+public:
+    /** Tuner Band bit flags - may be extended in future */
+    enum TTunerBand
+    {
+        ETunerNoBand            = 0x00,
+        /** Long Wave - uses frequencies */
+        ETunerBandLw            = 0x01,
+        /** Amplitude Modulation or Medium Wave - uses frequencies */
+        ETunerBandAm            = 0x02,
+        /** Frequency Modulation, European and American band - uses frequencies */
+        ETunerBandFm            = 0x04,
+        /** Frequency Modulation, Japanese band - uses frequencies */
+        ETunerBandJapaneseFm    = 0x08,
+        /** Digital Audio Broadcasting - uses channels */
+        ETunerBandDab           = 0x10,
+        /** Digital Video Broadcasting */
+        ETunerBandDvb           = 0x20
+    };
+    /**
+    Search direction enumeration
+    */
+    enum TSearchDirection
+    {
+        /** Search for stations upwards - i.e. by increasing frequency */
+        ESearchDirectionUp = 1,
+        /** Search for stations downwards - i.e. by decreasing frequency */
+        ESearchDirectionDown
+    };
+    /**
+    The Tuner Access Priority enables clients to correctly identify their needs
+    when it comes to accessing the tuner. A process must have the MultimediaDD
+    capability to use priorities greater than ETunerAccessPriorityNormal.
+    */
+    enum TTunerAccessPriority
+    {
+        /** Radio accessible when device is idle */
+        ETunerAccessPriorityBackground      = -100,
+        /** Ordinary application priority */
+        ETunerAccessPriorityNormal          = 0,
+        /** Radio is to be used as an alarm sound */
+        ETunerAccessPriorityAlarm           = 75,
+        /** System use only */
+        ETunerAccessPrioritySystem          = 100
+    };
+    /**
+    Bitmasks to indicate what state the tuner is in.
+    */
+    enum TTunerState
+    {
+        /**
+        Tuner is active, and can therefore report frequency etc. If this bit is
+        not set, none of the others should be set.
+        */
+        ETunerStateActive       = 0x01,
+        /** The tuner is playing sound. */
+        ETunerStatePlaying      = 0x02,
+        /** The tuner is currently recording. */
+        ETunerStateRecording    = 0x04,
+        /** The tuner is currently retuning or searching for a new station. */
+        ETunerStateRetuning     = 0x08,
+    };
+public:
+
+    /**
+    Factory function to create a new instance of the Tuner. Tuner access priority
+    setting is required to ensure that applications such as alarms using the radio
+    as an alarm sound are not prevented from doing so by other clients. Priority
+    setting is needed for audio output when accessing the sound device. Tuner is
+    ready for use on return from this function.
+
+    @param aObserver The observer object for receiving async completion callbacks
+    @param aTunerIndex An index from 0 to TunersAvailable() - 1 specifying the tuner
+            device to use.
+    @param aAccessPriority Tuner access priority value
+    @leave KErrNoMemory Out of memory
+    @leave KErrNotFound The specified tuner or tuner controller is not present
+    @return A pointer and ownership of the fully constructed CMMTunerUtility object
+    */
+    IMPORT_C static CMMTunerUtility* NewL(MMMTunerObserver& aObserver,
+                                          TTunerBand aBand,
+                                          TInt aTunerIndex,
+                                          CMMTunerUtility::TTunerAccessPriority aAccessPriority = ETunerAccessPriorityNormal);
+
+    IMPORT_C virtual ~CMMTunerUtility();
+
+
+
+    /**
+    Set the current tuner access priority of this client. This priority is used to
+    arbitrate between multiple tuner clients, determining who get control of the
+    tuner.
+
+    The platform security capability is MultimediaDD and a client with this capability
+    is allowed to set the priority in preference to a client with a lower capability.
+
+    @param aAccessPriority The new priority to use.
+    @capability MultimediaDD
+    @return A standard system error code.
+    */
+    IMPORT_C TInt SetPriority(TTunerAccessPriority aAccessPriority);
+
+    /**
+    Get the current tuner access priority of this client.
+
+    @param aAccessPriority A variable to which the current priority will be written.
+    @return A standard system error code.
+    */
+    IMPORT_C TInt GetPriority(TTunerAccessPriority& aAccessPriority) const;
+
+
+    /**
+    Get the current state of the tuner.
+
+    @param aState A variable to set with the current state. Bits set according to
+           TTunerState.
+    @return A standard system error code.
+    */
+    IMPORT_C TInt GetState(TUint32& aState) const;
+
+    /**
+    Indicates if the external antenna is currently attached or not. The tuner
+    capabilties should be queried to determine if the external antenna is required
+    to use the tuner or not; A value of false returned here does not necessarily
+    imply that the tuner cannot be used.
+
+    @param aAttached When this function returns, this will contain ETrue if and only
+           if an external antenna is attached.
+    @return A standard system error code.
+    */
+    IMPORT_C TInt IsAntennaAttached(TBool& aAttached);
+
+    /**
+    Indicates if the device is currently in 'flight mode' or not. The tuner
+    capabilities should be queried to determine in the tuner can be used  in flight
+    mode or not.
+
+    @param aFlightMode On return, this will have been set to ETrue if and only if
+            the device is in flight mode.
+    @return A standard system error code.
+    */
+    IMPORT_C TInt GetFlightMode(TBool& aFlightMode) const;
+
+    /**
+    Tune the tuner to the required frequency specified in Hertz. This is an asynchronous
+    command and will result in a callback to MToTuneComplete or MToTunerError.
+
+    If the session does not currently have control of the tuner, a request for control
+    will be made. If control of the tuner is granted, a callback to MToTunerControlGranted
+    will occur. If not, there will be a callback to MtoTunerError with error value
+    KErrAccessDenied.
+
+    Once control of the tuner has been granted, it will be retained until either a
+    call to ReleaseTunerControl, or the session is preempted in which case there
+    will be a callback to MToTunerError with error value KErrAccessDenied.
+
+    @param aFrequency The frequency to tune to
+    @param aBand The band to which aFrequency belongs
+    */
+    IMPORT_C void Tune(TFrequency aFrequency);
+
+    /**
+    Find a radio station, starting at the start frequency and searching in the
+    direction specified (i.e. Up or down) the search is limited to the specified
+    band.  If the session does not currently have control of the tuner, a request
+    for control will be made. If control of the tuner is granted, a callback to
+    MToTunerControlGranted will occur. If not, there will be a callback to MToTunerError
+    with error value KErrAccessDenied.
+
+    Once control of the tuner has been granted, it will be retained until either a
+    call to ReleaseTunerControl, or the session is preempted in which case there
+    will be a callback to MToTunerError with error value KErrAccessDenied.
+
+    A callback to MToTuneComplete will occur if the Seek is successful.
+
+    @param aBand The band
+    @param aSearchDirect The direction to search in
+    @param aCircularSeek If set to ETrue the station seek will loop back to the other
+           end of the band once the end of the band has been reached. (Defaults to ETrue)
+           If not set reaching the end of the band without finding a station will result
+           in a callback to MToTuneComplete with error KErrNotFound.
+    */
+    IMPORT_C void StationSeek(TSearchDirection aSearchDirection);
+
+    /**
+    Cancels an ongoing retune operation, as initiated by a call to Tune or StationSeek.
+    The usual callback will not occur if this has been called.
+
+    Has not affect if no tune or seek operation is ongoing.
+    */
+    IMPORT_C void CancelRetune();
+
+    /**
+    Makes a synchronous request for control of the tuner. If this method returns
+    KErrNone, control of the tuner has been granted. Control of the tuner is kept
+    until it is explically released using ReleaseTunerControl, or it is revoked
+    in which case a callback to MToTunerError with an error of KErrAccessDenied
+    will occur.
+
+    If this method returns with KErrAccessDenied, a request to recieve a
+    notifiaction when control could be granted can be made using
+    NotifyTunerControl.
+
+    Note that methods that require control of the tuner (such as Tune) will make
+    a request for control themselves if control has not already been granted.
+
+    @return A standard system error code. If control was granted, KErrNone, and if
+            control was denied KErrAccessDenied.
+    */
+    IMPORT_C TInt RequestTunerControl();
+
+    /**
+    Makes an asyncronous request for control of the tuner. This method should be
+    called after an control of the tuner has been denied to receive a notification
+    when control of the tuner can be granted. A callback to MToTunerControlGranted
+    will occur in this event.
+    */
+    IMPORT_C TInt NotifyTunerControl();
+
+    /**
+    Release control of the tuner, allowing other clients to tune it. Change
+    notifications may still be received. A request for control of the tuner can be
+    made again by calling RequestTunerControl, or any methods that require control
+    of the tuner.
+    */
+    IMPORT_C void ReleaseTunerControl();
+
+    /**
+    Release the tuner. Any ongoing playing or recording activity will be stopped,
+    control of the tuner will be released, and the hardware will be powered down if
+    no other clients need it.
+    */
+    IMPORT_C void Close();
+
+    /**
+    Retrieve the current frequency that the tuner is tuned to
+
+    @param aFrequency The variable to set to the current frequency,
+    -1 if channels are in use
+    @param aBand The variable used to set the current band.
+    @return A standard system error code
+    */
+    IMPORT_C TInt GetFrequency(TFrequency& aFrequency) const;
+
+    /**
+    Retrieve the signal strenth of the currently tuned signal
+
+    @param aSignalStrength Variable into which the signal strength will be written.
+    @return A standard system error code
+    */
+    IMPORT_C TInt GetSignalStrength(TInt& aSignalStrength) const;
+
+    /**
+    Get the maximum possible signal strength of a tuned signal.
+
+    @param aMaxSignalStrength A variable that will have the maximun signal strength
+            written to.
+    @return A standard system error code
+    */
+    IMPORT_C TInt GetMaxSignalStrength(TInt& aMaxSignalStrength) const;
+
+    /**
+    Request notifications when the signal strength changes. Due to the potentially
+    short intervals at which the signal strength may change at, notifications will
+    only be sent when a relatively large change occurrs. This should allow a visual
+    display of signal strength to be maintained fairly accurately.
+
+    The first signal strength notification will be sent immediately after this
+    request.
+
+    @param aObserver The object which will receive notifications of signal strength
+            changes.
+    @return A standard system error code
+    */
+    IMPORT_C TInt NotifySignalStrength(MMMSignalStrengthObserver& aObserver);
+
+    /**
+    Cancel an outstanding NotifySignalStrength request.
+    */
+    IMPORT_C void CancelNotifySignalStrength();
+
+    /**
+    Find out if the current signal is being received in stereo or not.
+
+    @param aStereo On return, will be ETrue if and only if a stereo signal is
+           currently being received.
+    */
+    IMPORT_C TInt IsStereoSignal(TBool& aStereo);
+
+    /**
+    Request notifications when stereo reception is lost/restored.
+
+    @param aObserver The object requiring notification when a stereo signal is lost
+           or restored. The first notification will occur immediately.
+    @return A standard system error code
+    */
+    IMPORT_C TInt NotifyStereoChange(MMMTunerStereoObserver& aObserver);
+
+    /**
+    Cancels a stereo change notification request.
+    */
+    IMPORT_C void CancelNotifyStereoChange();
+
+    /**
+    Indicates whether the reception should be forced into monophonic mode.
+
+    @param aMono If ETrue, all reception will be in mono mode even if a stereo
+           signal is available. If EFalse, a stereo signal will be received when
+           possible.
+    @return A standard system error code.
+    */
+    IMPORT_C TInt ForceMonoReception(TBool aMono);
+
+    /**
+    Find out whether reception is forced into monophonic mode or not.
+
+    @param aMono This will be set to ETrue if all reception is forced to be mono. If
+           this is EFalse, this does not imply that stereo reception is currently
+           available.
+    @return A standard system error code.
+    */
+    IMPORT_C TInt GetForcedMonoReception(TBool& aMono) const;
+
+    /**
+    Sets the current squleching (muting in frequencies without reception) setting.
+
+    @param aEnabled ETrue to enable squelching, EFalse to disable it.
+    @return KErrNone if successful, else a system wide error code.
+    */
+    IMPORT_C TInt SetSquelch(TBool aEnabled);
+
+    /**
+    Gets the current squleching (muting in frequencies without reception) setting.
+
+    @param aEnabled This will be set to ETrue if squelching is enabled, EFalse otherwise.
+    @return KErrNone if successful, else a system wide error code.
+    */
+    IMPORT_C TInt GetSquelch(TBool& aEnabled) const;
+
+    /**
+    Get the capabilities of the tuner on the device
+
+    @param aCaps The capabilities object to fill
+    @return A standard system error code
+    */
+    IMPORT_C TInt GetCapabilities(TTunerCapabilities& aCaps) const;
+
+    /**
+    Get the frequency range (in Hertz) of the specified band.
+    This function should be used to enquire the frequency range
+    of the bands that GetCapabilities reports as supported.
+
+    @param aBand The band to query
+    @param aBottomFrequency The variable to set to the lowest frequency allowed
+    @param aTopFrequency The variable to set to the highest frequency allowed
+    @return A standard system error code
+    */
+    IMPORT_C TInt GetFrequencyBandRange(TFrequency& aBottomFrequency, TFrequency& aTopFrequency);
+
+    /**
+    Request to be notified when the tuned frequency or channel changes, or when the
+    tuner changes state (e.g. starts playing or recording)
+
+    @param aObserver The object wishing to receive tuning change events
+    @return A standard system error code
+    */
+    IMPORT_C TInt NotifyChange(MMMTunerChangeObserver& aObserver);
+
+    /**
+    Cancel request to be notified when the tuned frequency or channel changes
+    */
+    IMPORT_C void CancelNotifyChange();
+
+    /**
+    Send a synchronous custom command to the tuner.
+
+    @param aFunction The function number to indicate which function is to be called
+        on the interface defined by the first IPC argument
+    @param aArgs The IPC arguments to send to the tuner. The first of these
+        arguments must be the UID of the interface within the tuner to which the
+        command is destined, represented as an integer. Failure to set the first
+        argument properly will result in the command completing with
+        KErrNotSupported at best, but possibly  the client being panicked.
+    @return A standard system error code
+    */
+    IMPORT_C TInt CustomCommandSync(TInt aFunction, const TIpcArgs& aArgs);
+
+    /**
+    Send an asynchronous custom command to the tuner.
+
+    @param aFunction The function number to indicate which function is to be called
+        on the interface defined by the first IPC argument
+    @param aArgs The IPC arguments to send to the tuner. The first of these
+        arguments must be the UID of the interface within the tuner to which the
+        command is destined, represented as an integer. Failure to set the first
+        argument properly will result in the command completing with
+        KErrNotSupported at best, but possibly  the client being panicked.
+    @param aStatus The TRequestStatus of an active object. This will contain the
+        result of the request on completion.  The exact range of result values is
+        dependent on the interface.
+    */
+    IMPORT_C void CustomCommandAsync(TInt aFunction, const TIpcArgs& aArgs, TRequestStatus& aStatus);
+
+    /**
+    Get the Tuner Player Utility
+
+    @param aAccessPriority A variable to which the current priority will be written.
+    @return A standard system error code.
+    */
+    IMPORT_C CMMTunerAudioPlayerUtility* TunerPlayerUtilityL(MMMTunerAudioPlayerObserver& aObserver) ;
+    /**
+    Get the Tuner Recorder Utility
+
+    @param aAccessPriority A variable to which the current priority will be written.
+    @return A standard system error code.
+    */
+    IMPORT_C CMMTunerAudioRecorderUtility* TunerRecorderUtilityL(MMMTunerAudioRecorderObserver& aObserver) ;
+
+    /**
+    Get the Tuner Scanner Utility
+
+    @param aAccessPriority A variable to which the current priority will be written.
+    @return A standard system error code.
+    */
+    IMPORT_C CMMTunerScannerUtility* TunerScannerUtilityL() ;
+
+    /**
+    Get the Tuner Rds Utility
+
+    @param aAccessPriority A variable to which the current priority will be written.
+    @return A standard system error code.
+    */
+    IMPORT_C CMMRdsTunerUtility* TunerRdsUtilityL() ;
+
+private:
+    CMMTunerUtility();
+protected:
+    class CBody;
+private:
+    CBody* iBody;
+};
+
+/**
+The Tuner Observer mixin class defines asynchronous
+event completion function callbacks
+*/
+class MMMTunerObserver
+{
+public:
+    /**
+    Tune complete event. This event is asynchronous
+    and is received after a call to the Tune method.
+
+    @param aError A standard system error
+    */
+    virtual void MToTuneComplete(TInt aError) = 0;
+
+};
+
+/**
+The Tuner Change Observer mixin class defines the interface via which
+notification for changes to the tuned frequency, channel and other tuner
+state can be received. A client interested in these notifications
+should call the function CMMTunerUtility::NotifyChange.
+*/
+class MMMTunerChangeObserver
+{
+public:
+    /**
+    Called when the tuned frequency changes
+
+    @param aOldFrequency The frequency in use before the change
+    @param aNewFrequency The new tuned frequency
+    */
+    virtual void MTcoFrequencyChanged(const TFrequency& aOldFrequency, const TFrequency& aNewFrequency) = 0;
+
+    /**
+    Called when the state of the tuner changes.
+
+    @param aOldState The old state. Bits are set according to TTunerState.
+    @param aNewState The new state. Bits are set according to TTunerState.
+    */
+    virtual void MTcoStateChanged(const TUint32& aOldState, const TUint32& aNewState) = 0;
+
+    /**
+    This function is called when an external antenna is detached from the device.
+    This does not necessarily indicate that the tuner can no longer be used; the
+    capabilities of the tuner indicate if the external antenna is required in order
+    to use the tuner.
+    */
+    virtual void MTcoAntennaDetached() = 0;
+
+    /**
+    This function is called when an external antenna is attached to the device. If
+    the antenna is required to use the tuner, this indicates that the tuner can be
+    used again.
+    */
+    virtual void MTcoAntennaAttached() = 0;
+
+    /**
+    This function is called when the device enters or leaves flight mode. If the tuner
+    cannot be used in flight mode when the device enters this mode, this indicates
+    that the tuner can no longer be used; the capabilities of the tuner indicate if
+    it can be used in flight mode or not.
+
+    @param aFlightMode ETrue if the device has just entered flight mode, EFalse if
+            flight mode has just been left.
+    */
+    virtual void FlightModeChanged(TBool aFlightMode) = 0;
+};
+
+/**
+The stereo observer mixin class defines the interface by which clients can be
+notified when a stereo signal is received/lost. An interested client should call
+the function CMMTunerUtility::NotifyStereoChange.
+*/
+class MMMTunerStereoObserver
+{
+public:
+    /**
+    Called when stereo reception is lost/restored.
+
+    @param aStereo If true, indicates that stereo reception has just been restored.
+           If false, indicates that stereo reception has just been lost.
+    */
+    virtual void MTsoStereoReceptionChanged(TBool aStereo) = 0;
+
+    /**
+    Called when a client enables/disabled forced mono reception.
+
+    @param aForcedMono ETrue if reception is forced to be mono, even when a stereo
+           signal is available.
+    */
+    virtual void MTsoForcedMonoChanged(TBool aForcedMono) = 0;
+};
+
+/**
+This mixin class should be derived from by clients wishing to receive
+notifications when the signal strength changes. Such a client should call
+function CMMTunerUtility::NotifySignalStrength.
+*/
+class MMMSignalStrengthObserver
+{
+public:
+    /**
+    Callback indicating that the signal strength has changed by an amount meriting
+    a notification.
+
+    @param aNewSignalStrength The new signal strength.
+    */
+    virtual void MssoSignalStrengthChanged(TInt aNewSignalStrength) = 0;
+};
+
+
+class MMMAudioResourceNotificationCallback;
+
+/**
+The Tuner Audio Player Utility is used to initiate and control playback of audio
+from the tuner.
+*/
+class CMMTunerAudioPlayerUtility : public CBase, public MCustomCommand
+{
+    friend class CMMTunerUtility::CBody;
+public:
+
+    IMPORT_C ~CMMTunerAudioPlayerUtility();
+
+    /**
+    Set-up the API for playing the output from tuner to the speaker asynchronously.
+    Calls MMMTunerAudioPlayerObserver::MTapoInitializeComplete on completion. This must be
+    called before Play.
+
+    @param aPriority Sound device priority value
+    @param aPref Sound device priority preference value
+    */
+    IMPORT_C void InitializeL(TInt aAudioPriority = EMdaPriorityNormal, TMdaPriorityPreference aPref = EMdaPriorityPreferenceTimeAndQuality);
+
+    /**
+    Start playback of the tuner output. To stop playback, call Mute, or Stop if
+    play will not need to be restarted. InitializeL() must have already been
+    called, and a callback to MTapoInitializeComplete with an error of KErrNone must
+    have occurred; if this is not the case, this raises a TunerAudioPlay 1 panic.
+    */
+    IMPORT_C void Play();
+
+    /**
+    Mute or unmute playback.
+
+    Raises a TunerAudioPlay 1 panic if the player is not properly initialized.
+
+    @param aMute ETrue to mute the audio, EFalse to unmute it.
+    @return A standard system error code
+    */
+    IMPORT_C TInt Mute(TBool aMute);
+
+    /**
+    Stop playback, and release the output device for use by other clients
+
+    Raises a TunerAudioPlay 1 panic if the player is not properly initialized.
+
+    Playback should already be under way.
+    */
+    IMPORT_C void Stop();
+
+    /**
+    Set the current audio priority. This priority is used to arbitrate
+    between multiple audio sources trying to access the audio hardware.
+
+    @param aPriority A priority between EMdaPriorityMin and EMdaPriorityMax
+    @param aPref Time vs Quality priority preferences, enumerated in TMdaPriorityPreference
+    @return A standard system error code
+    */
+    IMPORT_C TInt SetPriority(TInt aPriority, TMdaPriorityPreference aPref);
+
+    /**
+    Get the current audio priority. This is used to arbitrate between simultaneous
+    accesses to the sound hardware.
+
+    @param aPriority A priority between EMdaPriorityMin and EMdaPriorityMax to return
+    @param aPref Time vs Quality priority preferences to return, enumerated in TMdaPriorityPreference
+    @return A standard system error code
+    */
+    IMPORT_C TInt GetPriority(TInt& aPriority, TMdaPriorityPreference& aPref) const;
+
+    /**
+    Set the volume to the specified level
+
+    Raises a TunerAudioPlay 1 panic if the player is not properly initialized.
+
+    @param aVolume The volume level to set
+    @return A standard system error code
+    */
+    IMPORT_C TInt SetVolume(TInt aVolume);
+
+    /**
+    Return the current volume
+
+    @param aVolume The variable to set to the current volume
+    @return A standard system error code
+    */
+    IMPORT_C TInt GetVolume(TInt& aVolume) const;
+
+    /**
+    Define a volume ramp, aRampInterval defining
+    the interval between valid volume settings
+
+    Raises a TunerAudioPlay 1 panic if the player is not properly initialized.
+
+    @param aRampInterval The time interval over which the volume
+    should be increased from zero to the current volume setting
+    @return A standard system error code
+    */
+    IMPORT_C TInt SetVolumeRamp(const TTimeIntervalMicroSeconds& aRampInterval);
+
+    /**
+    Return the maximum volume supported
+
+    @return The maximum volume setting permitted
+    */
+    IMPORT_C TInt MaxVolume() const;
+
+    /**
+    Set the stereo balance between left and right channels
+
+    Raises a TunerAudioPlay 1 panic if the player is not properly initialized.
+
+    @param aBalance The balance value to set - must be between
+    KMMFBalanceMaxLeft and KMMFBalanceMaxRight
+    @return A standard system error code
+    */
+    IMPORT_C TInt SetBalance(TInt aBalance = KMMFBalanceCenter);
+
+    /**
+    Return the current stereo balance
+
+    @param aBalance The variable to set to the current balance
+    @return A standard system error code
+    */
+    IMPORT_C TInt GetBalance(TInt& aBalance) const;
+
+    /**
+    Register for audio resource notifications, in the event that the audio resource is lost due to pre-emption
+    by a higher priority audio client.
+    */
+    IMPORT_C TInt RegisterAudioResourceNotification(MMMAudioResourceNotificationCallback& aCallback, TUid aNotificationEventUid, const TDesC8* aNotificationRegistrationData = NULL);
+
+    /**
+    Cancel an outstanding audio resource notification.
+    */
+    IMPORT_C void CancelRegisterAudioResourceNotification(TUid aNotificationEventId);
+
+    /**
+    Returns the controller implementation information associated with the current controller, if any.
+
+    @return The controller implementation structure associated with the controller
+    @leave KErrNotFound if no controller is in use.
+    */
+    IMPORT_C const CMMFControllerImplementationInformation& ControllerImplementationInformationL();
+
+    /**
+    Send a synchronous custom command to the playback controller, if ones exists.
+
+    @param aDestination The destination of the message, consisting of the uid of
+            the interface of this message
+    @param aFunction The function number to indicate which function is to be called
+            on the interface defined in the aDestination parameter
+    @param aDataTo1 The first chunk of data to be copied to the controller
+            framework. The exact contents of the data are dependent on the
+            interface being called. Can be KNullDesC8.
+    @param aDataTo2 The second chunk of data to be copied to the controller
+            framework. The exact contents of the data are dependent on the
+            interface being called. Can be KNullDesC8.
+    @return A standard system error code
+    */
+    IMPORT_C TInt CustomCommandSync(
+        const TMMFMessageDestinationPckg& aDestination,
+        TInt aFunction,
+        const TDesC8& aDataTo1,
+        const TDesC8& aDataTo2);
+
+    /**
+    Send a synchronous custom command to the playback controller, if ones exists.
+
+    @param aDestination The destination of the message, consisting of the uid of
+            the interface of this message
+    @param aFunction The function number to indicate which function is to be called
+            on the interface defined in the aDestination parameter
+    @param aDataTo1 The first chunk of data to be copied to the controller
+            framework. The exact contents of the data are dependent on the
+            interface being called. Can be KNullDesC8.
+    @param aDataTo2 The second chunk of data to be copied to the controller
+            framework. The exact contents of the data are dependent on the
+            interface being called. Can be KNullDesC8.
+    @param aDataFrom The area of memory to which the controller framework
+            will write any data to be passed back to the client. Can't be KNullDesC8.
+    @return A standard system error code
+    */
+    IMPORT_C TInt CustomCommandSync(
+        const TMMFMessageDestinationPckg& aDestination,
+        TInt aFunction,
+        const TDesC8& aDataTo1,
+        const TDesC8& aDataTo2,
+        TDes8& aDataFrom);
+
+    /**
+    Send an asynchronous custom command to the playback controller, if ones exists.
+
+    @param aDestination The destination of the message, consisting of the uid of
+            the interface of this message
+    @param aFunction The function number to indicate which function is to be called
+            on the interface defined in the aDestination parameter
+    @param aDataTo1 The first chunk of data to be copied to the controller
+            framework. The exact contents of the data are dependent on the
+            interface being called. Can be KNullDesC8.
+    @param aDataTo2 The second chunk of data to be copied to the controller
+            framework. The exact contents of the data are dependent on the
+            interface being called. Can be KNullDesC8.
+    @param aStatus The TRequestStatus of an active object. This will contain the
+            result of the request on completion.  The exact range of result values is
+            dependent on the interface.
+    */
+    IMPORT_C void CustomCommandAsync(
+        const TMMFMessageDestinationPckg& aDestination,
+        TInt aFunction,
+        const TDesC8& aDataTo1,
+        const TDesC8& aDataTo2,
+        TRequestStatus& aStatus);
+
+    /**
+    Send an asynchronous custom command to the playback controller, if ones exists.
+
+    @param aDestination The destination of the message, consisting of the uid of
+            the interface of this message
+    @param aFunction The function number to indicate which function is to be called
+            on the interface defined in the aDestination parameter
+    @param aDataTo1 The first chunk of data to be copied to the controller
+            framework. The exact contents of the data are dependent on the
+            interface being called. Can be KNullDesC8.
+    @param aDataTo2 The second chunk of data to be copied to the controller
+            framework. The exact contents of the data are dependent on the
+            interface being called. Can be KNullDesC8.
+    @param aDataFrom The area of memory to which the controller framework
+            will write any data to be passed back to the client. Can't be KNullDesC8.
+    @param aStatus The TRequestStatus of an active object. This will contain the
+            result of the request on completion.  The exact range of result values is
+            dependent on the interface.
+    */
+    IMPORT_C void CustomCommandAsync(
+        const TMMFMessageDestinationPckg& aDestination,
+        TInt aFunction,
+        const TDesC8& aDataTo1,
+        const TDesC8& aDataTo2,
+        TDes8& aDataFrom,
+        TRequestStatus& aStatus);
+
+protected:
+    /**
+    Factory function to create a new Tuner Audio Player utility. Note that only one audio player
+    utility may be created per instance of CMMTunerUtility. Multiple instances will result in an
+    error of KErrAlreadyExists when InitializeL() is called.
+
+    @param aTuner The tuner object which this utility will play the audio from.
+    @param aObserver The observer of the player utility to receive asychronous completion and
+            notifiction callbacks.
+    @leave KErrNoMemory Out of memory
+    @leave KErrNotSupported If the given tuner doesn't support audio playback.
+    @return A new tuner audio player utility.
+    */
+    static CMMTunerAudioPlayerUtility* NewL(CMMTunerUtility& aTuner, RRadioSession& aRadioSession, MMMTunerAudioPlayerObserver& aObserver);
+
+private:
+    CMMTunerAudioPlayerUtility();
+private:
+    class CBody;
+    CBody* iBody;
+};
+
+class MMMTunerAudioPlayerObserver
+{
+public:
+    /**
+    The TEvent enumeration is used to indicate which type of event is being sent to the client.
+    Each event will be associated with an error code and potentially some addition information,
+    and will be passed to the client via method MTapoPlayEvent().
+    */
+    enum TEventType
+    {
+        /** An event relating to the tuner itself. Any error other than KErrNone associated
+        with this event type may indicate that the tuner cannot be used anymore.
+
+        No additional information is associated with this type of event. */
+        ETunerEvent,
+        /**
+        An event relating to audio playback.
+
+        No additional information is associated with this type of event.
+        */
+        EAudioEvent
+    };
+public:
+    /**
+    Initialize complete event. This event is asynchronous and is received after
+    a call to CMMTunerAudioPlayerUtility::InitializeL().
+
+    @param aError A standard system error
+    */
+    virtual void MTapoInitializeComplete(TInt aError) = 0;
+
+    /**
+    Passes an asychronous event to the tuner client.
+
+    @param aEvent The type of event. See enumeration MMMTunerAudioPlayerObserver::TEventType
+            for more information about when the event types mean.
+    @param aError An error code associated with the event.
+    @param aAdditionalInfo Any additional information associated with the event, or NULL if
+            no such additional information exists.
+    */
+    virtual void MTapoPlayEvent(TEventType aEvent, TInt aError, TAny* aAdditionalInfo) = 0;
+};
+
+/**
+This class is used to perform recording of audio from the tuner. Many of the methods
+in this class have identical functionality to similarly names functions in class
+CMdaAudioRecorderUtility.
+*/
+class CMMTunerAudioRecorderUtility : public CBase
+{
+    friend class CMMTunerUtility::CBody;
+public:
+
+    IMPORT_C ~CMMTunerAudioRecorderUtility();
+
+    /**
+    Initialize for recording from the tuner to the specified file
+    asynchronously. Calls MMMTunerAudioRecorderObserver::MTaroInitializeComplete on completion
+
+    @param aRecordFilename The name of the file to create, if necessary, and record to
+    @param "aDestinationDataType" Data type for recording
+    @param "aControllerUid" The Uid of the controller to use for recording
+    @param "aDestinationFormatUid" Uid of record format
+    @param aPriority Sound device priority value
+    @param aPref Sound device priority preference value
+    */
+    IMPORT_C void InitializeL(const TDesC& aRecordFilename,
+                              TFourCC aDestinationDataType = KFourCCNULL,
+                              TUid aControllerUid=KNullUid,
+                              TUid aDestinationFormatUid=KNullUid,
+                              TInt aAudioPriority = EMdaPriorityNormal,
+                              TMdaPriorityPreference aPref = EMdaPriorityPreferenceTimeAndQuality);
+
+    /**
+    Initialize for recording from the tuner to the specified descriptor
+    asynchronously. Calls MMMTunerAudioRecorderObserver::MTaroInitializeComplete on completion
+
+    @param aRecordDescriptor The descriptor to record to
+    @param "aDestinationDataType" Data type for recording
+    @param "aControllerUid" The Uid of the controller to use for recording
+    @param "aDestinationFormatUid" Uid of record format
+    @param aPriority Sound device priority value
+    @param aPref Sound device priority preference value
+    */
+    IMPORT_C void InitializeL(TDes8& aRecordDescriptor,
+                              TFourCC aDestinationDataType = KFourCCNULL,
+                              TUid aControllerUid=KNullUid,
+                              TUid aDestinationFormatUid=KNullUid,
+                              TInt aAudioPriority = EMdaPriorityNormal,
+                              TMdaPriorityPreference aPref = EMdaPriorityPreferenceTimeAndQuality);
+
+    /**
+    Return a list of the supported data types for the record destination
+    @param "aSupportedDataTypes" list of four character codes, representing supported data
+        encodings for the record destination.
+    @leaves Can leave with one of the system-wide error codes
+    */
+    IMPORT_C void GetSupportedDestinationDataTypesL(RArray<TFourCC>& aSupportedDataTypes) const;
+
+    /**
+    Set the data type of the destination audio clip
+    @param "aDataType" four character code, representing the encoding of the destination audio clip
+    @leaves Can leave with one of the system-wide error codes
+    */
+    IMPORT_C void SetDestinationDataTypeL(TFourCC aDataType);
+
+    /**
+    Return the data type of the destination audio clip
+    @returns four character code, representing the encoding of the destination audio clip
+    @leaves Can leave with one of the system-wide error codes
+    */
+    IMPORT_C TFourCC DestinationDataTypeL() const;
+
+    /**
+    Set the bit rate for recording
+    @param "aBitRate" destination bit rate in bits/second
+    @leaves Can leave with one of the system-wide error codes
+    */
+    IMPORT_C void SetDestinationBitRateL(TUint aBitRate);
+
+    /**
+    Return the recording bit rate
+    @returns destination bit rate in bits/second
+    @leaves Can leave with one of the system-wide error codes
+    */
+    IMPORT_C TUint DestinationBitRateL() const;
+
+    /**
+    Return a list of the supported bit rates for recording
+    @param "aSupportedBitRates" List of bit rates supported for the record
+           destination
+    @leaves Can leave with one of the system-wide error codes
+    */
+    IMPORT_C void GetSupportedBitRatesL(RArray<TUint>& aSupportedBitRates) const;
+
+    /**
+    Set the sample rate for the record destination
+    @param "aSampleRate" The sample rate of the record destination
+    @leaves Can leave with one of the system-wide error codes
+    */
+    IMPORT_C void SetDestinationSampleRateL(TUint aSampleRate);
+
+    /**
+    Return the sample rate of the record destination
+    @returns The sample rate of the record destination
+    @leaves Can leave with one of the system-wide error codes
+    */
+    IMPORT_C TUint DestinationSampleRateL() const;
+
+    /**
+    Get a list of supported recording sample rates.
+    @param "aSupportedSampleRates" List of the sample rates that are supported for
+           recording
+    @leaves Can leave with one of the system-wide error codes
+    */
+    IMPORT_C void GetSupportedSampleRatesL(RArray<TUint>& aSupportedSampleRates) const;
+
+    /**
+    Set the format of the audio clip. This can only be done if the audio clip does not
+    exist
+
+    @param "aFormatUid" Uid of the audio clip format
+    @leaves KErrAlreadyExists if the clip already exists and the format is different
+     from the existing format, or can leave with one of the system-wide error codes
+    */
+    IMPORT_C void SetDestinationFormatL(TUid aFormatUid);
+
+    /**
+    Return the format of the audio clip
+    @returns Uid of the audio clip format
+    @leaves Can leave with one of the system-wide error codes
+    */
+    IMPORT_C TUid DestinationFormatL() const;
+
+    /**
+    Set the number of channels for the recorded audio clip
+    @param "aNumberOfChannels" The number of channels to record
+    @leaves Can leave with one of the system-wide error codes
+    */
+    IMPORT_C void SetDestinationNumberOfChannelsL(TUint aNumberOfChannels);
+
+    /**
+    Return the number of channels in audio clip
+    @returns number of channels supported by audio clip
+    @leaves Can leave with one of the system-wide error codes
+    */
+    IMPORT_C TUint DestinationNumberOfChannelsL() const;
+
+    /**
+    Return a list of the supported number of channels for recording
+    @param "aSupportedNumChannels" List of the number of channels supported for
+            recording
+    @leaves Can leave with one of the system-wide error codes
+    */
+    IMPORT_C void GetSupportedNumberOfChannelsL(RArray<TUint>& aSupportedNumChannels) const;
+
+    /** Start recording of the tuner output */
+    IMPORT_C void RecordL();
+
+    /**
+    Pause recording. Recording can be resumed with another call to Record.
+
+    @return A standard system error code
+    */
+    IMPORT_C TInt PauseRecord();
+
+    /**
+    Stop recording, and release the output device for use by other clients
+
+    Recording should already be under way.
+    */
+    IMPORT_C void Stop();
+
+    /**
+    Stop recording, and release the output device for use by other clients
+
+    Recording should already be under way.
+    */
+    IMPORT_C void Close();
+
+    /**
+    Return the maximum value for the gain
+
+    @return The maximum gain. For devices where automatic gain control is used, this value may be zero.
+    */
+    IMPORT_C TInt MaxGain() const;
+
+    /**
+    Sets the gain for the audio device to a specified value.
+
+    @param aGain The gain setting. This can be any value from zero to the value returned by a call to
+            MaxGain(). A value which is less than zero is set to zero. A value which is greater than
+            MaxGain() is set to MaxGain().
+    */
+    IMPORT_C void SetGain(TInt aGain);
+
+    /**
+    Sets the current recording balance setting between the left and right stereo channels
+
+    The balance can be changed before or during recording and is effective immediately.
+
+    @param aBalance The balance value to set. Any value between KMMFBalanceMaxLeft and
+            KMMFBalanceMaxRight, the default value being KMMFBalanceCenter.
+    @return An error code indicating if the call was successful. KErrNone on success,
+            otherwise another of the system-wide error codes.
+    */
+    IMPORT_C TInt SetRecordBalance(TInt aBalance = KMMFBalanceCenter);
+
+    /**
+    Returns the current recording balance setting between the left and right stereo channels.
+
+    @param aBalance On return, contains the current recording balance between KMMFBalanceMaxLeft
+            and KMMFBalanceMaxRight.
+    @return An error code indicating if the call was successful. KErrNone on success, otherwise
+            another of the system-wide error codes.
+    */
+    IMPORT_C TInt GetRecordBalance(TInt& aBalance) const;
+
+    /**
+    Set the current audio priority. This priority is used to arbitrate
+    between multiple audio sources trying to access the audio hardware.
+
+    @param aPriority A priority between EMdaPriorityMin and EMdaPriorityMax
+    @param aPref Time vs Quality priority preferences, enumerated in TMdaPriorityPreference
+    @return A standard system error code
+    */
+    IMPORT_C TInt SetPriority(TInt aPriority, TMdaPriorityPreference aPref);
+
+    /**
+    Get the current audio priority. This is used to arbitrate between simultaneous
+    accesses to the sound hardware.
+
+    @param aPriority A priority between EMdaPriorityMin and EMdaPriorityMax to return
+    @param aPref Time vs Quality priority preferences to return, enumerated in TMdaPriorityPreference
+    @return A standard system error code
+    */
+    IMPORT_C TInt GetPriority(TInt& aPriority, TMdaPriorityPreference& aPref) const;
+
+    /**
+    Register for audio resource notifications, in the event that the audio resource is lost due to pre-emption
+    by a higher priority audio client.
+    */
+    IMPORT_C TInt RegisterAudioResourceNotification(MMMAudioResourceNotificationCallback& aCallback, TUid aNotificationEventUid, const TDesC8* aNotificationRegistrationData = NULL);
+
+    /**
+    Cancel an outstanding audio resource notification.
+    */
+    IMPORT_C void CancelRegisterAudioResourceNotification(TUid aNotificationEventId);
+
+
+    /**
+    Sets the maximum size for a file that is being recorded.
+
+    When this limit is reached, MMF stops recording and notifies the client application. Notification is caused
+    by MMdaObjectStateChangeObserver::MoscoStateChangeEvent() with the error code KErrEof.
+
+    This function is provided so that applications such as recorders can limit the amount of file storage/memory
+    that should be allocated.
+
+    @param aMaxWriteLength
+           The maximum file size in kilobytes. If the default value is used, there is no maximum file size.
+
+    */
+    IMPORT_C void SetMaxWriteLength(TInt aMaxWriteLength = KMdaClipLocationMaxWriteLengthNone);
+
+    /**
+    Returns the recording time available for the selected file or descriptor and encoding format.
+    */
+    IMPORT_C const TTimeIntervalMicroSeconds& RecordTimeAvailable();
+
+    /**
+    Returns the duration of the audio sample data.
+    */
+    IMPORT_C const TTimeIntervalMicroSeconds& Duration();
+
+    /**
+    Return the controller implementation information structure of the current controller
+
+    @leave KErrNoMemory Out of memory
+    @return A reference to the current controller information
+    */
+    IMPORT_C const CMMFControllerImplementationInformation& ControllerImplementationInformationL();
+
+    /*
+    Returns the number of meta data entries associated with this clip.
+    @return Number of metadata entries
+    */
+    IMPORT_C TInt GetNumberOfMetaDataEntries(TInt& aNumEntries);
+
+    /*
+    Returns the specified meta data entry from the current audio clip.
+    @return Metadata entry
+    */
+    IMPORT_C CMMFMetaDataEntry* GetMetaDataEntryL(TInt aMetaDataIndex);
+
+    /*
+    Adds a meta data entry to the audio clip.
+    */
+    IMPORT_C void AddMetaDataEntryL(CMMFMetaDataEntry& aMetaDataEntry);
+
+    /*
+    Removes a specified meta data entry from the audio clip
+    @return An error code indicating if the call was successful
+    */
+    IMPORT_C TInt RemoveMetaDataEntry(TInt aMetaDataIndex);
+
+    /*
+    Replaces the specified meta data entry with a new entry
+    */
+    IMPORT_C void ReplaceMetaDataEntryL(TInt aMetaDataIndex, CMMFMetaDataEntry& aMetaDataEntry);
+
+
+    /**
+    Send a synchronous custom command to the recording controller
+
+    @param aDestination The destination of the message, consisting of the uid of
+    the interface of this message
+    @param aFunction The function number to indicate which function is to be called
+    on the interface defined in the aDestination parameter
+    @param aDataTo1 The first chunk of data to be copied to the controller
+    framework. The exact contents of the data are dependent on the
+    interface being called. Can be KNullDesC8.
+    @param aDataTo2 The second chunk of data to be copied to the controller
+    framework. The exact contents of the data are dependent on the
+    interface being called. Can be KNullDesC8.
+    @return A standard system error code
+    */
+    IMPORT_C TInt CustomCommandSync(
+        const TMMFMessageDestinationPckg& aDestination,
+        TInt aFunction,
+        const TDesC8& aDataTo1,
+        const TDesC8& aDataTo2);
+
+    /**
+    Send a synchronous custom command to the recording controller
+
+    @param aDestination The destination of the message, consisting of the uid of
+    the interface of this message
+    @param aFunction The function number to indicate which function is to be called
+    on the interface defined in the aDestination parameter
+    @param aDataTo1 The first chunk of data to be copied to the controller
+    framework. The exact contents of the data are dependent on the
+    interface being called. Can be KNullDesC8.
+    @param aDataTo2 The second chunk of data to be copied to the controller
+    framework. The exact contents of the data are dependent on the
+    interface being called. Can be KNullDesC8.
+    @param aDataFrom The area of memory to which the controller framework
+    will write any data to be passed back to the client. Can't be KNullDesC8.
+    @return A standard system error code
+    */
+    IMPORT_C TInt CustomCommandSync(
+        const TMMFMessageDestinationPckg& aDestination,
+        TInt aFunction,
+        const TDesC8& aDataTo1,
+        const TDesC8& aDataTo2,
+        TDes8& aDataFrom);
+
+    /**
+    Send an asynchronous custom command to the recording controller
+
+    @param aDestination The destination of the message, consisting of the uid of
+    the interface of this message
+    @param aFunction The function number to indicate which function is to be called
+    on the interface defined in the aDestination parameter
+    @param aDataTo1 The first chunk of data to be copied to the controller
+    framework. The exact contents of the data are dependent on the
+    interface being called. Can be KNullDesC8.
+    @param aDataTo2 The second chunk of data to be copied to the controller
+    framework. The exact contents of the data are dependent on the
+    interface being called. Can be KNullDesC8.
+    @param aStatus The TRequestStatus of an active object. This will contain the
+    result of the request on completion.  The exact range of result values is
+    dependent on the interface.
+    @return A standard system error code
+    */
+    IMPORT_C void CustomCommandAsync(
+        const TMMFMessageDestinationPckg& aDestination,
+        TInt aFunction,
+        const TDesC8& aDataTo1,
+        const TDesC8& aDataTo2,
+        TRequestStatus& aStatus);
+
+    /**
+    Send an asynchronous custom command to the recording controller
+
+    @param aDestination The destination of the message, consisting of the uid of
+    the interface of this message
+    @param aFunction The function number to indicate which function is to be called
+    on the interface defined in the aDestination parameter
+    @param aDataTo1 The first chunk of data to be copied to the controller
+    framework. The exact contents of the data are dependent on the
+    interface being called. Can be KNullDesC8.
+    @param aDataTo2 The second chunk of data to be copied to the controller
+    framework. The exact contents of the data are dependent on the
+    interface being called. Can be KNullDesC8.
+    @param aDataFrom The area of memory to which the controller framework
+    will write any data to be passed back to the client. Can't be KNullDesC8.
+    @param aStatus The TRequestStatus of an active object. This will contain the
+    result of the request on completion.  The exact range of result values is
+    dependent on the interface.
+    @return A standard system error code
+    */
+    IMPORT_C void CustomCommandAsync(
+        const TMMFMessageDestinationPckg& aDestination,
+        TInt aFunction,
+        const TDesC8& aDataTo1,
+        const TDesC8& aDataTo2,
+        TDes8& aDataFrom,
+        TRequestStatus& aStatus);
+
+protected:
+    /**
+    Create a new audio recorder utility. Note that only one audio recorder utility may be created
+    per instance of CMMTunerUtility. Multiple instances will result in an error of KErrAlreadyExists
+    when InitializeL() is called.
+    */
+    static CMMTunerAudioRecorderUtility* NewL(CMMTunerUtility& aTuner, MMMTunerAudioRecorderObserver& aObserver);
+
+private:
+    CMMTunerAudioRecorderUtility();
+private:
+    class CBody;
+    CBody* iBody;
+
+};
+
+class MMMTunerAudioRecorderObserver
+{
+public:
+    /**
+    The TEvent enumeration is used to indicate which type of event is being sent to the client.
+    Each event will be associated with an error code and potentially some addition information,
+    and will be passed to the client via method MTaroRecordEvent().
+    */
+    enum TEventType
+    {
+        /** An event relating to the tuner itself. Any error other than KErrNone associated
+        with this event type may indicate that the tuner cannot be used anymore.
+
+        No additional information is associated with this type of event. */
+        ETunerEvent,
+        /**
+        An event relating to audio recording.
+
+        No additional information is associated with this type of event.
+        */
+        EAudioEvent
+    };
+public:
+    /**
+    Initialize complete event. This event is asynchronous and is received after
+    a call to CMMTunerAudioRecorderUtility::InitializeL.
+
+    @param aError A standard system error
+    */
+    virtual void MTaroInitializeComplete(TInt aError) = 0;
+
+    /**
+    Passes an asychronous event to the tuner client.
+
+    @param aEvent The type of event. See enumeration MMMTunerAudioRecorderObserver::TEventType
+            for more information about when the event types mean.
+    @param aError An error code associated with the event.
+    @param aAdditionalInfo Any additional information associated with the event, or NULL if
+            no such additional information exists.
+    */
+    virtual void MTaroRecordEvent(TEventType aEvent, TInt aError, TAny* aAdditionalInfo) = 0;
+};
+
+/**
+This class augments CMMTunerUtility to provide station scanning functionality,
+whereby the frequency spectrum is searched, pausing for a specified amount of
+time when a station is found.
+*/
+class CMMTunerScannerUtility : public CBase
+{
+    friend class CMMTunerUtility::CBody;
+public:
+
+    IMPORT_C ~CMMTunerScannerUtility();
+
+    /**
+    Continuously scan for a radio station, pausing for the time specified before
+    continuing on to the next station. Call StopScan to select the currently tuned
+    station. The search is limited to the specified band.
+
+    @note The control of a CMMTunerUtility object must have been passed to this
+          class (using TransferTunerControl) before this function is called.
+
+    @param aBand The band to which aStartFrequency belongs
+    @param aSearchDirect The direction to search in
+    @param aPauseDuration Time to pause at each station
+    @param aCircularScan If set to ETrue the station scan will loop back to the other
+           end of the band once the end of the band has been reached. (Defaults to ETrue)
+    */
+    IMPORT_C void StationScan(CMMTunerUtility::TSearchDirection aSearchDirection,
+                              TTimeIntervalMicroSeconds32 aPauseDuration
+                             );
+
+    /**
+    Stop scanning and use the currently tuned station
+
+    @return ETrue if a station is tuned, EFalse otherwise
+    */
+    IMPORT_C TBool StopScan();
+
+protected:
+    /**
+    Factory function to create a new CMMTunerScannerUtility.
+
+    @param aTuner The tuner with which to perform the scanning.
+    @leave KErrNoMemory Out of memory.
+    @return A newly contructed tuner scanner utility.
+    */
+    static CMMTunerScannerUtility* NewL(CMMTunerUtility& aTuner,CMMTunerUtility::TTunerBand aBand);
+
+private:
+    CMMTunerScannerUtility();
+private:
+    class CBody;
+    CBody* iBody;
+
+};
+
+
+/** Programme Station name, 8 characters */
+typedef TBuf<8> TRdsStationName;
+/** Programme Type Name, 8 characters */
+typedef TBuf<8> TRdsProgrammeTypeName;
+/** RDS Programme Identifier, a unique ID for each radio station */
+typedef TInt TRdsProgrammeIdentifier;
+
+/**
+Programme Item Number - identifies the start time of the current programme,
+as published by the broadcaster.
+*/
+class TRdsProgrammeItemNumber
+{
+public:
+    /** The day of the month of the broadcast, in the range 1-31 */
+    TInt iDayOfMonth;
+    /** The hour of the day, in the range 0-23 */
+    TInt iHour;
+    /** The minute past the hour, in the range 0-59 */
+    TInt iMinute;
+public:
+    inline TInt operator==(const TRdsProgrammeItemNumber& aPin) const;
+    inline TInt operator!=(const TRdsProgrammeItemNumber& aPin) const;
+};
+
+/**
+An RDS extended country code. The meaning of a value of this type is defined
+by the RDS specification, IEC62106.
+*/
+typedef TInt TRdsCountryCode;
+
+/**
+An RDS language identification code. The meaning of a value of this type is
+defined by the RDS specification, IEC62106.
+*/
+typedef TInt TRdsLanguageIdentifier;
+
+/**
+RDS Programme Type.
+
+The interpretation of values of this type depends on the origin of the RDS
+broadcast: in North America, a slightly different standard, RBDS, is used.
+These PTY codes are defined by static values KRbdsPtyXxxxx, for example
+KRbdsPtySoftRock.
+
+Elsewhere, including Europe, the RDS standard is used. In these areas, the
+PTY codes are defined by static values KRdsPtyXxxxx, for example
+KRdsPtyChildrensProgrammes.
+
+In all other important aspects, the European RDS and North American RBDS
+standards are identical.
+*/
+typedef TInt TRdsProgrammeType;
+
+/** No programme type or undefined */
+const static TRdsProgrammeType KRdsPtyNone = 0;
+/** News */
+const static TRdsProgrammeType KRdsPtyNews = 1;
+/** CurrentAffairs */
+const static TRdsProgrammeType KRdsPtyCurrentAffairs = 2;
+/** Information */
+const static TRdsProgrammeType KRdsPtyInformation = 3;
+/** Sport */
+const static TRdsProgrammeType KRdsPtySport = 4;
+/** Education */
+const static TRdsProgrammeType KRdsPtyEducation = 5;
+/** Drama */
+const static TRdsProgrammeType KRdsPtyDrama = 6;
+/** Culture */
+const static TRdsProgrammeType KRdsPtyCulture = 7;
+/** Science */
+const static TRdsProgrammeType KRdsPtyScience = 8;
+/** VariedSpeech */
+const static TRdsProgrammeType KRdsPtyVariedSpeech = 9;
+/** PopMusic */
+const static TRdsProgrammeType KRdsPtyPopMusic = 10;
+/** RockMusic */
+const static TRdsProgrammeType KRdsPtyRockMusic = 11;
+/** EasyListening */
+const static TRdsProgrammeType KRdsPtyEasyListening = 12;
+/** LightClassical */
+const static TRdsProgrammeType KRdsPtyLightClassical = 13;
+/** SeriousClassics */
+const static TRdsProgrammeType KRdsPtySeriousClassical = 14;
+/** OtherMusic */
+const static TRdsProgrammeType KRdsPtyOtherMusic = 15;
+/** Weather */
+const static TRdsProgrammeType KRdsPtyWeather = 16;
+/** Finance */
+const static TRdsProgrammeType KRdsPtyFinance = 17;
+/** ChildrensProgrammes */
+const static TRdsProgrammeType KRdsPtyChildrensProgrammes = 18;
+/** SocialAffairs */
+const static TRdsProgrammeType KRdsPtySocialAffairs = 19;
+/** Religion */
+const static TRdsProgrammeType KRdsPtyReligion = 20;
+/** PhoneIn */
+const static TRdsProgrammeType KRdsPtyPhoneIn = 21;
+/** Travel */
+const static TRdsProgrammeType KRdsPtyTravel = 22;
+/** Leisure */
+const static TRdsProgrammeType KRdsPtyLeisure = 23;
+/** JazzMusic */
+const static TRdsProgrammeType KRdsPtyJazzMusic = 24;
+/** CountryMusic */
+const static TRdsProgrammeType KRdsPtyCountryMusic = 25;
+/** NationalMusic */
+const static TRdsProgrammeType KRdsPtyNationalMusic = 26;
+/** OldiesMusic */
+const static TRdsProgrammeType KRdsPtyOldiesMusic = 27;
+/** FolkMusic */
+const static TRdsProgrammeType KRdsPtyFolkMusic = 28;
+/** Documentary */
+const static TRdsProgrammeType KRdsPtyDocumentary = 29;
+/** AlarmTest */
+const static TRdsProgrammeType KRdsPtyAlarmTest = 30;
+/** Alarm */
+const static TRdsProgrammeType KRdsPtyAlarm = 31;
+
+
+/** No programme type or undefined */
+const static TRdsProgrammeType KRbdsPtyNone = 0;
+/** News */
+const static TRdsProgrammeType KRbdsPtyNews = 1;
+/** Informaion */
+const static TRdsProgrammeType KRbdsPtyInformation = 2;
+/** Sports */
+const static TRdsProgrammeType KRbdsPtySports = 3;
+/** Talk */
+const static TRdsProgrammeType KRbdsPtyTalk = 4;
+/** Rock */
+const static TRdsProgrammeType KRbdsPtyRock = 5;
+/** Classic Rock */
+const static TRdsProgrammeType KRbdsPtyClassicRock = 6;
+/** Adult Hits */
+const static TRdsProgrammeType KRbdsPtyAdultHits = 7;
+/** Soft Rock */
+const static TRdsProgrammeType KRbdsPtySoftRock = 8;
+/** Top 40 */
+const static TRdsProgrammeType KRbdsPtyTop40 = 9;
+/** Country */
+const static TRdsProgrammeType KRbdsPtyCountry = 10;
+/** Oldies */
+const static TRdsProgrammeType KRbdsPtyOldies = 11;
+/** Soft */
+const static TRdsProgrammeType KRbdsPtySoft = 12;
+/** Nostalgia */
+const static TRdsProgrammeType KRbdsPtyNostalgia = 13;
+/** Jazz */
+const static TRdsProgrammeType KRbdsPtyJazz = 14;
+/** Classical */
+const static TRdsProgrammeType KRbdsPtyClassical = 15;
+/** Rhythm and Blues */
+const static TRdsProgrammeType KRbdsPtyRhythmAndBlues = 16;
+/** Soft Rhythm and Blues */
+const static TRdsProgrammeType KRbdsPtySoftRhythmAndBlues = 17;
+/** Language */
+const static TRdsProgrammeType KRbdsPtyLanguage = 18;
+/** Religious Music */
+const static TRdsProgrammeType KRbdsPtyReligiousMusic = 19;
+/** Religious Talk */
+const static TRdsProgrammeType KRbdsPtyReligiousTalk = 20;
+/** Personality */
+const static TRdsProgrammeType KRbdsPtyPersonality = 21;
+/** Public */
+const static TRdsProgrammeType KRbdsPtyPublic = 22;
+/** College */
+const static TRdsProgrammeType KRbdsPtyCollege = 23;
+/** Unassigned */
+const static TRdsProgrammeType KRbdsPtyUnassigned1 = 24;
+/** Unassigned */
+const static TRdsProgrammeType KRbdsPtyUnassigned2 = 25;
+/** Unassigned */
+const static TRdsProgrammeType KRbdsPtyUnassigned3 = 26;
+/** Unassigned */
+const static TRdsProgrammeType KRbdsPtyUnassigned4 = 27;
+/** Unassigned */
+const static TRdsProgrammeType KRbdsPtyUnassigned5 = 28;
+/** Weather */
+const static TRdsProgrammeType KRbdsPtyWeather = 29;
+/** Emergency Test */
+const static TRdsProgrammeType KRbdsPtyEmergencyTest = 30;
+/** Emergency */
+const static TRdsProgrammeType KRbdsPtyEmergency = 31;
+
+/**
+The RDS Capabilities class defines the capabilities of the RDS tuner on the
+device, as retrieved using the function GetRdsCapabilities.
+*/
+class TRdsCapabilities
+{
+public:
+    /** RDS Function Bit Flags */
+    enum TRdsFunctions
+    {
+        /** Traffic Announcement */
+        ERdsFunctionTa      = 0x01,
+        /** Regional Links */
+        ERdsFunctionRegLink = 0x02,
+        /** News Announcement */
+        ERdsFunctionNa      = 0x04,
+        /** Programme Type */
+        ERdsFunctionPty     = 0x08,
+        /** Clock Time */
+        ERdsFunctionCt      = 0x10,
+        /** Enhanced Other Networks */
+        ERdsFunctionEon     = 0x20,
+        /** Alternative Frequency */
+        ERdsFunctionAf      = 0x40
+    };
+public:
+    /** Bitfield as defined by ERdsFunctions with the bits of the supported functions set */
+    TUint32 iRdsFunctions;
+};
+
+class MMMRdsDataObserver;
+class MMMRdsEonObserver;
+class MMMRdsStateChangeObserver;
+class MMMRdsAnnouncementObserver;
+
+/**
+This class represents the basic RDS data associated with an RDS station.
+*/
+class TRdsData
+{
+public:
+    inline TRdsData();
+public:
+    /**
+    Enumeration to indicate a subset of the members of class TRdsData. These values should
+    be bitwise or'ed together to indicate which members belong in a set.
+    */
+    enum TField
+    {
+        /** Indicates the the member iPi is in a set */
+        EProgrammeIdentifier    = 0x001,
+        /** Indicates the the member iPs is in a set */
+        EStationName            = 0x002,
+        /** Indicates the the member iTp is in a set */
+        ETrafficProgramme       = 0x004,
+        /** Indicates the the member iTa is in a set */
+        ETrafficAnnouncement    = 0x008,
+        /** Indicates the the member iPty is in a set */
+        EProgrammeType          = 0x010,
+        /** Indicates the the member iPtyn is in a set */
+        EProgrammeTypeName      = 0x020,
+        /** Indicates the the member iPin is in a set */
+        EProgrammeItemNumber    = 0x040,
+        /** Indicates the the member iMs is in a set */
+        EMusicSpeech            = 0x080,
+        /** Indicates the the member iBroadcastLanguage is in a set */
+        EBroadcastLanguage      = 0x100,
+        /** Indicates the the member iEcc is in a set */
+        EExtendedCountryCode    = 0x200
+    };
+    /**
+    A value indicating a set containig all RDS data encapsulated by class TRdsData.
+    */
+    const static TUint32 KAllRdsData = (EProgrammeIdentifier | EStationName | ETrafficProgramme | ETrafficAnnouncement
+                                        | EProgrammeType | EProgrammeTypeName | EProgrammeItemNumber | EMusicSpeech
+                                        | EBroadcastLanguage | EExtendedCountryCode);
+public:
+    /** Programme Identifier of the station */
+    TRdsProgrammeIdentifier iPi;
+    /** Programme Station name of the station */
+    TRdsStationName iPs;
+    /** Value of the Traffic Programme flag of the station */
+    TBool iTp;
+    /** Value of the Traffic Announcement flag of the station */
+    TBool iTa;
+    /** Programme Type of the station */
+    TRdsProgrammeType iPty;
+    /** Programme Type Name of the station */
+    TRdsProgrammeTypeName iPtyn;
+    /** Programme Item Number of the station */
+    TRdsProgrammeItemNumber iPin;
+    /** Value of the Music Speech flag of the station. EFalse indicates the speech is being
+    broadcast at present. ETrue indicates that music is being broadcast, or that the flag is
+    not in use by the broadcaster. */
+    TBool iMs;
+    /** The current language of the broadcast */
+    TRdsLanguageIdentifier iBroadcastLanguage;
+    /** The Extended Country Code of the station */
+    TRdsCountryCode iEcc;
+};
+
+/**
+Class representing a station broadcast as an Enhanced Other Networks station.
+*/
+class TEonStation
+{
+public:
+    /**
+    Enumeration to indicate a subset of the members of class TEonStation. These values should
+    be bitwise or'ed together to indicate which members belong in a set.
+    */
+    enum TField
+    {
+        /** Indicates that member iProgrammeIdentifier is valid. */
+        EProgrammeIdentifier= 0x01,
+        /** Indicates that member iStationName is valid. */
+        EStationName        = 0x02,
+        /** Indicates that member iProgrammeType is valid. */
+        EProgrammeType      = 0x04,
+        /** Indicates that member iTrafficProgramme is valid. */
+        ETrafficProgramme   = 0x08,
+        /** Indicates that member iTrafficAnnouncement is valid. */
+        ETrafficAnnouncement= 0x10,
+        /** Indicates that member iProgrammeItemNumber is valid. */
+        EProgrammeItemNumber= 0x20,
+        /** Indicates that member iNoFrequencies is valid. */
+        ENoFrequencies      = 0x40,
+        /** Indicates that member iNoMappedFrequencies is valid. */
+        ENoMappedFrequencies= 0x80
+    };
+public:
+    /** The unique identifier of this station */
+    TRdsProgrammeIdentifier iProgrammeIdentifier;
+    /** The textual name of this station */
+    TRdsStationName iStationName;
+    /** The current programme type (PTY) of this station */
+    TRdsProgrammeType iProgrammeType;
+    /** Indicates if this station broadcasts traffic programmes */
+    TBool iTrafficProgramme;
+    /** Indicates if this station is currently broadcasting a traffic announcement */
+    TBool iTrafficAnnouncement;
+    /** The programme item number (PIN) of the current broadcast on this station. */
+    TRdsProgrammeItemNumber iProgrammeItemNumber;
+    /**
+    The number of frequencies associated with this station. If this number is zero,
+    it may be that the EON station uses the mapped frequencies method instead. See
+    iNoMappedFrequencies.
+    */
+    TInt iNoFrequencies;
+    /**
+    The number of mapped frequencies associated with this station. If this number is
+    zero, it may be that the EON station uses a flat frequency list instead. See
+    iNoFrequencies.
+    */
+    TInt iNoMappedFrequencies;
+    /**
+    Indicates the subset of fields of the class that are valid. Bits are set according to enumeration
+    TEonStation::TField
+    */
+    TUint32 iValid;
+};
+
+/**
+Mapped frequencies can be broadcast as a part of the EON information. They relate the
+current tuning frequency with the frequency which the referred EON station will be
+broadcast on.
+*/
+class TEonMappedFrequency
+{
+public:
+    inline TEonMappedFrequency(TFrequency aTuningFrequency, TFrequency aMappedFrequency);
+public:
+    /** The current tuning frequency, relating to the station broadcasting the EON informarion. */
+    TFrequency iTuningFrequency;
+    /**
+    The mapped frequency. If iTunedFrequency matches the currently tuned frequency, the
+    EON station will be broadcast on this frequency.
+    */
+    TFrequency iMappedFrequency;
+};
+
+/**
+The RDS class augments the tuner API to give access to the RDS capabilities
+of the device. As such additional tuner technologies can be supported without
+changing the Tuner API.
+
+Note that despite this class being names 'RDS', it is capable of supporting both
+the RDS standard, and the North American equivilant RBDS. The only important difference
+from the APIs perspective is the interpretation of the Programme Type (PTY) codes. See
+TRdsProgrammeType for more information.
+*/
+class CMMRdsTunerUtility : public CBase
+{
+    friend class CMMTunerUtility::CBody;
+public:
+    /** RDS Announcement Type */
+    enum TAnnouncementType
+    {
+        /** Traffic announcement */
+        ERdsTrafficAnnouncement,
+        /** News announcement */
+        ERdsNewsAnnouncement
+    };
+public:
+    /**
+    Factory function to create a new instance of the RDS Tuner API
+
+    @param aTuner A RDS capable tuner object (check using CMMTunerUtility::GetCapabilities())
+    @param aObserver The observer of the tuner to receive asynchronous completion messages.
+    @leave KErrNoMemory Out of memory
+    @leave KErrNotFound CMMRdsTunerUtility object is not present
+    @leave KErrNotSupported RDS is not supported by the tuner
+    @return A pointer and ownership of a fully constructed CMMRdsTunerUtility object
+    */
+    IMPORT_C static CMMRdsTunerUtility* NewL(CMMTunerUtility& aTuner, MMMTunerObserver& aObserver, CMMTunerUtility::TTunerBand aBand);
+
+    IMPORT_C ~CMMRdsTunerUtility();
+
+    /**
+    Get the RDS capabilities of the device
+
+    @param aCaps The capabilities object to fill
+    @return A standard system error code
+    */
+    IMPORT_C TInt GetRdsCapabilities(TRdsCapabilities& aCaps) const;
+
+    /**
+    Find a radio station which contains RDS data starting at the start frequency
+    and searching in the direction specified (i.e. Up or down).
+
+    @note this function is subject to the same access control scheme as the Tune
+          methods of CMMTunerUtility
+
+    @param aStartFrequency The frequency to start searching from, or 0 to start at the
+            beginning of the stated band.
+    @param aBand The frequency band to search. This must be a FM band.
+    @param aSearchDirection The direction to search in
+    @param aCircularSeek If set to ETrue the station seek will loop back to the
+           other end of the band once the end of the band has been reached.
+           (Defaults to ETrue) If not set reaching the end of the band without
+           finding a station will result in a callback to MToTuneComplete with error
+           KErrNotFound.
+    */
+    IMPORT_C void StationSearchByRds(TFrequency     aStartFrequency,
+                                     CMMTunerUtility::TSearchDirection aSearchDirection
+                                    );
+
+    /**
+    Find a radio station, of the specified programme type starting at the start
+    frequency and searching in the direction specified (i.e. Up or down).
+
+    @note this function is subject to the same access control scheme as the Tune
+          methods of CMMTunerUtility
+
+    @param aProgType The type of programme to search for
+    @param aStartFrequency The frequency to start searching from, or 0 to start at the
+            beginning of the stated band.
+    @param aBand The frequency band to search. This must be a FM band.
+    @param aSearchDirection The direction to search in
+    @param aCircularSeek If set to ETrue the station seek will loop back to the
+           other end of the band once the end of the band has been reached.
+           (Defaults to ETrue) If not set reaching the end of the band without
+           finding a station will result in a callback to MToTuneComplete with error
+           KErrNotFound.
+    */
+    IMPORT_C void StationSearchByProgrammeType(
+        TRdsProgrammeType aProgType,
+        TFrequency aStartFrequency,
+        CMMTunerUtility::TSearchDirection aSearchDirection
+    );
+
+    /**
+    Find a radio station, with the specified programme identifier starting at the
+    start frequency and searching in the direction specified (i.e. Up or down).
+
+    @note this function is subject to the same access control scheme as the Tune
+          methods of CMMTunerUtility
+
+    @param aPi The programme identifier of the station to search for
+    @param aStartFrequency The frequency to start searching from, or 0 to start at the
+            beginning of the stated band.
+    @param aBand The frequency band to search. This must be a FM band.
+    @param aSearchDirection The direction to search in
+    @param aCircularSeek If set to ETrue the station seek will loop back to the other
+           end of the band once the end of the band has been reached. (Defaults to ETrue)
+           If not set reaching the end of the band without finding a station will result
+           in a callback to MToTuneComplete with error KErrNotFound.
+    */
+    IMPORT_C void StationSearchByProgrammeIdentifier(
+        TRdsProgrammeIdentifier             aPi,
+        TFrequency                          aStartFrequency,
+        CMMTunerUtility::TSearchDirection   aSearchDirection
+    );
+
+    /**
+    Find a radio station, with the specified traffic programme flag value starting at
+    the start frequency and searching in the direction specified (i.e. Up or down).
+
+    @note this function is subject to the same access control scheme as the Tune
+          methods of CMMTunerUtility
+
+    @param aTp The TP flag value of a station to search for
+    @param aStartFrequency The frequency to start searching from, or 0 to start at the
+            beginning of the stated band.
+    @param aBand The frequency band to search. This must be a FM band.
+    @param aSearchDirection The direction to search in
+    @param aCircularSeek If set to ETrue the station seek will loop back to the other
+           end of the band once the end of the band has been reached. (Defaults to ETrue)
+           If not set reaching the end of the band without finding a station will result
+           in a callback to MToTuneComplete with error KErrNotFound.
+    */
+    IMPORT_C void StationSearchByTrafficProgramme(
+        TBool                              aTp,
+        TFrequency                         aStartFrequency,
+        CMMTunerUtility::TSearchDirection  aSearchDirection
+    );
+
+    /**
+    Cancels an ongoing RDS search as initiated by one of the functions
+    StationSearchByRds, StationSearchByProgrammeType,
+    StationSearchByProgrammeIdentifier or StationSearchByTrafficProgramme. The
+    asynchronous callback will not occur if this is called.
+
+    Has not affect if no RDS search operation is ongoing.
+    */
+    IMPORT_C void CancelRdsSearch();
+
+    /**
+    Requests notifications when all RDS data become invalid due to the tuner being
+    retuned.
+
+    @param aObserver The client to be notified.
+    @param aWhichData The subset of data for which change notifications are required.
+    @return A standard system wide error code.
+    */
+    IMPORT_C TInt NotifyRdsDataChange(MMMRdsDataObserver& aObserver, TUint32 aWhichData = TRdsData::KAllRdsData);
+
+    /**
+    Cancel a NotifyRdsDataChange request.
+    */
+    IMPORT_C void CancelNotifyRdsDataChange();
+
+    /**
+    Request some RDS data. This will complete immediately with whatever RDS data have already been
+    received.
+
+    When this function returns, and data that was requested but is not indicated to be
+    valid can be assumed not to have been received.
+
+    @param aData The RDS data will be written to this variable.
+    @param aValid On return, indicates a subset of RDS data that are valid.
+    @param aWhichData The subset of RDS data that are being requested.
+    @return A standard system wide error code.
+    */
+    IMPORT_C TInt GetRdsData(TRdsData& aData, TUint32& aValid, TUint32 aWhichData = TRdsData::KAllRdsData) const;
+
+    /**
+    Converts an RDS language identifier into a Symbian TLanguage type. Note that not all
+    languages defined by the RDS specification IEC62106 are present in the TLanguage
+    enumeration; in these cases, a value of ELangOther will be returned.
+
+    @param aRdsLangId An RDS language identification code
+    @return The corresponding TLanguage member, or ELangOther if none exists.
+    */
+    IMPORT_C static TLanguage ConvertRdsLanguageId(TRdsLanguageIdentifier aRdsLangId);
+
+    /**
+    Get the length of the available radio text. If no radio text is available this
+    function will return KErrNotFound. The maximum possible length for radio text is 64 characters.
+
+    @param aLength The variable to set to the length of the avaiable radio text
+    @return A standard system error code.
+    */
+    IMPORT_C TInt GetRadioTextLength(TUint& aLength) const;
+
+    /**
+    Get the radio text. If no radio text is available, this will return KErrNotFound. In this
+    case, a client can call NotifyRadioText to receive a notification when it is received.
+
+    The radio text will have been converted to unicode, eliminating any control characters
+    within it.
+
+    @param aRadioText The descriptor to fill with the radio text
+    @return A standard system error code
+    */
+    IMPORT_C TInt GetRadioText(TDes& aRadioText) const;
+
+    /**
+    Request notification when the radio text is received or changes.
+
+    @param aObserver The client to be notified when the radio text is received or changes.
+    @return A standard system wide error code.
+    */
+    IMPORT_C TInt NotifyRadioText(MMMRdsDataObserver& aObserver);
+
+    /**
+    Cancel a NotifyRadioText request.
+    */
+    IMPORT_C void CancelNotifyRadioText();
+
+    /**
+    Turns regional link function on or off depending on the value of the parameter.
+    A value of ETrue should be passed if you wish to stay tuned to the currently
+    tuned local station regardless of signal quality and signal strength.
+    i.e. don't switch to another local station in the region.
+
+    @param aRegOn ETrue to turn regional link on, EFalse to turn it off
+    @return A standard system error code
+    */
+    IMPORT_C TInt SetRegionalLink(TBool aRegOn);
+
+    /**
+    Finds out if the regional link function is currently on or off.
+
+    @param aRegOn This will be set to ETrue on return if and only if the regional
+           link function is currently enabled.
+    @return A standard system error code.
+    */
+    IMPORT_C TInt GetRegionalLink(TBool& aRegOn) const;
+
+    /**
+    Turn the travel announcement function on or off depending on the value of the
+    parameter. A value of ETrue turns on Traffic Announcements, EFalse turns them off.
+
+    If Traffic announcements are disabled while the tuner is retuned to a traffic
+    announcement, the tuner will not revert to the original frequency. To revert to
+    the original frequency, StopAnnouncement() must be called before the traffic
+    announcement feature is disabled.
+
+    @param aTaOn ETrue to turn TA on, EFalse to turn it off
+    @return A standard system error code
+    */
+    IMPORT_C TInt SetTrafficAnnouncement(TBool aTaOn);
+
+    /**
+    Finds out if the traffic announcement function is currently enabled or not.
+
+    @param aTaOn This is set to ETrue on return if and only if the traffic
+           announcement function is currenly enabled.
+    */
+    IMPORT_C TInt GetTrafficAnnouncement(TBool& aTaOn) const;
+
+    /**
+    Set the absolute volume to apply during a traffic or news announcement.
+
+    @param aVolume The volume to use. Must be between 0 and MaxVolume.
+    @return A standard system error code.
+    */
+    IMPORT_C TInt SetAnnouncementVolume(TInt aVolume);
+
+    /**
+    Find the current absolute volume level used for news of traffic annoucements.
+
+    @param aVolume This will be set to the current volume used for annoucements.
+    @return A standard system error code, KErrNotFound if a annoucement volume offset has been set.
+            use.
+    */
+    IMPORT_C TInt GetAnnouncementVolume(TInt& aVolume) const;
+
+    /**
+    Set the offset to the system volume level to apply during a traffic or news announcement
+
+    @param aVolumeOffset The offset to the volume level to set for announcements. Must be between -MaxVolume and MaxVolume inclusive.
+                         the actual volume with the offset applied will be clipped between 0 and MaxVolume if the offset would
+                         otherwise result in a volume outside this range.
+    @return A standard system error code
+    */
+    IMPORT_C TInt SetAnnouncementVolumeOffset(TInt aVolumeOffset);
+
+    /**
+    Find the current offset of the system volume that applies during traffic and news announcements.
+
+    @param aVolumeOffset This will be set to the current traffic and news announcement offset on return.
+    @return A standard system error code, KErrNotFound if an absolute annoucement volume has been set.
+    */
+    IMPORT_C TInt GetAnnouncementVolumeOffset(TInt& aVolumeOffset) const;
+
+    /**
+    Turn the news announcement function on or off depending on the value of the
+    parameter. The news announcement function when enabled causes the radio to
+    retune to a station when that station is broadcasting a news report. When the
+    news announcement is finished the radio will tune back to the original station.
+    A value of ETrue turns on News Announcements, EFalse turns them off.
+
+    If News announcements are disabled while the tuner is retuned to a news
+    announcement, the tuner will not revert to the original frequency. To revert to
+    the original frequency, StopAnnouncement() must be called before the news
+    announcement feature is disabled.
+
+    @param aNaOn ETrue to turn NA on, EFalse to turn it off
+    @return A standard system error code
+    */
+    IMPORT_C TInt SetNewsAnnouncement(TBool aNaOn);
+
+    /**
+    Finds out whether the news announcement function is on or off.
+
+    @param aNaOn This will be set to ETrue if and only if the new announcement
+           function is currently on.
+    @return A standard system error code.
+    */
+    IMPORT_C TInt GetNewsAnnouncement(TBool& aNaOn) const;
+
+    /**
+    Cancels any current announcement, reverting to the original frequency. The announcement
+    feature will remain enabled. If no announcement is currently happening, this function
+    has no affect. This can be used for both News and Traffic announcements.
+
+    @return A standard system error code. KErrNone if an announcement was successfully
+            stopped, or KErrNotReady if no announcement is currently happening.
+    */
+    IMPORT_C TInt StopAnnouncement();
+
+    /**
+    Turns alternative frequency function on or off depending on the value of the parameter.
+    A value of ETrue should be passed if you wish to enable automatic retuning to the current
+    station on an alternative frequency.
+
+    @param aAfOn ETrue to turn alternative frequency on, EFalse to turn it off
+    @return A standard system error code
+    */
+    IMPORT_C TInt SetAlternativeFrequency(TBool aAfOn);
+
+    /**
+    Finds out whether the alternative frequency function is on or off.
+
+    @param aAfOn This will be set to ETrue if and only if the alternative frequency
+           function is currently on.
+    @return A standard system error code.
+    */
+    IMPORT_C TInt GetAlternativeFrequency(TBool& aAfOn) const;
+
+    /**
+    Requests a notification when RDS functionality is enabled or disabled, or when
+    the traffic announcement volume offset is changed.
+
+    @param aObserver The class which is to be notified of the changes.
+    @return A standard system error code.
+    */
+    IMPORT_C TInt NotifyRdsStateChange(MMMRdsStateChangeObserver& aObserver);
+
+    /**
+    Cancels an outstanding RDS state change notification request.
+    */
+    IMPORT_C void CancelNotifyRdsStateChange();
+
+    /**
+    Get the current RDS time. This is an asynchronous function due to the latency of
+    the RDS information becoming available. This information is broadcast at the start of
+    every minute, and is not cached for obvious reasons. Thus, whenever a request is made,
+    it will complete next time the Data and Time are broadcast. The RDS standard states
+    that this is broadcast within 0.1s of the start of a minute, and is accurate to one
+    minute. The latency of the notification reaching the application cannot be guarteed.
+
+    @param aTimeAndDate The variable to set to the current RDS time and date
+    @param aStatus A TRequestStatus. This will be signalled when the request completes
+    and will contain the result of the request, this will be one of the system error codes.
+    */
+    IMPORT_C void GetRdsTime(TPckg<TDateTime>& aTimeAndDate, TRequestStatus& aStatus) const;
+
+    /**
+    Cancel the GetRdsTime request
+    */
+    IMPORT_C void CancelGetRdsTime();
+
+    /**
+    Request notification when a retune caused by an announcement occurs. This will be
+    a traffic or news announcement. A notification will be provided both at
+    the start of the announcement and at the end.
+
+    @param aObserver The object wishing to receive announcement events
+    @return A standard system error code
+    */
+    IMPORT_C TInt NotifyAnnouncement(MMMRdsAnnouncementObserver& aObserver);
+
+    /**
+    Cancel the NotifyAnnouncement request
+    */
+    IMPORT_C void CancelNotifyAnnouncement();
+
+    /**
+    Returns a list containing information about other networks broadcast with the currently tuned
+    programmme. This call will return immediately with whatever EON information is currently available.
+    Note that is is possible for this function to return no EON stations when several are being broadcast
+    simply because not enough RDS frames have been received yet. An interested application should make a
+    call to NotifyEonInfo to receive notifications when EON information is received or changes.
+
+    @param aEonInfo An array to which the EON information will be appended.
+    */
+    IMPORT_C void GetEonInfoL(RArray<TEonStation>& aEonInfo) const;
+
+    /**
+    Gets the frequencies assoicated with an EON station. This will complete immediately with whatever
+    frequencies are currently cached. An interested application should make a call to NotifyEonChange
+    to receive notifications when more frequencies are received.
+
+    @param aEonStation the EON station to get the frequencies for
+    @param aFrequencies an array to which the frequencies associated with the given station will be
+            appended.
+    */
+    IMPORT_C void GetEonFrequenciesL(const TEonStation& aEonStation, RArray<TFrequency>& aFrequencies) const;
+
+    /**
+    Gets the mapped frequencies associated with an EON station. This will complete immediately with whatever
+    mapped frequencies are currently cached. An interested application should make a call to NotifyEonChange
+    to receive notifications when more frequencies are received.
+
+    @param aEonStation the EON station to get the mapped frequencies for
+    @param aMappedFrequencies an array to which the mapped frequencies associated with the given station
+            will be appended.
+    */
+    IMPORT_C void GetEonMappedFrequenciesL(const TEonStation& aEonStation, RArray<TEonMappedFrequency>& aMappedFrequencies) const;
+
+    /**
+    Request notification when the Enhanced Other Networks (EON) information changes.
+
+    @param aObserver The client to be notifier when EON information changes or an error occurs.
+    */
+    IMPORT_C TInt NotifyEonInfo(MMMRdsEonObserver& aObserver);
+
+    /**
+    Cancels a NotifyEonInfo request.
+    */
+    IMPORT_C void CancelNotifyEonInfo();
+
+    /**
+    Tunes to a station represented by a TEonStation. This will result to a callback to MtoTuneComplete.
+
+    @param aEonStation The EON station that is to be tuned to.
+    */
+    IMPORT_C void TuneToEonStation(const TEonStation& aEonStation);
+
+    /**
+    Send a synchronous custom command to the RDS tuner.
+
+    @param aFunction The function number to indicate which function is to be called
+        on the interface defined by the first IPC argument
+    @param aArgs The IPC arguments to send to the RDS tuner. The first of these
+        arguments must be the UID of the interface within the tuner to which the
+        command is destined, represented as an integer. Failure to set the first
+        argument properly will result in the command completing with
+        KErrNotSupported at best, but possibly the client being panicked.
+    @return A standard system error code
+    */
+    IMPORT_C TInt CustomCommandSync(TInt aFunction, const TIpcArgs& aArgs);
+
+    /**
+    Send an asynchronous custom command to the RDS tuner.
+
+    @param aFunction The function number to indicate which function is to be called
+        on the interface defined by the first IPC argument
+    @param aArgs The IPC arguments to send to the RDS tuner. The first of these
+        arguments must be the UID of the interface within the tuner to which the
+        command is destined, represented as an integer. Failure to set the first
+        argument properly will result in the command completing with
+        KErrNotSupported at best, but possibly  the client being panicked.
+    @param aStatus The TRequestStatus of an active object. This will contain the
+        result of the request on completion.  The exact range of result values is
+        dependent on the interface.
+    */
+    IMPORT_C void CustomCommandAsync(TInt aFunction, const TIpcArgs& aArgs, TRequestStatus& aStatus);
+
+private:
+    CMMRdsTunerUtility();
+private:
+    class CBody;
+    CBody* iBody;
+
+};
+
+/**
+This mixin class should be implemented by applications wishing to receive notifications
+when RDS data is received, changes or becomes invalid. Each method corresponds to a
+particular request in CMMRdsTunerUtility. Only methods corresponding to requests in
+CMMRdsTunerUtility that are used by a client need be implemented - empty default
+implementations are provided.
+*/
+class MMMRdsDataObserver
+{
+public:
+    /**
+    Called when some error occurs which makes RDS data unavailable.
+    */
+    virtual void MrdoError(TInt aError)  = 0;
+
+    /**
+    Called when some RDS data is received or has changed.
+
+    Two subsets of the RDS data supplied are indicted: that which has changed and that which is
+    valid. This information can be interpreted as follows:
+    For an item of RDS data x:
+        valid(x)  & !changed(x) => x was received before and has not changed
+        valid(x)  & changed(x)  => x has either just been received for the first time, or has just changed
+        !valid(x) & changed(x)  => x is no longer available
+        !valid(x) & !changed(x) => x was not available before, and is still not available.
+
+    When the tuner is retuned to a new station, all RDS data will be flushed. This will result in
+    a call to this function indicating that all RDS data has changed and is longer valid.
+
+    @param aData The RDS data.
+    @param aValid Indicates a subset of aData that is valid (i.e. has been received)
+    @param aChanged Indicates a subset of aData that has changed since the last call to this function.
+    */
+    virtual void MrdoDataReceived(const TRdsData& aData, TUint32 aValid, TUint32 aChanged) = 0;
+
+    /**
+    Called when the RDS Radio Text (RT) is received, changes, or is no longer available.
+
+    @param aRt The Radio Text message. This will be empty if aValid==EFalse.
+    @param aValid Indicates if the radio text is valid.
+    @param aChanges Indicates if the radio test has changed.
+    */
+    virtual void MrdoRadioTextReceived(const TDesC& aRt, TBool aValid, TBool aChanged) = 0;
+};
+
+/**
+The state change observer mixin class defines the interface via which changes to
+the state of the RDS radio can be observed. These state changes will be a result
+of a client enabling or disabling RDS functionality.
+*/
+class MMMRdsStateChangeObserver
+{
+public:
+    /**
+    Called when the regional link functionality is enabled/disabled.
+
+    @param aNewRegLinkOn The new setting: ETrue if the regional link function has
+           just been enabled.
+    */
+    virtual void MrscoRegionalLinkChanged(TBool aNewRegLinkOn) = 0;
+
+    /**
+    Called when the traffic announcement functionality has just been enabled or
+    disabled.
+
+    @param aNewTaOn ETrue if the TA function is now on, EFalse otherwise.
+    */
+    virtual void MrscoTrafficAnnouncementChanged(TBool aNewTaOn) = 0;
+
+    /**
+    Called when the traffic and news announcement volume offset is changed. A callback to
+    this method indicates the a volume offset is being used instead of an absolute volume.
+
+    @param aOldOffset The announcement volume offset before the change
+    @param aNewOffset The announcement volume offset after the change
+    */
+    virtual void MrscoAnnouncementVolumeOffsetChanged(TInt aOldOffset, TInt aNewOffset) = 0;
+
+    /**
+    Called when the traffic an news announcement volume is changed. A callback to
+    this method indicates that an absolute volume is being used instead of volume offsets.
+
+    @param aOldVolume The announcement volume before the change.
+    @param aNewVolume The announcement volume after the change.
+    */
+    virtual void MrscoAnnouncementVolumeChanged(TInt aOldVolume, TInt aNewVolume) = 0;
+
+    /**
+    Called when the news announcement functionality has just been enabled or
+    disabled.
+
+    @param aNewNAOn ETrue if the NA function is now enabled, else EFalse.
+    */
+    virtual void MrscoNewsAnnouncementChanged(TBool aNewNAOn) = 0;
+
+    /**
+    Called when the alternative frequencies function is turned on or off.
+
+    @param aNewAFOn ETrue if the AF function has just been turned on, else EFalse.
+    */
+    virtual void MrscoAlternativeFrequenciesChanged(TBool aNewAFOn) = 0;
+};
+
+
+/**
+The Announcement Observer mixin class defines the interface via which
+announcement events can be received. A client interested in such
+information calls the function NotifyAnnouncement.
+*/
+class MMMRdsAnnouncementObserver
+{
+public:
+    /**
+    Called when an announcement starts
+
+    @param aType The type of announcement (travel or news)
+    */
+    virtual void MraoAnnouncementStart(CMMRdsTunerUtility::TAnnouncementType aType) = 0;
+
+    /**
+    Called when an announcement ends
+
+    @param aType The type of announcement (travel or news)
+    */
+    virtual void MraoAnnouncementEnd(CMMRdsTunerUtility::TAnnouncementType aType) = 0;
+
+    /**
+    Called when an error occurs which results in announcement notifications
+    becoming unavailable.
+    */
+    virtual void MraoError(TInt aError) = 0;
+};
+
+/**
+The enhanced other networks observer mixin class defines the interface via
+which changes to the enhanced other networks information can be notified. A
+client interested in such information calls the function NotifyEonChange.
+*/
+class MMMRdsEonObserver
+{
+public:
+    /**
+    Called when some details of an EON station change. The station can be referenced
+    to an existing one using it's Programme Identifier, which cannot change.
+
+    @param aStation A TEonStation containing the new information about the station.
+    @param aChanged The subset of the members of aStation that have changed. Bits are
+            set according to TEonStation::TField.
+    */
+    virtual void MreoEonStationChanged(const TEonStation& aStation, TUint32 aChanged) = 0;
+
+    /**
+    Called when details of a new EON station are received.
+
+    @param aStation A TEonStation containing the new information about the station.
+    */
+    virtual void MreoNewEonStation(const TEonStation& aStation) = 0;
+
+    /**
+    Called when details of <b>all</b> EON stations cease to be broadcast. This will
+    typically happen when the tuner is retuned. More EON stations may continue to be
+    recieved: this call does not indicate that EON information is no longer available.
+    */
+    virtual void MreoAllEonStationsRemoved() = 0;
+
+    /**
+    Called when details of an EON station cease to be broadcast.
+
+    @param aPi The programme identifier of the EON station which has been removed.
+    */
+    virtual void MreoEonStationRemoved(const TRdsProgrammeIdentifier& aPi) = 0;
+
+    /**
+    Called when an error occurs resulting in EON notifications not being available.
+    */
+    virtual void MreoError(TInt aError) = 0;
+};
+
+#include <tuner.inl>
+
+#endif // TUNER_H
+
+// End of file
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/amms_akn/src_tuner/native/external_include/tuner.inl	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,84 @@
+/*
+* 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:  Inline functions for Tuner component.
+*
+*/
+
+
+TTunerCapabilities::TTunerCapabilities()
+        : iTunerBands(0), iAdditionalFunctions(0)
+{}
+
+TTunerCapabilities::TTunerCapabilities(TUint32 aTunerBands, TUint32 aAdditionalFunctions)
+        : iTunerBands(aTunerBands), iAdditionalFunctions(aAdditionalFunctions)
+{}
+
+TFrequency::TFrequency()
+        : iFrequency(0)
+{}
+
+TFrequency::TFrequency(TInt aFrequency)
+        : iFrequency(aFrequency)
+{}
+
+TInt TFrequency::operator==(const TFrequency& aFrequency) const
+{
+    return (iFrequency==aFrequency.iFrequency);
+}
+
+TInt TFrequency::operator!=(const TFrequency& aFrequency) const
+{
+    return (iFrequency!=aFrequency.iFrequency);
+}
+
+TInt TFrequency::operator> (const TFrequency& aFrequency) const
+{
+    return (iFrequency>aFrequency.iFrequency);
+}
+
+TInt TFrequency::operator>=(const TFrequency& aFrequency) const
+{
+    return (iFrequency>=aFrequency.iFrequency);
+}
+
+TInt TFrequency::operator< (const TFrequency& aFrequency) const
+{
+    return (iFrequency<aFrequency.iFrequency);
+}
+
+TInt TFrequency::operator<=(const TFrequency& aFrequency) const
+{
+    return (iFrequency<=aFrequency.iFrequency);
+}
+
+TRdsData::TRdsData()
+{
+}
+
+TEonMappedFrequency::TEonMappedFrequency(TFrequency aTuningFrequency, TFrequency aMappedFrequency)
+        : iTuningFrequency(aTuningFrequency), iMappedFrequency(aMappedFrequency)
+{
+}
+
+TInt TRdsProgrammeItemNumber::operator==(const TRdsProgrammeItemNumber& aPin) const
+{
+    return ((iDayOfMonth==aPin.iDayOfMonth)&&(iHour==aPin.iHour)&&(iMinute==aPin.iMinute));
+}
+
+TInt TRdsProgrammeItemNumber::operator!=(const TRdsProgrammeItemNumber& aPin) const
+{
+    return (!((*this)==aPin));
+}
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/amms_akn/src_tuner/native/inc/ammstunerfactory.h	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,95 @@
+/*
+* Copyright (c) 2005 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:  This class is used to create tuner player and control
+*
+*/
+
+
+
+#ifndef AMMSTUNERFACTORY_H
+#define AMMSTUNERFACTORY_H
+
+//  INCLUDES
+#include <e32base.h>
+
+#include "CAMMSTunerControl.h"
+
+// FORWARD DECLARATIONS
+class CAMMSTunerPlayer;
+class CAMMSTunerControl;
+
+// CLASS DECLARATION
+/**
+*  This class is used to create tuner player and control.
+*  It parses locator parameters and set them to control.
+*/
+
+NONSHARABLE_CLASS(AMMSTunerFactory)
+{
+public:  // Constructors and destructor
+
+    /**
+    * Destructor.
+    */
+    virtual ~AMMSTunerFactory();
+
+public: // New functions
+
+    /**
+    * ?member_description.
+    * @param aTunerPlayer
+    * @param aLocatorParams
+    */
+    static void CreatePlayerL(CAMMSTunerPlayer** aTunerPlayer,
+                              const TDesC* aLocatorParams);
+
+protected:  // New functions
+
+    /**
+    * Parse all locator parameters.
+    * @param aLocatorParams
+    * @param aFrequency
+    * @param aStereoMode
+    * @param aPreset
+    */
+    static void ParseParamsL(const TDesC* aLocatorParams,
+                             TInt& aFrequency,
+                             TInt& aStereoMode,
+                             TInt& aPreset);
+
+    /**
+    * Parses frequency parameter
+    * @param aFrequency - locator's frequency parameter
+    * @return frequency in TInt
+    */
+    static TInt ParseFreqL(const TPtrC aFrequency);
+
+    /**
+    * Converts TPtrC to TReal using TLex.
+    * @param aHertz - hertzs in TPtrC
+    * @return hertzs in TReal
+    */
+    static TReal TDesCToTRealL(const TPtrC aHertz);
+
+private:
+
+    /**
+    * C++ default constructor.
+    */
+    AMMSTunerFactory();
+};
+
+#endif // AMMSTUNERFACTORY_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/amms_akn/src_tuner/native/inc/cammstunercontrol.h	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,290 @@
+/*
+* Copyright (c) 2005 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:  Control for tuner
+*
+*/
+
+
+#ifndef CAMMSTUNERCONTROL_H
+#define CAMMSTUNERCONTROL_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <tuner.h>
+
+#include <CMMAControl.h>
+
+
+// FORWARD DECLARATIONS
+class CAMMSTunerPlayer;
+class CAMMSTunerPresetsHandler;
+
+// CLASS DECLARATION
+/**
+*  Control for tuner
+*/
+
+NONSHARABLE_CLASS(CAMMSTunerControl) : public CMMAControl,
+        public MMMTunerObserver,
+        public MMMTunerChangeObserver,
+        public MMMTunerStereoObserver
+{
+public:  // Constructors and destructor
+
+    /**
+    * Two-phased constructor.
+    */
+    static CAMMSTunerControl* NewL();
+
+    /**
+    * Destructor.
+    */
+    virtual ~CAMMSTunerControl();
+
+public: // New functions
+
+    /**
+    * Getter for CMMTunerUtility
+    * @return CMMTunerUtility
+    */
+    CMMTunerUtility* TunerUtility();
+
+    /**
+    * Gets the minimum frequency supported by this tuner
+    * with the given modulation.
+    * @return minimum frequency supported by this tuner
+    */
+    TInt MinFreqL();
+
+    /**
+    * Gets the maximum frequency supported by this tuner
+    * with the given modulation.
+    * @return maximum frequency supported by this tuner
+    */
+    TInt MaxFreqL();
+
+    /**
+    * Tunes to the given frequency or to the closest supported frequency.
+    * @param aFreq - the frequency in Hertzs that will be taken into use
+    * @return the frequency in 100 Hertzs that was taken into use
+
+    */
+    void SetFrequencyL(TInt aFreq);
+
+    /**
+    * Gets the frequency which the tuner has been tuned to.
+    * @return the frequency to which the device has been tuned,
+    *         in 100 Hertzs
+    */
+    TInt FrequencyL();
+
+    /**
+    * Seeks for the next broadcast signal.
+    * @param aStartFreq - the frequency in Hertzs wherefrom the scan starts
+    * @param aUpwards - if true, the scan proceeds towards higher
+    *                   frequencies, otherwise towards lower frequencies
+    * @return the found frequency
+    */
+    TInt SeekL(TInt aStartFreq, TBool aUpwards);
+
+    /**
+    * Gets the current squelching (muting in frequencies without broadcast)
+    * setting.
+    * @return true if squelch is on or false if squelch is off
+    */
+    TBool SquelchL();
+
+    /**
+    * Sets squelching on or off.
+    * @param aSquelch - true to turn the squelch on or false
+    *                   to turn the squelch off
+    */
+    void SetSquelchL(TBool aSquelch);
+
+    /**
+    * Gets the strength of the recepted signal.
+    * @return a value between 0 and 100 where 0 means the faintest
+    *         and 100 the strongest possible signal strength
+    */
+    TInt SignalStrengthL();
+
+    /**
+    * Gets the stereo mode in use.
+    * @return stereo mode in use
+    */
+    TInt StereoModeL();
+
+    /**
+    * Sets the stereo mode.
+    * @param aMode - the stereo mode to be used
+    */
+    void SetStereoModeL(TInt aMode);
+
+    /**
+    * Tunes the tuner by using settings specified in the preset.
+    * @param aPreset - the preset to be used.
+    */
+    void UsePresetL(TInt aPreset);
+
+    /**
+    * Configures the preset using current frequency and modulation
+    * and stereo mode.
+    * @param aPreset - the preset to be set.
+    */
+    void SetPresetL(TInt aPreset);
+
+    /**
+    * Configures the preset using given settings.
+    * @param aPreset - the preset to be set.
+    * @param aFrequency - the frequency to be set.
+    * @param aStereoMode - the stereo mode to be set.
+    */
+    void SetPresetL(TInt aPreset, TInt aFrequency, TInt aStereoMode);
+
+    /**
+    * Gets preset frequency
+    * @param aPreset - the preset whose frequency is to be returned
+    .       * @return the frequency of the preset in 100 Hertzs
+    */
+    TInt PresetFrequencyL(TInt aPreset);
+
+    /**
+    * Gets preset stereo mode
+    * @param aPreset - the preset whose stereo mode is to be returned
+    .       * @return the stereo mode of the preset.
+    */
+    TInt PresetStereoModeL(TInt aPreset);
+
+    /**
+    * Set preset name
+    * @param aPreset - the preset whose name is to be set
+    * @param aPresetName - the name of the preset
+    */
+    void SetPresetNameL(TInt aPreset, const TDesC* aPresetName);
+
+    /**
+    * Get preset name
+    * @param aPreset - the preset whose name is asked
+    * @param aPresetName - the name of the preset
+    */
+    void GetPresetNameL(TInt aPreset, TPtrC* aPresetName);
+
+public: // functions from base classes
+
+    // from CMMAControl
+
+    const TDesC& ClassName() const;
+
+    const TDesC& PublicClassName() const;
+
+    // from MMMTunerObserver
+
+    void MToTuneComplete(TInt aError);
+
+    // from class MMMTunerChangeObserver
+
+    /**
+    Called when the tuned frequency changes
+
+    @param aOldFrequency The frequency in use before the change
+    @param aNewFrequency The new tuned frequency
+    */
+    void MTcoFrequencyChanged(const TFrequency& aOldFrequency,
+                              const TFrequency& aNewFrequency);
+
+    /**
+    Called when the state of the tuner changes.
+
+    @param aOldState The old state. Bits are set according to TTunerState.
+    @param aNewState The new state. Bits are set according to TTunerState.
+    */
+    void MTcoStateChanged(const TUint32& aOldState,
+                          const TUint32& aNewState);
+
+    /**
+    This function is called when an external antenna is detached from the device.
+    This does not necessarily indicate that the tuner can no longer be used; the
+    capabilities of the tuner indicate if the external antenna is required in order
+    to use the tuner.
+    */
+    void MTcoAntennaDetached();
+
+    /**
+    This function is called when an external antenna is attached to the device. If
+    the antenna is required to use the tuner, this indicates that the tuner can be
+    used again.
+    */
+    void MTcoAntennaAttached();
+
+    /**
+    This function is called when the device enters or leaves flight mode. If the tuner
+    cannot be used in flight mode when the device enters this mode, this indicates
+    that the tuner can no longer be used; the capabilities of the tuner indicate if
+    it can be used in flight mode or not.
+
+    @param aFlightMode ETrue if the device has just entered flight mode, EFalse if
+            flight mode has just been left.
+    */
+    void FlightModeChanged(TBool aFlightMode);
+
+    // from class MMMTunerStereoObserver
+
+    /**
+    Called when stereo reception is lost/restored.
+
+    @param aStereo If true, indicates that stereo reception has just been restored.
+           If false, indicates that stereo reception has just been lost.
+    */
+    void MTsoStereoReceptionChanged(TBool aStereo);
+
+    /**
+    Called when a client enables/disabled forced mono reception.
+
+    @param aForcedMono ETrue if reception is forced to be mono, even when a stereo
+           signal is available.
+    */
+    void MTsoForcedMonoChanged(TBool aForcedMono);
+
+
+private:
+
+    /**
+    * C++ default constructor.
+    */
+    CAMMSTunerControl();
+
+    /**
+    * By default Symbian 2nd phase constructor is private.
+    */
+    void ConstructL();
+
+    // Prohibit copy constructor if not deriving from CBase.
+    // CAMMSTunerControl( const CAMMSTunerControl& );
+    // Prohibit assigment operator if not deriving from CBase.
+    // CAMMSTunerControl& operator=( const CAMMSTunerControl& );
+
+
+private:    // Data
+
+    TInt iMinFreq;
+    TInt iMaxFreq;
+
+    CMMTunerUtility*  iTunerUtility;
+    CActiveSchedulerWait* iActiveSchedulerWait;
+    CAMMSTunerPresetsHandler* iPresetsHandler;
+};
+
+#endif // CAMMSTUNERCONTROL_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/amms_akn/src_tuner/native/inc/cammstunerplayer.h	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,92 @@
+/*
+* Copyright (c) 2005 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 CAMMSTUNERPLAYER_H
+#define CAMMSTUNERPLAYER_H
+
+//  INCLUDES
+#include <CMMAPlayer.h>
+#include "CAMMSTunerControl.h"
+
+#include <e32base.h>
+#include <tuner.h>
+
+
+// CLASS DECLARATION
+
+/**
+*  Player for tuner
+*
+*/
+NONSHARABLE_CLASS(CAMMSTunerPlayer) : public CMMAPlayer,
+        public MMMTunerAudioPlayerObserver
+{
+public:  // Constructors and destructor
+
+    /**
+    * Two-phased constructor.
+    */
+    static CAMMSTunerPlayer* NewL(CAMMSTunerControl* aTunerControl);
+
+    /**
+    * Destructor.
+    */
+    virtual ~CAMMSTunerPlayer();
+
+public: // from CMMAPlayer
+
+    void PrefetchL();
+    void StartL();
+    void StopL(TBool aPostEvent);
+    void DeallocateL();
+    void GetMediaTime(TInt64* aMediaTime);
+
+public: // from MMMTunerAudioPlayerObserver
+
+    void MTapoInitializeComplete(TInt aError);
+    void MTapoPlayEvent(MMMTunerAudioPlayerObserver::TEventType aEvent, TInt aError, TAny* aAdditionalInfo);
+
+private:
+
+    /**
+    * C++ default constructor.
+    */
+    CAMMSTunerPlayer();
+
+    /**
+    * By default Symbian 2nd phase constructor is private.
+    */
+    void ConstructL(CAMMSTunerControl* aTunerControl);
+
+
+    TInt64 CurrentTime();
+
+private:    // Data
+    CMMTunerAudioPlayerUtility* iTunerPlayerUtility;
+    CAMMSTunerControl* iTunerControl;
+    CActiveSchedulerWait* iActiveSchedulerWait;
+
+    TBool  iIsInitialized;
+    TInt64 iMediaTime;
+    TInt64 iStartTime;
+};
+
+#endif // CAMMSTUNERPLAYER_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/amms_akn/src_tuner/native/inc/cammstunerpresetshandler.h	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,95 @@
+/*
+* Copyright (c) 2005 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:  This class handles presets central repository usage.
+*
+*/
+
+
+
+#ifndef CAMMSTUNERPRESETSHANDLER_H
+#define CAMMSTUNERPRESETSHANDLER_H
+
+//  INCLUDES
+#include    <e32base.h>
+#include    <centralrepository.h>
+
+
+// FORWARD DECLARATIONS
+class TAMMSTunerPreset;
+
+// CLASS DECLARATION
+/**
+* This class handles presets central repository usage.
+*
+*  @lib ?library
+*  @since ?Series60_version
+*/
+NONSHARABLE_CLASS(CAMMSTunerPresetsHandler) : public CBase
+{
+public:  // Constructors and destructor
+
+    /**
+    * Two-phased constructor.
+    */
+    static CAMMSTunerPresetsHandler* NewL();
+
+    /**
+    * Destructor.
+    */
+    virtual ~CAMMSTunerPresetsHandler();
+
+public: // New functions
+
+    /**
+    * Gets presets from central repository
+    * @param aPreset - presets index
+    * @param aTunerPreset
+    */
+    void GetPresetL(TInt aPreset, TAMMSTunerPreset &aTunerPreset);
+
+    /**
+    * Save presets to central repository
+    * @param aPreset - presets index
+    * @param aTunerPreset
+    */
+    void SavePresetL(TInt aPreset, TAMMSTunerPreset aTunerPreset);
+
+private:
+
+    /**
+    * C++ default constructor.
+    */
+    CAMMSTunerPresetsHandler();
+
+    /**
+    * By default Symbian 2nd phase constructor is private.
+    */
+    void ConstructL();
+
+    // Prohibit copy constructor if not deriving from CBase.
+    // CAMMSTunerPresetsHandler( const CAMMSTunerPresetsHandler& );
+    // Prohibit assigment operator if not deriving from CBase.
+    // CAMMSTunerPresetsHandler& operator=( const CAMMSTunerPresetsHandler& );
+
+
+private:    // Data
+
+    CRepository* iCentralRepository;
+
+
+};
+
+#endif // CAMMSTUNERPRESETSHANDLER_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/amms_akn/src_tuner/native/inc/cammstunervolumecontrol.h	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,61 @@
+/*
+* Copyright (c) 2005 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:  This class is used for setting volume to tuner player
+*
+*/
+
+
+#ifndef CAMMSTUNERVOLUMECONTROL_H
+#define CAMMSTUNERVOLUMECONTROL_H
+
+//  INCLUDES
+#include <e32base.h>
+
+#include <CMMAVolumeControl.h>
+
+// FORWARD DECLARATIONS
+class CAMMSTunerPlayer;
+
+// CLASS DECLARATION
+/**
+*  This class is used for setting volume to tuner player
+*/
+
+NONSHARABLE_CLASS(CAMMSTunerVolumeControl) : public CMMAVolumeControl
+{
+public:  // Constructor
+    static CAMMSTunerVolumeControl* NewL(CAMMSTunerPlayer* aTunerPlayer);
+
+public: // functions from base classes
+
+    // from CMMAVolumeControl
+
+    void DoSetLevelL(TInt aLevel);
+
+private:
+
+    /**
+    * C++ default constructor.
+    */
+    CAMMSTunerVolumeControl(CAMMSTunerPlayer* aTunerPlayer);
+
+
+private:    // Data
+
+    CAMMSTunerPlayer* iTunerPlayer;
+};
+
+#endif // CAMMSTUNERVOLUMECONTROL_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/amms_akn/src_tuner/native/inc/tammstunerpreset.h	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,104 @@
+/*
+* Copyright (c) 2005 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:  Helper class for preset handling, reads and writes preset
+*                values in/out stream.
+*
+*/
+
+
+
+#ifndef TAMMSTUNERPRESET_H
+#define TAMMSTUNERPRESET_H
+
+//  INCLUDES
+#include <e32base.h>
+
+
+// FORWARD DECLARATIONS
+class RWriteStream;
+class RReadStream;
+
+// CONSTANTS
+const TInt KPresetNameLength = 100;
+
+// CLASS DECLARATION
+/**
+*  Helper class for preset handling, reads and writes preset
+*  values in/out stream.
+*
+*  @lib ?library
+*  @since ?Series60_version
+*/
+NONSHARABLE_CLASS(TAMMSTunerPreset)
+{
+public:
+
+    /**
+    * C++ default constructor.
+    */
+    TAMMSTunerPreset();
+
+    /**
+    * Setter for preset name.
+    */
+    void SetPresetName(const TDesC* aPresetName);
+
+    /**
+    * Setter for preset frequency.
+    */
+    void SetPresetFrequency(const TInt aPresetFrequency);
+
+    /**
+    * Setter for preset stereo mode.
+    */
+    void SetPresetStereoMode(const TInt aPresetStereoMode);
+
+    /**
+    * Getter for preset name.
+    */
+    TPtrC PresetName();
+
+    /**
+    * Getter for preset frequency.
+    */
+    TInt PresetFrequency();
+
+    /**
+    * Getter for preset stereo mode.
+    */
+    TInt PresetStereoMode();
+
+    /**
+    * Serialize the data to stream.
+    * @param aStream - used for write stream
+    */
+    void ExternalizeL(RWriteStream &aStream) const;
+
+    /**
+    * deserialize the data out of stream.
+    * @param aStream  used for read stream
+    */
+    void InternalizeL(RReadStream &aStream);
+
+private:
+
+    TBuf<KPresetNameLength> iPresetName;
+    TInt iPresetFrequency;
+    TInt iPresetStereoMode;
+
+};
+
+#endif // TAMMSTUNERPRESET_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/amms_akn/src_tuner/native/src/ammstunerfactory.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,300 @@
+/*
+* 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:  This class is used to create tuner player and control
+*
+*/
+
+
+
+// INCLUDE FILES
+#include    "AMMSTunerFactory.h"
+#include    "CAMMSTunerPlayer.h"
+#include    "CAMMSTunerControl.h"
+//#include    "CAMMSTunerVolumeControl.h"
+#include    <CMMAPlayerProperties.h>
+
+#include    <e32std.h>
+#include    <e32math.h>
+#include    <jdebug.h>
+
+// CONSTANTS
+_LIT(KFreqParam, "f");
+
+_LIT(KModulationParam, "mod");
+
+_LIT(KStereoModeParam, "st");
+MMA_PARAMETER_STR(KStereoModeParamMono, "mono");
+MMA_PARAMETER_STR(KStereoModeParamStereo, "stereo");
+MMA_PARAMETER_STR(KStereoModeParamAuto, "auto");
+MMA_PARAMETER_ARRAY(KValidStereoModeValues)
+{
+    {
+        &KStereoModeParamMono
+    }, {&KStereoModeParamStereo}, {&KStereoModeParamAuto}
+};
+
+_LIT(KProgramIdParam, "id");
+_LIT(KPresetParam, "preset");
+
+_LIT(KModulationFm, "fm");
+
+_LIT(KStereoModeMono, "mono");
+_LIT(KStereoModeStereo, "stereo");
+_LIT(KStereoModeAuto, "auto");
+
+const TInt KMegaHertzChar = 'M';
+const TInt KKiloHertzChar = 'k';
+const TInt KFreqDotChar   = '.';
+
+const TInt KMegaHzMultiplier = 1000000;
+const TInt KKiloHzMultiplier = 1000;
+
+const TInt KStereoModeMonoInt   = 1;
+const TInt KStereoModeStereoInt = 2;
+const TInt KStereoModeAutoInt   = 3;
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// Destructor
+AMMSTunerFactory::~AMMSTunerFactory()
+{
+
+}
+
+
+// -----------------------------------------------------------------------------
+// AMMSTunerFactory::CreatePlayerL
+// ?implementation_description
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void AMMSTunerFactory::CreatePlayerL(CAMMSTunerPlayer** aTunerPlayer,
+                                     const TDesC* aLocatorParams)
+{
+    DEBUG("AMMSTunerFactory::CreatePlayerL +");
+
+    TInt frequency = 0;
+    TInt stereoMode = 0;
+    TInt preset = 0;
+
+    if (aLocatorParams->Length() != 0)
+    {
+        DEBUG("AMMSTunerFactory::CreatePlayerL 1");
+        ParseParamsL(aLocatorParams, frequency, stereoMode, preset);
+    }
+
+    //create tunercontrol
+    CAMMSTunerControl* tunerControl = CAMMSTunerControl::NewL();
+    CleanupStack::PushL(tunerControl);
+
+    //set values to tunercontrol
+    if (frequency > 0)
+    {
+        tunerControl->SetFrequencyL(frequency);
+    }
+
+    if (frequency == 0)
+    {
+        //by default frequency is fm modulation's min freq
+        tunerControl->SetFrequencyL(tunerControl->MinFreqL());
+    }
+
+    if (stereoMode > 0)
+    {
+        tunerControl->SetStereoModeL(stereoMode);
+    }
+
+    if (preset > 0)
+    {
+        tunerControl->UsePresetL(preset);
+    }
+
+    //create tunerplayer
+    *aTunerPlayer = CAMMSTunerPlayer::NewL(tunerControl);
+
+    //create tunervolumeconrol
+    //CAMMSTunerVolumeControl* tunerVolumeControl = CAMMSTunerVolumeControl::NewL( *aTunerPlayer );
+
+    //add controls to player
+    (*aTunerPlayer)->AddControlL(tunerControl);
+    //(*aTunerPlayer)->AddControlL( tunerVolumeControl );
+    CleanupStack::Pop(tunerControl);
+    DEBUG("AMMSTunerFactory::CreatePlayerL -");
+}
+
+// -----------------------------------------------------------------------------
+// AMMSTunerFactory::ParseParamsL
+// ?implementation_description
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void AMMSTunerFactory::ParseParamsL(const TDesC* aLocatorParams,
+                                    TInt& aFrequency,
+                                    TInt& aStereoMode,
+                                    TInt& aPreset)
+{
+    DEBUG("AMMSTunerFactory::ParseParamsL +");
+    CMMAParameterRuleSet* rules = CMMAParameterRuleSet::NewLC();
+
+    //freq rule
+    TMMAParameterRuleDes freqRule(KFreqParam);
+    rules->AppendRuleL(&freqRule);
+
+    //modulation rule
+    TMMAParameterRuleDes modulationRule(KModulationParam);
+    rules->AppendRuleL(&modulationRule);
+
+    //stereo mode rule
+    TMMAParameterRuleDes stereoModeRule(KStereoModeParam, KValidStereoModeValues,
+                                        MMA_PARAMETER_ARRAY_SIZE(KValidStereoModeValues));
+    rules->AppendRuleL(&stereoModeRule);
+
+    //preset rule KMinTInt-KMaxTInt
+    TMMAParameterRuleInt presetRule(KPresetParam);
+    rules->AppendRuleL(&presetRule);
+
+    //id rule
+    TMMAParameterRuleDes idRule(KProgramIdParam);
+    rules->AppendRuleL(&idRule);
+
+    CMMAPlayerProperties* properties = CMMAPlayerProperties::NewL(*aLocatorParams, *rules);
+    CleanupStack::PushL(properties);
+
+    // validating properties
+    properties->ValidateL();
+
+    //get freq
+    TPtrC freq(NULL, 0);
+    properties->GetProperty(KFreqParam, freq);
+    //parse frequency
+    if (freq.Length() != 0)
+    {
+        aFrequency = ParseFreqL(freq);
+    }
+
+    //get modulation
+    TPtrC modulation(NULL, 0);
+    properties->GetProperty(KModulationParam, modulation);
+    if (modulation.Length() != 0)
+    {
+        // only fm modulation is supported
+        if (modulation.Compare(KModulationFm) != 0)
+        {
+            User::Leave(KErrNotSupported);
+        }
+    }
+
+    //get stereo mode
+    TPtrC stereoMode(NULL, 0);
+    properties->GetProperty(KStereoModeParam, stereoMode);
+    if (stereoMode.Compare(KStereoModeMono) == 0)
+    {
+        aStereoMode = KStereoModeMonoInt;
+    }
+    else if (stereoMode.Compare(KStereoModeStereo) == 0)
+    {
+        aStereoMode = KStereoModeStereoInt;
+    }
+    else if (stereoMode.Compare(KStereoModeAuto) == 0)
+    {
+        aStereoMode = KStereoModeAutoInt;
+    }
+
+    //get preset
+    properties->GetProperty(KPresetParam, aPreset);
+
+    //get id
+    TPtrC id(NULL, 0);
+    properties->GetProperty(KProgramIdParam, id);
+    if (id.Length() != 0)
+    {
+        // id is not supported
+        User::Leave(KErrNotSupported);
+    }
+
+    CleanupStack::PopAndDestroy(properties);
+    CleanupStack::PopAndDestroy(rules);
+    DEBUG("AMMSTunerFactory::ParseParamsL -");
+}
+
+// -----------------------------------------------------------------------------
+// AMMSTunerFactory::ParseFreqL
+// ?implementation_description
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TInt AMMSTunerFactory::ParseFreqL(const TPtrC aFrequency)
+{
+    DEBUG("AMMSTunerFactory::ParseFreqL +");
+    TReal freqReal = 0;
+
+    //is value MHz or kHz or just hertz
+    TInt freqPrefixMPos = aFrequency.Locate(KMegaHertzChar);
+    TInt freqPrefixKPos = aFrequency.Locate(KKiloHertzChar);
+
+    if (freqPrefixMPos != KErrNotFound)
+    {
+        //there is a M
+        TPtrC hertz = aFrequency.Left(freqPrefixMPos);
+        //TPtrC -> TReal
+        TReal value = TDesCToTRealL(hertz);
+
+        freqReal = value * KMegaHzMultiplier;
+    }
+    else if (freqPrefixKPos != KErrNotFound)
+    {
+        //there is a k
+        TPtrC hertz = aFrequency.Left(freqPrefixKPos);
+        //TPtrC -> TReal
+        TReal value = TDesCToTRealL(hertz);
+
+        freqReal = value * KKiloHzMultiplier;
+    }
+    else
+    {
+        //parameter value is simply hertz, there is no M or k
+        //TPtrC -> TReal
+        freqReal = TDesCToTRealL(aFrequency);
+    }
+    TInt32 freqInt = 0;
+    //TReal -> TInt
+    TInt err = Math::Int(freqInt, freqReal);
+    if (err != KErrNone)
+    {
+        User::Leave(KErrArgument);
+    }
+
+    return freqInt;
+}
+
+// -----------------------------------------------------------------------------
+// AMMSTunerFactory::TDesCToTRealL
+// ?implementation_description
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+TReal AMMSTunerFactory::TDesCToTRealL(const TPtrC aHertz)
+{
+    DEBUG("AMMSTunerFactory::TDesCToTRealL +");
+    TReal valueReal = 0;
+    TLex lex(aHertz);
+    if ((lex.Val(valueReal, KFreqDotChar) != KErrNone) ||
+            !lex.Eos())
+    {
+        User::Leave(KErrArgument);
+    }
+    return valueReal;
+}
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/amms_akn/src_tuner/native/src/cammstunercontrol.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,504 @@
+/*
+* 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:  This class is used to control tuner
+*
+*/
+
+
+
+// INCLUDE FILES
+#include    "CAMMSTunerControl.h"
+#include    "CAMMSTunerPlayer.h"
+#include    "CAMMSTunerPresetsHandler.h"
+#include    "TAMMSTunerPreset.h"
+#include    "AMMSTunerFactory.h"
+
+#include    <tuner.h>
+#include    <jdebug.h>
+
+
+// CONSTANTS
+_LIT(KControlImplName, "com.nokia.amms.control.tuner.TunerControlImpl");
+_LIT(KControlPublicName, "javax.microedition.amms.control.tuner.TunerControl");
+
+const TInt KStereoModeMono   = 1;
+const TInt KStereoModeStereo = 2;
+const TInt KStereoModeAuto   = 3;
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::CAMMSTunerControl
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CAMMSTunerControl::CAMMSTunerControl()
+{
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CAMMSTunerControl* CAMMSTunerControl::NewL()
+{
+    CAMMSTunerControl* self = new(ELeave) CAMMSTunerControl;
+
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop();
+
+    return self;
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CAMMSTunerControl::ConstructL()
+{
+    DEBUG("CAMMSTunerControl::ConstructL +");
+
+    iTunerUtility = CMMTunerUtility::NewL(*this,
+                                          CMMTunerUtility::ETunerBandFm,
+                                          1,
+                                          CMMTunerUtility::ETunerAccessPriorityNormal);
+
+    iActiveSchedulerWait = new(ELeave) CActiveSchedulerWait();
+
+    iPresetsHandler = CAMMSTunerPresetsHandler::NewL();
+
+    iMinFreq = MinFreqL();
+    iMaxFreq = MaxFreqL();
+
+    DEBUG("CAMMSTunerControl::ConstructL -");
+}
+
+
+// Destructor
+CAMMSTunerControl::~CAMMSTunerControl()
+{
+    DEBUG("CAMMSTunerControl::~CAMMSTunerControl +");
+    delete iTunerUtility;
+    delete iActiveSchedulerWait;
+    delete iPresetsHandler;
+    DEBUG("CAMMSTunerControl::~CAMMSTunerControl -");
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::TunerUtility()
+// -----------------------------------------------------------------------------
+CMMTunerUtility* CAMMSTunerControl::TunerUtility()
+{
+    DEBUG("CAMMSTunerControl::TunerUtility");
+    return iTunerUtility;
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::MinFreq()
+// -----------------------------------------------------------------------------
+TInt CAMMSTunerControl::MinFreqL()
+{
+    DEBUG("CAMMSTunerControl::MinFreqL +");
+    TFrequency minFreq;
+    TFrequency maxFreq;
+    User::LeaveIfError(iTunerUtility->GetFrequencyBandRange(minFreq,
+                       maxFreq));
+    DEBUG_INT("CAMMSTunerControl::MinFreqL = %d", minFreq.iFrequency);
+    return minFreq.iFrequency;
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::MaxFreq()
+// -----------------------------------------------------------------------------
+TInt CAMMSTunerControl::MaxFreqL()
+{
+    DEBUG("CAMMSTunerControl::MaxFreqL +");
+    TFrequency minFreq;
+    TFrequency maxFreq;
+    User::LeaveIfError(iTunerUtility->GetFrequencyBandRange(minFreq,
+                       maxFreq));
+    DEBUG_INT("CAMMSTunerControl::MaxFreqL = %d", maxFreq.iFrequency);
+    return maxFreq.iFrequency;
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::SetFrequency()
+// -----------------------------------------------------------------------------
+void CAMMSTunerControl::SetFrequencyL(TInt aFreq)
+{
+    DEBUG("CAMMSTunerControl::SetFrequency +");
+    if (aFreq < iMinFreq || aFreq > iMaxFreq)
+    {
+        User::Leave(KErrArgument);
+    }
+
+    TFrequency freq = TFrequency(aFreq);
+
+    TUint32 state = 0;
+    iTunerUtility->GetState(state);
+    DEBUG_INT("CAMMSTunerControl::SetFrequency, state = %d", state);
+
+    DEBUG_INT("CAMMSTunerControl::SetFrequency = %d", freq.iFrequency);
+
+    iTunerUtility->Tune(freq);
+    if (!iActiveSchedulerWait->IsStarted())
+    {
+        iActiveSchedulerWait->Start();  // CSI: 10 Active object state already checked. #
+    }
+    DEBUG("CAMMSTunerControl::SetFrequency -");
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::Frequency()
+// -----------------------------------------------------------------------------
+TInt CAMMSTunerControl::FrequencyL()
+{
+    DEBUG("CAMMSTunerControl::Frequency +");
+    TFrequency freq;
+
+    User::LeaveIfError(iTunerUtility->GetFrequency(freq));
+    TInt frequency = freq.iFrequency;
+    DEBUG_INT("CAMMSTunerControl::Frequency frequency = %d", frequency);
+    return frequency;
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::SeekL()
+// -----------------------------------------------------------------------------
+TInt CAMMSTunerControl::SeekL(TInt aStartFreq, TBool aUpwards)
+{
+    DEBUG("CAMMSTunerControl::SeekL +");
+    if (aStartFreq < iMinFreq || aStartFreq > iMaxFreq)
+    {
+        User::Leave(KErrArgument);
+    }
+
+    if (aUpwards)
+    {
+        iTunerUtility->StationSeek(CMMTunerUtility::ESearchDirectionUp);
+        if (!iActiveSchedulerWait->IsStarted())
+        {
+            iActiveSchedulerWait->Start();  // CSI: 10 Active object state already checked. #
+        }
+    }
+    else
+    {
+        iTunerUtility->StationSeek(CMMTunerUtility::ESearchDirectionDown);
+        if (!iActiveSchedulerWait->IsStarted())
+        {
+            iActiveSchedulerWait->Start();  // CSI: 10 Active object state already checked. #
+        }
+    }
+
+    return FrequencyL();
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::SquelchL()
+// -----------------------------------------------------------------------------
+TBool CAMMSTunerControl::SquelchL()
+{
+    DEBUG("CAMMSTunerControl::SquelchL +");
+    TBool enabled = EFalse;
+    User::LeaveIfError(iTunerUtility->GetSquelch(enabled));
+    return enabled;
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::SetSquelchL()
+// -----------------------------------------------------------------------------
+void CAMMSTunerControl::SetSquelchL(TBool aSquelch)
+{
+    DEBUG("CAMMSTunerControl::SetSquelchL +");
+    User::LeaveIfError(iTunerUtility->SetSquelch(aSquelch));
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::SignalStrengthL()
+// -----------------------------------------------------------------------------
+TInt CAMMSTunerControl::SignalStrengthL()
+{
+    DEBUG("CAMMSTunerControl::SignalStrengthL +");
+    TInt maxSignalStrength = 0;
+    TInt signalStrength = 0;
+
+    User::LeaveIfError(iTunerUtility->GetMaxSignalStrength(maxSignalStrength));
+    DEBUG_INT("CAMMSTunerControl::SignalStrengthL, maxSignalStrength = %d", maxSignalStrength);
+    User::LeaveIfError(iTunerUtility->GetSignalStrength(signalStrength));
+    DEBUG_INT("CAMMSTunerControl::SignalStrengthL, signalStrength = %d", signalStrength);
+    if (maxSignalStrength > 0)
+    {
+        return signalStrength / maxSignalStrength * 100; // CSI: 47 signal strength must be between 0 and 100 #
+    }
+    return KErrNotSupported;
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::StereoModeL()
+// -----------------------------------------------------------------------------
+TInt CAMMSTunerControl::StereoModeL()
+{
+    DEBUG("CAMMSTunerControl::StereoModeL +");
+    TBool mono = EFalse;
+    TBool stereo = EFalse;
+
+    User::LeaveIfError(iTunerUtility->GetForcedMonoReception(mono));
+    if (mono)
+    {
+        return KStereoModeMono;
+    }
+
+    //User::LeaveIfError( iTunerUtility->IsStereoSignal( stereo ) );
+    TInt err = iTunerUtility->IsStereoSignal(stereo);
+    //this is for emulator testing, FIX IT
+    if (err == KErrNotReady)
+    {
+        return KStereoModeAuto;
+    }
+    else if (err != KErrNone)
+    {
+        User::LeaveIfError(err);
+    }
+
+    if (stereo)
+    {
+        return KStereoModeStereo;
+    }
+
+    return KStereoModeAuto;
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::SetStereoMode()
+// -----------------------------------------------------------------------------
+void CAMMSTunerControl::SetStereoModeL(TInt aMode)
+{
+    DEBUG("CAMMSTunerControl::SetStereoModeL +");
+    if (aMode == KStereoModeMono)
+    {
+        User::LeaveIfError(iTunerUtility->ForceMonoReception(ETrue));
+    }
+
+    if (aMode == KStereoModeStereo)
+    {
+        User::LeaveIfError(iTunerUtility->ForceMonoReception(EFalse));
+        TBool stereo = EFalse;
+        User::LeaveIfError(iTunerUtility->IsStereoSignal(stereo));
+        if (!stereo)
+        {
+            User::Leave(KErrNotSupported);
+        }
+    }
+
+    if (aMode == KStereoModeAuto)
+    {
+        User::LeaveIfError(iTunerUtility->ForceMonoReception(EFalse));
+    }
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::UsePresetL()
+// -----------------------------------------------------------------------------
+void CAMMSTunerControl::UsePresetL(TInt aPreset)
+{
+    DEBUG("CAMMSTunerControl::UsePresetL +");
+    TAMMSTunerPreset tunerPreset;
+
+    //get presets
+    iPresetsHandler->GetPresetL(aPreset, tunerPreset);
+
+    //set presets to tunerutility
+    SetFrequencyL(tunerPreset.PresetFrequency());
+    SetStereoModeL(tunerPreset.PresetStereoMode());
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::SetPresetL()
+// -----------------------------------------------------------------------------
+void CAMMSTunerControl::SetPresetL(TInt aPreset)
+{
+    DEBUG("CAMMSTunerControl::SetPresetL1 +");
+    TAMMSTunerPreset tunerPreset;
+
+    //get current frequency
+    tunerPreset.SetPresetFrequency(FrequencyL());
+    //get current stereo mode
+    tunerPreset.SetPresetStereoMode(StereoModeL());
+
+    iPresetsHandler->SavePresetL(aPreset, tunerPreset);
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::SetPresetL()
+// -----------------------------------------------------------------------------
+void CAMMSTunerControl::SetPresetL(TInt aPreset,
+                                   TInt aFrequency,
+                                   TInt aStereoMode)
+{
+    DEBUG("CAMMSTunerControl::SetPresetL2 +");
+    TAMMSTunerPreset tunerPreset;
+
+    tunerPreset.SetPresetFrequency(aFrequency);
+    tunerPreset.SetPresetStereoMode(aStereoMode);
+
+    iPresetsHandler->SavePresetL(aPreset, tunerPreset);
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::PresetFrequencyL()
+// -----------------------------------------------------------------------------
+TInt CAMMSTunerControl::PresetFrequencyL(TInt aPreset)
+{
+    DEBUG("CAMMSTunerControl::PresetFrequencyL +");
+    TAMMSTunerPreset tunerPreset;
+
+    iPresetsHandler->GetPresetL(aPreset, tunerPreset);
+
+    return tunerPreset.PresetFrequency();
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::PresetStereoModeL()
+// -----------------------------------------------------------------------------
+TInt CAMMSTunerControl::PresetStereoModeL(TInt aPreset)
+{
+    DEBUG("CAMMSTunerControl::PresetStereoModeL +");
+    TAMMSTunerPreset tunerPreset;
+
+    iPresetsHandler->GetPresetL(aPreset, tunerPreset);
+
+    return tunerPreset.PresetStereoMode();
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::SetPresetNameL()
+// -----------------------------------------------------------------------------
+void CAMMSTunerControl::SetPresetNameL(TInt aPreset, const TDesC* aPresetName)
+{
+    DEBUG("CAMMSTunerControl::SetPresetNameL +");
+    TAMMSTunerPreset tunerPreset;
+
+    iPresetsHandler->GetPresetL(aPreset, tunerPreset);
+
+    tunerPreset.SetPresetName(aPresetName);
+
+    iPresetsHandler->SavePresetL(aPreset, tunerPreset);
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::GetPresetNameL()
+// -----------------------------------------------------------------------------
+void CAMMSTunerControl::GetPresetNameL(TInt aPreset, TPtrC* aPresetName)
+{
+    DEBUG("CAMMSTunerControl::GetPresetNameL +");
+    TAMMSTunerPreset tunerPreset;
+
+    iPresetsHandler->GetPresetL(aPreset, tunerPreset);
+
+    aPresetName->Set(tunerPreset.PresetName());
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::ClassName()
+// -----------------------------------------------------------------------------
+const TDesC& CAMMSTunerControl::ClassName() const
+{
+    return KControlImplName;
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::PublicClassName()
+// -----------------------------------------------------------------------------
+const TDesC& CAMMSTunerControl::PublicClassName() const
+{
+    return KControlPublicName;
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::MToTuneComplete()
+// -----------------------------------------------------------------------------
+void CAMMSTunerControl::MToTuneComplete(TInt aError)
+{
+    if (iActiveSchedulerWait->IsStarted())
+    {
+        DEBUG("CAMMSTunerControl::MToTuneComplete AsyncStop");
+        iActiveSchedulerWait->AsyncStop();
+    }
+    DEBUG_INT("CAMMSTunerControl::MToTuneComplete ERROR = %d", aError);
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::MTcoFrequencyChanged
+// -----------------------------------------------------------------------------
+void CAMMSTunerControl::MTcoFrequencyChanged(const TFrequency& /*aOldFrequency*/,
+        const TFrequency& /*aNewFrequency*/)
+{
+    DEBUG("CAMMSTunerControl::MTcoFrequencyChanged");
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::MTcoStateChanged
+// -----------------------------------------------------------------------------
+void CAMMSTunerControl::MTcoStateChanged(const TUint32& /*aOldState*/,
+        const TUint32& /*aNewState*/)
+{
+    DEBUG("CAMMSTunerControl::MTcoStateChanged");
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::MTcoAntennaDetached
+// -----------------------------------------------------------------------------
+void CAMMSTunerControl::MTcoAntennaDetached()
+{
+    DEBUG("CAMMSTunerControl::MTcoAntennaDetached");
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::MTcoAntennaAttached
+// -----------------------------------------------------------------------------
+void CAMMSTunerControl::MTcoAntennaAttached()
+{
+    DEBUG("CAMMSTunerControl::MTcoAntennaAttached");
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::FlightModeChanged
+// -----------------------------------------------------------------------------
+void CAMMSTunerControl::FlightModeChanged(TBool /*aFlightMode*/)
+{
+    DEBUG("CAMMSTunerControl::FlightModeChanged");
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::MTsoStereoReceptionChanged
+// -----------------------------------------------------------------------------
+void CAMMSTunerControl::MTsoStereoReceptionChanged(TBool /*aStereo*/)
+{
+    DEBUG("CAMMSTunerControl::MTsoStereoReceptionChanged");
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerControl::MTsoForcedMonoChanged
+// -----------------------------------------------------------------------------
+void CAMMSTunerControl::MTsoForcedMonoChanged(TBool /*aForcedMono*/)
+{
+    DEBUG("CAMMSTunerControl::MTsoForcedMonoChanged");
+}
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/amms_akn/src_tuner/native/src/cammstunerplayer.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,236 @@
+/*
+* 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:  This class is a tuner player
+*
+*/
+
+
+
+// INCLUDE FILES
+#include    "CAMMSTunerPlayer.h"
+#include    "CAMMSTunerControl.h"
+
+#include    <tuner.h>
+#include    <jdebug.h>
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerPlayer::CAMMSTunerPlayer
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CAMMSTunerPlayer::CAMMSTunerPlayer()
+{
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerPlayer::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CAMMSTunerPlayer* CAMMSTunerPlayer::NewL(CAMMSTunerControl* aTunerControl)
+{
+    CAMMSTunerPlayer* self = new(ELeave) CAMMSTunerPlayer;
+
+    CleanupStack::PushL(self);
+    self->ConstructL(aTunerControl);
+    CleanupStack::Pop();
+
+    return self;
+}
+
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerPlayer::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CAMMSTunerPlayer::ConstructL(CAMMSTunerControl* aTunerControl)
+{
+    DEBUG("CAMMSTunerPlayer::ConstructL +");
+    iTunerControl = aTunerControl;
+    iTunerPlayerUtility = iTunerControl->TunerUtility()->TunerPlayerUtilityL(*this);
+    iActiveSchedulerWait = new(ELeave) CActiveSchedulerWait();
+    iIsInitialized = EFalse;
+
+    DEBUG("CAMMSTunerPlayer::ConstructL -");
+}
+
+// Destructor
+CAMMSTunerPlayer::~CAMMSTunerPlayer()
+{
+    DEBUG("CAMMSTunerPlayer::~CAMMSTunerPlayer +");
+    delete iTunerPlayerUtility;
+    delete iActiveSchedulerWait;
+    DEBUG("CAMMSTunerPlayer::~CAMMSTunerPlayer -");
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerPlayer::PrefetchL()
+// ?implementation_description
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+void CAMMSTunerPlayer::PrefetchL()
+{
+    DEBUG("CAMMSTunerPlayer::PrefetchL +");
+    //this must be called before play, stop, mute etc...
+    iTunerPlayerUtility->InitializeL(EMdaPriorityNormal,
+                                     EMdaPriorityPreferenceTimeAndQuality);
+    if (!iActiveSchedulerWait->IsStarted())
+    {
+        iActiveSchedulerWait->Start();  // CSI: 10 Active object state already checked. #
+    }
+
+    DEBUG("CAMMSTunerPlayer::PrefetchL -");
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerPlayer::StartL()
+// ?implementation_description
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+void CAMMSTunerPlayer::StartL()
+{
+    DEBUG("CAMMSTunerPlayer::StartL +");
+    if (iIsInitialized)
+    {
+        // inform java side
+        ChangeState(EStarted);
+        iTunerPlayerUtility->Play();
+        // set time when started
+        iStartTime = CurrentTime();
+
+        TInt64 time;
+        GetMediaTime(&time);
+        PostLongEvent(CMMAPlayerEvent::EStarted, time);
+    }
+    else
+    {
+        User::Leave(KErrNotReady);
+    }
+    DEBUG("CAMMSTunerPlayer::StartL -");
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerPlayer::StopL()
+// ?implementation_description
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+void CAMMSTunerPlayer::StopL(TBool /*aPostEvent*/)
+{
+    DEBUG("CAMMSTunerPlayer::StopL +");
+    if (iIsInitialized)
+    {
+        ChangeState(EPrefetched);
+
+        iTunerPlayerUtility->Stop();
+
+        TInt64 time;
+        GetMediaTime(&time);
+        iStartTime = KErrNotFound;
+        PostLongEvent(CMMAPlayerEvent::EStopped, time);
+    }
+    else
+    {
+        User::Leave(KErrNotReady);
+    }
+
+    DEBUG("CAMMSTunerPlayer::StopL -");
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerPlayer::DeallocateL()
+// ?implementation_description
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+void CAMMSTunerPlayer::DeallocateL()
+{
+
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerPlayer::GetMediaTime()
+// ?implementation_description
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+void CAMMSTunerPlayer::GetMediaTime(TInt64* aMediaTime)
+{
+    if (iState == EStarted)
+    {
+        // add play time to media time
+        iMediaTime += CurrentTime() - iStartTime;
+        // set new start time
+        iStartTime = CurrentTime();
+    }
+
+    // set value to parameter
+    (*aMediaTime) = iMediaTime;
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerPlayer::MTapoInitializeComplete
+// Initialize complete event. This event is asynchronous and is received after
+//  a call to CMMTunerAudioPlayerUtility::InitializeL().
+// -----------------------------------------------------------------------------
+void CAMMSTunerPlayer::MTapoInitializeComplete(TInt aError)
+{
+    DEBUG_INT("CAMMSTunerPlayer::MTapoInitializeComplete aError = %d", aError);
+    if (iActiveSchedulerWait->IsStarted())
+    {
+        DEBUG("CAMMSTunerControl::MToTuneComplete AsyncStop");
+        iActiveSchedulerWait->AsyncStop();
+    }
+    if (aError == KErrNone)
+    {
+        iIsInitialized = ETrue;
+        ChangeState(EPrefetched);
+        // Inform Java side.
+        PostActionCompleted(KErrNone);
+    }
+    else
+    {
+        DEBUG_INT("CAMMSTunerPlayer::MTapoInitializeComplete aError = %d", aError);
+        PostLongEvent(CMMAPlayerEvent::EError, aError);
+        //User::Leave( aError );
+    }
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerPlayer::MTapoPlayEvent
+// Passes an asychronous event to the tuner client.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+void CAMMSTunerPlayer::MTapoPlayEvent(
+    MMMTunerAudioPlayerObserver::TEventType /*aEvent*/,
+    TInt /*aError*/, TAny* /*aAdditionalInfo*/)
+{
+    DEBUG("CAMMSTunerPlayer::MTapoPlayEvent +");
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerPlayer::CurrentTime()
+// ?implementation_description
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+TInt64 CAMMSTunerPlayer::CurrentTime()
+{
+    TTime time;
+    time.HomeTime();
+    return time.Int64();
+}
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/amms_akn/src_tuner/native/src/cammstunerpresetshandler.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,133 @@
+/*
+* Copyright (c) 2005 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:  ?Description
+*
+*/
+
+
+
+// INCLUDE FILES
+#include    "CAMMSTunerPresetsHandler.h"
+#include    "TAMMSTunerPreset.h"
+
+#include    <FMRadioEngineCRKeys.h>
+#include    <s32mem.h>
+#include    <jdebug.h>
+
+
+// CONSTANTS
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerPresetsHandler::CAMMSTunerPresetsHandler
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CAMMSTunerPresetsHandler::CAMMSTunerPresetsHandler()
+{
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerPresetsHandler::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CAMMSTunerPresetsHandler::ConstructL()
+{
+    iCentralRepository = CRepository::NewL(KCRUidFMRadioEngine);
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerPresetsHandler::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CAMMSTunerPresetsHandler* CAMMSTunerPresetsHandler::NewL()
+{
+    CAMMSTunerPresetsHandler* self = new(ELeave) CAMMSTunerPresetsHandler;
+
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop();
+
+    return self;
+}
+
+
+// Destructor
+CAMMSTunerPresetsHandler::~CAMMSTunerPresetsHandler()
+{
+    delete iCentralRepository;
+}
+
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerPresetsHandler::GetPreset
+// ?implementation_description
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CAMMSTunerPresetsHandler::GetPresetL(TInt aPreset, TAMMSTunerPreset &aTunerPreset)
+{
+    // KFmRadioPresetChannel1 = The first preset channel's location in central repository
+    TInt tempChannelIndex = KFmRadioPresetChannel1 + aPreset;
+
+    HBufC8* buf = HBufC8::NewLC(sizeof(TAMMSTunerPreset));
+    TPtr8 bufPtr = buf->Des();
+
+    TInt err = iCentralRepository->Get(tempChannelIndex, bufPtr);
+    if (err == KErrNone)
+    {
+        RDesReadStream inStream;
+        inStream.Open(bufPtr);
+        CleanupClosePushL(inStream);
+        aTunerPreset.InternalizeL(inStream);
+        CleanupStack::PopAndDestroy(&inStream);
+    }
+    else
+    {
+        User::Leave(err);
+    }
+    CleanupStack::PopAndDestroy(); // buf
+}
+
+// -----------------------------------------------------------------------------
+// CAMMSTunerPresetsHandler::SavePreset
+// ?implementation_description
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void CAMMSTunerPresetsHandler::SavePresetL(TInt aPreset, TAMMSTunerPreset aTunerPreset)
+{
+    // KFmRadioPresetChannel1 = The first preset channel's location in central repository
+    TInt fieldNameIndex = KFmRadioPresetChannel1 + TUint32(aPreset);
+
+    HBufC8* buf = HBufC8::NewLC(sizeof(TAMMSTunerPreset));
+    TPtr8 bufPtr = buf->Des();
+
+    RDesWriteStream outStream(bufPtr);
+    CleanupClosePushL(outStream);
+    aTunerPreset.ExternalizeL(outStream);
+    outStream.CommitL();
+    CleanupStack::PopAndDestroy(&outStream);
+
+    iCentralRepository->Set(fieldNameIndex, bufPtr);
+    CleanupStack::PopAndDestroy(); //buf
+}
+
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/amms_akn/src_tuner/native/src/cammstunervolumecontrol.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,52 @@
+/*
+* Copyright (c) 2005 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:  This class is used for setting volume to tuner player
+*
+*/
+
+
+
+// INCLUDE FILES
+#include    "CAMMSTunerVolumeControl.h"
+#include    "CAMMSTunerPlayer.h"
+
+#include    <jdebug.h>
+
+
+CAMMSTunerVolumeControl::CAMMSTunerVolumeControl(CAMMSTunerPlayer* aTunerPlayer)
+        : CMMAVolumeControl(aTunerPlayer)
+{
+    iTunerPlayer = aTunerPlayer;
+}
+
+CAMMSTunerVolumeControl* CAMMSTunerVolumeControl::NewL(CAMMSTunerPlayer* aTunerPlayer)
+{
+    DEBUG("CAMMSTunerVolumeControl::NewL +");
+    CAMMSTunerVolumeControl* self = new(ELeave) CAMMSTunerVolumeControl(aTunerPlayer);
+
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop();
+
+    return self;
+}
+
+void CAMMSTunerVolumeControl::DoSetLevelL(TInt aLevel)
+{
+    DEBUG_INT("CAMMSTunerVolumeControl::DoSetLevelL, aLevel = %d", aLevel);
+    // TunerPlayer does not currently have SetVolumeL method
+    User::Invariant();
+}
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/amms_akn/src_tuner/native/src/protocol.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,60 @@
+/*
+* Copyright (c) 2005 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:  Protocol JNI wrapper.
+ *
+*/
+
+
+// EXTERNAL INCLUDES
+#include <jutils.h>
+#include <jdebug.h>
+
+// INTERNAL INCLUDES
+#include "com_nokia_microedition_media_protocol_capture_radio_Protocol.h"
+#include <CMMAEventSource.h>
+#include "CAMMSTunerControl.h"
+#include "CAMMSTunerPlayer.h"
+#include "AMMSTunerFactory.h"
+
+// Creates native tuner player
+JNIEXPORT jint JNICALL
+Java_com_nokia_microedition_media_protocol_capture_radio_Protocol__1createNativeTunerPlayer(
+    JNIEnv* aJniEnv,
+    jobject /*aPeer*/,
+    jint aEventSourceHandle,
+    jstring aLocatorParameters)
+{
+    DEBUG("AMMS Java_com_nokia_microedition_media_protocol_capture_radio_Protocol__1createNativeTunerPlayer +");
+    CMMAEventSource* eventSource = JavaUnhand< CMMAEventSource >(
+                                       aEventSourceHandle);
+
+    RJString locatorParams(*aJniEnv, aLocatorParameters);
+
+    CAMMSTunerPlayer* tunerPlayer = NULL;
+
+    TInt error = eventSource->ExecuteTrap(
+                     &AMMSTunerFactory::CreatePlayerL,
+                     &tunerPlayer,
+                     (const TDesC*)&locatorParams);
+
+    DEBUG_INT("AMMS __1createNativeTunerPlayer, error = %d", error);
+
+    if (error != KErrNone)
+    {
+        return error;
+    }
+
+    return JavaMakeHandle(tunerPlayer);
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/amms_akn/src_tuner/native/src/tammstunerpreset.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,119 @@
+/*
+* Copyright (c) 2005 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:  ?Description
+*
+*/
+
+
+
+// INCLUDE FILES
+#include    "TAMMSTunerPreset.h"
+
+#include    <s32mem.h>
+#include    <jdebug.h>
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// TAMMSTunerPreset::TAMMSTunerPreset
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+TAMMSTunerPreset::TAMMSTunerPreset()
+{
+}
+
+// -----------------------------------------------------------------------------
+// TAMMSTunerPreset::SetPresetName
+// -----------------------------------------------------------------------------
+//
+void TAMMSTunerPreset::SetPresetName(const TDesC* aPresetName)
+{
+    iPresetName.Copy(*aPresetName);
+}
+
+// -----------------------------------------------------------------------------
+// TAMMSTunerPreset::SetPresetFrequency
+// -----------------------------------------------------------------------------
+//
+void TAMMSTunerPreset::SetPresetFrequency(const TInt aPresetFrequency)
+{
+    iPresetFrequency = aPresetFrequency;
+}
+
+// -----------------------------------------------------------------------------
+// TAMMSTunerPreset::SetPresetStereoMode
+// -----------------------------------------------------------------------------
+//
+void TAMMSTunerPreset::SetPresetStereoMode(const TInt aPresetStereoMode)
+{
+    iPresetStereoMode = aPresetStereoMode;
+}
+
+// -----------------------------------------------------------------------------
+// TAMMSTunerPreset::PresetName
+// -----------------------------------------------------------------------------
+//
+TPtrC TAMMSTunerPreset::PresetName()
+{
+    return iPresetName;
+}
+
+// -----------------------------------------------------------------------------
+// TAMMSTunerPreset::PresetFrequency
+// -----------------------------------------------------------------------------
+//
+TInt TAMMSTunerPreset::PresetFrequency()
+{
+    return iPresetFrequency;
+}
+
+// -----------------------------------------------------------------------------
+// TAMMSTunerPreset::PresetStereoMode
+// -----------------------------------------------------------------------------
+//
+TInt TAMMSTunerPreset::PresetStereoMode()
+{
+    return iPresetStereoMode;
+}
+
+// -----------------------------------------------------------------------------
+// TAMMSTunerPreset::ExternalizeL
+// Writes preset values to stream.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void TAMMSTunerPreset::ExternalizeL(RWriteStream& aStream) const
+{
+    aStream<<iPresetName;
+    aStream.WriteUint32L(iPresetFrequency);
+    aStream.WriteUint32L(iPresetStereoMode);
+}
+
+// -----------------------------------------------------------------------------
+// TAMMSTunerPreset::InternalizeL
+// Reads preset values from stream.
+// (other items were commented in a header).
+// -----------------------------------------------------------------------------
+//
+void TAMMSTunerPreset::InternalizeL(RReadStream& aStream)
+{
+    aStream>>iPresetName;
+    iPresetFrequency = aStream.ReadUint32L();
+    iPresetStereoMode = aStream.ReadUint32L();
+}
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/amms_akn/src_tuner/native/src/tunercontrol.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,729 @@
+/*
+* 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:  TunerControl JNI wrapper.
+ *
+*/
+
+
+// EXTERNAL INCLUDES
+#include <jutils.h>
+
+// INTERNAL INCLUDES
+#include "com_nokia_amms_control_tuner_TunerControlImpl.h"
+#include <CMMAEventSource.h>
+#include "CAMMSTunerControl.h"
+
+/**
+* Static delegator function for getMinFreq
+*/
+LOCAL_C void GetMinFreqL(CAMMSTunerControl* aNativeClass,
+                         TInt *aMinFreq)
+{
+
+    *aMinFreq = aNativeClass->MinFreqL();
+}
+
+/**
+*  getMinFreq JNI function
+*/
+JNIEXPORT jint JNICALL
+Java_com_nokia_amms_control_tuner_TunerControlImpl__1getMinFreq(
+    JNIEnv* /*aJni*/,
+    jobject /*aJobject*/,
+    jint aEventSourceHandle,
+    jint aTunerControlHandle)
+{
+    TInt minFreq;
+
+    CMMAEventSource* eventSource =
+        JavaUnhand<CMMAEventSource>(aEventSourceHandle);
+
+    CAMMSTunerControl* nativeHandle =
+        JavaUnhand<CAMMSTunerControl>(aTunerControlHandle);
+
+    TInt err = eventSource->ExecuteTrap(GetMinFreqL,
+                                        nativeHandle,
+                                        &minFreq);
+
+    if (err != KErrNone)
+    {
+        return err;
+    }
+
+    return minFreq;
+}
+
+
+/**
+* Static delegator function for getMaxFreq
+*/
+LOCAL_C void GetMaxFreqL(CAMMSTunerControl* aNativeClass,
+                         TInt *aMaxFreq)
+{
+
+    *aMaxFreq = aNativeClass->MaxFreqL();
+}
+
+/**
+*  getMaxFreq JNI function
+*/
+JNIEXPORT jint JNICALL
+Java_com_nokia_amms_control_tuner_TunerControlImpl__1getMaxFreq(
+    JNIEnv* /*aJni*/,
+    jobject /*aJobject*/,
+    jint aEventSourceHandle,
+    jint aTunerControlHandle)
+{
+    TInt maxFreq;
+
+    CMMAEventSource* eventSource =
+        JavaUnhand<CMMAEventSource>(aEventSourceHandle);
+
+    CAMMSTunerControl* nativeHandle =
+        JavaUnhand<CAMMSTunerControl>(aTunerControlHandle);
+
+    TInt err = eventSource->ExecuteTrap(GetMaxFreqL,
+                                        nativeHandle,
+                                        &maxFreq);
+
+    if (err != KErrNone)
+    {
+        return err;
+    }
+
+    return maxFreq;
+}
+
+
+/**
+* Static delegator function for setFrequency
+*/
+LOCAL_C void SetFreqL(CAMMSTunerControl* aNativeClass,
+                      TInt aFreq)
+{
+
+    aNativeClass->SetFrequencyL(aFreq);
+}
+
+/**
+* Static delegator function for getFrequency
+*/
+LOCAL_C void GetFreqL(CAMMSTunerControl* aNativeClass,
+                      TInt *aFreq)
+{
+    *aFreq = aNativeClass->FrequencyL();
+}
+
+/**
+*  setFrequency JNI function
+*/
+JNIEXPORT jint JNICALL
+Java_com_nokia_amms_control_tuner_TunerControlImpl__1setFrequency(
+    JNIEnv* /*aJni*/,
+    jobject /*aJobject*/,
+    jint aEventSourceHandle,
+    jint aTunerControlHandle,
+    jint aFreq)
+{
+    CMMAEventSource* eventSource =
+        JavaUnhand<CMMAEventSource>(aEventSourceHandle);
+
+    CAMMSTunerControl* nativeHandle =
+        JavaUnhand<CAMMSTunerControl>(aTunerControlHandle);
+
+    TInt err = eventSource->ExecuteTrap(SetFreqL,
+                                        nativeHandle,
+                                        aFreq);
+
+    if (err != KErrNone)
+    {
+        return err;
+    }
+
+    //get tuned frequency
+    TInt tunedFreq;
+    err = eventSource->ExecuteTrap(GetFreqL,
+                                   nativeHandle,
+                                   &tunedFreq);
+    if (err != KErrNone)
+    {
+        return err;
+    }
+
+    return tunedFreq;
+}
+
+/**
+*  getFrequency JNI function
+*/
+JNIEXPORT jint JNICALL
+Java_com_nokia_amms_control_tuner_TunerControlImpl__1getFrequency(
+    JNIEnv* /*aJni*/,
+    jobject /*aJobject*/,
+    jint aEventSourceHandle,
+    jint aTunerControlHandle)
+{
+    TInt freq;
+
+    CMMAEventSource* eventSource =
+        JavaUnhand<CMMAEventSource>(aEventSourceHandle);
+
+    CAMMSTunerControl* nativeHandle =
+        JavaUnhand<CAMMSTunerControl>(aTunerControlHandle);
+
+    TInt err = eventSource->ExecuteTrap(GetFreqL,
+                                        nativeHandle,
+                                        &freq);
+    if (err != KErrNone)
+    {
+        return err;
+    }
+
+    return freq;
+}
+
+
+/**
+* Static delegator function for seek
+*/
+LOCAL_C void SeekL(CAMMSTunerControl* aNativeClass,
+                   TInt aStartFreq,
+                   TBool aUpwards,
+                   TInt* aSeekedFreq)
+{
+
+    *aSeekedFreq = aNativeClass->SeekL(aStartFreq, aUpwards);
+}
+
+/**
+*  seek JNI function
+*/
+JNIEXPORT jint JNICALL
+Java_com_nokia_amms_control_tuner_TunerControlImpl__1seek(
+    JNIEnv* /*aJni*/,
+    jobject /*aJobject*/,
+    jint aEventSourceHandle,
+    jint aTunerControlHandle,
+    jint aStartFreq,
+    jboolean aUpwards)
+{
+    TInt seekedFreq;
+
+    CMMAEventSource* eventSource =
+        JavaUnhand<CMMAEventSource>(aEventSourceHandle);
+
+    CAMMSTunerControl* nativeHandle =
+        JavaUnhand<CAMMSTunerControl>(aTunerControlHandle);
+
+    TInt err = eventSource->ExecuteTrap(SeekL,
+                                        nativeHandle,
+                                        aStartFreq,
+                                        (TBool) aUpwards,
+                                        &seekedFreq);
+
+    if (err != KErrNone)
+    {
+        return err;
+    }
+
+    return seekedFreq;
+}
+
+
+/**
+* Static delegator function for getSquelch
+*/
+LOCAL_C void GetSquelchL(CAMMSTunerControl* aNativeClass,
+                         TBool* aSquelch)
+{
+
+    *aSquelch = aNativeClass->SquelchL();
+}
+
+/**
+*  getSquelch JNI function
+*/
+JNIEXPORT jint JNICALL
+Java_com_nokia_amms_control_tuner_TunerControlImpl__1getSquelch(
+    JNIEnv* /*aJni*/,
+    jobject /*aJobject*/,
+    jint aEventSourceHandle,
+    jint aTunerControlHandle)
+{
+    CMMAEventSource* eventSource =
+        JavaUnhand<CMMAEventSource>(aEventSourceHandle);
+
+    CAMMSTunerControl* nativeHandle =
+        JavaUnhand<CAMMSTunerControl>(aTunerControlHandle);
+
+    TBool squelch = EFalse;
+
+    TInt err = eventSource->ExecuteTrap(GetSquelchL,
+                                        nativeHandle,
+                                        &squelch);
+
+    if (err != KErrNone)
+    {
+        return err;
+    }
+
+    if (!squelch)
+    {
+        //return 1 if false
+        return 1;
+    }
+    //return 0 if true
+    return KErrNone;
+}
+
+
+/**
+* Static delegator function for setSquelch
+*/
+LOCAL_C void SetSquelchL(CAMMSTunerControl* aNativeClass,
+                         TBool aSquelch)
+{
+
+    aNativeClass->SetSquelchL(aSquelch);
+}
+
+/**
+*  setSquelch JNI function
+*/
+JNIEXPORT jint JNICALL
+Java_com_nokia_amms_control_tuner_TunerControlImpl__1setSquelch(
+    JNIEnv* /*aJni*/,
+    jobject /*aJobject*/,
+    jint aEventSourceHandle,
+    jint aTunerControlHandle,
+    jboolean aSquelch)
+{
+    CMMAEventSource* eventSource =
+        JavaUnhand<CMMAEventSource>(aEventSourceHandle);
+
+    CAMMSTunerControl* nativeHandle =
+        JavaUnhand<CAMMSTunerControl>(aTunerControlHandle);
+
+    TInt err = eventSource->ExecuteTrap(SetSquelchL,
+                                        nativeHandle,
+                                        (TBool) aSquelch);
+
+    if (err != KErrNone)
+    {
+        return err;
+    }
+
+    return KErrNone;
+}
+
+
+/**
+* Static delegator function for getSignalStrength
+*/
+LOCAL_C void GetSignalStrengthL(CAMMSTunerControl* aNativeClass,
+                                TInt *aSignalStrength)
+{
+
+    *aSignalStrength = aNativeClass->SignalStrengthL();
+}
+
+/**
+*  getSignalStrength JNI function
+*/
+JNIEXPORT jint JNICALL
+Java_com_nokia_amms_control_tuner_TunerControlImpl__1getSignalStrength(
+    JNIEnv* /*aJni*/,
+    jobject /*aJobject*/,
+    jint aEventSourceHandle,
+    jint aTunerControlHandle)
+{
+    TInt signalStrength;
+
+    CMMAEventSource* eventSource =
+        JavaUnhand<CMMAEventSource>(aEventSourceHandle);
+
+    CAMMSTunerControl* nativeHandle =
+        JavaUnhand<CAMMSTunerControl>(aTunerControlHandle);
+
+    TInt err = eventSource->ExecuteTrap(GetSignalStrengthL,
+                                        nativeHandle,
+                                        &signalStrength);
+    if (err != KErrNone)
+    {
+        return err;
+    }
+
+    return signalStrength;
+}
+
+
+/**
+* Static delegator function for getStereoMode
+*/
+LOCAL_C void GetStereoModeL(CAMMSTunerControl* aNativeClass,
+                            TInt *aStereoMode)
+{
+
+    *aStereoMode = aNativeClass->StereoModeL();
+}
+
+/**
+*  getStereoMode JNI function
+*/
+JNIEXPORT jint JNICALL
+Java_com_nokia_amms_control_tuner_TunerControlImpl__1getStereoMode(
+    JNIEnv* /*aJni*/,
+    jobject /*aJobject*/,
+    jint aEventSourceHandle,
+    jint aTunerControlHandle)
+{
+    TInt stereoMode;
+
+    CMMAEventSource* eventSource =
+        JavaUnhand<CMMAEventSource>(aEventSourceHandle);
+
+    CAMMSTunerControl* nativeHandle =
+        JavaUnhand<CAMMSTunerControl>(aTunerControlHandle);
+
+    TInt err = eventSource->ExecuteTrap(GetStereoModeL,
+                                        nativeHandle,
+                                        &stereoMode);
+    if (err != KErrNone)
+    {
+        return err;
+    }
+
+    return stereoMode;
+}
+
+
+/**
+* Static delegator function for setStereoMode
+*/
+LOCAL_C void SetStereoModeL(CAMMSTunerControl* aNativeClass,
+                            TInt aStereoMode)
+{
+    aNativeClass->SetStereoModeL(aStereoMode);
+}
+
+/**
+*  setStereoMode JNI function
+*/
+JNIEXPORT jint JNICALL
+Java_com_nokia_amms_control_tuner_TunerControlImpl__1setStereoMode(
+    JNIEnv* /*aJni*/,
+    jobject /*aJobject*/,
+    jint aEventSourceHandle,
+    jint aTunerControlHandle,
+    jint aStereoMode)
+{
+    CMMAEventSource* eventSource =
+        JavaUnhand<CMMAEventSource>(aEventSourceHandle);
+
+    CAMMSTunerControl* nativeHandle =
+        JavaUnhand<CAMMSTunerControl>(aTunerControlHandle);
+
+    TInt err = eventSource->ExecuteTrap(SetStereoModeL,
+                                        nativeHandle,
+                                        aStereoMode);
+
+    return err;
+}
+
+
+/**
+* Static delegator function for usePreset
+*/
+LOCAL_C void UsePresetL(CAMMSTunerControl* aNativeClass,
+                        TInt aPreset)
+{
+    aNativeClass->UsePresetL(aPreset);
+}
+
+/**
+*  usePreset JNI function
+*/
+JNIEXPORT jint JNICALL
+Java_com_nokia_amms_control_tuner_TunerControlImpl__1usePreset(
+    JNIEnv* /*aJni*/,
+    jobject /*aJobject*/,
+    jint aEventSourceHandle,
+    jint aTunerControlHandle,
+    jint aPreset)
+{
+    CMMAEventSource* eventSource =
+        JavaUnhand<CMMAEventSource>(aEventSourceHandle);
+
+    CAMMSTunerControl* nativeHandle =
+        JavaUnhand<CAMMSTunerControl>(aTunerControlHandle);
+
+    TInt err = eventSource->ExecuteTrap(UsePresetL,
+                                        nativeHandle,
+                                        aPreset);
+
+    return err;
+}
+
+
+/**
+* Static delegator function for setPreset__III
+*/
+LOCAL_C void SetPresetL(CAMMSTunerControl* aNativeClass,
+                        TInt aPreset)
+{
+    aNativeClass->SetPresetL(aPreset);
+}
+
+/**
+*  setPreset__III JNI function
+*/
+JNIEXPORT jint JNICALL
+Java_com_nokia_amms_control_tuner_TunerControlImpl__1setPreset__III(
+    JNIEnv* /*aJni*/,
+    jobject /*aJobject*/,
+    jint aEventSourceHandle,
+    jint aTunerControlHandle,
+    jint aPreset)
+{
+    CMMAEventSource* eventSource =
+        JavaUnhand<CMMAEventSource>(aEventSourceHandle);
+
+    CAMMSTunerControl* nativeHandle =
+        JavaUnhand<CAMMSTunerControl>(aTunerControlHandle);
+
+    TInt err = eventSource->ExecuteTrap(SetPresetL,
+                                        nativeHandle,
+                                        aPreset);
+
+    return err;
+}
+
+
+/**
+* Static delegator function for setPreset__IIIII
+*/
+LOCAL_C void SetPresetL(CAMMSTunerControl* aNativeClass,
+                        TInt aPreset,
+                        TInt aFrequency,
+                        TInt aStereoMode)
+{
+    aNativeClass->SetPresetL(aPreset, aFrequency, aStereoMode);
+}
+
+/**
+*  setPreset__IIIII JNI function
+*/
+JNIEXPORT jint JNICALL
+Java_com_nokia_amms_control_tuner_TunerControlImpl__1setPreset__IIIII(
+    JNIEnv* /*aJni*/,
+    jobject /*aJobject*/,
+    jint aEventSourceHandle,
+    jint aTunerControlHandle,
+    jint aPreset,
+    jint aFrequency,
+    jint aStereoMode)
+{
+    CMMAEventSource* eventSource =
+        JavaUnhand<CMMAEventSource>(aEventSourceHandle);
+
+    CAMMSTunerControl* nativeHandle =
+        JavaUnhand<CAMMSTunerControl>(aTunerControlHandle);
+
+    TInt err = eventSource->ExecuteTrap(SetPresetL,
+                                        nativeHandle,
+                                        aPreset,
+                                        aFrequency,
+                                        aStereoMode);
+
+    return err;
+}
+
+
+/**
+* Static delegator function for getPresetFrequency
+*/
+LOCAL_C void GetPresetFreqL(CAMMSTunerControl* aNativeClass,
+                            TInt aPreset,
+                            TInt *aPresetFreq)
+{
+
+    *aPresetFreq = aNativeClass->PresetFrequencyL(aPreset);
+}
+
+/**
+*  getPresetFrequency JNI function
+*/
+JNIEXPORT jint JNICALL
+Java_com_nokia_amms_control_tuner_TunerControlImpl__1getPresetFrequency(
+    JNIEnv* /*aJni*/,
+    jobject /*aJobject*/,
+    jint aEventSourceHandle,
+    jint aTunerControlHandle,
+    jint aPreset)
+{
+    TInt presetFreq;
+
+    CMMAEventSource* eventSource =
+        JavaUnhand<CMMAEventSource>(aEventSourceHandle);
+
+    CAMMSTunerControl* nativeHandle =
+        JavaUnhand<CAMMSTunerControl>(aTunerControlHandle);
+
+    TInt err = eventSource->ExecuteTrap(GetPresetFreqL,
+                                        nativeHandle,
+                                        aPreset,
+                                        &presetFreq);
+    if (err != KErrNone)
+    {
+        return err;
+    }
+
+    return presetFreq;
+}
+
+
+/**
+* Static delegator function for getPresetStereoMode
+*/
+LOCAL_C void GetPresetStereoModeL(CAMMSTunerControl* aNativeClass,
+                                  TInt aPreset,
+                                  TInt *aPresetStereoMode)
+{
+
+    *aPresetStereoMode = aNativeClass->PresetStereoModeL(aPreset);
+}
+
+/**
+*  getPresetStereoMode JNI function
+*/
+JNIEXPORT jint JNICALL
+Java_com_nokia_amms_control_tuner_TunerControlImpl__1getPresetStereoMode(
+    JNIEnv* /*aJni*/,
+    jobject /*aJobject*/,
+    jint aEventSourceHandle,
+    jint aTunerControlHandle,
+    jint aPreset)
+{
+    TInt presetStereoMode;
+
+    CMMAEventSource* eventSource =
+        JavaUnhand<CMMAEventSource>(aEventSourceHandle);
+
+    CAMMSTunerControl* nativeHandle =
+        JavaUnhand<CAMMSTunerControl>(aTunerControlHandle);
+
+    TInt err = eventSource->ExecuteTrap(GetPresetStereoModeL,
+                                        nativeHandle,
+                                        aPreset,
+                                        &presetStereoMode);
+    if (err != KErrNone)
+    {
+        return err;
+    }
+
+    return presetStereoMode;
+}
+
+
+/**
+* Static delegator function for setPresetName
+*/
+LOCAL_C void SetPresetNameL(CAMMSTunerControl* aNativeClass,
+                            TInt aPreset,
+                            const TDesC* aPresetName)
+{
+    aNativeClass->SetPresetNameL(aPreset, aPresetName);
+}
+
+/**
+*  setPresetName JNI function
+*/
+JNIEXPORT jint JNICALL
+Java_com_nokia_amms_control_tuner_TunerControlImpl__1setPresetName(
+    JNIEnv* aJni,
+    jobject /*aJobject*/,
+    jint aEventSourceHandle,
+    jint aTunerControlHandle,
+    jint aPreset,
+    jstring aPresetName)
+{
+    CMMAEventSource* eventSource =
+        JavaUnhand<CMMAEventSource>(aEventSourceHandle);
+
+    CAMMSTunerControl* nativeHandle =
+        JavaUnhand<CAMMSTunerControl>(aTunerControlHandle);
+
+    RJString presetName(*aJni, aPresetName);
+
+    TInt err = eventSource->ExecuteTrap(SetPresetNameL,
+                                        nativeHandle,
+                                        aPreset,
+                                        (const TDesC*)&presetName);
+
+    return err;
+}
+
+
+/**
+* Static delegator function for getPresetName
+*/
+LOCAL_C void GetPresetNameL(CAMMSTunerControl* aNativeClass,
+                            TInt aPreset,
+                            TPtrC* aPresetName)
+{
+    aNativeClass->GetPresetNameL(aPreset, aPresetName);
+}
+
+/**
+*  getPresetName JNI function
+*/
+JNIEXPORT jstring JNICALL
+Java_com_nokia_amms_control_tuner_TunerControlImpl__1getPresetName(
+    JNIEnv* aJni,
+    jobject /*aJobject*/,
+    jint aEventSourceHandle,
+    jint aTunerControlHandle,
+    jint aPreset,
+    jintArray aError)
+{
+    CMMAEventSource* eventSource =
+        JavaUnhand<CMMAEventSource>(aEventSourceHandle);
+
+    CAMMSTunerControl* nativeHandle =
+        JavaUnhand<CAMMSTunerControl>(aTunerControlHandle);
+
+    TPtrC presetNamePtr(NULL, 0);
+    jstring presetName = NULL;
+
+    TInt err = eventSource->ExecuteTrap(GetPresetNameL,
+                                        nativeHandle,
+                                        aPreset,
+                                        &presetNamePtr);
+
+    if (err == KErrNone)
+    {
+        presetName = CreateJavaString(*aJni, presetNamePtr);
+        if (!presetName)
+        {
+            err = KErrNotSupported;
+        }
+    }
+
+    jint javaErr[ 1 ] = { err };
+    aJni->SetIntArrayRegion(aError, 0, 1, javaErr);
+
+    return presetName;
+}
+
+// End of file
--- a/javauis/bld.inf	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/bld.inf	Wed Oct 13 14:23:59 2010 +0300
@@ -18,7 +18,6 @@
 PRJ_PLATFORMS
 default
 
-#include "nokiasound/build/bld.inf"    
 #include "amms_akn/build/bld.inf"    
 #include "coreui_akn/build/bld.inf"    
 #include "eswt_akn/eswtdirectcontent/build/bld.inf"    
@@ -26,6 +25,7 @@
 #include "m2g_akn/build/bld.inf"    
 #include "m3g_akn/build/bld.inf"    
 #include "mmapi_akn/build/bld.inf"    
+#include "nokiasound_akn/build/bld.inf"    
 #include "remconobserver_akn/build/bld.inf"    
 #include "runtimeui_akn/build/bld.inf"    
 #include "softnotification_akn/build/bld.inf"    
--- a/javauis/coreui/inc/javacoreui.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/coreui/inc/javacoreui.h	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+* 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"
@@ -20,11 +20,9 @@
 
 #include <memory>
 
-#include "libraryloaderexception.h"
 #include "dynamiclibloader.h"
 #include "javauid.h"
 #include "javacoreuiparams.h"
-#include "logger.h"
 
 namespace java // codescanner::namespace
 {
@@ -74,88 +72,93 @@
     * @param[out] loader User must store this argument as long as it needs
     *                    to run any code in the shared library. No other
                          APIs of the loader is needed to use.
-    * @return true if the dll could be loaded and the start method was
-    *         succesfully called.
+    * @return A reference to instance implementing CoreUi in
     * success case.
     * @throws java::util::ExceptionBase or std::exception in error cases.
     */
-    static bool start(std::auto_ptr<java::util::DynamicLibLoader>& loader,
-                      const java::util::Uid& appUid,
-                      CoreUiParams* uiParams = 0);
+    static CoreUi&
+    getUiInstance(std::auto_ptr<java::util::DynamicLibLoader>& loader);
 
     /**
     * This inline method will close the core UI unless already closed and
     * clean resources.
     *
     * @param[in] loader A loeader that was used to load the dll.
-    * @return true if the dll could be loaded and the release method was
-    *         succesfully called.
     * @throws java::util::ExceptionBase or std::exception in error cases.
     */
-    static bool releaseUi(std::auto_ptr<java::util::DynamicLibLoader>& loader);
+    static void releaseUi(const std::auto_ptr<java::util::DynamicLibLoader>& loader);
 };
 
-} // end namespace ui
-} // end namespace java
+#if defined RD_JAVA_UI_QT
+// This is an empty CoreUi impl for Java 3.0
+class CoreUiStub : public CoreUi
+{
+public:
+    CoreUiStub() {}
+    virtual ~CoreUiStub() {}
+    virtual void init(const java::util::Uid& /*midletUid*/,
+                      CoreUiParams* /*uiParams*/) {}
+
+    virtual void start(const java::util::Uid& appUid,
+                       CoreUiParams* uiParams = 0) {}
+};
+#endif // RD_JAVA_UI_QT
+
+} //end namespace ui
+} //end namespace java
 
 
-const char* const COREUI_LIB_NAME = "javacoreui";
-// START OF INLINE METHODS
+//START OF INLINE METHODS
 inline java::ui::CoreUi::~CoreUi() {}
 
-inline bool java::ui::CoreUi::start(
-    std::auto_ptr<java::util::DynamicLibLoader>& loader,
-    const java::util::Uid& appUid,
-    CoreUiParams* uiParams)
+inline java::ui::CoreUi& java::ui::CoreUi::getUiInstance
+(std::auto_ptr<java::util::DynamicLibLoader>& loader)
 {
+#if defined RD_JAVA_UI_QT
+
+    // The stub impl leaks memory, but is ok, since this
+    // is not in use in MCL, but is for future development
+    // enabler.
+    CoreUiStub* stub = new CoreUiStub();
+    return *stub;
+
+#else // RD_JAVA_UI_QT
+
     if (loader.get() == 0)
     {
-        // Create an instance of DynamicLibLoader.
-        loader.reset(new java::util::DynamicLibLoader(COREUI_LIB_NAME));
+        //Create an instance of DynamicLibLoader.
+        loader.reset(new java::util::DynamicLibLoader("javacoreui"));
     }
 
-    try
-    {
-        // Load the javaui and locates method getUiInstance. If getFunction
-        // succeeds were are certain that createUiFunc points to valid method.
-        GetUiInstance getUiInstance =
-            reinterpret_cast<GetUiInstance>(loader->getFunction("getUiInstance",
-                                            true));
-        // Call the method which will create the UI.
-        getUiInstance().start(appUid, uiParams);
-        return true;
-    }
-    catch (java::util::LibraryLoaderException& ex)
-    {
-        loader.reset();
-        LOG1(EJavaUI, EInfo, "No coreUi available (start): %s", ex.toString().c_str());
-    }
-    return false;
+    //Load the javaui and locates method getUiInstance. If getFunction
+    //succeeds were are certain that createUiFunc points to valid method.
+    GetUiInstance getUiInstance =
+        reinterpret_cast<GetUiInstance>(loader->getFunction("getUiInstance",
+                                        true));
+
+    //Call the method which will create the UI.
+    return getUiInstance();
+
+#endif // RD_JAVA_UI_QT
 }
 
-inline bool java::ui::CoreUi::releaseUi(
-    std::auto_ptr<java::util::DynamicLibLoader>& loader)
+inline void java::ui::CoreUi::releaseUi(
+    const  std::auto_ptr<java::util::DynamicLibLoader>& loader)
 {
-    if (loader.get() == 0)
-    {
-        // Create an instance of DynamicLibLoader.
-        loader.reset(new java::util::DynamicLibLoader(COREUI_LIB_NAME));
-    }
-    try
-    {
-        ReleaseUi releaseUi =
-            reinterpret_cast<ReleaseUi>(loader->getFunction("releaseUi", true));
+#ifndef RD_JAVA_UI_QT
+    //Load the javaui and locates method getUiInstance. If getFunction
+    //succeeds were are certain that createUiFunc points to valid method.
+    ReleaseUi releaseUi =
+        reinterpret_cast<ReleaseUi>(loader->getFunction("releaseUi", true));
 
-        // Call the method which will release UI resources.
-        releaseUi();
-        return true;
-    }
-    catch (java::util::LibraryLoaderException& ex)
-    {
-        loader.reset();
-        LOG1(EJavaUI, EInfo, "No coreUi available (release): %s", ex.toString().c_str());
-    }
-    return false;
+    //Call the method which will release UI resources.
+    releaseUi();
+
+#else // RD_JAVA_UI_QT
+
+    return;
+
+#endif // RD_JAVA_UI_QT
 }
 
 #endif // JAVACOREUI_H
--- a/javauis/coreui/tsrc/build/exports.inf	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-PRJ_EXPORTS
-
-#include "../../../../inc/build_defines.hrh"
-#ifdef RD_JAVA_SYMBIAN_TARGET
-../tst.bat        /epoc32/winscw/c/tst.bat
-../tst2.bat       /epoc32/winscw/c/tst2.bat
-#endif // RD_JAVA_SYMBIAN_TARGET
-
--- a/javauis/coreui/tsrc/build/testcoreui.pro	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-#
-# Copyright (c) 2010 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:
-#
-
-TEMPLATE=app
-TARGET=testcoreui
-CONFIG += omj no_icon stl
-CONFIG -= qt
-
-LIBS += -lCppUTest
-
-INCLUDEPATH += ../../../../tools/cpputest/include/CppUTest
-INCLUDEPATH += ../testcoreui/src
-
-symbian {
-    INCLUDEPATH += ../../../../tools/cpputest/include/Platforms/Symbian
-    TARGET.CAPABILITY = all -tcb
-}
-
-!symbian {
-INCLUDEPATH += ../../../../tools/cpputest/include/Platforms/Gcc
-LIBPATH +=     ../../../../tools/cpputest/lib
-}
-
-SOURCES += ../src/*.cpp
-
-include(../../../../build/omj.pri)
--- a/javauis/coreui/tsrc/readme.txt	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-This test set tests the coreui framework - both native and Java.
-
-Precoditions:
-    -This test will override the javacoreui.dll. This requirtes that before
-     compiling the test set run clean first.
-    -Compile the test sets from the root of the tsrc.
-
-To run test start eshell and run tst.bat. Then remove the javacoreui.dll from
-epoc32\release\winscw\udeb\ directory and run tst2.bat.
-
-After tests recompile coreui_akn or coreui_qt.
\ No newline at end of file
--- a/javauis/coreui/tsrc/src/alltests.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-/*
-* 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:  AllTests
-*
-*/
-
-#include "Platform.h"
-#include "CommandLineTestRunner.h"
-
-int main(int ac, char** av)
-{
-    return CommandLineTestRunner::RunAllTests(ac, av);
-}
--- a/javauis/coreui/tsrc/src/testcoreui.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,285 +0,0 @@
-/*
-* Copyright (c) 2010 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:  Tests for JvmStarter class
-*
-*/
-
-#include <string>
-#include <vector>
-#include <memory>
-
-#include "coreuitestimpl.h"
-#include "dynamiclibloader.h"
-
-#include "TestHarness.h"
-#include "testutils.h"
-#include "javaoslayer.h"
-#include "logger.h"
-
-using namespace java::util;
-using namespace java::ui;
-
-
-class CoreUiTestHandlerImpl : public CoreUiTestHandler
-{
-public:
-    CoreUiTestHandlerImpl() : mUiParams(0)
-    {
-        reset();
-    }
-    ~CoreUiTestHandlerImpl()
-    {
-        delete mUiParams;
-        mUiParams = 0;
-    }
-
-    virtual void startCalled(const Uid& midletUid, CoreUiParams* uiParams)
-    {
-        mMidletUid = midletUid;
-        if (mUiParams)
-        {
-            delete mUiParams;
-            mUiParams = 0;
-        }
-        if (uiParams)
-        {
-            mUiParams = new CoreUiParams();
-            *mUiParams = *uiParams;
-        }
-        mStartCalledCount++;
-    }
-    virtual void releaseCalled()
-    {
-        mReleaseCalledCount++;
-    }
-    virtual void error(const std::string& info)
-    {
-        CHECKWITHNOTE(false, info)
-    }
-
-    void reset()
-    {
-        mStartCalledCount = 0;
-        mReleaseCalledCount = 0;
-    }
-    int  mStartCalledCount;
-    int  mReleaseCalledCount;
-    CoreUiParams* mUiParams;
-    Uid  mMidletUid;
-};
-
-#define UIPARAMSCHECK(check1, check2, fname, info) \
-    CHECKWITHNOTE(check1 == check2, info << ": " << fname << " failed: 1=" << check1 << " 2=" << check2);
-
-
-void compare(const CoreUiParams* uiParams1, const CoreUiParams* uiParams2, const std::string& info)
-{
-    bool pass = false;
-    if ((uiParams1 == 0 && uiParams2 != 0) || (uiParams1 != 0 && uiParams2 == 0))
-    {
-        CHECKWITHNOTE(false, info << ": pointer mismatch 1=" << std::hex << uiParams1  << ", 2=" << std::hex << uiParams2);
-        return;
-    }
-
-    if (uiParams1 == 0 && uiParams2 == 0)
-    {
-        return;
-    }
-    else if (uiParams1 != uiParams2)
-    {
-        pass = true;
-    }
-    CHECKWITHNOTE(pass, info << ": pointer mismatch 1=" << std::hex << uiParams1  << ", 2=" << std::hex << uiParams2);
-    UIPARAMSCHECK(uiParams1->getOrientation(), uiParams2->getOrientation(), "getOrientation", info);
-    UIPARAMSCHECK(uiParams1->getScreenMode(), uiParams2->getScreenMode(), "getScreenMode", info);
-    UIPARAMSCHECK(uiParams1->getImagePath(), uiParams2->getImagePath(), "getImagePath", info);
-    UIPARAMSCHECK(uiParams1->isBackgroundStart(), uiParams2->isBackgroundStart(), "isBackgroundStart", info);
-
-}
-
-void checkCallCounts(const CoreUiTestHandlerImpl& testHandler, int start, int release, const std::string& info)
-{
-    CHECKWITHNOTE(testHandler.mStartCalledCount == start, info <<". Start call count incorrect: " << testHandler.mStartCalledCount
-                  <<", expecting: "<<start);
-    CHECKWITHNOTE(testHandler.mReleaseCalledCount == release, info << "Release call count incorrect: " << testHandler.mReleaseCalledCount
-                  <<", expecting: "<<release);
-}
-
-typedef void (*SetTestHandler)(CoreUiTestHandler*);
-
-// Run these tests with tst.bat. These tests require that the test version of the
-// javacoreui.dll is compiled
-TEST_GROUP(TestCoreUi)
-{
-    CoreUiTestHandlerImpl testHandler;
-    CoreUiParams uiParams;
-    Uid uid;
-    std::auto_ptr<java::util::DynamicLibLoader> basicCoreUiLoader;
-    TEST_SETUP()
-    {
-        basicCoreUiLoader.reset(new java::util::DynamicLibLoader(COREUI_LIB_NAME));
-        SetTestHandler setTestHandler =
-            reinterpret_cast<SetTestHandler>(basicCoreUiLoader->getFunction("setTestHandler",
-                                             true));
-        setTestHandler(&testHandler);
-    }
-
-    TEST_TEARDOWN()
-    {
-    }
-};
-
-
-// Run these tests with tst2.bat. These tests require that the javacoreui.dll
-// doesn't exist at all.
-TEST_GROUP(NoDllCoreUiTest)
-{
-    Uid uid;
-    TEST_SETUP()
-    {
-    }
-
-    TEST_TEARDOWN()
-    {
-    }
-};
-
-TEST(TestCoreUi, testBasic)
-{
-    std::auto_ptr<java::util::DynamicLibLoader> coreUiLoader;
-    // __BREAKPOINT();
-    CHECKWITHNOTE(CoreUi::start(coreUiLoader, uid, &uiParams), "testBasic, start");
-    checkCallCounts(testHandler, 1, 0, "Before release");
-    CHECKWITHNOTE(CoreUi::releaseUi(coreUiLoader), "testBasic release");
-    checkCallCounts(testHandler, 1, 1, "After release");
-    compare(testHandler.mUiParams, &uiParams, "Final check basic");
-}
-
-TEST(TestCoreUi, testNullUiParams)
-{
-    std::auto_ptr<java::util::DynamicLibLoader> coreUiLoader;
-    CHECKWITHNOTE(CoreUi::start(coreUiLoader, uid), "testNullUiParams, start");
-    checkCallCounts(testHandler, 1, 0, "Before release");
-    CHECKWITHNOTE(CoreUi::releaseUi(coreUiLoader), "testNullUiParams release");
-    checkCallCounts(testHandler, 1, 1, "After release");
-    compare(testHandler.mUiParams, 0, "Final check Null ui");
-}
-
-TEST(TestCoreUi, testModifiedOrientationArgs)
-{
-    std::auto_ptr<java::util::DynamicLibLoader> coreUiLoader;
-
-    uiParams.setOrientation(UNDEFINED);
-    CHECKWITHNOTE(CoreUi::start(coreUiLoader, uid, &uiParams), "testModifiedOrientationArgs, start1");
-    checkCallCounts(testHandler, 1, 0, "Before release");
-    compare(testHandler.mUiParams, &uiParams, "OrientationArgs UNDEFINED");
-
-    uiParams.setOrientation(LANDSCAPE);
-    CHECKWITHNOTE(CoreUi::start(coreUiLoader, uid, &uiParams), "testModifiedOrientationArgs, start2");
-    checkCallCounts(testHandler, 2, 0, "Before release");
-    compare(testHandler.mUiParams, &uiParams, "OrientationArgs LANDSCAPE");
-
-    uiParams.setOrientation(PORTRAIT);
-    CHECKWITHNOTE(CoreUi::start(coreUiLoader, uid, &uiParams), "testModifiedOrientationArgs, start3");
-    checkCallCounts(testHandler, 3, 0, "Before release");
-    compare(testHandler.mUiParams, &uiParams, "OrientationArgs PORTRAIT");
-
-    CHECKWITHNOTE(CoreUi::releaseUi(coreUiLoader), "testModifiedOrientationArgs release");
-    checkCallCounts(testHandler, 3, 1, "After release");
-}
-
-TEST(TestCoreUi, testModifiedScreenModeArgs)
-{
-    std::auto_ptr<java::util::DynamicLibLoader> coreUiLoader;
-
-    uiParams.setScreenMode(NO_START_SCREEN);
-    CHECKWITHNOTE(CoreUi::start(coreUiLoader, uid, &uiParams), "testModifiedScreenModeArgs, start1");
-    checkCallCounts(testHandler, 1, 0, "Before release");
-    compare(testHandler.mUiParams, &uiParams, "ScreenModeArgs NO_START_SCREEN");
-
-    uiParams.setScreenMode(DEFAULT_START_SCREEN);
-    CHECKWITHNOTE(CoreUi::start(coreUiLoader, uid, &uiParams), "testModifiedScreenModeArgs, start2");
-    checkCallCounts(testHandler, 2, 0, "Before release");
-    compare(testHandler.mUiParams, &uiParams, "ScreenModeArgs DEFAULT_START_SCREEN");
-
-    uiParams.setScreenMode(MIDLET_DEFINED_SCREEN);
-    CHECKWITHNOTE(CoreUi::start(coreUiLoader, uid, &uiParams), "testModifiedScreenModeArgs, start3");
-    checkCallCounts(testHandler, 3, 0, "Before release");
-    compare(testHandler.mUiParams, &uiParams, "ScreenModeArgs MIDLET_DEFINED_SCREEN");
-
-    uiParams.setScreenMode(USER_DEFINED_SCREEN);
-    CHECKWITHNOTE(CoreUi::start(coreUiLoader, uid, &uiParams), "testModifiedScreenModeArgs, start4");
-    checkCallCounts(testHandler, 4, 0, "Before release");
-    compare(testHandler.mUiParams, &uiParams, "ScreenModeArgs USER_DEFINED_SCREEN");
-
-    CHECKWITHNOTE(CoreUi::releaseUi(coreUiLoader), "testModifiedScreenModeArgs release");
-    checkCallCounts(testHandler, 4, 1, "After release");
-}
-
-TEST(TestCoreUi, testModifiedImagePathArgs)
-{
-    std::auto_ptr<java::util::DynamicLibLoader> coreUiLoader;
-
-    uiParams.setImagePath(L"c:\\logs\\java\\");
-    CHECKWITHNOTE(CoreUi::start(coreUiLoader, uid, &uiParams), "testModifiedImagePathArgs start");
-    checkCallCounts(testHandler, 1, 0, "Before release");
-    compare(testHandler.mUiParams, &uiParams, "ImagePathArgs");
-
-    CHECKWITHNOTE(CoreUi::releaseUi(coreUiLoader), "testModifiedImagePathArgs release");
-    checkCallCounts(testHandler, 1, 1, "After release");
-}
-
-TEST(TestCoreUi, testModifiedForeGroundArgs)
-{
-    std::auto_ptr<java::util::DynamicLibLoader> coreUiLoader;
-
-    uiParams.setBackgroundStart(true);
-    CHECKWITHNOTE(CoreUi::start(coreUiLoader, uid, &uiParams), "testModifiedForeGroundArgs start1");
-    checkCallCounts(testHandler, 1, 0, "Before release");
-    compare(testHandler.mUiParams, &uiParams, "ForeGround");
-
-    uiParams.setBackgroundStart(false);
-    CHECKWITHNOTE(CoreUi::start(coreUiLoader, uid, &uiParams), "testModifiedForeGroundArgs start2");
-    checkCallCounts(testHandler, 2, 0, "Before release");
-    compare(testHandler.mUiParams, &uiParams, "ForeGround");
-
-    CHECKWITHNOTE(CoreUi::releaseUi(coreUiLoader), "testModifiedForeGroundArgs release");
-    checkCallCounts(testHandler, 2, 1, "After release");
-}
-
-TEST(TestCoreUi, testNoStartCall)
-{
-    std::auto_ptr<java::util::DynamicLibLoader> coreUiLoader;
-    CHECKWITHNOTE(CoreUi::releaseUi(coreUiLoader), "testNoStartCall release");
-    checkCallCounts(testHandler, 0, 1, "After release");
-}
-
-TEST(NoDllCoreUiTest, testBasic)
-{
-    std::auto_ptr<java::util::DynamicLibLoader> coreUiLoader;
-    CHECKWITHNOTE(!CoreUi::start(coreUiLoader, uid), "testBasic NO_DLL start");
-    CHECKWITHNOTE(!CoreUi::releaseUi(coreUiLoader), "testBasic NO_DLL release");
-}
-
-TEST(NoDllCoreUiTest, testOnlyStart)
-{
-    std::auto_ptr<java::util::DynamicLibLoader> coreUiLoader;
-    CHECKWITHNOTE(!CoreUi::start(coreUiLoader, uid), "testOnlyStart NO_DLL start");
-}
-
-TEST(NoDllCoreUiTest, testOnlyRelease)
-{
-    std::auto_ptr<java::util::DynamicLibLoader> coreUiLoader;
-    CHECKWITHNOTE(!CoreUi::releaseUi(coreUiLoader), "testOnlyRelease NO_DLL release");
-}
--- a/javauis/coreui/tsrc/src/testutils.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/*
-* Copyright (c) 2010 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:  Test util
-*
-*/
-
-#include <sstream>
-
-#define CHECKWITHNOTE(check, note) \
-{\
-    std::stringstream stream;\
-    stream << note;\
-    if (!(check))\
-    {\
-        ELOG1(EJavaRuntime, "TEST FAILURE: %s", stream.str().c_str());\
-        FAIL(stream.str().c_str());\
-    }\
-    else\
-    {\
-        CHECK(true) /* Just to increase the check count*/ \
-    }\
-}
--- a/javauis/coreui/tsrc/subsystem.mk	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-#
-# Copyright (c) 2010 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:
-#
-
-include $(JAVA_SRC_ROOT)/build/Makefile.defs
-
-# Include the test frameworks.
-SUBSYSTEMS = \
-	$(JAVA_SRC_ROOT)/tools
-
-COMPONENTS = \
-	testcoreui/build \
-	build
-
-# Make dependency to those.
-testcoreui/build build: $(JAVA_SRC_ROOT)/tools
-include ${JAVA_SRC_ROOT}/build/Makefile.subsystem
--- a/javauis/coreui/tsrc/testcoreui/build/build.xml	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-<!--
- Copyright (c) 2010 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 build file of the test CoreUI
--->
-
-<project name="javacoreui" default="deploy" basedir=".">
-
-  <import file="../../../../../build/utilities.xml"/>
-
-  <property name="java.bin.root" value="${env.JAVA_BIN_ROOT}"/>
-
-  <target name="run" depends="deploy">
-      <echo>Running CoreUiTests 1</echo>
-      <exec executable="${java.bin.root}/bin/javaunittester">
-          <arg line="-mainclass=com.nokia.mj.impl.coreuitest.CoreUiTests"/>
-          <arg line="1"/>
-      </exec>
-
-      <echo>Running CoreUiTests 01</echo>
-      <exec executable="${java.bin.root}/bin/javaunittester">
-          <arg line="-mainclass=com.nokia.mj.impl.coreuitest.CoreUiTests"/>
-          <arg line="01"/>
-      </exec>
-
-      <echo>Running CoreUiTests 001</echo>
-      <exec executable="${java.bin.root}/bin/javaunittester">
-          <arg line="-mainclass=com.nokia.mj.impl.coreuitest.CoreUiTests"/>
-          <arg line="001"/>
-      </exec>
-  </target>
-
-  <target name="main" depends="clean,run"/>
-
-</project>
-
--- a/javauis/coreui/tsrc/testcoreui/build/bwins/javacoreuiu.def	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-EXPORTS
-	?jni_lookup@@YAP6AXXZPBD@Z @ 1 NONAME ; void (*)(void) jni_lookup(char const *)
-	?findDllMethod@@YAP6APAXXZPBD@Z @ 2 NONAME ; void * (*)(void) findDllMethod(char const *)
-	??_ERuntimeException@runtime@java@@UAE@I@Z @ 3 NONAME ; java::runtime::RuntimeException::~RuntimeException(unsigned int)
-	??_ELibraryLoaderException@util@java@@UAE@I@Z @ 4 NONAME ; java::util::LibraryLoaderException::~LibraryLoaderException(unsigned int)
-	?setTestHandler@CoreUiTestImpl@ui@java@@SAXPAVCoreUiTestHandler@23@@Z @ 5 NONAME ; void java::ui::CoreUiTestImpl::setTestHandler(class java::ui::CoreUiTestHandler *)
-	??0RuntimeException@runtime@java@@QAE@ABV012@@Z @ 6 NONAME ; java::runtime::RuntimeException::RuntimeException(class java::runtime::RuntimeException const &)
-	??0LibraryLoaderException@util@java@@QAE@ABV012@@Z @ 7 NONAME ; java::util::LibraryLoaderException::LibraryLoaderException(class java::util::LibraryLoaderException const &)
-
--- a/javauis/coreui/tsrc/testcoreui/build/eabi/javacoreuiu.def	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-EXPORTS
-	_Z10jni_lookupPKc @ 1 NONAME
-	_Z13findDllMethodPKc @ 2 NONAME
-	_ZN4java2ui14CoreUiTestImpl14setTestHandlerEPNS0_17CoreUiTestHandlerE @ 3 NONAME
-
--- a/javauis/coreui/tsrc/testcoreui/build/javacoreui.pro	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-#
-# Copyright (c) 2010 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 build file of the Core UI test
-#
-
-TEMPLATE=lib
-TARGET=javacoreui
-CONFIG += omj staticdata java stl
-CONFIG -= qt
-
-include(../../../../../build/omj.pri)
--- a/javauis/coreui/tsrc/testcoreui/javasrc/com/nokia/mj/impl/coreuitest/CoreUiImpl.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-/*
-* Copyright (c) 2010 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 side Core UI tester.
-*
-*/
-package com.nokia.mj.impl.coreuitest;
-
-import com.nokia.mj.impl.utils.Uid;
-import com.nokia.mj.impl.coreui.CoreUi;
-
-
-/**
- * A gate to CoreUi test implementation.
- */
-public class CoreUiImpl extends CoreUi
-{
-    private static int[] mCounters = new int[6];
-
-    static void resetCounters()
-    {
-        for (int i = 0; i < mCounters.length; ++i)
-        {
-            mCounters[i] = 0;
-        }
-    }
-
-    static void checkCounters(int[] expected)
-    {
-        if (expected.length != mCounters.length)
-        {
-            throw new RuntimeException("expected.length != mCounters.length");
-        }
-        for (int i = 0; i < mCounters.length; ++i)
-        {
-            if (mCounters[i] != expected[i])
-            {
-                throw new RuntimeException("Index: " + i + " didn't match. Expected: " +
-                                           expected[i] + ", was: " + mCounters[i]);
-            }
-        }
-    }
-
-    protected boolean connectToUiImpl()
-    {
-        mCounters[0]++;
-        return true;
-    }
-
-    private static Uid     mUid = null;
-    private static boolean mBackGroundStart = false;
-
-    static void createUiImplCheck(Uid uid, boolean backGroundStart)
-    {
-        if (uid != mUid)
-        {
-            throw new RuntimeException("createUiImplCheck uid mismatch");
-        }
-        if (backGroundStart != mBackGroundStart)
-        {
-            throw new RuntimeException("createUiImplCheck backGroundStart mismatch");
-        }
-        mUid = null;
-        mBackGroundStart = false;
-    }
-
-    protected void createUiImpl(Uid uid, boolean backGroundStart)
-    {
-        mCounters[1]++;
-        mUid = uid;
-        mBackGroundStart = backGroundStart;
-    }
-
-    protected void shutdownRequestImpl()
-    {
-        mCounters[2]++;
-    }
-
-    protected void foregroundRequestImpl()
-    {
-        mCounters[3]++;
-    }
-
-    protected boolean isUiInForegroundImpl()
-    {
-        mCounters[4]++;
-        return true;
-    }
-
-    private static boolean mHide = false;
-
-    static void hideApplicationImplCheck(boolean hide)
-    {
-        if (mHide != hide)
-        {
-            throw new RuntimeException("hideApplicationImplCheck hide mismatch");
-        }
-        mHide = false;
-    }
-
-    protected void hideApplicationImpl(boolean hide)
-    {
-        mCounters[5]++;
-        mHide = hide;
-    }
-}
--- a/javauis/coreui/tsrc/testcoreui/javasrc/com/nokia/mj/impl/coreuitest/CoreUiTests.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,213 +0,0 @@
-/*
-* Copyright (c) 2010 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:
-*
-*/
-
-
-package com.nokia.mj.impl.coreuitest;
-
-
-import com.nokia.mj.impl.coreui.CoreUi;
-import com.nokia.mj.impl.coreuitest.CoreUiImpl;
-import com.nokia.mj.impl.rt.support.JvmInternal;
-import com.nokia.mj.impl.utils.Uid;
-
-
-import com.nokia.mj.impl.rt.test.UnitTestSuiteCreator;
-import j2meunit.framework.Test;
-import j2meunit.framework.TestCase;
-import j2meunit.framework.TestMethod;
-import j2meunit.framework.TestSuite;
-
-/**
- * SystemProperty unit tests.
- */
-public class CoreUiTests extends TestCase implements UnitTestSuiteCreator
-{
-    // Begin j2meunit test framework setup
-    public TestSuite createTestSuite(String[] args)
-    {
-        TestSuite suite = new TestSuite(this.getClass().getName());
-        String testSelector = "0000000000000000";
-        if (args.length > 1 && args[1] != null)
-        {
-            testSelector = args[1]  + "0000000000000000";
-        }
-
-        if (testSelector.charAt(0) != '0')
-        {
-            suite.addTest(new CoreUiTests("AbNormalTests", new TestMethod()
-            {
-                public void run(TestCase tc)
-                {
-                    ((CoreUiTests)tc).abNormalTests();
-                }
-            }));
-        }
-
-        if (testSelector.charAt(1) != '0')
-        {
-            suite.addTest(new CoreUiTests("AbNormalTests2", new TestMethod()
-            {
-                public void run(TestCase tc)
-                {
-                    ((CoreUiTests)tc).abNormalTests2();
-                }
-            }));
-        }
-
-        if (testSelector.charAt(2) != '0')
-        {
-            suite.addTest(new CoreUiTests("NormalTests", new TestMethod()
-            {
-                public void run(TestCase tc)
-                {
-                    ((CoreUiTests)tc).normalTests();
-                }
-            }));
-        }
-
-        return suite;
-
-    }
-
-    public CoreUiTests()
-    {
-    }
-
-    public CoreUiTests(String aTestName, TestMethod aTestMethod)
-    {
-        super(aTestName, aTestMethod);
-    }
-
-    // End j2meunit test framework setup
-
-    protected void setUp()
-    {
-    }
-
-    protected void tearDown()
-    {
-    }
-
-    // Test cases
-
-    private void abNormalTests()
-    {
-        System.out.println("abNormalTests");
-        // Don't set the com.nokia.coreui property yet.
-        try
-        {
-            boolean res = CoreUi.connectToUi();
-            assertTrue("Fail1, got: "+ res, res);
-            CoreUi.createUi(null, false);
-
-            CoreUi.createUi(null, false);
-            CoreUi.shutdownRequest();
-            CoreUi.foregroundRequest();
-
-            res = CoreUi.isUiInForeground();
-            assertTrue("Fail2, got: "+ res, res);
-            CoreUi.hideApplication(false);
-        }
-        catch (Throwable t)
-        {
-            t.printStackTrace();
-            assertTrue(t.toString(), false);
-        }
-    }
-
-
-    private void abNormalTests2()
-    {
-        System.out.println("abNormalTests2");
-        // Set the com.nokia.coreui property to point nonexisitng class.
-        try
-        {
-            JvmInternal.setSystemProperty("com.nokia.coreui", "nonvalid");
-            boolean res = CoreUi.connectToUi();
-            assertTrue("No exception.", false);
-        }
-        catch (Error re)
-        {
-            int ind = re.toString().indexOf("Not able to instantiate class com.nokia.mj.impl.nonvalid.CoreUiImpl");
-            boolean ok = ind >= 0;
-            if (!ok)
-            {
-                // Accept also java.lang.ExceptionInInitializerError.
-                ok = re.toString().equals("java.lang.ExceptionInInitializerError");
-            }
-            assertTrue(re.toString(),  ok);
-        }
-        catch (Throwable t2)
-        {
-            System.out.println("JOU2 "+ t2);
-            t2.printStackTrace();
-            assertTrue(t2.toString(), false);
-        }
-    }
-
-    private void normalTests()
-    {
-        // Set the com.nokia.coreui property to point valid class.
-        System.out.println("normalTests");
-        try
-        {
-            JvmInternal.setSystemProperty("com.nokia.coreui", "coreuitest");
-            boolean res = CoreUi.connectToUi();
-            assertTrue("Fail1, got: "+ res, res);
-
-            // Set a null value to UID and check that an exception is thrown.
-            try
-            {
-                CoreUi.createUi(null, false);
-                assertTrue("No exception.", false);
-            }
-            catch (NullPointerException ne)
-            {
-            }
-
-            Uid uid = Uid.createUid("[12345678]");
-            CoreUi.createUi(uid, true);
-            CoreUiImpl.createUiImplCheck(uid, true);
-            CoreUi.createUi(uid, false);
-            CoreUiImpl.createUiImplCheck(uid, false);
-
-            CoreUi.shutdownRequest();
-
-            CoreUi.foregroundRequest();
-
-            res = CoreUi.isUiInForeground();
-            assertTrue("Fail2, got: "+ res, res);
-
-            CoreUi.hideApplication(true);
-            CoreUiImpl.hideApplicationImplCheck(true);
-            CoreUi.hideApplication(false);
-            CoreUiImpl.hideApplicationImplCheck(false);
-
-            CoreUiImpl.checkCounters(new int[] {1,2,1,1,1,2});
-        }
-        catch (Throwable t)
-        {
-            t.printStackTrace();
-            assertTrue(t.toString(), false);
-        }
-
-    }
-
-}
-
-
-
--- a/javauis/coreui/tsrc/testcoreui/src/coreuitestimpl.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,121 +0,0 @@
-/*
-* Copyright (c) 2010 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: A CoreUi TEST implementation.
-*
-*/
-
-#include <string.h>
-
-#include "logger.h"
-#include "coreuitestimpl.h"
-#include "runtimeexception.h"
-#include "javacommonutils.h"
-
-using namespace java::ui;
-using namespace java::util;
-
-// ======== STATIC VARIABLES ========
-
-/**
-* Singleton
-*/
-static CoreUiTestImpl* sCoreUiTestImpl = 0;
-
-CoreUiTestImpl* getCoreUi()
-{
-    if (sCoreUiTestImpl == 0)
-    {
-        sCoreUiTestImpl = new CoreUiTestImpl(); // codescanner::nonleavenew
-    }
-    return sCoreUiTestImpl;
-}
-
-OS_EXPORT void CoreUiTestImpl::setTestHandler(CoreUiTestHandler* testHandler)
-{
-    getCoreUi()->mTestHandler = testHandler;
-}
-
-#ifndef __SYMBIAN32__
-extern "C"
-#endif // __SYMBIAN32__
-void setTestHandler(CoreUiTestHandler* testHandler)
-{
-    CoreUiTestImpl::setTestHandler(testHandler);
-}
-
-#ifndef __SYMBIAN32__
-extern "C"
-#endif // __SYMBIAN32__
-CoreUi& getUiInstance()
-{
-    JELOG2(EJavaUI);
-    return *getCoreUi();
-}
-
-#ifndef __SYMBIAN32__
-extern "C"
-#endif // __SYMBIAN32__
-void releaseUi()
-{
-    JELOG2(EJavaUI);
-    if (getCoreUi()->mTestHandler)
-    {
-        getCoreUi()->mTestHandler->releaseCalled();
-    }
-    delete sCoreUiTestImpl;
-    sCoreUiTestImpl = 0;
-}
-
-#ifdef __SYMBIAN32__
-EXPORT_C FuncPtr findDllMethod(const char* funcName)
-{
-    JELOG2(EJavaUI);
-    FuncPtr ptr = 0;
-    if (strcmp(funcName, "getUiInstance") == 0)
-    {
-        ptr = (FuncPtr)getUiInstance;
-    }
-    else if (strcmp(funcName, "releaseUi") == 0)
-    {
-        ptr = (FuncPtr)releaseUi;
-    }
-    else if (strcmp(funcName, "setTestHandler") == 0)
-    {
-        ptr = (FuncPtr)CoreUiTestImpl::setTestHandler;
-    }
-    return ptr;
-}
-#endif // __SYMBIAN32__
-
-CoreUiTestImpl::CoreUiTestImpl() : mTestHandler(0)
-{
-    JELOG2(EJavaUI);
-}
-
-
-CoreUiTestImpl::~CoreUiTestImpl()
-{
-    JELOG2(EJavaUI);
-}
-
-
-void CoreUiTestImpl::start(const java::util::Uid& midletUid,
-                           CoreUiParams* uiParams)
-{
-    JELOG2(EJavaUI);
-    if (mTestHandler)
-    {
-        mTestHandler->startCalled(midletUid, uiParams);
-    }
-}
--- a/javauis/coreui/tsrc/testcoreui/src/coreuitestimpl.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/*
-* Copyright (c) 2010 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 COREUITESTIMPL_H
-#define COREUITESTIMPL_H
-
-
-#include "javacoreui.h"
-
-#ifdef __SYMBIAN32__
-
-#include "javasymbianoslayer.h"
-/**
- * For accessing the static methods using dynamic dll loading.
- * @param funcName The name of the method to be searched.
- * @return a pointer to found function, 0 if not found.
- */
-IMPORT_C FuncPtr findDllMethod(const char* funcName);
-
-#endif //__SYMBIAN32__
-
-namespace java // codescanner::namespace
-{
-namespace ui // codescanner::namespace
-{
-
-OS_NONSHARABLE_CLASS(CoreUiTestHandler)
-{
-public:
-    virtual void startCalled(const java::util::Uid& midletUid,
-                             CoreUiParams* uiParams) = 0;
-    virtual void releaseCalled() = 0;
-    virtual void error(const std::string& info) = 0;
-};
-
-OS_NONSHARABLE_CLASS(CoreUiTestImpl) : public CoreUi
-{
-public:
-    /**
-     * CoreUiTestImpl default constructor.
-     */
-    CoreUiTestImpl();
-
-    /**
-     * CoreUiTestImpl destructor.
-     */
-    virtual ~CoreUiTestImpl();
-
-    OS_IMPORT static void setTestHandler(CoreUiTestHandler* testHadler);
-
-public: // From CoreUi
-    /**
-    * This method will ask the UI to start the splash screen.
-    * @param appUid The Uid of the application.
-    * @param uiParams Ui configuration parameters. If it
-    *        is null, the default arguments will be used.
-    * @throws java::util::ExceptionBase or std::exception in error cases.
-    */
-    virtual void start(const java::util::Uid& midletUid,
-    CoreUiParams* uiParams);
-
-public:
-    CoreUiTestHandler* mTestHandler;
-};
-
-
-} // end namespace ui
-} // end namespace java
-
-
-#endif // COREUITESTIMPL_H
--- a/javauis/coreui/tsrc/tst.bat	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-@rem
-@rem Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-@rem All rights reserved.
-@rem This component and the accompanying materials are made available
-@rem under the terms of "Eclipse Public License v1.0"
-@rem which accompanies this distribution, and is available
-@rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-@rem
-@rem Initial Contributors:
-@rem Nokia Corporation - initial contribution.
-@rem
-@rem Contributors:
-@rem
-@rem Description:
-@rem
-@rem Script for running CoreUi unit tests from S60 eshell
-testcoreui -nomemleaks -g TestCoreUi
-javaunittester -conf=cldc -mainclass=com.nokia.mj.impl.coreuitest.CoreUiTests 1
-javaunittester -conf=cldc -mainclass=com.nokia.mj.impl.coreuitest.CoreUiTests 01
-javaunittester -conf=cldc -mainclass=com.nokia.mj.impl.coreuitest.CoreUiTests 001
--- a/javauis/coreui/tsrc/tst2.bat	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-testcoreui -nomemleaks -g NoDllCoreUiTest
--- a/javauis/coreui_akn/build/build.xml	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/coreui_akn/build/build.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
+ 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"
@@ -21,13 +21,7 @@
   <!-- Needed by the utilities.xml. See the description form the utilities.xml
        file -->
 
-  <property name="javah.classnames"
+  <property name="javah.classnames" 
             value="com.nokia.mj.impl.coreuiavkon.CoreUiImpl"/>
-
-  <target name="system.properties">
-    <properties>
-        com.nokia.coreui=coreuiavkon
-    </properties>
-  </target>
 </project>
 
--- a/javauis/coreui_akn/build/javacoreui.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/coreui_akn/build/javacoreui.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -18,7 +18,7 @@
 TARGET=javacoreui
 CONFIG += omj staticdata java stl
 CONFIG -= qt
-LIBS += -lAknIcon \
+LIBS += -laknicon \
         -laknlayout2 \
         -laknskins \
         -laknskinsrv \
--- a/javauis/coreui_akn/build/javacoreui_0x2002DCA8.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/coreui_akn/build/javacoreui_0x2002DCA8.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc
@@ -77,7 +77,7 @@
 SOURCE		startscreencontainer.cpp
 
 
-LIBRARY		AknIcon.lib
+LIBRARY		aknicon.lib
 LIBRARY		aknlayout2.lib
 LIBRARY		aknskins.lib
 LIBRARY		aknskinsrv.lib
@@ -123,7 +123,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javauis/coreui_akn/javasrc/com/nokia/mj/impl/coreuiavkon/CoreUiImpl.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/coreui_akn/javasrc/com/nokia/mj/impl/coreuiavkon/CoreUiImpl.java	Wed Oct 13 14:23:59 2010 +0300
@@ -132,16 +132,10 @@
         return _isForeground();
     }
 
-    protected void hideApplicationImpl(boolean hide)
-    {
-        _hideApplication(hide);
-    }
-
     private native boolean _connect();
     private native boolean _createUi(String appUid, int orientation,
                                      int selectedScreenMode, String rootpath,
                                      boolean backGroundStart);
     private native void _toForeground();
     private native boolean _isForeground();
-    private native void _hideApplication(boolean hide);
 }
--- a/javauis/coreui_akn/src/coreuiavkonimpl.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/coreui_akn/src/coreuiavkonimpl.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -220,8 +220,7 @@
     {
         uidToTUid(mMidletUid, mMidletTUid);
         if (mMidletUid == Uid(L"[2001843a]") || // Is it installer.
-            mMidletUid == Uid(L"[2002121e]") || // Is it TCK runner.
-            mMidletUid == Uid(L"[2002FF61]"))   // Is it Java Control Panel.
+                mMidletUid == Uid(L"[2002121e]"))    // Is it TCK runner.
         {
             mShowStartScreen = false;
         }
--- a/javauis/coreui_akn/src/coreuijni.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/coreui_akn/src/coreuijni.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -17,8 +17,6 @@
 
 #include "com_nokia_mj_impl_coreuiavkon_CoreUiImpl.h"
 
-#include <apgwgnam.h>
-
 #include "logger.h"
 #include "coreuiavkonimpl.h"
 #include "javauiavkonimpl.h"
@@ -145,17 +143,6 @@
     return success;
 }
 
-void hideFromTaskManager(TBool aHide)
-{
-    CApaWindowGroupName* wgName = java::ui::CoreUiAvkonLcdui::getInstance().getWindowGroupName();
-    if (wgName)
-    {
-        wgName->SetHidden(aHide);
-        // Refresh displayed name in tasklist
-        wgName->SetWindowGroupName(CCoeEnv::Static()->RootWin());
-    }
-}
-
 void bringToForeGround()
 {
     CCoeEnv::Static()->RootWin().SetOrdinalPosition(0);
@@ -232,36 +219,3 @@
     }
     return fg;
 }
-
-
-JNIEXPORT void JNICALL Java_com_nokia_mj_impl_coreuiavkon_CoreUiImpl__1hideApplication
-(JNIEnv* env, jobject peer, jboolean hide)
-{
-    try
-    {
-        if (CoreUiAvkonImpl::isCoreUiCreated())
-        {
-            int esHandle = CoreUiAvkonImpl::getInstanceImpl().getLcduiSupport().getEventServerHandle();
-            if (esHandle > 0)
-            {
-                int handle = CoreUiEventSource::New(*env, peer, esHandle);
-                if (handle > 0)
-                {
-                    CoreUiEventSource* es = JavaUnhand<CoreUiEventSource>(handle);
-                    es->ExecuteV(&hideFromTaskManager, (TBool)hide);
-                    es->Dispose(*env);
-                }
-            }
-        }
-    }
-    catch (ExceptionBase& ex)
-    {
-        ELOG1(EJavaUI,"ERROR in core UI to hideApplication. ExceptionBase: %s",
-              ex.toString().c_str());
-    }
-    catch (std::exception& e)
-    {
-        ELOG1(EJavaUI,"ERROR in core UI to hideApplication. std::exception: %s",
-              e.what());
-    }
-}
--- a/javauis/eswt_akn/eswtapifacade/group/eswtapifacade.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/eswtapifacade/group/eswtapifacade.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -20,8 +20,6 @@
 #include <platform_paths.hrh>
 #include <data_caging_paths.hrh>
 
-// Do not use global Java version for binaries
-#define RD_JAVA_NO_BIN_VERSION
 
 // java/inc
 #include <../../../../inc/project_defines.hrh>
@@ -52,17 +50,13 @@
 
 USERINCLUDE     ../inc
 USERINCLUDE     ../../org.eclipse.ercp.swt.s60/native/inc
-
-#ifdef RD_JAVA_S60_RELEASE_5_0
-SYSTEMINCLUDE	/epoc32/include/ecom    // Due to schemehandler.inl in S60 5.0 2009w18
-#endif
+SYSTEMINCLUDE	/epoc32/include/ecom
 
 // java/javauis/inc
-USERINCLUDE   ../../../inc
+SYSTEMINCLUDE   ../../../inc
 
 // java/inc
-USERINCLUDE   ../../../../inc
-
+SYSTEMINCLUDE   ../../../../inc
 
 SOURCEPATH  ../src
 SOURCE swtbrowseractiveapdb.cpp
@@ -85,9 +79,9 @@
 
 
 LIBRARY avkon.lib
-LIBRARY CdlEngine.lib
+LIBRARY cdlengine.lib
 LIBRARY aknlayout2.lib
-LIBRARY AknLayout2Scalable.lib
+LIBRARY aknlayout2scalable.lib
 LIBRARY centralrepository.lib
 LIBRARY browserdialogsprovider.lib
 LIBRARY apengine.lib
--- a/javauis/eswt_akn/eswtdirectcontent/build/build.xml	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/eswtdirectcontent/build/build.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -26,6 +26,10 @@
   <property name="java.src.paths" value="../src"/>
 
 
+  <target name="compile">
+      <omj.javac classpath="${compile.result.root}/javautils/classes/first"/>
+  </target>
+
   <property name="javah.classnames" 
             value="org.eclipse.swt.widgets.DCControl"/>
 </project>
--- a/javauis/eswt_akn/eswtdirectcontent/build/eswtdirectcontent_0x2002DC94.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/eswtdirectcontent/build/eswtdirectcontent_0x2002DC94.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../native/inc
--- a/javauis/eswt_akn/eswtphysics/group/eswtphysics.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/eswtphysics/group/eswtphysics.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -20,9 +20,6 @@
 #include <platform_paths.hrh>
 #include <data_caging_paths.hrh>
 
-// Do not use global Java version for binaries
-#define RD_JAVA_NO_BIN_VERSION
-
 // java/inc
 #include <../../../../inc/project_defines.hrh>
 #include <../../../../inc/java_stdcpp_support_for_dll.hrh>
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/build/bwins/eswtu.def	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/build/bwins/eswtu.def	Wed Oct 13 14:23:59 2010 +0300
@@ -93,5 +93,4 @@
 	?RegisterWithParentL@ASwtControlBase@@IAEXXZ @ 92 NONAME ; void ASwtControlBase::RegisterWithParentL(void)
 	?DrawBorder@ASwtControlBase@@MBEXABVTRect@@@Z @ 93 NONAME ; void ASwtControlBase::DrawBorder(class TRect const &) const
 	?ComputeTabListL@ASwtControlBase@@UAEXAAV?$RPointerArray@VMSwtControl@@@@@Z @ 94 NONAME ; void ASwtControlBase::ComputeTabListL(class RPointerArray<class MSwtControl> &)
-	?PrepareForTraverse@ASwtControlBase@@UAEXXZ @ 95 NONAME ; void ASwtControlBase::PrepareForTraverse(void)
 
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/build/eabi/eswtu.def	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/build/eabi/eswtu.def	Wed Oct 13 14:23:59 2010 +0300
@@ -103,5 +103,4 @@
 	_ZTV15ASwtControlBase @ 102 NONAME
 	_ZTV22CSwtBrowserPreferences @ 103 NONAME
 	_ZThn4_NK15ASwtControlBase4DrawER9CWindowGcRK11CCoeControlRK5TRect @ 104 NONAME
-	_ZN15ASwtControlBase18PrepareForTraverseEv @ 105 NONAME
 
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/build/eswt.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/build/eswt.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -19,8 +19,13 @@
 CONFIG += omj java stl
 CONFIG -= qt
 
+INCLUDEPATH +=  /epoc32/include/domain/applications \
+                /epoc32/include/applications \
+                /epoc32/include/domain/middleware \
+                ../inc 
 SOURCES += ../src/cswtclient.cpp \
            ../src/methodcall.cpp \
+           ../src/mifconverter.cpp \
            ../src/org_eclipse_ercp_swt_expanded_internal_OS.cpp \
            ../src/org_eclipse_ercp_swt_mobile_internal_OS.cpp \
            ../src/org_eclipse_swt_internal_symbian_OS.cpp \
@@ -148,7 +153,7 @@
 
 
 
-LIBS += -lAknIcon \
+LIBS += -laknicon \
         -laknhlist \
         -laknlayout \
         -laknpictograph \
@@ -163,11 +168,11 @@
         -lbitgdi \
         -lbitmaptransforms \
         -lbmpanim \
-        -lCdlEngine \
+        -lcdlengine \
         -lcentralrepository \
         -lcommdb \
         -lcommondialogs \
-        -lCommonEngine \
+        -lcommonengine \
         -lcommonui \
         -lcone \
         -lecom \
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/build/eswt_0x2002DC93.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/build/eswt_0x2002DC93.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,8 +52,12 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../../mw/qt/mkspecs/common/symbian
+SYSTEMINCLUDE		/epoc32/include/domain/applications
+SYSTEMINCLUDE		/epoc32/include/applications
+SYSTEMINCLUDE		/epoc32/include/domain/middleware
 SYSTEMINCLUDE		../inc
 SYSTEMINCLUDE		../../../../inc
 SYSTEMINCLUDE		../../../../../inc
@@ -66,6 +69,7 @@
 SOURCEPATH 	../src
 SOURCE		cswtclient.cpp
 SOURCE		methodcall.cpp
+SOURCE		mifconverter.cpp
 SOURCE		org_eclipse_ercp_swt_expanded_internal_OS.cpp
 SOURCE		org_eclipse_ercp_swt_mobile_internal_OS.cpp
 SOURCE		org_eclipse_swt_internal_symbian_OS.cpp
@@ -177,7 +181,7 @@
 SOURCE		imagescaler.cpp
 
 
-LIBRARY		AknIcon.lib
+LIBRARY		aknicon.lib
 LIBRARY		aknhlist.lib
 LIBRARY		aknlayout.lib
 LIBRARY		aknpictograph.lib
@@ -192,11 +196,11 @@
 LIBRARY		bitgdi.lib
 LIBRARY		bitmaptransforms.lib
 LIBRARY		bmpanim.lib
-LIBRARY		CdlEngine.lib
+LIBRARY		cdlengine.lib
 LIBRARY		centralrepository.lib
 LIBRARY		commdb.lib
 LIBRARY		commondialogs.lib
-LIBRARY		CommonEngine.lib
+LIBRARY		commonengine.lib
 LIBRARY		commonui.lib
 LIBRARY		cone.lib
 LIBRARY		ecom.lib
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/eswtgraphics.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/eswtgraphics.h	Wed Oct 13 14:23:59 2010 +0300
@@ -901,20 +901,6 @@
     virtual void Dispose() =0;
 
     /**
-     * Function in charge of decoding an image from a buffer. This method is synchronous and enable
-     * to save memory space by filling the image buffer step by step (use AppendDataL(const HBufC8& aBuffer)
-     * param aBuffer contains a piece of the whole image data to decode
-     */
-    virtual void DecodeImageFromBufferL(const TDesC8& aBuffer) =0;
-
-    /**
-     * Enables to add data when a first call to DecodeImageFromBufferL has been initialized
-     *
-     * @param aBuffer contains a piece of the whole image data to decode.
-     */
-    virtual void AppendDataL(const TDesC8& aBuffer) =0;
-
-    /**
      * Simple getter that return the logical values for height
      */
     virtual TInt GetLogicalScreenHeight() =0;
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/eswtwidgetscore.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/eswtwidgetscore.h	Wed Oct 13 14:23:59 2010 +0300
@@ -616,7 +616,7 @@
     {
         return NULL;
     }
-
+    
     virtual const MSwtShell* ShellInterface() const
     {
         return NULL;
@@ -810,7 +810,7 @@
     virtual TRect VisibleRect(TBool aVisibleBounds = EFalse) const = 0;
 
     /**
-     * Get the scrollable interface of control.
+     * Get the scrollable interface of control. 
      * If control is not scrollable method returns null
      */
     virtual MSwtScrollable* ScrollableInterface() const
@@ -840,11 +840,6 @@
      * True if pressed by pointer.
      */
     virtual TInt Pressed() const = 0;
-
-    /**
-     * Get ready for traverse event
-     */
-    virtual void PrepareForTraverse() = 0;
 };
 
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/mifconverter.h	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,208 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Nokia Corporation - S60 implementation
+ *******************************************************************************/
+
+
+#ifndef MIFCONVERTER_H
+#define MIFCONVERTER_H
+
+#include <e32base.h>
+#include <f32file.h>
+#include <s32file.h>
+
+
+/**
+ *  The structure for MIF file header
+ *  @since S60 v3.2
+ */
+NONSHARABLE_CLASS(TMifFileHeader)
+{
+public:
+    /**
+     * The UID of the MIF file format. It is used for validating the MIF file format.
+     */
+    TInt32  iUid;
+    /**
+     * Determines the valid fields in the MIF file header.
+     * Must be greater than or equal to 2.
+     */
+    TInt32  iVersion;
+    /**
+     * The pointer to the beginning of the array of icon offset elements.
+     */
+    TInt32  iOffset;
+    /**
+     * The array length in the items of icon offset elements.
+     */
+    TInt32  iLength;
+};
+
+/**
+ *  The structure for MIF icon offset
+ *  @since S60 v3.2
+ */
+NONSHARABLE_CLASS(TMifIconOffset)
+{
+public:
+    /**
+     * The offset to the icon from the beginning of the MIF file.
+     * Icon = icon header + icon data.
+     */
+    TInt32  iIconOffset;
+    /**
+     * The combined length of the icon header and the icon data.
+     */
+    TInt32  iIconLength;
+};
+
+/**
+ *  The structure for MIF icon header
+ *  @since S60 v3.2
+ */
+NONSHARABLE_CLASS(TMifIconHeader)
+{
+public:
+    /**
+     * The UID of the MIF icon header format.
+     * It is used for validating the MIF file format.
+     */
+    TInt32  iUid;
+    /**
+     * The version of the MIF icon header format.
+     * Determines the valid fields in the MIF icon header.
+     */
+    TInt32  iVersion;
+    /**
+     * The offset to icon data (from the beginning of the icon).
+     */
+    TInt32  iOffset;
+    /**
+     * The length of icon data in bytes.
+     */
+    TInt32  iLength;
+    /**
+     * The type of the MIF icon.
+     */
+    TInt32  iType;
+    /**
+     * The depth of the bitmap the content will be rendered to.
+     * Corresponds to the Symbian OS enumeration TDisplayMode.
+     */
+    TInt32  iDepth;
+    /**
+     * Whether the icon is animated.
+     */
+    TInt32  iAnimated;
+    /**
+     * The depth of the mask.
+     * Corresponds to the Symbian OS enumeration TDisplayMode.
+     */
+    TInt32  iMaskDepth;
+};
+
+/**
+ *  Class to handle the conversion of icons from SVG to MIF file
+ *  @since S60 v3.2
+ */
+NONSHARABLE_CLASS(CMifConverter) : public CBase
+{
+public:
+    /**
+     * CMifConverter::NewL constructor
+     * Construct a CMifConverter object, using two phase construction
+     * and return a pointer to the created object.
+     *
+     * @since S60 v3.2
+     * @param aFs file session
+     * @param aMifFile the name of the MIF file to be created
+     * @return a pointer to the created instance of CMifConverter
+     */
+    static CMifConverter* NewL(RFs& aFs, const TDesC& aMifFile);
+
+    /**
+     * CMifConverter::~CMifConverter destructor
+     * Destroy the object and release all memory objects
+     *
+     * @since S60 v3.2
+     */
+    virtual ~CMifConverter();
+
+public:
+    /**
+     * CMifConverter::WriteMifFileHeaderL method
+     * Writes file header to the MIF file
+     *
+     * @since S60 v3.2
+     * @param aMifFileHeader TMifFileHeader structure
+     */
+    void WriteMifFileHeaderL(const TMifFileHeader& aMifFileHeader);
+
+    /**
+     * CMifConverter::WriteMifIconOffsetL method
+     * Writes icon offset to the MIF file
+     *
+     * @since S60 v3.2
+     * @param aMifIconOffset TMifIconOffset structure
+     */
+    void WriteMifIconOffsetL(const TMifIconOffset& aMifIconOffset);
+
+    /**
+     * CMifConverter::WriteMifIconHeaderL method
+     * Writes icon header to the MIF file
+     *
+     * @since S60 v3.2
+     * @param aMifIconHeader TMifIconHeader structure
+     */
+    void WriteMifIconHeaderL(const TMifIconHeader& aMifIconHeader);
+
+    /**
+     * CMifConverter::WriteMifBodyL method
+     * Writes file body to the MIF file
+     *
+     * @since S60 v3.2
+     * @param apIconBuf buffer containing the contents of the svg file
+     */
+    void WriteMifBodyL(const TDesC8& apIconBuf);
+
+private:
+    /**
+     * CMifConverter::CMifConverter constructor
+     * Perform the first phase of two phase construction
+     *
+     * @since S60 v3.2
+     * @param aFs file session
+     */
+    CMifConverter(RFs& aFs);
+
+    /**
+     * CMifConverter::ConstructL constructor
+     * Perform the second phase of two phase construction
+     *
+     * @since S60 v3.2
+     * @param aMifFile the name of the MIF file to be created
+     */
+    void ConstructL(const TDesC& aMifFile);
+
+
+private:
+    /**
+     * File session reference.
+     */
+    RFs& iFs;
+
+    /**
+     * Stream for the MIF file
+     * Own.
+     */
+    RFileWriteStream iMifWriteStream;
+};
+
+#endif // MIFCONVERTER_H
+
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtcommandmenu.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtcommandmenu.h	Wed Oct 13 14:23:59 2010 +0300
@@ -34,7 +34,7 @@
     void Reset();
     void AppendCommand(const MSwtCommand& aCommand,
                        const MSwtMenu* aCascadeMenu);
-    void AppendSeparatorL();
+    void AppendSeparator();
     void InsertCommand(const MSwtCommand& aCommand,
                        const MSwtMenu* aCascadeMenu, TInt aPos);
     const RPointerArray<MSwtCommand>& Commands() const;
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtcontrolbase.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtcontrolbase.h	Wed Oct 13 14:23:59 2010 +0300
@@ -386,7 +386,6 @@
     {
         return iPressed;
     };
-    IMPORT_C void PrepareForTraverse();
 
 protected:
     MSwtDisplay& iDisplay;
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtdisplaybase.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtdisplaybase.h	Wed Oct 13 14:23:59 2010 +0300
@@ -78,6 +78,8 @@
     MSwtImage* NewImageL(const TSize& aSize);
     MSwtImage* NewImageFromDataL(const MSwtImageData& aData);
     MSwtImage* NewImageFromThemeL(const TInt aId);
+    MSwtImage* NewImageFromSvgBufL(const TDesC8& aBuf, const TSize& aSize);
+    MSwtImage* NewImageFromSvgFileL(const TDesC& aFile, const TSize& aSize);
     MSwtImage* ScaleImageL(const MSwtImage& aSrcImage,
                            const TSize& aDestSize, TBool aKeepAspectRatio);
     inline CSwtJavaBufferDrawer& JavaBufferDrawer();
@@ -201,8 +203,12 @@
 public:
     void HandleMediaKeyEvent(TKeyEvent& aKeyEvent, TInt aEventType);
 
+// Own private methods
 private:
     TInt LoadResourceFileL();
+    void StoreSvgAsMifL(const TDesC8& aSvgBuf, TFileName& aGeneratedFile);
+    CFbsBitmap* RasterizeL(const CFbsBitmap& aMifBmp);
+    HBufC8* LoadFileL(const TDesC& aFileName);
 
 // Java thread's data
 protected:
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtimagedataloader.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtimagedataloader.h	Wed Oct 13 14:23:59 2010 +0300
@@ -46,9 +46,7 @@
                             TInt aFormat, const TDesC& aDestination);
     HBufC8* EncodeImageToStreamL(MSwtImageData& aImageData, TInt aFormat);
     void DecodeImageL(const TDesC& aFileName);
-    void DecodeWholeImageFromBufferL(const TDesC8& aBuffer);
-    void DecodeImageFromBufferL(const TDesC8& aBuffer);
-    void AppendDataL(const TDesC8& aBuffer); //loading
+    void DecodeWholeImageFromBufferL(const TDesC8& aBuf);
     CSwtImageDataArray* GetImageData();
     void Dispose();
     TInt GetLogicalScreenHeight();
@@ -56,8 +54,7 @@
 
 // Own methods
 private:
-    TBool DecodeNextFrameL();                 //starting
-    void  DecodeFrameL(TInt aIndexOfFrame);   //starting
+    void DecodeFrameL(TInt aIndexOfFrame);   //starting
 
 protected:
     /**
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtinput.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtinput.h	Wed Oct 13 14:23:59 2010 +0300
@@ -30,8 +30,7 @@
     static CSwtInput* NewL(TSwtPeer aPeer, TInt aId);
 
 private:
-    inline CSwtInput(TSwtPeer aPeer);
-    void ConstructL(TInt aId);
+    inline CSwtInput(TSwtPeer aPeer, TInt aId);
     ~CSwtInput();
 
 // From MSwtInput
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtlistbase.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtlistbase.h	Wed Oct 13 14:23:59 2010 +0300
@@ -290,7 +290,6 @@
     void EnableFocusHighlight(TBool aEnable);
 #endif //RD_JAVA_S60_RELEASE_9_2
     TInt FocusBackgroundPolicy() const;
-    void PrepareForTraverse();
 
 // From ASwtScrollableBase
 protected:
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtlistbox.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtlistbox.h	Wed Oct 13 14:23:59 2010 +0300
@@ -180,7 +180,6 @@
     void EnableFocusHighlight(TBool aEnable);
 #endif //RD_JAVA_S60_RELEASE_9_2
     TInt FocusBackgroundPolicy() const;
-    void PrepareForTraverse();
 
 // From MSwtListBox
 public:
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtlistboxlists.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtlistboxlists.h	Wed Oct 13 14:23:59 2010 +0300
@@ -235,7 +235,7 @@
      * @param aListType see TSwtLbType
      * @return ETrue if listbox is formatted.
      */
-    static void CellsL(TInt aListType, RArray<TInt>& aCellArray);
+    static void Cells(TInt aListType, RArray<TInt>& aCellArray);
 
     /**
      * Check if a int value is in the range of listbox types.
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtlistview.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtlistview.h	Wed Oct 13 14:23:59 2010 +0300
@@ -130,7 +130,6 @@
     void            EnableFocusHighlight(TBool aEnable);
 #endif //RD_JAVA_S60_RELEASE_9_2
     TInt            FocusBackgroundPolicy() const;
-    void            PrepareForTraverse();
 
 // From MEikCommandObserver
 public:
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtmobiledevice.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtmobiledevice.h	Wed Oct 13 14:23:59 2010 +0300
@@ -41,7 +41,7 @@
 public:
     static CSwtMobileDevice* NewL(MSwtDisplay& aDisplay, TSwtPeer aPeer);
     static TInt HwScreenCount();
-    static void GetHwInputsL(RArray<TSwtHwInput>& aInputs);
+    static void GetHwInputs(RArray<TSwtHwInput>& aInputs);
 private:
     inline CSwtMobileDevice(MSwtDisplay& aDisplay, TSwtPeer aPeer);
     virtual ~CSwtMobileDevice();
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtrotateimage.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtrotateimage.h	Wed Oct 13 14:23:59 2010 +0300
@@ -62,12 +62,12 @@
     /**
      * Add a image which will be rotate after a call to the method Start().
      */
-    void AddImageL(CFbsBitmap* aImage);
+    void AddImage(CFbsBitmap* aImage);
 
     /**
     * Add images which will be rotate after a call to the method Start().
     */
-    void AddImagesL(const RArray<CFbsBitmap*>& aImages);
+    void AddImages(const RArray<CFbsBitmap*>& aImages);
 
     /**
     * Indicate if a redraw should be make when the rotation of all images is finih,
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtsortedlist.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtsortedlist.h	Wed Oct 13 14:23:59 2010 +0300
@@ -163,8 +163,6 @@
 #ifdef RD_JAVA_S60_RELEASE_9_2
     void EnableFocusHighlight(TBool aEnable);
 #endif //RD_JAVA_S60_RELEASE_9_2
-    void PrepareForTraverse();
-
 protected:
     void DoPaint(const TRect& aRect) const;
 
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swttable.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swttable.h	Wed Oct 13 14:23:59 2010 +0300
@@ -283,7 +283,6 @@
 #ifdef RD_JAVA_S60_RELEASE_9_2
     void                EnableFocusHighlight(TBool aEnable);
 #endif //RD_JAVA_S60_RELEASE_9_2
-    void                PrepareForTraverse();
 
 // from base class ASwtScrollableBase
 
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtuiutils.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/swtuiutils.h	Wed Oct 13 14:23:59 2010 +0300
@@ -15,7 +15,7 @@
 
 
 #include <AknPopupFader.h>
-#include <aknappui.h>
+#include <AknAppUi.h>
 #include "eswtwidgetscore.h"
 
 
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/utils.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/inc/utils.h	Wed Oct 13 14:23:59 2010 +0300
@@ -127,7 +127,11 @@
  */
 inline HBufC* ConvertStringLC(JNIEnv* aJniEnv, const jstring aString)
 {
+#ifdef _UNICODE
     return ConvertString16LC(aJniEnv, aString);
+#else
+    // code needs to be written
+#endif
 }
 
 
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/imagescaler.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/imagescaler.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -11,7 +11,7 @@
 
 
 #include <eikenv.h>
-#include <bitmaptransforms.h>
+#include <BitmapTransforms.h>
 #include "imagescaler.h"
 
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/mifconverter.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,89 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     Nokia Corporation - S60 implementation
+ *******************************************************************************/
+
+
+#include "mifconverter.h"
+
+
+CMifConverter* CMifConverter::NewL(RFs& aFs, const TDesC& aMifFile)
+{
+    CMifConverter* self = new(ELeave) CMifConverter(aFs);
+    CleanupStack::PushL(self);
+    self->ConstructL(aMifFile);
+    CleanupStack::Pop(self);
+    return self;
+}
+
+CMifConverter::~CMifConverter()
+{
+    iMifWriteStream.Close();
+}
+
+
+void CMifConverter::WriteMifFileHeaderL(const TMifFileHeader& aMifFileHeader)
+{
+    // write file header
+    iMifWriteStream.WriteInt32L(aMifFileHeader.iUid);
+    iMifWriteStream.WriteInt32L(aMifFileHeader.iVersion);
+    iMifWriteStream.WriteInt32L(aMifFileHeader.iOffset);
+    iMifWriteStream.WriteInt32L(aMifFileHeader.iLength);
+    iMifWriteStream.CommitL();
+}
+
+
+void CMifConverter::WriteMifIconOffsetL(const TMifIconOffset& aMifIconOffset)
+{
+    // write icon offset
+    iMifWriteStream.WriteInt32L(aMifIconOffset.iIconOffset);
+    iMifWriteStream.WriteInt32L(aMifIconOffset.iIconLength);
+    iMifWriteStream.CommitL();
+}
+
+
+void CMifConverter::WriteMifIconHeaderL(const TMifIconHeader& aMifIconHeader)
+{
+    // write icon header
+    iMifWriteStream.WriteInt32L(aMifIconHeader.iUid);
+    iMifWriteStream.WriteInt32L(aMifIconHeader.iVersion);
+    iMifWriteStream.WriteInt32L(aMifIconHeader.iOffset);
+    iMifWriteStream.WriteInt32L(aMifIconHeader.iLength);
+    iMifWriteStream.WriteInt32L(aMifIconHeader.iType);
+    iMifWriteStream.WriteInt32L(aMifIconHeader.iDepth);
+    iMifWriteStream.WriteInt32L(aMifIconHeader.iAnimated);
+    iMifWriteStream.WriteInt32L(aMifIconHeader.iMaskDepth);
+    iMifWriteStream.CommitL();
+}
+
+
+void CMifConverter::WriteMifBodyL(const TDesC8& apIconBuf)
+{
+    iMifWriteStream.WriteL(apIconBuf);
+    iMifWriteStream.CommitL();
+}
+
+CMifConverter::CMifConverter(RFs& aFs): iFs(aFs)
+{
+}
+
+void CMifConverter::ConstructL(const TDesC& aMifFile)
+{
+    TInt err = iMifWriteStream.Create(iFs, aMifFile, EFileWrite);
+    if (KErrAlreadyExists == err)
+    {
+        // Temp file has not been removed as it should,
+        // must destroy it before we can reuse it.
+        err = iFs.Delete(aMifFile);
+        User::LeaveIfError(err);
+        // Destroying the file succeeded, try again to create write stream
+        err = iMifWriteStream.Create(iFs, aMifFile, EFileWrite);
+    }
+    User::LeaveIfError(err);
+}
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/org_eclipse_ercp_swt_mobile_internal_OS.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/org_eclipse_ercp_swt_mobile_internal_OS.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -1483,19 +1483,12 @@
             jint* elements = aJniEnv->GetIntArrayElements(aIconsHandles, &isCopy);
             if (elements != NULL)
             {
-                TInt err = KErrNone;
-                for (TInt i=0; i<count && !err; ++i)
+                for (TInt i=0; i<count; ++i)
                 {
-                    err = iconsHandles.Append(reinterpret_cast<MSwtImage*>(elements[i]));
+                    iconsHandles.Append(reinterpret_cast<MSwtImage*>(elements[i]));
                 }
                 // Cleanup
                 aJniEnv->ReleaseIntArrayElements(aIconsHandles, elements, JNI_ABORT);
-
-                if (err != KErrNone )
-                {
-                    ThrowIfError(err, aJniEnv);
-                    return;
-                }
             }
         }
 
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/org_eclipse_swt_internal_symbian_OS.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/org_eclipse_swt_internal_symbian_OS.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -1517,6 +1517,33 @@
 
         return reinterpret_cast<jint>(result);
     }
+    
+    JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_symbian_OS_Image_1NewFromSvgBuf(
+        JNIEnv* aJniEnv, jclass, jint aDevice, jbyteArray aBuffer, jint aWidth, jint aHeight)
+    {
+        MSwtImage* result  = NULL;
+        ASwtDisplayBase* display = DisplayFromDevice(aDevice);
+        HBufC8* buffer = ConvertByteArrayL(aJniEnv, aBuffer);
+        CleanupStack::PushL(buffer);
+        TSize size(aWidth, aHeight);
+        TRAPD(error, CallMethodL(result, display, &ASwtDisplayBase::NewImageFromSvgBufL, *buffer, size));
+        CleanupStack::PopAndDestroy(buffer);
+        ThrowIfError(error, aJniEnv);
+        return reinterpret_cast<jint>(result);
+    }
+    
+    JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_symbian_OS_Image_1NewFromSvgFile(
+        JNIEnv* aJniEnv, jclass, jint aDevice, jstring aFilename, jint aWidth, jint aHeight)
+    {
+        MSwtImage* result  = NULL;
+        ASwtDisplayBase* display = DisplayFromDevice(aDevice);
+        HBufC* filename = ConvertStringLC(aJniEnv, aFilename);
+        TSize size(aWidth, aHeight);
+        TRAPD(error, CallMethodL(result, display, &ASwtDisplayBase::NewImageFromSvgFileL, *filename, size));
+        CleanupStack::PopAndDestroy(filename);
+        ThrowIfError(error, aJniEnv);
+        return reinterpret_cast<jint>(result);
+    }
 
     JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_symbian_OS_Image_1Dispose(JNIEnv*, jclass, jint aDevice, jint aHandle)
     {
@@ -3296,41 +3323,6 @@
 
     typedef void (MSwtImageDataLoader::*TBufferDecoder)(const TDesC8&);
 
-    static void ImageDataLoader_DecodeBufferL(JNIEnv* aJniEnv, MSwtImageDataLoader& aLoader, TBufferDecoder aDecodeMethodL, jbyteArray aBuffer)
-    {
-        HBufC8* buffer = ConvertByteArrayL(aJniEnv, aBuffer);
-        CleanupStack::PushL(buffer);
-
-        (aLoader.*aDecodeMethodL)(*buffer);
-
-        CleanupStack::PopAndDestroy(buffer);
-    }
-
-    static void ImageDataLoader_DecodeBufferThrow(JNIEnv* aJniEnv, jint aHandle, TBufferDecoder aDecodeMethodL, jbyteArray aBuffer)
-    {
-        MSwtImageDataLoader* loader = reinterpret_cast<MSwtImageDataLoader*>(aHandle);
-        TRAPD(error, ImageDataLoader_DecodeBufferL(aJniEnv, *loader, aDecodeMethodL, aBuffer));
-        ThrowIfError(error, aJniEnv);
-    }
-
-    JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_symbian_OS_ImageDataLoader_1StartImageDecoding(JNIEnv* aJniEnv, jclass, jint aHandle, jbyteArray aBuffer)
-    {
-        ImageDataLoader_DecodeBufferThrow(aJniEnv, aHandle, &MSwtImageDataLoader::DecodeImageFromBufferL, aBuffer);
-    }
-
-    JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_symbian_OS_ImageDataLoader_1AppendData(JNIEnv* aJniEnv, jclass, jint aHandle, jbyteArray aBuffer)
-    {
-        ImageDataLoader_DecodeBufferThrow(aJniEnv, aHandle, &MSwtImageDataLoader::AppendDataL, aBuffer);
-    }
-
-    JNIEXPORT jobjectArray JNICALL Java_org_eclipse_swt_internal_symbian_OS_ImageDataLoader_1GetImageData(JNIEnv *aJniEnv, jclass , jint aHandle)
-    {
-        CSwtImageDataArray* data = NULL;
-        MSwtImageDataLoader* imageDataLoader = reinterpret_cast<MSwtImageDataLoader*>(aHandle);
-        data = imageDataLoader->GetImageData();
-        return NewJavaImageDataArray(aJniEnv, data);
-    }
-
     JNIEXPORT void JNICALL Java_org_eclipse_swt_internal_symbian_OS_ImageDataLoader_1Dispose(JNIEnv*, jclass, jint aHandle)
     {
         MSwtImageDataLoader* imageDataLoader = reinterpret_cast<MSwtImageDataLoader*>(aHandle);
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtcommandarranger.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtcommandarranger.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -229,7 +229,7 @@
 
 #ifdef RD_SCALABLE_UI_V2
     TRAP_IGNORE(iDisplay.MenuArranger().CloseStylusPopupMenuL());
-#endif //RD_SCALABLE_UI_V2);
+#endif //RD_SCALABLE_UI_V2);        
 }
 
 void CSwtCommandArranger::ComputeAndRefreshCbaAndMenuL(TBool aFocusedControlOnly)
@@ -305,10 +305,10 @@
             // Add a separator in the command menu before appending the new commands to it
             if (itIsNotTheFirstControlWithCommands)
             {
-                iCommandMenu->AppendSeparatorL();
+                iCommandMenu->AppendSeparator();
                 if (iCommandMenuOK)
                 {
-                    iCommandMenuOK->AppendSeparatorL();
+                    iCommandMenuOK->AppendSeparator();
                 }
             }
             else
@@ -445,7 +445,10 @@
                 iCbaCommands[cbaIndex]->Text());
 
             // Dimming
-            iCba.DimCommand(commandId, !iCbaCommands[cbaIndex]->IsEnabled());
+            if (!iCbaCommands[cbaIndex]->IsEnabled())
+            {
+                iCba.DimCommand(commandId, ETrue);
+            }
 
             // Set default command
             if (iCbaCommands[cbaIndex] == iDefaultCommand)
@@ -1597,5 +1600,5 @@
     return iCommands.FindInOrder(iSearchedContainer, containerOrder);
 }
 
-#endif //RD_SCALABLE_UI_V2
+#endif //RD_SCALABLE_UI_V2    
 
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtcommandmenu.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtcommandmenu.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -94,11 +94,11 @@
     }
 }
 
-void CSwtCommandMenu::AppendSeparatorL()
+void CSwtCommandMenu::AppendSeparator()
 {
     // If append fails then separator won't appear in menu. It's a shame but
     // it's like that (nothing specific to do if this happens).
-    iSeparators.AppendL(iItems.Count() - 1);
+    iSeparators.Append(iItems.Count() - 1);
 }
 
 const RPointerArray<MSwtCommand>& CSwtCommandMenu::Commands() const
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtcontrolbase.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtcontrolbase.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -530,11 +530,6 @@
     // Do nothing here. Inherit where needed.
 }
 
-EXPORT_C void ASwtControlBase::PrepareForTraverse()
-{
-    // Do nothing here. Inherit where needed.
-}
-
 TRect ASwtControlBase::ClipToVisibleRect(const TRect& aRect) const
 {
     // WINDOW COORDINATES!
@@ -804,18 +799,6 @@
                 return EKeyWasConsumed;
             }
         }
-#ifdef RD_JAVA_S60_RELEASE_9_2
-        // On 9.2 MSK is never shown, so we have to always handle
-        // the Selection key
-        else if (aKeyEvent.iCode == EKeyOK && !IsKeyUsed(EKeyOK)
-                 && commandArranger->IsContextSensitiveOperationSet())
-        {
-            if (commandArranger->DoContextSensitiveOperationL())
-            {
-                return EKeyWasConsumed;
-            }
-        }
-#else
         else if (!AknLayoutUtils::MSKEnabled() ||
                  (activeTopShell && activeTopShell->FullScreenMode()))
         {
@@ -831,7 +814,6 @@
                 }
             }
         }
-#endif //RD_JAVA_S60_RELEASE_9_2
         else if (aKeyEvent.iCode == EKeyEnter && !IsKeyUsed(EKeyEnter))
         {
             if (commandArranger->HandleEnterKeyL())
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtcontrolhelper.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtcontrolhelper.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -222,9 +222,13 @@
     CleanupStack::PushL(buffer);
 
     TPtrC8 ptr8(buffer->Ptr(0));
+#ifdef _UNICODE
     return TPtr16(reinterpret_cast<TText16*>(const_cast<TText8*>(ptr8.Ptr())),
                   length,
                   length);  //lint !e826
+#else
+    return TPtr8(const_cast<TText8*>(ptr8.Ptr()), ptr8.Length(),  ptr8.Length());
+#endif
 }
 
 /*
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtdisplay.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtdisplay.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -589,7 +589,7 @@
 CSwtDialogBroker* CSwtDisplay::CreateDialogBrokerL()
 {
     CSwtDialogBroker* dlgBroker =  new(ELeave) CSwtDialogBroker(this, CSwtDialogBroker::ENoRequest);
-    iDialogBrokers.AppendL(dlgBroker);
+    iDialogBrokers.Append(dlgBroker);
     return dlgBroker;
 }
 
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtdisplaybase.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtdisplaybase.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -21,6 +21,7 @@
 #include <AknsConstants.h>
 #include <aknconsts.h>
 #include <AknIconUtils.h>
+#include <e32math.h>
 #include <swtlaffacade.h>
 #include "s60commonutils.h"
 #include "swtfactory.h"
@@ -36,6 +37,7 @@
 #include "swtfont.h"
 #include "swtuiutils.h"
 #include "imagescaler.h"
+#include "mifconverter.h"
 
 #define ASSERT_JAVAUITHREAD() ASSERT(IsCurrentThreadJavaUi())
 #define ASSERT_NATIVEUITHREAD() ASSERT(IsCurrentThreadNativeUi())
@@ -45,6 +47,17 @@
 // Assuming KDC_RESOURCE_FILES_DIR = /resource/java/
 _LIT(KSwtResFile, "eswtcore.rsc");
 
+const TInt KMifFileHeaderUid = 0x34232342;
+const TInt KMifFileHeaderVersion = 2;
+const TInt KMifFileHeaderLength = 2;
+const TInt KMifIconHeaderUid = 0x34232343;
+const TInt KMifIconHeaderVersion = 1;
+const TInt KMifIconHeaderType = 1;
+const TInt KMifIconHeaderAnimated = 0;
+
+_LIT(KTempMifFileDrive, "D:\\");
+_LIT(KTempMifFileExt, ".mif");
+
 
 // ======== MEMBER FUNCTIONS ========
 
@@ -425,13 +438,83 @@
     {
         if (size.iWidth > 0)
         {
-            AknIconUtils::SetSize(bmp, size);
+            AknIconUtils::SetSize(bmp, size); // will resize the mask as well
         }
         // bmp & mask ownership transferred to returned object
         return CSwtImage::NewL(*bmp, mask);
     }
 }
 
+MSwtImage* ASwtDisplayBase::NewImageFromSvgBufL(const TDesC8& aBuf, const TSize& aSize)
+{
+    CFbsBitmap* mifBmp = NULL;
+    CFbsBitmap* mifMask = NULL;
+    CFbsBitmap* bmp = NULL;
+    CFbsBitmap* mask = NULL;
+    TInt bmpId(0);
+    TInt maskId(1);
+    
+    TFileName tmpFile;
+    StoreSvgAsMifL(aBuf, tmpFile);
+    AknIconUtils::ValidateLogicalAppIconId(tmpFile, bmpId, maskId);
+    AknIconUtils::CreateIconL(mifBmp, mifMask, tmpFile, bmpId, maskId);
+    
+    if (!mifBmp)
+    {
+        return NULL;
+    }
+    else
+    {
+        AknIconUtils::ExcludeFromCache(mifBmp);
+        if (mifMask)
+        {
+            AknIconUtils::ExcludeFromCache(mifMask);
+        }
+        
+        // Will resize the mask as well
+        AknIconUtils::SetSize(mifBmp, aSize, EAspectRatioPreservedAndUnusedSpaceRemoved);
+
+        // Rasterize
+        CleanupStack::PushL(mifBmp);
+        if (mifMask)
+        {
+            CleanupStack::PushL(mifMask);
+        }
+        bmp = RasterizeL(*mifBmp);
+        CleanupStack::PushL(bmp);
+        if (mifMask)
+        {
+            mask = RasterizeL(*mifMask);
+        }
+        CleanupStack::Pop(bmp);
+        
+        // Delete the mif bitmaps
+        if (mifMask)
+        {
+            AknIconUtils::DestroyIconData(mifMask);
+            CleanupStack::PopAndDestroy(mifMask);
+        }
+        
+        AknIconUtils::DestroyIconData(mifBmp);
+        CleanupStack::PopAndDestroy(mifBmp);
+        
+        // Delete the temp file
+        iCoeEnv->FsSession().Delete(tmpFile);
+        
+        // bmp & mask ownership transferred to returned object
+        return CSwtImage::NewL(*bmp, mask);
+    }
+}
+
+MSwtImage* ASwtDisplayBase::NewImageFromSvgFileL(const TDesC& aFile, const TSize& aSize)
+{
+    HBufC8* buf = LoadFileL(aFile);
+    CleanupStack::PushL(buf);
+    MSwtImage* res = NewImageFromSvgBufL(*buf, aSize);
+    CleanupStack::PopAndDestroy(buf);
+    return res;
+}
+
 /**
  * Constructs an Image from another Image.
  * @param aData  The data to construct the image from
@@ -1300,12 +1383,100 @@
     }
 }
 
-// ---------------------------------------------------------------------------
-// CSwtUiUtils::LoadResourceFileL
-// ---------------------------------------------------------------------------
-//
 TInt ASwtDisplayBase::LoadResourceFileL()
 {
     TFileName langFile = java::util::S60CommonUtils::ResourceLanguageFileNameL(KSwtResFile);
     return iCoeEnv->AddResourceFileL(langFile);
 }
+
+void ASwtDisplayBase::StoreSvgAsMifL(const TDesC8& aSvgBuf, TFileName& aGeneratedFile)
+{
+    TInt iconDataSize = aSvgBuf.Length();
+
+    // File header
+    TMifFileHeader fileHeader;
+    fileHeader.iUid = KMifFileHeaderUid;
+    fileHeader.iVersion = KMifFileHeaderVersion;
+    fileHeader.iOffset = sizeof(fileHeader);
+    fileHeader.iLength = KMifFileHeaderLength;  // number of indexes
+
+    // Icon offset element
+    TMifIconOffset iconOffset;
+    iconOffset.iIconOffset = sizeof(fileHeader) + sizeof(iconOffset) * KMifFileHeaderLength; // mif header + icon offset
+    iconOffset.iIconLength = sizeof(TMifIconHeader) + iconDataSize; // icon header + icon data
+
+    // Icon header
+    TMifIconHeader iconHeader;
+    iconHeader.iUid = KMifIconHeaderUid;
+    iconHeader.iVersion = KMifIconHeaderVersion;
+    iconHeader.iOffset = sizeof(iconHeader);  // dataOffset
+    iconHeader.iLength = iconDataSize;  // dataLength
+    iconHeader.iType = KMifIconHeaderType;  // svg
+    iconHeader.iDepth = EColor16M;
+    iconHeader.iAnimated = KMifIconHeaderAnimated;
+    iconHeader.iMaskDepth = EColor16M;
+
+    // Generate a unique filename for the temporary mif file.
+    // During the execution of the app, there cannot be 2 svg 
+    // images loaded from the same mif file due to caching.
+    aGeneratedFile.Append(KTempMifFileDrive);
+    TTime now;
+    if (now.UniversalTimeSecure() != KErrNone)
+    {
+        now.UniversalTime();
+    }
+    TInt64 seed = now.Int64();
+    aGeneratedFile.AppendNum(iApplicationUid, EHex); // the app uid
+    aGeneratedFile.AppendNum(seed, EHex);            // universal time
+    aGeneratedFile.AppendNum(Math::Rand(seed), EHex);// random number
+    aGeneratedFile.Append(KTempMifFileExt);
+
+    // Create MIFConverter class
+    CMifConverter* mifConverter = CMifConverter::NewL(iCoeEnv->FsSession(), aGeneratedFile);
+    CleanupStack::PushL(mifConverter);
+
+    // Write mif file header
+    mifConverter->WriteMifFileHeaderL(fileHeader);
+    
+    // Insert 2 iconOffset elements: first for the image, the other for the mask
+    mifConverter->WriteMifIconOffsetL(iconOffset);
+    mifConverter->WriteMifIconOffsetL(iconOffset);
+    mifConverter->WriteMifIconHeaderL(iconHeader);
+
+    // Write mif file body
+    mifConverter->WriteMifBodyL(aSvgBuf);
+
+    // Cleanup
+    CleanupStack::PopAndDestroy(mifConverter);
+}
+
+HBufC8* ASwtDisplayBase::LoadFileL(const TDesC& aFileName)
+{
+    RFile file;
+    User::LeaveIfError(file.Open(iCoeEnv->FsSession(), aFileName, EFileRead));
+    TInt size;
+    User::LeaveIfError(file.Size(size));
+    HBufC8* buf = HBufC8::NewLC(size);
+    TPtr8 ptr(buf->Des());
+    User::LeaveIfError(file.Read(ptr, size));
+    CleanupStack::Pop(buf);
+    file.Close();
+    return buf;
+}
+
+CFbsBitmap* ASwtDisplayBase::RasterizeL(const CFbsBitmap& aMifBmp)
+{
+    CFbsBitmap* bmp = new(ELeave) CFbsBitmap;
+    CleanupStack::PushL(bmp);
+    User::LeaveIfError(bmp->Create(aMifBmp.SizeInPixels(), aMifBmp.DisplayMode()));
+    CFbsBitmapDevice* dev = CFbsBitmapDevice::NewL(bmp);
+    CleanupStack::PushL(dev);
+    CFbsBitGc* gc = NULL;
+    User::LeaveIfError(dev->CreateContext(gc));
+    gc->BitBlt(TPoint(), &aMifBmp);
+    delete gc;
+    CleanupStack::PopAndDestroy(dev);
+    CleanupStack::Pop(bmp);
+    return bmp;
+}
+
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtevents.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtevents.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -311,7 +311,6 @@
         if (newFocus)
         {
             shell.Display().UiUtils().SetNaviKeyInput(ETrue);
-            newFocus->PrepareForTraverse();
             newFocus->CoeControl().SetFocus(ETrue, ENoDrawNow);
         }
     }
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtimage.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtimage.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -1614,50 +1614,12 @@
         // NOTE! iScaledMasksInverted entries are valid only if
         // the main mask is monochrome. Otherwise they are NULL
         // and iScaledMasks entries should be used instead.
-        TInt err = KErrNone;
-        TInt appendCount = 0;
-        err = iScaledBitmapRefs.Append(0);
-        if (err == KErrNone)
-        {
-            ++appendCount;
-            err = iScaledBitmaps.Append(bmp);
-        }
-        if (err == KErrNone)
-        {
-            ++appendCount;
-            err = iScaledMasks.Append(mask);
-        }
-        if (err == KErrNone)
-        {
-            ++appendCount;
-            err = iScaledMasksInverted.Append(maski);
-        }
-
-        if (err)
-        {
-            if (appendCount > 0)
-            {
-                iScaledBitmapRefs.Remove(iScaledBitmapRefs.Count() - 1);
-            }
-            if (appendCount > 1)
-            {
-                iScaledBitmaps.Remove(iScaledBitmaps.Count() - 1);
-            }
-            if (appendCount > 2)
-            {
-                iScaledMasks.Remove(iScaledMasks.Count() - 1);
-            }
-
-            delete bmp;
-            bmp = NULL;
-            delete mask;
-            mask = NULL;
-            delete maski;
-            maski = NULL;
-        }
+        iScaledBitmapRefs.Append(0);
+        iScaledBitmaps.Append(bmp);
+        iScaledMasks.Append(mask);
+        iScaledMasksInverted.Append(maski);
     }
-
-    if (!bmp)
+    else
     {
         // In the case of no memory or whatever
         ASSERT(EFalse);
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtimagedataloader.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtimagedataloader.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -88,6 +88,8 @@
 {
     iImageDataArray = new(ELeave) CSwtImageDataArray(10);
     User::LeaveIfError(iFs.Connect());
+    
+    // In case there is no UI make sure there is an instance of FBS running
     User::LeaveIfError(RFbsSession::Connect(iFs));
 }
 
@@ -166,7 +168,7 @@
         else
         {
 
-            iDecoder->Convert(&localStatus,*iBitmap, *iMask, index);
+            iDecoder->Convert(&localStatus, *iBitmap, *iMask, index);
         }
 
         // We are waiting on the TRequestStatus we passed to the asynchronous
@@ -181,7 +183,7 @@
     FreeBitmaps();
 }
 
-void CSwtImageDataLoader::DecodeWholeImageFromBufferL(const TDesC8& aBuffer)
+void CSwtImageDataLoader::DecodeWholeImageFromBufferL(const TDesC8& aBuf)
 {
     iWholeImageAtOnce = ETrue;
 
@@ -192,7 +194,8 @@
     iDecoder = NULL;
     // Same applies to other data members of CSwtImageDataLoader
 
-    TRAPD(error,(iDecoder = CImageDecoder::DataNewL(iFs, aBuffer,CImageDecoder::EOptionAlwaysThread)));
+    TRAPD(error,(iDecoder = CImageDecoder::DataNewL(iFs, aBuf, CImageDecoder::EOptionAlwaysThread)));
+    
     LeaveIfErrorFromICLDecoderL(error);
 
     TInt nbFrame = iDecoder->FrameCount();
@@ -206,50 +209,6 @@
     LeaveIfErrorFromICLDecoderL(iResult);
 }
 
-void CSwtImageDataLoader::DecodeImageFromBufferL(const TDesC8& aBuffer)
-{
-    iNextFrameToDecode = 0;
-
-    iBuffer = aBuffer.AllocL();
-    iDesc.Set(iBuffer->Des());
-
-    // In normal use of ImageDataLoader, it must be disposed by its creator after decoding an image ( so iDecoder should not be not NULL because of a previous call to this method )
-    ASSERT(iDecoder == NULL);
-    // In case ImageDataLoader is not used normally and we are not in debug, ASSERT is ignored, so deleting iDecoder is safer
-    delete iDecoder;
-    iDecoder = NULL;
-    // Same applies to other data members of CSwtImageDataLoader
-
-    TRAPD(error, (iDecoder = CImageDecoder::DataNewL(iFs, iDesc, CImageDecoder::EOptionAlwaysThread)));
-    LeaveIfErrorFromICLDecoderL(error);
-
-    // We are starting with a new frame ( the first one )
-    iStartDecodingAnother = ETrue;
-
-    // If frame to decode has not been detected by decoder and header is not complete, then more data is needed
-    if ((iDecoder->FrameCount() <= iNextFrameToDecode) && (!iDecoder->IsImageHeaderProcessingComplete()))
-        return; // need data
-
-    // Start decoding frames from the buffer
-    while (iStartDecodingAnother)
-    {
-        DecodeNextFrameL();
-    };
-}
-
-TBool CSwtImageDataLoader::DecodeNextFrameL()
-{
-    if (iNextFrameToDecode < iDecoder->FrameCount() && iStartDecodingAnother)
-    {
-        DecodeFrameL(iNextFrameToDecode);
-        LeaveIfErrorFromICLDecoderL(iResult);
-
-        return ETrue;
-    }
-
-    return EFalse;
-}
-
 void CSwtImageDataLoader::DecodeFrameL(TInt aIndexOfFrame)
 {
     FreeBitmaps();
@@ -305,58 +264,6 @@
     // Extracting Imagedata is performed in Runl;
 }
 
-void CSwtImageDataLoader::AppendDataL(const TDesC8& aBuffer)
-{
-    // newBuffer is created and initialized with iBuffer content ( and iBuffer is deleted )
-    HBufC8* newBuffer = iBuffer->ReAllocL(iBuffer->Length()+aBuffer.Length());
-    // Set iBuffer to the new larger buffer ( for next time )
-    iBuffer = newBuffer;
-    // Refresh iDesc and append new data
-    iDesc.Set(iBuffer->Des());
-    iDesc.Append(aBuffer);
-
-    // In normal use of ImageDataLoader, it must be disposed by its creator after decoding an image ( so iDecoder should not be not NULL because of a previous call to DecodeImageFromBufferL method )
-    ASSERT(iDecoder);
-    // In case ImageDataLoader is not used normally and we are not in debug, ASSERT is ignored, so deleting iDecoder is safer
-    delete iDecoder;
-    iDecoder = NULL;
-    // Same applies to other data members of CSwtImageDataLoader
-
-    TRAPD(error, (iDecoder = CImageDecoder::DataNewL(iFs, iDesc, CImageDecoder::EOptionAlwaysThread)));
-    LeaveIfErrorFromICLDecoderL(error);
-
-    // data have been appended. Now launching the correct action
-    iStartDecodingAnother = ETrue;
-
-    // If frame to decode has not been detected by decoder and header is not complete, then process newly read data
-    if ((iDecoder->FrameCount() <= iNextFrameToDecode) && (!iDecoder->IsImageHeaderProcessingComplete()))
-    {
-        iDecoder->ContinueProcessingHeaderL();
-        // If now processed data is enough to decode then do it
-        if (!((iDecoder->FrameCount() <= iNextFrameToDecode) && (!iDecoder->IsImageHeaderProcessingComplete())))
-        {
-            while (DecodeNextFrameL()) {};
-            return;
-        }
-        // If processed data is still not enough to decode then wait for next data
-        else
-        {
-            return;
-        }
-    }
-    // If frame to decode has been detected by decoder then decode frame
-    else if (iDecoder->FrameCount() > iNextFrameToDecode)
-    {
-        while (DecodeNextFrameL()) {};
-        return;
-    }
-    // If frame to decode has not been detected by decoder while header is complete, then don't process this unknown newly read data
-    else
-    {
-        return;
-    }
-}
-
 void CSwtImageDataLoader::EncodeImageToFileL(MSwtImageData& aImageData, TInt aFormat, const TDesC& aDestination)
 {
     CheckDestinationL(aDestination, iFs);
@@ -712,5 +619,6 @@
     }
 }
 
+
 //lint +esym( 613, CSwtImageDataLoader::iDecoder )
 //lint +esym( 613, CSwtImageDataLoader::iEncoder )
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtinput.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtinput.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -24,10 +24,7 @@
 //
 CSwtInput* CSwtInput::NewL(TSwtPeer aPeer, TInt aId)
 {
-    CSwtInput* self = new(ELeave) CSwtInput(aPeer);
-    CleanupStack::PushL(self);
-    self->ConstructL(aId);
-    CleanupStack::Pop(self);
+    CSwtInput* self = new(ELeave) CSwtInput(aPeer, aId);
     return self;
 }
 
@@ -35,27 +32,21 @@
 // CSwtInput::CSwtInput
 // ---------------------------------------------------------------------------
 //
-CSwtInput::CSwtInput(TSwtPeer aPeer)
+CSwtInput::CSwtInput(TSwtPeer aPeer, TInt aId)
         : iPeer(aPeer)
-        , iType(KErrNotFound)
-        , iLocation(KErrNotFound)
 {
-}
-
-void CSwtInput::ConstructL(TInt aId)
-{
+    iType = KErrNotFound;
+    iLocation = KErrNotFound;
     RArray<CSwtMobileDevice::TSwtHwInput> inputs;
-    CleanupClosePushL(inputs);
-    CSwtMobileDevice::GetHwInputsL(inputs);
+    CSwtMobileDevice::GetHwInputs(inputs);
     if (aId < inputs.Count())
     {
         iType = inputs[aId].iType;
         iLocation = inputs[aId].iLocation;
     }
-    CleanupStack::PopAndDestroy(&inputs);
+    inputs.Close();
 }
 
-
 // ---------------------------------------------------------------------------
 // CSwtInput::~CSwtInput
 // ---------------------------------------------------------------------------
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtlistbase.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtlistbase.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -1435,28 +1435,6 @@
 }
 
 // ---------------------------------------------------------------------------
-// CSwtListBase::PrepareForTraverse
-// From MSwtControl
-// ---------------------------------------------------------------------------
-//
-void CSwtListBase::PrepareForTraverse()
-{
-    ASSERT(iList);
-    ASSERT(iList->View());
-
-#ifdef RD_JAVA_S60_RELEASE_9_2
-    // AvKon enables highlight only when key event is recieved.
-    // When traversing, no key event is sent to AvKon, so we
-    // have to enable highlight by ourselves.
-    CListItemDrawer* itemDrawer = iList->View()->ItemDrawer();
-    if (itemDrawer)
-    {
-        itemDrawer->ClearFlags(CListItemDrawer::ESingleClickDisabledHighlight);
-    }
-#endif //RD_JAVA_S60_RELEASE_9_2
-}
-
-// ---------------------------------------------------------------------------
 // CSwtListBase::SbFrame
 // From ASwtScrollableBase
 // ---------------------------------------------------------------------------
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtlistbox.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtlistbox.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -878,28 +878,6 @@
 }
 
 // ---------------------------------------------------------------------------
-// CSwtListBox::PrepareForTraverse
-// From MSwtControl
-// ---------------------------------------------------------------------------
-//
-void CSwtListBox::PrepareForTraverse()
-{
-    ASSERT(iList);
-    ASSERT(iList->View());
-
-#ifdef RD_JAVA_S60_RELEASE_9_2
-    // AvKon enables highlight only when key event is recieved.
-    // When traversing, no key event is sent to AvKon, so we
-    // have to enable highlight by ourselves.
-    CListItemDrawer* itemDrawer = iList->View()->ItemDrawer();
-    if (itemDrawer)
-    {
-        itemDrawer->ClearFlags(CListItemDrawer::ESingleClickDisabledHighlight);
-    }
-#endif //RD_JAVA_S60_RELEASE_9_2
-}
-
-// ---------------------------------------------------------------------------
 // CSwtListBox::Scrollable
 // From MSwtListBox
 // ---------------------------------------------------------------------------
@@ -971,7 +949,7 @@
     iPrevSelItems = new(ELeave) CArrayFixFlat<TInt>(KInitSelArrLength);
 
     // Get item cells
-    CSwtListBoxLists::CellsL(iProps.iListType, iCells);
+    CSwtListBoxLists::Cells(iProps.iListType, iCells);
 
     // This is needed for the case where the theme has animated highlights.
     iList->SetFocus(ETrue, ENoDrawNow);
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtlistboxlists.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtlistboxlists.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -340,7 +340,7 @@
 // CSwtListBoxLists::Cells
 // ---------------------------------------------------------------------------
 //
-void CSwtListBoxLists::CellsL(
+void CSwtListBoxLists::Cells(
     TInt aListType,
     RArray<TInt>& aCellArray)
 {
@@ -348,7 +348,7 @@
     for (TInt i = 0; (KSwtLbCells[aListType][i] != ECellInvalid)
             && (i < KMaxCellCount); i++)
     {
-        aCellArray.AppendL(KSwtLbCells[aListType][i]);
+        aCellArray.Append(KSwtLbCells[aListType][i]);
     }
 }
 
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtlistview.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtlistview.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -239,7 +239,7 @@
 
         iStylusPopupUnmarkAll = CSwtMenuItem::NewL(iDisplay, NULL, *iStylusPopupMenu, 1, 0, EAknUnmarkAll);
         iStylusPopupUnmarkAll->SetTextL(iMenuItemUnmarkAll->Text());
-#endif //RD_SCALABLE_UI_V2
+#endif //RD_SCALABLE_UI_V2        
     }
 
     iOldSelectionArray = new(ELeave) CArrayFixFlat<TInt>(2);
@@ -568,6 +568,13 @@
         ASSERT(bmp);
         icon = CGulIcon::NewL(bmp);
         CleanupStack::Pop(bmp);   // bmp
+
+        CFbsBitmap* mask = new(ELeave) CFbsBitmap;
+        CleanupStack::PushL(mask);
+        User::LeaveIfError(mask->Create(TSize(0, 0), EGray2));
+        ASSERT(mask);
+        icon->SetMask(mask);
+        CleanupStack::Pop(mask);   // mask
     }
     return icon;
 }
@@ -854,11 +861,11 @@
     const TInt refImgCount = iRefImages.Count();
     if (refImgCount > aPos)
     {
-        iRefImages.InsertL(refImg, aPos);
+        iRefImages.Insert(refImg, aPos);
     }
     else
     {
-        iRefImages.AppendL(refImg);
+        iRefImages.Append(refImg);
     }
 
 #ifdef DEBUG_CHECK_IMAGES
@@ -1435,14 +1442,14 @@
             iMenuItemUnmarkAll->SetEnabled(EFalse);
 #ifdef RD_SCALABLE_UI_V2
             iStylusPopupUnmarkAll->SetEnabled(EFalse);
-#endif //RD_SCALABLE_UI_V2
+#endif //RD_SCALABLE_UI_V2            
         }
         else
         {
             iMenuItemUnmarkAll->SetEnabled(ETrue);
 #ifdef RD_SCALABLE_UI_V2
             iStylusPopupUnmarkAll->SetEnabled(ETrue);
-#endif //RD_SCALABLE_UI_V2
+#endif //RD_SCALABLE_UI_V2                            
         }
 
         if (GetGridView()->SelectionIndexes()->Count() == GetGridModel()->NumberOfItems())
@@ -1450,14 +1457,14 @@
             iMenuItemMarkAll->SetEnabled(EFalse);
 #ifdef RD_SCALABLE_UI_V2
             iStylusPopupMarkAll->SetEnabled(EFalse);
-#endif //RD_SCALABLE_UI_V2
+#endif //RD_SCALABLE_UI_V2                        
         }
         else
         {
             iMenuItemMarkAll->SetEnabled(ETrue);
 #ifdef RD_SCALABLE_UI_V2
             iStylusPopupMarkAll->SetEnabled(ETrue);
-#endif //RD_SCALABLE_UI_V2
+#endif //RD_SCALABLE_UI_V2                                    
         }
     }
 }
@@ -1546,7 +1553,7 @@
     {
         iStylusPopupMenu->Dispose();
     }
-#endif //RD_SCALABLE_UI_V2
+#endif //RD_SCALABLE_UI_V2    
 
     delete iMarkString;
     delete iUnmarkString;
@@ -3673,23 +3680,6 @@
 #endif // RD_JAVA_S60_RELEASE_9_2
 }
 
-void CSwtListView::PrepareForTraverse()
-{
-    ASSERT(iGrid);
-    ASSERT(iGrid->View());
-
-#ifdef RD_JAVA_S60_RELEASE_9_2
-    // AvKon enables highlight only when key event is recieved.
-    // When traversing, no key event is sent to AvKon, so we
-    // have to enable highlight by ourselves.
-    CListItemDrawer* itemDrawer = iGrid->View()->ItemDrawer();
-    if (itemDrawer)
-    {
-        itemDrawer->ClearFlags(CListItemDrawer::ESingleClickDisabledHighlight);
-    }
-#endif //RD_JAVA_S60_RELEASE_9_2
-}
-
 #ifdef RD_JAVA_ADVANCED_TACTILE_FEEDBACK
 void CSwtListView::DoControlSpecificFeedback(
     const TBool& aFirstTap,
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtmenuitem.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtmenuitem.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -374,7 +374,7 @@
         if (iImageSizes.Find(aSize) == KErrNotFound)
         {
             iImage->AddSubRef(aSize);
-            iImageSizes.AppendL(aSize);
+            iImageSizes.Append(aSize);
         }
         aBitmap = bmp;
         aMask = const_cast<CFbsBitmap*>(iImage->SubMaskBitmap(aSize, ETrue));
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtmobiledevice.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtmobiledevice.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -11,7 +11,6 @@
 
 
 #include <hal.h>
-#include <e32svr.h>
 #include <aknsoundsystem.h>
 #include <aknappui.h>
 #include <aknenv.h>
@@ -49,7 +48,7 @@
 // CSwtMobileDevice::GetHwInputs
 // ---------------------------------------------------------------------------
 //
-void CSwtMobileDevice::GetHwInputsL(
+void CSwtMobileDevice::GetHwInputs(
     RArray<CSwtMobileDevice::TSwtHwInput>& aInputs)
 {
     TInt mask;
@@ -69,9 +68,9 @@
             tempInput.iLocation = MSwtMobileDevice::ELocal;
         }
         tempInput.iType = MSwtInput::ESoftKeys;
-        aInputs.AppendL(tempInput);
+        aInputs.Append(tempInput);
         tempInput.iType = MSwtInput::EFullKeyboard;
-        aInputs.AppendL(tempInput);
+        aInputs.Append(tempInput);
     }
 
     if (mask & EKeyboard_Keypad)
@@ -85,9 +84,9 @@
             tempInput.iLocation = MSwtMobileDevice::ELocal;
         }
         tempInput.iType = MSwtInput::ESoftKeys;
-        aInputs.AppendL(tempInput);
+        aInputs.Append(tempInput);
         tempInput.iType = MSwtInput::EKeyPad;
-        aInputs.AppendL(tempInput);
+        aInputs.Append(tempInput);
     }
 }
 
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtmultipagedialog.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtmultipagedialog.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -207,7 +207,7 @@
     tabItem.iComposite = aComposite;
     tabItem.iTabId = newId;
     tabItem.iHasTitle = aTitle.Length() > 0 ? ETrue : EFalse;
-    iTabItems.AppendL(tabItem);
+    iTabItems.Append(tabItem);
 
     iTabGroup->SetTabFixedWidthL(ComputeTabStyle());
     RefreshStatusPane();
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtprogressbar.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtprogressbar.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -153,8 +153,8 @@
         AknsUtils::CreateIconL(skin, KAknsIIDQgnGrafBarProgress, bitmap, mask,
                                KAvkonBitmapFile, EMbmAvkonQgn_graf_bar_progress, EMbmAvkonQgn_graf_bar_progress_mask);
 
-        iImagesToDelete.AppendL(bitmap);
-        iImagesToDelete.AppendL(mask);
+        iImagesToDelete.Append(bitmap);
+        iImagesToDelete.Append(mask);
         User::LeaveIfError(iBarImages.Append(bitmap));
         User::LeaveIfError(iBarMasks.Append(mask));
     }
@@ -187,8 +187,8 @@
             bitmap  = aknAnimation ->BitmapAnimData()->FrameArray().At(i)->Bitmap();
             mask = aknAnimation ->BitmapAnimData()->FrameArray().At(i)->Mask();
 
-            iImagesToDelete.AppendL(bitmap);
-            iImagesToDelete.AppendL(mask);
+            iImagesToDelete.Append(bitmap);
+            iImagesToDelete.Append(mask);
 
             User::LeaveIfError(iBarImages.Append(bitmap));
             if (mask)
@@ -205,23 +205,23 @@
                            iBarFrameLeftImage, iBarFrameLeftMask, KAvkonBitmapFile,
                            EMbmAvkonQgn_graf_bar_frame_side_l,
                            EMbmAvkonQgn_graf_bar_frame_side_l_mask);
-    iImagesToDelete.AppendL(iBarFrameLeftImage);
-    iImagesToDelete.AppendL(iBarFrameLeftMask);
+    iImagesToDelete.Append(iBarFrameLeftImage);
+    iImagesToDelete.Append(iBarFrameLeftMask);
 
     AknsUtils::CreateIconL(skin, KAknsIIDQgnGrafBarFrameCenter,
                            iBarFrameCenterImage, iBarFrameCenterMask, KAvkonBitmapFile,
                            EMbmAvkonQgn_graf_bar_frame_center,
                            EMbmAvkonQgn_graf_bar_frame_center_mask);
-    iImagesToDelete.AppendL(iBarFrameCenterImage);
-    iImagesToDelete.AppendL(iBarFrameCenterMask);
+    iImagesToDelete.Append(iBarFrameCenterImage);
+    iImagesToDelete.Append(iBarFrameCenterMask);
 
 
     AknsUtils::CreateIconL(skin, KAknsIIDQgnGrafBarFrameSideR,
                            iBarFrameRightImage, iBarFrameRightMask, KAvkonBitmapFile,
                            EMbmAvkonQgn_graf_bar_frame_side_r,
                            EMbmAvkonQgn_graf_bar_frame_side_r_mask);
-    iImagesToDelete.AppendL(iBarFrameRightImage);
-    iImagesToDelete.AppendL(iBarFrameRightMask);
+    iImagesToDelete.Append(iBarFrameRightImage);
+    iImagesToDelete.Append(iBarFrameRightMask);
 
     if (iStyle & KSwtStyleIndeterminate && IsVisible())
     {
@@ -278,12 +278,12 @@
                 TRAP(error, (aBitmap = CreatePlainBitmapL(aBitmap)));
 
                 if (error == KErrNone)
-                    TRAP_IGNORE(iImagesToDelete.AppendL(aBitmap));
+                    iImagesToDelete.Append(aBitmap);
             }
         }
 
         if (error == KErrNone)
-            TRAP_IGNORE(iImagesRotator->AddImageL(aBitmap));
+            iImagesRotator->AddImage(aBitmap);
     }
 }
 
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtrotateimage.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtrotateimage.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -78,7 +78,7 @@
     iImages.Reset();
 }
 
-void CAORotateImage::AddImageL(CFbsBitmap* aImage)
+void CAORotateImage::AddImage(CFbsBitmap* aImage)
 {
     ASSERT(aImage);
     ASSERT(!aImage->IsCompressedInRAM());
@@ -86,11 +86,11 @@
     Cancel();
     if (!aImage->IsCompressedInRAM())
     {
-        iImages.AppendL(aImage);
+        iImages.Append(aImage);
     }
 }
 
-void CAORotateImage::AddImagesL(const RArray<CFbsBitmap*>& aImages)
+void CAORotateImage::AddImages(const RArray<CFbsBitmap*>& aImages)
 {
     Cancel();
     for (TInt i = 0; i < aImages.Count(); i++)
@@ -101,7 +101,7 @@
 
             if (!aImages[i]->IsCompressedInRAM())
             {
-                iImages.AppendL(aImages[i]);
+                iImages.Append(aImages[i]);
             }
         }
     }
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtshell.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtshell.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -171,8 +171,8 @@
         if (b < 0)
             b = 0;
 
-        bgColor.SetRed(b);
-        bgColor.SetGreen(b);
+        bgColor.SetRed(r);
+        bgColor.SetGreen(g);
         bgColor.SetBlue(b);
 
         OverrideColorL(EColorControlBackground, bgColor);
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtslider.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtslider.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -349,8 +349,8 @@
         // Update the image size before the rotation of the image.
         iImageSize.SetSize(iImageSize.iHeight, iImageSize.iWidth);
 
-        iImagesRotator->AddImageL(iSliderImage);
-        iImagesRotator->AddImageL(iSliderImageMask);
+        iImagesRotator->AddImage(iSliderImage);
+        iImagesRotator->AddImage(iSliderImageMask);
 
         iImagesRotator->Start(this);
     }
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtsortedlist.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtsortedlist.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -619,29 +619,6 @@
 #endif //RD_JAVA_S60_RELEASE_9_2
 
 // ---------------------------------------------------------------------------
-// CSwtSortedList::PrepareForTraverse
-// From MSwtControl
-// ---------------------------------------------------------------------------
-//
-void CSwtSortedList::PrepareForTraverse()
-{
-    ASSERT(iList);
-    ASSERT(iList->View());
-
-#ifdef RD_JAVA_S60_RELEASE_9_2
-    // AvKon enables highlight only when key event is recieved.
-    // When traversing, no key event is sent to AvKon, so we
-    // have to enable highlight by ourselves.
-    CListItemDrawer* itemDrawer = iList->View()->ItemDrawer();
-    if (itemDrawer)
-    {
-        itemDrawer->ClearFlags(CListItemDrawer::ESingleClickDisabledHighlight);
-    }
-#endif //RD_JAVA_S60_RELEASE_9_2
-}
-
-
-// ---------------------------------------------------------------------------
 // CSwtSortedList::DoPaint
 // From MSwtControl
 // ---------------------------------------------------------------------------
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swttable.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swttable.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -2200,27 +2200,6 @@
 }
 #endif //RD_JAVA_S60_RELEASE_9_2
 
-// ---------------------------------------------------------------------------
-// CSwtTable::PrepareForTraverse
-// From MSwtControl
-// ---------------------------------------------------------------------------
-//
-void CSwtTable::PrepareForTraverse()
-{
-    ASSERT(iTableListBox);
-    ASSERT(iTableListBox->View());
-
-#ifdef RD_JAVA_S60_RELEASE_9_2
-    // AvKon enables highlight only when key event is recieved.
-    // When traversing, no key event is sent to AvKon, so we
-    // have to enable highlight by ourselves.
-    CListItemDrawer* itemDrawer = iTableListBox->View()->ItemDrawer();
-    if (itemDrawer)
-    {
-        itemDrawer->ClearFlags(CListItemDrawer::ESingleClickDisabledHighlight);
-    }
-#endif //RD_JAVA_S60_RELEASE_9_2
-}
 
 // ---------------------------------------------------------------------------
 // From ASwtScrollableBase
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swttext.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swttext.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -10,7 +10,7 @@
  *******************************************************************************/
 
 
-#include <eikcoctl.rsg>
+#include <EIKCOCTL.rsg>
 #include <AknUtils.h>
 #include <eikedwin.h>
 #include <AknNumEdwin.h>
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swttextbase.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swttextbase.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -12,7 +12,7 @@
 
 #include <eikedwin.h>
 #include <txtglobl.h>
-#include <eikcoctl.rsg>
+#include <EIKCOCTL.rsg>
 #include <AknsUtils.h>
 #include <swtlaffacade.h>
 #include <AknUtils.h>
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swttextextension.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swttextextension.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -280,19 +280,6 @@
 //
 void CSwtTextExtension::FetchEmailL()
 {
-#ifdef RD_JAVA_S60_RELEASE_9_2
-    // Closing the VKB. Otherwise opened dialog will not be drawn over
-    // the whole screen. After closing dialog, VKB opens itself again
-    if (Editor().IsFocused())
-    {
-        CCoeFep* fep = iDisplay.CoeEnv()->Fep();
-        if (fep)
-        {
-            fep->HandleDestructionOfFocusedItem();
-        }
-    }
-#endif //RD_JAVA_S60_RELEASE_9_2
-
     // The dialog used to select the address doesn't work properly if there is no
     // status pane. Therefore, the status pane is temporarily made visible for
     // the duration of showing the dialog.
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtuiutils.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtuiutils.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -815,11 +815,8 @@
 {
     TInt index = iShells.Find(&aShell);
     ASSERT(index != KErrNotFound);
-    TInt err = iShells.Append(&aShell);
-    if (err == KErrNone)
-    {
-        iShells.Remove(index);
-    }
+    iShells.Remove(index);
+    iShells.Append(&aShell);
 }
 
 // ---------------------------------------------------------------------------
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/src/org/eclipse/swt/graphics/Image.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/src/org/eclipse/swt/graphics/Image.java	Wed Oct 13 14:23:59 2010 +0300
@@ -14,9 +14,11 @@
 
 
 import java.io.*;
+
 import org.eclipse.swt.*;
 import org.eclipse.swt.internal.symbian.*;
 import org.eclipse.swt.internal.FileCompatibility;
+import org.eclipse.swt.widgets.Display;
 
 
 /**
@@ -248,7 +250,34 @@
     {
         if (device == null) device = Device.getDevice();
         if (device == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
-        init(device, new ImageData(stream));
+        
+        try
+        {
+            init(device, new ImageData(stream));
+        }
+        catch (SWTException ex)
+        {
+            if (ex.code == SWT.ERROR_UNSUPPORTED_FORMAT)
+            {
+                Point size = (Point)(Display.getCurrent().getData("org.eclipse.swt.internal.image.loadSize"));
+                if (size == null)
+                {
+                    size = new Point(88, 88);
+                }
+                try
+                {
+                    stream.reset();
+                }
+                catch (IOException e)
+                {
+                }
+                init(device, OS.Image_NewFromSvgBuf(device.handle, Image.readImageStream(stream), size.x, size.y));
+            }
+            else
+            {
+                throw ex;
+            }
+        }
     }
 
     /**
@@ -282,7 +311,26 @@
     {
         if (device == null) device = Device.getDevice();
         if (device == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
-        init(device, new ImageData(filename));
+        try
+        {
+            init(device, new ImageData(filename));
+        }
+        catch (SWTException ex)
+        {
+            if (ex.code == SWT.ERROR_UNSUPPORTED_FORMAT)
+            {
+                Point size = (Point)(Display.getCurrent().getData("org.eclipse.swt.internal.image.loadSize"));
+                if (size == null)
+                {
+                    size = new Point(88, 88);
+                }
+                init(device, OS.Image_NewFromSvgFile(device.handle, filename, size.x, size.y));                
+            }
+            else
+            {
+                throw ex;
+            }
+        }
     }
     
     /**
@@ -387,6 +435,27 @@
     {
         return handle;
     }
+    
+    void init(Device device, int handle)
+    {
+        if (device == null) device = Device.getDevice();
+        if (device == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
+        if (handle == 0) SWT.error(SWT.ERROR_NO_HANDLES, null, device.getLastError());
+        
+        this.device = device;
+        this.handle = handle;
+        this.type = SWT.BITMAP;
+        
+        try
+        {
+            if (device.tracking) device.new_Object(this);
+        }
+        catch (Error e)
+        {
+            OS.Image_Dispose(device.handle, handle);
+            throw e;
+        }
+    }
 
     void init(Device device, int width, int height)
     {
@@ -652,9 +721,6 @@
         return "Image {" + handle + "}";
     }
 
-
-
-
     /**
      * The following functions are not part of the eSWT public api
      * @param fileName
@@ -688,6 +754,7 @@
         }
         return SWT.IMAGE_UNDEFINED;
     }
+    
     static int imageFormat(byte[] streamBytes)
     {
         if (isPNGFormat(streamBytes)) return SWT.IMAGE_PNG;
@@ -695,6 +762,7 @@
         if (isJPEGFormat(streamBytes)) return SWT.IMAGE_JPEG;
         return SWT.IMAGE_UNDEFINED;
     }
+    
     static boolean isPNGFormat(byte[] streamBytes)
     {
         if (streamBytes.length < 8) return false;
@@ -708,14 +776,16 @@
         if ((streamBytes[7] & 0xFF) != 10) return false; //<LINEFEED>
         return true;
     }
+    
     static boolean isGIFFormat(byte[] streamBytes)
     {
         if (streamBytes.length < 3) return false;
         if (streamBytes[0] != 'G') return false;
-        if (streamBytes[1]  != 'I') return false;
-        if (streamBytes[2]  != 'F') return false;
+        if (streamBytes[1] != 'I') return false;
+        if (streamBytes[2] != 'F') return false;
         return true;
     }
+    
     static boolean isJPEGFormat(byte[] streamBytes)
     {
         if (streamBytes.length < 2) return false;
@@ -723,6 +793,7 @@
         if ((streamBytes[1] & 0xFF) != 0xD8) return false;
         return true;
     }
+    
     /**
      * Reads the specified stream and returns the contents as a byte
      * array.
@@ -791,28 +862,8 @@
      */
     public static Image internal_new(Device device, int handle)
     {
-        if (device == null) device = Device.getDevice();
-        if (device == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
-        if (handle == 0)
-        {
-            SWT.error(SWT.ERROR_NO_HANDLES, null, device.getLastError());
-        }
-        
         Image image = new Image();
-        image.device = device;
-        image.handle = handle;
-        image.type = SWT.BITMAP;
-
-        try
-        {
-            if (device.tracking) device.new_Object(image);
-        }
-        catch (Error e)
-        {
-            OS.Image_Dispose(device.handle, handle);
-            throw e;
-        }
-        
+        image.init(device, handle);
         return image;
     }
 }
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/src/org/eclipse/swt/internal/extension/ImageUtil.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/src/org/eclipse/swt/internal/extension/ImageUtil.java	Wed Oct 13 14:23:59 2010 +0300
@@ -11,8 +11,6 @@
 
 package org.eclipse.swt.internal.extension;
 
-import java.io.InputStream;
-
 import org.eclipse.swt.graphics.Device;
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.graphics.Point;
@@ -37,14 +35,4 @@
         return Image.internal_new(device, OS.Image_Scale(device.handle,
                 srcImage.handle, destSize.x, destSize.y, keepAspectRatio));
     }
-
-    public static Point getImageSize(Device device, String filename) {
-        // Stub implementation for compatibility with Qt-based eSWT.
-        return null;
-    }
-    
-    public static Point getImageSize(InputStream stream) {
-        // Stub implementation for compatibility with Qt-based eSWT.
-        return null;
-    }
 }
--- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/src/org/eclipse/swt/internal/symbian/OS.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/src/org/eclipse/swt/internal/symbian/OS.java	Wed Oct 13 14:23:59 2010 +0300
@@ -225,6 +225,8 @@
     public static final native int Image_New(int deviceHandle, int width, int height);
     public static final native int Image_NewFromData(int deviceHandle, ImageData data);
     public static final native int Image_NewFromTheme(int deviceHandle, int id);
+    public static final native int Image_NewFromSvgBuf(int deviceHandle, byte[] svgBuf, int width, int height);
+    public static final native int Image_NewFromSvgFile(int deviceHandle, String svgFile, int width, int height);
     public static final native void Image_Dispose(int deviceHandle, int handle);
     public static final native Rectangle Image_GetBounds(int handle);
     public static final native ImageData Image_GetData(int handle);
@@ -479,14 +481,11 @@
      * Class ImageDecoder
      */
     public static final native int ImageDataLoader_New();
-    public static final native ImageData[] ImageDataLoader_DecodeImage(int handle,String fileName);
-    public static final native ImageData[] ImageDataLoader_DecodeWholeImageFromBuffer(int handle,byte[] buffer);
-    public static final native void ImageDataLoader_EncodeImage(int handle,ImageData imageData, int format, String fileName);
-    public static final native void ImageDataLoader_EncodeImageToStream(int handle,ImageData imageData,int  format, OutputStream stream);
+    public static final native ImageData[] ImageDataLoader_DecodeImage(int handle, String fileName);
+    public static final native ImageData[] ImageDataLoader_DecodeWholeImageFromBuffer(int handle, byte[] buffer);
+    public static final native void ImageDataLoader_EncodeImage(int handle, ImageData imageData, int format, String fileName);
+    public static final native void ImageDataLoader_EncodeImageToStream(int handle, ImageData imageData, int format, OutputStream stream);
     public static final native void ImageDataLoader_Dispose(int handle);
-    public static final native void ImageDataLoader_StartImageDecoding(int handle, byte[] buffer);
-    public static final native void ImageDataLoader_AppendData(int handle, byte[] buffer);
-    public static final native ImageData[] ImageDataLoader_GetImageData(int handle);
     public static final native int ImageDataLoader_GetLogicalScreenHeight(int handle);
     public static final native int ImageDataLoader_GetLogicalScreenWidth(int handle);
 
--- a/javauis/javalegacyutils/build/javalegacyutils.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/javalegacyutils/build/javalegacyutils.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -18,7 +18,7 @@
 TARGET=javalegacyutils
 CONFIG += omj java staticdata stl
 CONFIG -= qt
-LIBS += -lhal -lCommonEngine
+LIBS += -lhal -lcommonengine
 
 
 include(../../../build/omj.pri)
--- a/javauis/javalegacyutils/build/javalegacyutils_0x2002DCBB.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/javalegacyutils/build/javalegacyutils_0x2002DCBB.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc
@@ -92,7 +92,7 @@
 
 
 LIBRARY		hal.lib
-LIBRARY		CommonEngine.lib
+LIBRARY		commonengine.lib
 LIBRARY		javautils.lib
 LIBRARY		libpthread.lib
 LIBRARY		libstdcppv5.lib
@@ -122,7 +122,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javauis/javauis.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/javauis.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -14,7 +14,6 @@
 # Description: Generated file - do not edit manually
 #
 TEMPLATE = subdirs
-SUBDIRS += nokiasound/build/javanokiasound.pro 
 SUBDIRS += javalegacyutils 
 SUBDIRS += remconobserver_akn/build/javaremconobserver.pro 
 SUBDIRS += eswt_akn/org.eclipse.ercp.swt.s60/native/build/eswt.pro 
@@ -25,6 +24,7 @@
 SUBDIRS += eswt_akn/eswtdirectcontent/build/eswtdirectcontent.pro 
 SUBDIRS += m2g_akn/build/javam2g.pro 
 SUBDIRS += m3g_akn/build/javam3g.pro 
+SUBDIRS += nokiasound_akn/build/javanokiasound.pro 
 SUBDIRS += runtimeui_akn/build/javaruntimeui.pro 
 SUBDIRS += softnotification_akn/build/javasoftnotification.pro 
 BLD_INF_RULES.prj_extensions += "$${LITERAL_HASH}include \"coreui/build/bld.inf\""  
Binary file javauis/lcdui_akn/conf/lcdui.confml has changed
Binary file javauis/lcdui_akn/conf/lcdui_102072C2.crml has changed
--- a/javauis/lcdui_akn/javalcdui/build/build.xml	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/javalcdui/build/build.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -77,9 +77,6 @@
                    com.nokia.mid.ui.TextEditorImpl,
                    com.nokia.mid.ui.Clipboard,
                    com.nokia.mid.ui.S60TextEditor,
-                   com.nokia.mid.ui.S40TextEditor,
-                   com.nokia.mid.ui.TextEditorExtensionAccess,
-                   com.nokia.mid.ui.TextEditorTouchControl,
                    com.nokia.mid.ui.TextEditorListener,
                    com.nokia.mid.ui.CanvasGraphicsItem,
                    com.nokia.mid.ui.CanvasGraphicsItemPainter,
--- a/javauis/lcdui_akn/javalcdui/build/javalcdui.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/javalcdui/build/javalcdui.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -46,9 +46,9 @@
         -lhwrmlightclient \
         -lgfxtrans \
         -lws32 \
-        -lcentralrepository \ 
+        -lCentralRepository \ 
 #ifdef RD_JAVA_NGA_ENABLED
-	-llibEGL \
+	-llibegl \
 	-llibglesv1_cm
 #endif // RD_JAVA_NGA_ENABLED
 
--- a/javauis/lcdui_akn/javalcdui/build/javalcdui_0x2002DCBA.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/javalcdui/build/javalcdui_0x2002DCBA.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc.nokialcdui
@@ -157,8 +157,8 @@
 LIBRARY		ws32.lib
 LIBRARY		hwrmlightclient.lib
 LIBRARY		gfxtrans.lib
-LIBRARY		centralrepository.lib
-LIBRARY		libEGL.lib
+LIBRARY		CentralRepository.lib
+LIBRARY		libegl.lib
 LIBRARY		libglesv1_cm.lib
 LIBRARY		javautils.lib
 LIBRARY		libpthread.lib
@@ -183,7 +183,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javauis/lcdui_akn/javalcdui/inc/CMIDEnv.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/javalcdui/inc/CMIDEnv.h	Wed Oct 13 14:23:59 2010 +0300
@@ -151,16 +151,6 @@
      */
     virtual MMIDToLcduiObserver& ToLcduiObserver();
 
-    /**
-     * @see MMIDEnv#VideoOverlayEnabled()
-     */
-    virtual TBool VideoOverlayEnabled() const;
-    
-    /**
-     * @see MMIDEnv#GetMMAPILock()
-     */
-    RCriticalSection& GetMMAPILock();
-    
 #ifdef RD_JAVA_NGA_ENABLED
     /**
      * @see MMIDEnv#IsHardwareAccelerated()
@@ -285,8 +275,6 @@
      */
     CMIDToLcduiObserver*        iToLcduiObserver;
 
-    TBool                       iVideoOverlayEnabled;
-    RCriticalSection            iMMAPILock;
 #ifdef RD_JAVA_NGA_ENABLED
     TInt                        iHardwareStatus;
     TBool                       iFullOrPartialFg;
--- a/javauis/lcdui_akn/javalcdui/inc/lcdui.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/javalcdui/inc/lcdui.h	Wed Oct 13 14:23:59 2010 +0300
@@ -125,7 +125,6 @@
 _LIT(KUIEnhCanvasBackground,   "canvashasbackground");
 _LIT(KUIEnhPopUpTextBox,       "popuptextbox");
 _LIT(KUIEnhFullScreenTextBox,  "fullscreentextbox");
-_LIT(KUIEnhVideoOverlay,       "videooverlaysupported");
 _LIT(KTrueValue,               "true");
 _LIT(KPauseValue,              "pause");
 _LIT(KRunValue,                "run");
@@ -135,7 +134,12 @@
 _LIT(KPositionRight,           "right");
 }
 
+
+#ifdef RD_JAVA_S60_RELEASE_9_2
+const TInt KHighlightedItemTextColor    = EAknsCIQsnTextColorsCG6;
+#else
 const TInt KHighlightedItemTextColor    = EAknsCIQsnTextColorsCG8;
+#endif // RD_JAVA_S60_RELEASE_9_2
 const TInt KNonHighlightedItemTextColor = EAknsCIQsnTextColorsCG6;
 
 
@@ -725,13 +729,6 @@
          */
         EDrwOpcBitBltRect = 1
 #endif // RD_JAVA_NGA_ENABLED
-
-        /**
-         * Indicates start of drawing commands for canvas paint.
-         * Used only video overlay case.
-         * @since S60 9.2
-         */
-        ,EDrwOpcPaintStarted = 3
     };
 public:
     /**
@@ -841,16 +838,6 @@
      * @since S60 9.2
      */
     virtual void MidletExiting() = 0;
-    
-    /**
-     * Returns ETrue if video overlay is currently used in Canvas.
-     * ETrue is returned when:
-     *      - overlay is enabled by the jad attribute
-     *      - Canvas is not GameCanvas
-     *      - Canvas has MMAPI content areas
-     * @since S60 9.2
-     */
-    virtual TBool IsVideoOverlayActive() = 0;
 #endif // RD_JAVA_NGA_ENABLED
 
     virtual TBool ReadyToBlit() const = 0;
@@ -2501,13 +2488,6 @@
      */
     virtual TBool CanvasHasBackground(const MMIDCanvas& aCanvas) const = 0;
 
-    /**
-     * Checks if video overlays are enabled (by the jad attribute).
-     * @return ETrue if overlays are enabled.
-     * @since S60 9.2
-     */
-    virtual TBool VideoOverlayEnabled() const = 0;
-
 #ifdef RD_JAVA_NGA_ENABLED
 
     /**
@@ -2587,41 +2567,6 @@
      * @since Java 2.1
      */
     virtual const MMIDDisplayable* LastFullscreenDisplayable() const = 0;
-    
-    /**
-     * Returns reference to RCriticalSection that should be used in all
-     * MMAPI related synchronization in LCDUI.
-     *
-     * @return referende to RCriticalSection
-     * @since Java 2.1
-     */
-    virtual RCriticalSection& GetMMAPILock() = 0;
-    
-    /**
-     * Autolocker class for RCriticalSection.
-     */
-    class TCriticalSectionAutoLock
-    {
-    public:
-       /**
-        * Ctor
-        * @param aLock Syncronization primitive that is locked during construction
-        */
-        TCriticalSectionAutoLock(RCriticalSection& aLock) : iLock(aLock)
-       {
-           iLock.Wait();
-       }
-
-       /**
-        * Dtor. Signals the synchronization primitive
-        */
-       ~TCriticalSectionAutoLock()
-       {
-           iLock.Signal();
-       }
-    private:
-       RCriticalSection& iLock;
-    };
 };
 
 /**
--- a/javauis/lcdui_akn/javalcdui/inc/reflcdui.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/javalcdui/inc/reflcdui.h	Wed Oct 13 14:23:59 2010 +0300
@@ -86,11 +86,11 @@
     virtual void MdcRemoveContent(MDirectContent* aContent) = 0;
 
     /**
-     * Adds MMAPI content bound to this container.
+     * Adds content bound to this container. Container will not allow painting in this region
      *
      * @param aRect Content bounds
      */
-    virtual void MdcAddMMAPIContentBounds(const TRect& aRect) = 0;
+    virtual void MdcAddContentBounds(const TRect& aRect) = 0;
 
     /**
      * Removes one content bound from this container.
@@ -98,7 +98,7 @@
      *
      * @param aRect Content bound to be removed.
      */
-    virtual void MdcRemoveMMAPIContentBounds(const TRect& aRect) = 0;
+    virtual void MdcRemoveContentBounds(const TRect& aRect) = 0;
 
     /**
      * Get a rect of a window (with respect to screen) on which content can be displayed.
--- a/javauis/lcdui_akn/javalcdui/javasrc.nokialcdui/com/nokia/mid/ui/Clipboard.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/javalcdui/javasrc.nokialcdui/com/nokia/mid/ui/Clipboard.java	Wed Oct 13 14:23:59 2010 +0300
@@ -66,9 +66,7 @@
      * Copies characters from the system clipboard.
      * <P>
      * Returns empty string when there is nothing in the system clipboard.
-     * <P>
-     * This method is not supported on S40 platform, returns <code>null</code>.
-     * <P>
+     *
      * @return the content in clipboard
      */
     public static String copyFromClipboard()
--- a/javauis/lcdui_akn/javalcdui/javasrc.nokialcdui/com/nokia/mid/ui/S40TextEditor.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,322 +0,0 @@
-/*
- * 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:  Interface for S40 Text Editor
- *
- */
-
-package com.nokia.mid.ui;
-
-import javax.microedition.lcdui.Command;
-import javax.microedition.lcdui.Image;
-
-/**
- * <p>
- * This interfaces provides access to extended editing-related functionality, that is only
- * available on Series 40 devices.</p>
- * <b>Commands:</b><br>
- * Applications can use {@link com.nokia.mid.ui.S40TextEditor#getTextEditorCommands()} and {@link com.nokia.mid.ui.S40TextEditor#launchTextEditorCommand(Command, int)}
- * to present editing-commands in a customized way. When launching such a command, the application has to specify a
- * command-mode. This is because some commands may require information regarding the key-state that has caused this command to
- * be launched. For example, calling <code>launchTextEditorCommand(cmd, COMMAND_MODE_KEYPRESS)</code> for the "Clear"-command will cause
- * to editor to keep deleting characters until the application calls <code>launchTextEditorCommand(cmd, COMMAND_MODE_KEYRELEASE)</code>.
- * Since not all commands require keystate-information, applications can use {@link com.nokia.mid.ui.S40TextEditor#isCommandKeyWanted(Command)}
- * If no command-key is wanted, COMMAND_MODE_SELECTED should be passed when launching this command <p>
- * <b>Indicator-icons</b><br>
- * It is possible to access the indicator-icons that the platform would normally display as Images, using
- * {@link com.nokia.mid.ui.S40TextEditor#getIndicatorIcons()} <p>
- * <b>Visibility</b><br>
- * Applications may be in the situation where they want an editor to be visible, but to not process keys or be animated, e.g. while
- * a custom options-menu is displayed. In those cases, it is possible to call {@link com.nokia.mid.ui.S40TextEditor#setVisible(int)} <p>
- * <b>Extra properties</b><br>
- * Some properties that are not available in the com.nokia.mid.ui.TextEditor, like writing-direction, native emoticon support
- * and positioning for native popup-windows.  <p>
- * On Series 40 devices this interface is implemented by the object returned by {@link com.nokia.mid.ui.TextEditor#createTextEditor(String, int, int, int, int)} if
- * the MIDlet is manufacturer or operator signed.
- *
- */
-public abstract interface S40TextEditor {
-	
-	/**
-	 * command type used to indicate commands
-	 * that should be put on the middle softkey
-	 */
-	public final static int SELECT_SOFTKEY_COMMAND = 9;
-
-    /**
-     * command type used to indicate commands
-     * that should be put on the right softkey.
-     */
-    public final static int RIGHT_SOFTKEY_COMMAND = 10;	  
-    
-    /**
-     * command type used to indicate commands
-     * that should be put as the last one in the option list.
-     */
-    public final static int LAST_IN_OPTIONS_COMMAND = 12;
-
-    /**
-     * command type used to indicate commands
-     * that should be put on the left softkey.
-     */
-    public final static int LEFT_SOFTKEY_COMMAND = 13;
-    	
-			
-	/**
-	 * constant for left-to-right direction
-	 */
-	public static final int DIRECTION_LTR = 0;
-	
-	/**
-	 * constant for right-to-left direction
-	 */
-	public static final int DIRECTION_RTL = 1;
-	
-	/**
-     * Constant for Cursor Wrap Off
-     * No cursor wrapping occurs.
-     * Traverse out callback is active for up / down
-     * Traverse out callback is active for left / right when the editor is empty.
-     */
-    public static final int CURSOR_WRAP_OFF = 0;
-    
-    /**
-     * Constant for Cursor Wrap Left/Right
-     * Cursor wrapping is active only for left / right. 
-     * Traverse out callback is supported for up / down.
-     */
-    public static final int CURSOR_WRAP_LEFT_RIGHT = 2;
-    
-    /**
-     * Constant for Cursor Wrap Full
-     * Cursor wrapping is active for all directions (up / down / left / right). 
-     * Doesnt send traverse out callback.
-     */
-    public static final int CURSOR_WRAP_FULL = 1;
-    
-	/**
-	 * Event that indicates that the applications options-list should be closed.
-	 * The implementation sends this even in a case where the platform has displayed further
-	 * nested options as the result of a {@link com.nokia.mid.ui.S40TextEditor#launchTextEditorCommand(Command, int)}-call.
-	 * If the user selects one of the nested options (e.g. "copy"), the platform will carry out the
-	 * associated functionality, dismiss the native options-popup  and send the 
-	 * ACTION_OPTIONS_CLOSED-event, in order to indicate that any options-list that the application
-	 * might have displayed should also be closed. 
-	 *  
-	 */	
-	public static final int ACTION_OPTIONS_CLOSED = 0x00010000;		
-    
-    /**
-     * Indicates that the user tries to exit this TextEditor left.
-     * This action is only generated when the cursor wrap mode is set to {@link #CURSOR_WRAP_OFF} and the editor
-     * is empty.
-     */
-    public static final int ACTION_TRAVERSE_LEFT = 0x00020000;
-    
-    /**
-     * Indicates that the user tries to exit this TextEditor right.
-     * This action is only generated when the cursor wrap mode is set to {@link #CURSOR_WRAP_OFF} and the editor
-     * is empty.
-     */
-    public static final int ACTION_TRAVERSE_RIGHT = 0x00040000;
-	
-//  native_const(JAVA_TEXTEDITOR)
-//  {
-	
-	/**
-	 * Indicates that the text in this TextEditor is masked according to the
-	 * Oz Mobile Password Masking Scheme 
-	 */
-	public static final int PASSWORD_MASKED = 0x400000;
-	
-	/**
-	 * Indicates that the text in this TextEditor is locked according to the
-	 * Oz Mobile Password Masking Scheme 
-	 */
-	public static final int PASSWORD_LOCKED = 0x800000;
-//  }	
-	
-	/**
-	 * constant value to indicate a hidden/invisible TextEditor
-	 */
-	public static final int HIDDEN=1;		
-	
-	/**
-	 * constant value to indicate partial visibility of a TextEditor.
-	 * A partially visible TextEditor will still be displayed, but not
-	 * receive any key-events, and not have a blinking cursor
-	 */
-	public static final int PARTIALLY_VISIBLE=2;
-	
-	/** 
-	 * constant value to indicate full visibility of a TextEditor
-	 */
-	public static final int VISIBLE=3;
-			
-	
-	/**
-	 * Command-mode to indicate that a command is launched without keystate-information, e.g. from
-	 * an options-menu
-	 */
-	public static final int COMMAND_MODE_SELECTED=0;
-	
-	/**
-	 * Command-mode to indicate that a command is launched with a keypress, e.g. by pressing RSK 
-	 */
-	public static final int COMMAND_MODE_KEYPRESS=1;
-	
-	/**
-	 * Command-mode to indicate that a command has been launched with a keypress, and that this key 
-	 * has now been released, e.g. by releasing the RSK
-	 */
-	public static final int COMMAND_MODE_KEYRELEASE=2;
-				
-	/**
-	 * Specifies the current input mode of this TextEditor
-	 * @param mode the new input-mode. This should be a value returned by {@link com.nokia.mid.ui.S40TextEditor#getInputMode()} 
-	 */
-	public void setInputMode(int mode) throws IllegalArgumentException;
-	
-	/**
-	 * Gets the current input mode of this TextEditor
-	 * @return the current input mode. This value represents a native input-mode, that can be passed to {@link com.nokia.mid.ui.S40TextEditor#setInputMode(int)} 
-	 * 
-	 */
-	public int getInputMode();
-	
-	/**
-	 * Returns the current set of Editor-Commands
-	 * @return the commands
-	 */
-	public Command[] getTextEditorCommands();
-	
-	/**
-	 * Executes an editor-option. This method will invoke native functionality according to the command. This may
-	 * be an action in the editor (copy, delete,..) which then in turn will cause callbacks to this editors
-	 * TextEditorListener. It may as well cause platform-controlled panels (nested options, touch-dialog) to cover part of
-	 * or the full display. <br>
-	 * This method should be called from inside the keyPressed()-method.
-	 * @param cmd The command to launch. This has to be a command returned by {@link com.nokia.mid.ui.S40TextEditor#getTextEditorCommands()}
-	 * @return true if launching this command has displayed a list of further sub-commands as a popup. if an application
-	 * has displayed an options-menu before launching a command, this options-menu should normally stay on the screen
-	 * after this launch, to indicate that the native sub-commands are nested and related to the command that has been
-	 * launched.   
-	 * 
-	 * @throws IllegalStateException if the TextEditor is not focussed during this call
-	 * @throws IllegalArgumentException if the command is not available in the editor. Commands that are
-	 * available in the editor are only those that this editor has provided via {@link com.nokia.mid.ui.S40TextEditor#getTextEditorCommands()}
-	 */
-	public boolean launchTextEditorCommand(Command cmd,int mode) throws IllegalStateException, IllegalArgumentException;
-	
-	/**
-	 * Gets the menu-state of a Command
-	 * @param cmd The Command to query for Menu-state. This has to be a command returned by {@link com.nokia.mid.ui.S40TextEditor#getTextEditorCommands()} 
-	 * @return true if this a Menu Command. Launching a Menu Command will show a popup on the display, providing further
-	 * commands to the user  
-	 */
-	public boolean isMenuCommand(Command cmd);
-	
-	/**
-	 * Returns whether a command requires keystate-information to be launched.
-	 * @param cmd The command to be queried
-	 * @return true if cmd requires keystate-information. In this case, one of COMMAND_MODE_KEYPRESS or COMMAND_MODE_KEYRELEASE
-	 * should be passed when launching this command via {@link com.nokia.mid.ui.S40TextEditor#launchTextEditorCommand(Command, int)}
-	 * false if cmd does not require keystate-informationl. In that case, COMMAND_MODE_SELECTED should be passed when launching it.
-	 */
-	public boolean isCommandKeyWanted(Command cmd);
-				
-	
-	/**
-	 * Specifies the amount of pixels by which the TextEditor will scroll text horizontally, if multiline
-	 * input is disabled.	 
-	 * @param offset The scrolling offset. When a cursor-movement requires horizontal scrolling of the
-	 * text, this value indicates by how many pixels the text will be moved. 
-	 */
-	public void setHorizontalScrollingWidth(int offset);
-	
-	/**
-	 * Gets the current horizontal scrolling width
-	 * @return the scrolling width
-	 */
-	public int getHorizontalScrollingWidth();		
-	
-	/**
-	 * Gets the current writing-direction
-	 * @return DIRECTION_LTR or DIRECTION_RTL
-	 */
-	public int getWritingDirection();
-	
-	/**
-	 * Gets the current indicator-icons as images
-	 * @return the icons
-	 */
-	public Image[] getIndicatorIcons();
-	
-	/**
-	 * Specifies the visibility of this TextEditor.
-	 * In some cases, for example when an application wants to display a custom Options-Menu, the method
-	 * {@link com.nokia.mid.ui.TextEditor#setVisible(boolean)} may not be sufficient. For this purpose,
-	 * this method allows to specify a partial visibility, which will display the TextEditor without 
-	 * e.g. animating the curosr, an in which the application can receive the key-events from the Canvas.	
-	 * @param visible the type of the visibility. Has to be one of VISIBLE,PARTIALLY_VISIBLE or HIDDEN.
-	 * Calling this method with VISIBLE has the same effect as calling {@link com.nokia.mid.ui.TextEditor#setVisible(boolean)}
-	 * with true, HIDDEN as with false.
-	 * @throws IllegalArgumentException if visible has an unspecified value
-	 */
-	public void setVisible(int visible) throws IllegalArgumentException;
-
-	/**
-	 * Specifies whether emoticons should be available for this editor. If not enabled, the implementation
-	 * will not provide any facilities to insert emoticons, e.g. via commands or special character-dialog, 
-	 * itself
-	 * @param enable true to enable emoticons, false to disable	 
-	 */
-	public void enableEmoticons(boolean enable);	
-	
-	/**
-	 * Gets the emoticons-state of this editor
-	 * @return true if emoticons are enabled, false if not
-	 */
-	public boolean isEnableEmoticons();
-	
-	/**
-	 * Specifies a position on the screen where native popups will be displayed. This is a hint to the
-	 * implementation, that may be disregarded.
-	 * @param x x-coordinate of the popups position
-	 * @param y y-coordinate of the popups position
-	 */
-	public void setPopupPosition(int x,int y);
-	
-	/**
-	 * Specifies prefix and postfix text to be displayed along with the actual editor-content.
-	 * This text will not be part of the actual editor-buffer, and hence can't be edited, and will not
-	 * be considered by methods like {@link com.nokia.mid.ui.TextEditor#size()}
-	 * @param prefix text to be displayed before the actual content. May be null to disable prefix-text 
-	 * @param postfix text to be displayed after the actual content. May be null to disable postfix-text
-	 */
-	public void setFixedText(String prefix,String postfix);
-    
-    /**
-     * Specifies the Cursor Wrap setting. This is required to allow the canvas editor to change state so
-     * that left / right cursor keys are able to traverse out of the editor if the editor is empty.
-     * @param wrap new cursor wrap setting 
-     */
-    public void setCursorWrap(int wrap);
-    
-    /**
-     * Gets the current Cursor Wrap setting
-     * @return current cursor wrap setting
-     */
-    public int getCursorWrap();
-    
-}
--- a/javauis/lcdui_akn/javalcdui/javasrc.nokialcdui/com/nokia/mid/ui/TextEditor.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/javalcdui/javasrc.nokialcdui/com/nokia/mid/ui/TextEditor.java	Wed Oct 13 14:23:59 2010 +0300
@@ -931,8 +931,6 @@
      * rendered using given color value. The default highlight background
      * color is fully opaque black.
      *
-     * This method is not supported on S40 platform.
-     *
      * @param color
      *            the color
      */
@@ -953,8 +951,6 @@
      * using given color value. The default highlight foreground color is fully
      * opaque white.
      *
-     * This method is not supported on S40 platform.
-     *
      * @param color
      *            the color
      */
--- a/javauis/lcdui_akn/javalcdui/javasrc.nokialcdui/com/nokia/mid/ui/TextEditorExtensionAccess.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
-* Copyright (c) 2010 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: Touch-support for TextEditor-API
-*
-*/
-
-package com.nokia.mid.ui;
-
-import com.nokia.mid.ui.TextEditorTouchControl;
-
-/**
- * This interface provides access to extended functionality related to the TextEditor-API
- * The object returned by the method {@link com.nokia.mid.ui.TextEditor#createTextEditor(int, int, int, int)} and
- * {@link com.nokia.mid.ui.TextEditor#createTextEditor(int, int, int, int)} implements this interface.
- * It depends on the capabilities of the device whether the extensions provided via this interface are
- * supported or not. For unsupported extensions, the getter-methods of this interface will return null.
- */
-public interface TextEditorExtensionAccess
-{
-
-    /**
-     * Gets the Touch-extensions of the TextEditor-API. See also {@link TextEditorTouchControl}
-     * @return the extension, or null if the device does not support touch.
-     */
-    public TextEditorTouchControl getTouchControl();
-
-}
--- a/javauis/lcdui_akn/javalcdui/javasrc.nokialcdui/com/nokia/mid/ui/TextEditorListener.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/javalcdui/javasrc.nokialcdui/com/nokia/mid/ui/TextEditorListener.java	Wed Oct 13 14:23:59 2010 +0300
@@ -99,7 +99,6 @@
     public static final int ACTION_SCROLLBAR_CHANGED = 0x800;
 
     // Events 0x1000 and 0x2000 are used in s60 extension
-    // Events 0x10000, 0x20000, 0x40000, 0x400000, 0x800000 are used in s40 extension
 
     /**
      * This method is called by the platform to notify the client about events
--- a/javauis/lcdui_akn/javalcdui/javasrc.nokialcdui/com/nokia/mid/ui/TextEditorTouchControl.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,164 +0,0 @@
-/*
-* Copyright (c) 2010 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:  TextEditor-API alignment for Nokia-UI
-*
-*/
-package com.nokia.mid.ui;
-
-import com.nokia.mid.ui.TextEditorListener;
-
-/**
- * Touch-devices can use a virtual control-panel to replace physical keys, and to facilitate
- * textual input. The purpose of this interface is to provide some level of access and control over such a panel, when
- * using the TextEditor-API. <p>
- *
- * MIDlets can obtain an instance of this interface via the {@link TextEditorExtensionAccess} in the
- * following way:
- * <pre>
- * TextEditor editor = com.nokia.mid.ui.TextEditor.createTextEditor("hello world", 50, TextField.ANY, 100, 100);
- * TextEditorTouchControl touchControl = ((TextEditorExtensionAccess)editor).getTouchControl();
- * if(touchControl!=null){
- *   // this is a touch-device
- * }
- * else{
- *   // this is a non-touch-device
- * }
- * </pre>
- * The instance is associated with the editor it has been obtained from, and controls only this editor.<p>
- *
- * Because a control-panel covers parts of the display which would otherwise be available to the application, MIDlets may
- * choose to only display the panel at certain times, e.g. when the editor is focussed. This is possible with
- * {@link TextEditorTouchControl#setPanelMode(int)}. Furthermore, a panel can be positioned anywhere an the display via
- * {@link TextEditorTouchControl#setPanelPosition(int, int)}. This interface also allows to query the size of the panel, so
- * that applications can integrate it into the Canvas. <p>
- *
- * On touch-devices, the platform can make use of pointer-input to let the user interact with a TextEditor on a Canvas, without
- * that the application knows about this. For example, if the user taps with his stylus or finger somewhere inside a visible
- * and focussed TextEditor, the MIDlet might not receive any notification about this via the Canvas-methods pointerPressed,
- * pointerDragged or pointerReleased. Instead, the platform could change the position of the cursor and generate the
- * according event for the editors {@link TextEditorListener}. Or it may even just ignore this event completely. In general,
- * an application should not expect to receive any pointer-events after a "press" inside a focussed TextEditor.
- * Under certain circumstances however, for example as a response to the {@link com.nokia.mid.ui.TextEditorListener#ACTION_TRAVERSE_OUT_SCROLL_UP}
- * or {@link com.nokia.mid.ui.TextEditorListener#ACTION_TRAVERSE_OUT_SCROLL_DOWN} event, an application can decide at any time to override this
- * behaviour, and force the platform to deliver all subsequent pointer-events to the Canvas.
- * This can be done with {@link TextEditorTouchControl#setTouchEnabled(boolean)}. Note that a TextEditor which has been touch-disabled
- * this way will not be able to perform any interaction like cursor-positioning or scrolling via touch-input, until is has been
- * enabled again.
- */
-public interface TextEditorTouchControl
-{
-
-
-    //native_const(JAVA_TEXTEDITOR)
-    //{
-
-    /**
-     * Constant to disable the display of a keypad/control-panel
-     */
-    public static final int PANEL_OFF = 1;
-
-    /**
-     * Constant to enable the display of a keypad/control-panel.
-     * In this mode the user cannot change the position of the panel, however
-     * the MIDlet can still do so via {@link TextEditorTouchControl#setPanelPosition(int, int)}
-     */
-    public static final int PANEL_FIXED_POSITION = 2;
-
-    /**
-     * Constant to enable the display of a keypad/control-panel.
-     * In this mode, the user can change the position of the panel of the display e.g. by
-     * dragging, if this is supported by the device. Changes to the position will generate the
-     * {@link TextEditorTouchControl#ACTION_PANEL_MOVED}-event. The current panel-position is
-     * provided via {@link TextEditorTouchControl#getPanelX()} and {@link TextEditorTouchControl#getPanelY()}
-     */
-    public static final int PANEL_FLOATING = 3;
-    //}
-
-    /**
-     * Event to indicate that the keypad/control-panel has been moved by the user
-     */
-    public static final int ACTION_PANEL_MOVED = 0x10000000;
-
-
-    /**
-     * Controls the behaviour of the virtual keypad/control-panel, if the device provides one.
-     * This is a hint which may be disregarded if the device does not support a virtual keypad/control-panel.
-     * @param mode One of {@link TextEditorTouchControl#PANEL_OFF} {@link TextEditorTouchControl#PANEL_FIXED_POSITION}
-     * or {@link TextEditorTouchControl#PANEL_FLOATING}
-     */
-    public void setPanelMode(int mode);
-
-    /**
-     * Gets the current panel-mode
-     * @return the mode, see {@link TextEditorTouchControl#setPanelMode(int)}
-     */
-    public int getPanelMode();
-
-    /**
-     * Sets the position of the panel on the display.
-     * @param x x-position of the keypad
-     * @param y y-position of the keypad
-     */
-    public void setPanelPosition(int x, int y);
-
-    /**
-     * Gets the width of the panel
-     * @return the width
-     */
-    public int getPanelWidth();
-
-    /**
-     * Gets the height of the panel
-     * @return the height
-     */
-    public int getPanelHeight();
-
-    /**
-     * Gets the current x-position of the panel on the display
-     * @return the x-coordinate
-     */
-    public int getPanelX();
-
-    /**
-     * Gets the current y-position of the panel on the display
-     * @return the y-coordinate
-     */
-    public int getPanelY();
-
-    /**
-     * Specifies whether or not the editor will receive touch-events. This is enabled by default.
-     * An editor with touch-event disabled won't be able to perform any touch-related functionality
-     * such as scrolling or positioning the cursor. It may however still be controlled via the
-     * virtual keypad/control-panel if that is enabled, or receive other input e.g. via physical
-     * keys
-     * @param enabled true to enabled touch-event, false to disable
-     */
-    public void setTouchEnabled(boolean enabled);
-
-    /**
-     * Gets the current touch-enabled state
-     * @return true if the editor is touch-enabled, false otherwise
-     */
-    public boolean isTouchEnabled();
-
-    /**
-     * Sets the caret as close as possible to a given x/y location. This is a hint to the implementation
-     * that may be disregarded.
-     * @param x new x-coordinate for the caret, relative to the editors origin
-     * @param y new y-coordinate for the caret, relative to the editors origin
-     */
-    public void setCaret(int x, int y);
-
-
-}
--- a/javauis/lcdui_akn/javalcdui/javasrc/javax/microedition/lcdui/Canvas.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/javalcdui/javasrc/javax/microedition/lcdui/Canvas.java	Wed Oct 13 14:23:59 2010 +0300
@@ -61,8 +61,7 @@
     private static final int ATTRIB_HEIGHT_INDEX              = 2;
     private static final int ATTRIB_NATIVE_FRAME_BUFFER_INDEX = 3;
     private static final int ATTRIB_BACKGROUND_INDEX          = 4;
-    private static final int ATTRIB_VIDEO_OVERLAY_INDEX       = 5;
-    private static final int ATTRIB_COUNT                     = 6;
+    private static final int ATTRIB_COUNT                     = 5;
 
     /**
     * Static constants for media key keycodes
@@ -95,9 +94,7 @@
      * attribute is "CanvasHasBackground". The attribute may be placed in the JAD or the manifest.
      */
     private boolean iHasBackgroundImage;
-    private boolean iVideoOverlayEnabled;
     private boolean iIsGameCanvas;
-    private Object iPaintLock;
 
     protected Canvas()
     {
@@ -135,9 +132,6 @@
             iHasBackgroundImage =
                 (canvasAttribs[ATTRIB_BACKGROUND_INDEX] != 0);
 
-            iVideoOverlayEnabled = 
-                (canvasAttribs[ATTRIB_VIDEO_OVERLAY_INDEX] != 0);
-
             // If is Toolkit activated, we can add Displayable to Vector
             // Displayables are removed from Vector when SizeChangedEvent arrives see Displayable.sizeChangedEvent()
             if (iToolkit.activated)
@@ -146,7 +140,6 @@
             }
 
             iM3GContent = false;
-            iPaintLock = new Object();
         }
     }
 
@@ -404,68 +397,58 @@
         int     w;
         int     h;
 
-        synchronized (iPaintLock)
+        synchronized (iCallbackLock)
         {
-            synchronized (iCallbackLock)
-            {
-                final int width;
-                final int height;
+            final int width;
+            final int height;
 
-                //
-                // Synchronize to protect the update region from concurrent
-                // repaint()'s. Note that this is *not* sufficient to ensure
-                // that no other callbacks are called by the event thread
-                // whilst the current thread is in the repaint routine, for
-                // that we use the callbacklock below.
-                //
-                synchronized (iToolkit)
+            //
+            // Synchronize to protect the update region from concurrent
+            // repaint()'s. Note that this is *not* sufficient to ensure
+            // that no other callbacks are called by the event thread
+            // whilst the current thread is in the repaint routine, for
+            // that we use the callbacklock below.
+            //
+            synchronized (iToolkit)
+            {
+                width  = iWidth;
+                height = iHeight;
+
+                x = iRepaintX1;
+                y = iRepaintY1;
+                w = iRepaintX2-iRepaintX1;
+                h = iRepaintY2-iRepaintY1;
+
+                iRepaintX1 = 0;
+                iRepaintY1 = 0;
+                iRepaintX2 = 0;
+                iRepaintY2 = 0;
+
+                if (!((w>0) && (h>0) && (IsShown() || forced)))
                 {
-                    width  = iWidth;
-                    height = iHeight;
-
-                    x = iRepaintX1;
-                    y = iRepaintY1;
-                    w = iRepaintX2-iRepaintX1;
-                    h = iRepaintY2-iRepaintY1;
-
-                    iRepaintX1 = 0;
-                    iRepaintY1 = 0;
-                    iRepaintX2 = 0;
-                    iRepaintY2 = 0;
-
-                    if (!((w>0) && (h>0) && (IsShown() || forced)))
-                    {
-                        return;
-                    }
-
-                    graphics = GetPaintGraphics();
+                    return;
                 }
 
-                graphics.reset(width, height);
-                graphics.setClip(x, y, w, h);
-
-                // On a non-full-screen (normal) mode Canvas the background
-                // image must be initially shown, if the value of the iHasBackgroundImage
-                // is true.
-                if (!iFullScreen && iHasBackgroundImage && !iIsGameCanvas)
-                {
-                    drawBackground(true);
-                }
-
-                if (iVideoOverlayEnabled)
-                {
-                    // Send op code to native canvas about the start of paint,
-                    // to enable overlays. This is done after 
-                    // drawBackground() so that framebuffer can be cleared
-                    // correctly on native side.
-                    iToolkit.canvasPaintStarted(getContentHandle());
-                }
-
-                paint(graphics);
+                graphics = GetPaintGraphics();
             }
 
+            graphics.reset(width, height);
+            graphics.setClip(x, y, w, h);
+
+            // On a non-full-screen (normal) mode Canvas the background
+            // image must be initially shown, if the value of the iHasBackgroundImage
+            // is true.
+            if (!iFullScreen && iHasBackgroundImage && !iIsGameCanvas)
+            {
+                drawBackground(true);
+            }
+            paint(graphics);
             flush(x, y, w, h);
         }
+
+
+
+
     }
 
     void flush(int aX, int aY, int aWidth, int aHeight)
--- a/javauis/lcdui_akn/javalcdui/javasrc/javax/microedition/lcdui/Image.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/javalcdui/javasrc/javax/microedition/lcdui/Image.java	Wed Oct 13 14:23:59 2010 +0300
@@ -325,15 +325,16 @@
 
     public static Image createRGBImage(int[] aRgb, int aWidth, int aHeight, boolean aProcessAlpha)
     {
+        if (aRgb.length < (aWidth * aHeight))
+        {
+            throw new ArrayIndexOutOfBoundsException();
+        }
+
         if (aWidth <= 0 || aHeight <= 0)
         {
             throw new IllegalArgumentException();
         }
 
-        if (aRgb.length < (aWidth * aHeight) || (aWidth * aHeight) < 0)
-        {
-            throw new ArrayIndexOutOfBoundsException();
-        }
         try
         {
             return new Image(aRgb, aWidth, aHeight, aProcessAlpha);
@@ -449,6 +450,14 @@
             start = (long)aOffset + (long)aScanLength*((long)aHeight-1);
         }
 
+        //
+        // aScanLength may be < 0, hence end < start is valid.
+        //
+        if ((start < 0) || (start > limit) || (end < 0) || (end > limit))
+        {
+            throw new ArrayIndexOutOfBoundsException("destination range exceeds array bounds");
+        }
+
         final int width  = iWidth;
         final int height = iHeight;
 
@@ -469,15 +478,6 @@
             final String info = "args=("+aX+','+aY+','+aWidth+','+aHeight+"), rect=("+sx1 +','+sy1+','+sx2+','+sy2+"), image width="+width+",height="+height;
             throw new IllegalArgumentException("getRGB: Exceeding bounds of source image: " + info);
         }
-
-        //
-        // aScanLength may be < 0, hence end < start is valid.
-        //
-        if ((start < 0) || (start > limit) || (end < 0) || (end > limit))
-        {
-            throw new ArrayIndexOutOfBoundsException("destination range exceeds array bounds");
-        }
-
         final int scanLength = Math.abs(aScanLength);
 
         if (scanLength < aWidth)
--- a/javauis/lcdui_akn/javalcdui/javasrc/javax/microedition/lcdui/Toolkit.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/javalcdui/javasrc/javax/microedition/lcdui/Toolkit.java	Wed Oct 13 14:23:59 2010 +0300
@@ -151,10 +151,6 @@
     // Op code indicating M3G content start
     private static final int M3G_CONTENT_START = 2;
 
-    // Used for notifying native canvas about start of paint method,
-    // needed by video overlay implementation
-    private static final int PAINT_START = 3;
-
     Toolkit(ToolkitInvoker aInvoker)
     {
         iInvoker     = aInvoker;
@@ -693,17 +689,6 @@
         }
     }
 
-    void canvasPaintStarted(int aDrawable)
-    {
-        if (checkFlags(FLAG_NGA))
-        {
-            synchronized (iBuffer)
-            {
-                iBuffer.write(aDrawable, PAINT_START);
-            }
-        }
-    }
-
     /**
      JSR 135 Support
      */
--- a/javauis/lcdui_akn/javalcdui/javasrc/javax/microedition/lcdui/game/LayerManager.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/javalcdui/javasrc/javax/microedition/lcdui/game/LayerManager.java	Wed Oct 13 14:23:59 2010 +0300
@@ -108,7 +108,7 @@
         final int transY = aGraphics.getTranslateY();
 
         // intersect Graphics clip region with View Window
-        if ((iViewWidth<Integer.MAX_VALUE) && (iViewHeight<Integer.MAX_VALUE))
+        if ((iViewWidth<Integer.MAX_VALUE) && (iViewWidth<Integer.MAX_VALUE))
             aGraphics.clipRect(aX,aY,iViewWidth,iViewHeight);
 
         // translate the graphics object so the point (aX,aY) corresponds to
--- a/javauis/lcdui_akn/javalcdui/src/CMIDEnv.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/javalcdui/src/CMIDEnv.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -58,13 +58,7 @@
                                      LcduiMidletAttributeValues::KUIEnhCanvasBackground);
 #ifdef RD_JAVA_NGA_ENABLED
     InitHardwareStatusL();
-
-    iVideoOverlayEnabled = MidletAttributeContainsVal(
-                                    LcduiMidletAttributes::KAttribUIEnhancement,
-                                    LcduiMidletAttributeValues::KUIEnhVideoOverlay);
 #endif // RD_JAVA_NGA_ENABLED
-    
-    iMMAPILock.CreateLocal();
 }
 
 CMIDEnv::~CMIDEnv()
@@ -77,7 +71,6 @@
     delete iKeyTranslator;
     iObservers.Close();
     iCanvasData.iLock.Close();
-    iMMAPILock.Close();
 }
 
 void CMIDEnv::SetUtils(MMIDUtils* aUtils)
@@ -319,16 +312,6 @@
     }
 }
 
-TBool CMIDEnv::VideoOverlayEnabled() const
-{
-    return iVideoOverlayEnabled;
-}
-
-RCriticalSection& CMIDEnv::GetMMAPILock()
-{
-    return iMMAPILock;
-}
-
 #ifdef RD_JAVA_NGA_ENABLED
 void CMIDEnv::HandleFullOrPartialForegroundL(TBool aForeground)
 {
--- a/javauis/lcdui_akn/javalcdui/src/CMIDToolkit.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/javalcdui/src/CMIDToolkit.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -598,39 +598,16 @@
     if (appUi && appUi->hasStartScreen())
     {
         MMIDComponent* content = iCurrentDisplayable ? iCurrentDisplayable->Component() : NULL;
-
-        TBool isCanvas = EFalse;
-        TBool isCanvasReadyToBlit = EFalse;
-        TBool isFullscreenUI = ETrue;
-        if (content)
-        {
-            MMIDComponent::TType contentType = content->Type();
+        MMIDCanvas* canvas = GetCurrentCanvas();
+        TBool isCanvasReadyToBlit = canvas ? canvas->ReadyToBlit() : EFalse;
 
-            if (contentType == MMIDComponent::ECanvas)
-            {
-                isCanvas = ETrue;
-                MMIDCanvas* canvas = static_cast<MMIDCanvas*>(content);
-                isCanvasReadyToBlit = canvas->ReadyToBlit();
-            }
-            else
-            {
-                if (contentType == MMIDComponent::EAlert ||
-                        (contentType == MMIDComponent::ETextBox &&
-                         iCurrentDisplayable->IsPopupTextBox()))
-                {
-                    isFullscreenUI = EFalse;
-                }
-            }
-        }
-
-        if (!content || !isCanvas || isCanvasReadyToBlit)
+        if (!content || !canvas || isCanvasReadyToBlit)
         {
             if (iCurrentDisplayable)
             {
                 iCurrentDisplayable->DrawNow();
             }
-
-            appUi->stopStartScreen(isFullscreenUI);
+            appUi->stopStartScreen();
         }
     }
 }
--- a/javauis/lcdui_akn/javalcdui/src/Canvas.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/javalcdui/src/Canvas.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -39,7 +39,6 @@
     TSize iSize;
     TBool iFrameBuffer;
     TBool iHasBackground;
-    TBool iVideoOverlayEnabled;
 };
 
 LOCAL_C void CreateCanvasL(CMIDToolkit* aToolkit, TCanvasCreate* aCreate, TCanvasAttribs* aAttribs)
@@ -59,7 +58,7 @@
 
     // Check from a MMIDEnv object if the canvas object has a background or not
     aAttribs->iHasBackground = aToolkit->Env()->CanvasHasBackground(*canvas);
-    aAttribs->iVideoOverlayEnabled = aToolkit->Env()->VideoOverlayEnabled();
+
 }
 
 JNIEXPORT jint JNICALL Java_javax_microedition_lcdui_Canvas__1create
@@ -78,12 +77,10 @@
     create.iDisplayable=aDisplayable;
     create.iRef= aJni->NewWeakGlobalRef(aCanvas);
     create.iIsGameCanvas = aIsGameCanvas;
-
     TCanvasAttribs attribs;
     attribs.iFrameBuffer=EFalse;
+
     attribs.iHasBackground = EFalse;
-    attribs.iVideoOverlayEnabled = EFalse;
-
     jint error;
     if (create.iRef)
     {
@@ -100,15 +97,14 @@
         aJni->DeleteWeakGlobalRef(create.iRef);
     }
 
-    ASSERT(aJni->GetArrayLength(aAttribsReturn) == 6);
-    jint attribsArray[6];
+    ASSERT(aJni->GetArrayLength(aAttribsReturn) == 5);
+    jint attribsArray[5];
     attribsArray[0] = static_cast< jint >(attribs.iHandle);
     attribsArray[1] = static_cast< jint >(attribs.iSize.iWidth);
     attribsArray[2] = static_cast< jint >(attribs.iSize.iHeight);
     attribsArray[3] = static_cast< jint >(attribs.iFrameBuffer);
     attribsArray[4] = static_cast< jint >(attribs.iHasBackground);
-    attribsArray[5] = static_cast< jint >(attribs.iVideoOverlayEnabled);
-    aJni->SetIntArrayRegion(aAttribsReturn, 0, 6, &attribsArray[0]);
+    aJni->SetIntArrayRegion(aAttribsReturn, 0, 5, &attribsArray[0]);
 
     LCDUI_DEBUG_INT2("Canvas_create(%x == %x)", handle, (TInt)MIDUnhandObject<MMIDCanvas>(handle));
     return error;
--- a/javauis/lcdui_akn/lcdgd/build/lcdc16ma.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdgd/build/lcdc16ma.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -35,11 +35,12 @@
 OPTION ARMCC -Otime
 ALWAYS_BUILD_AS_ARM
 
+USERINCLUDE		../inc
+SYSTEMINCLUDE	../inc
+SYSTEMINCLUDE	/epoc32/include/ecom
+SYSTEMINCLUDE	../../../../inc
 APP_LAYER_SYSTEMINCLUDE
 
-USERINCLUDE		../inc
-USERINCLUDE	../../../../inc
-
 SOURCEPATH	../src
 SOURCE		lcdc16ma.cpp
 SOURCE		lcdbitblt.cpp
@@ -54,11 +55,6 @@
 START RESOURCE 10208168.RSS
 TARGET LCDC16MA.RSC
 END
-SOURCEPATH		../resource
-START RESOURCE 10208168_iad.RSS
-TARGET LCDC16MA.RSC
-TARGETPATH resource/java/iad
-END
 
 
 LIBRARY	euser.lib
--- a/javauis/lcdui_akn/lcdgd/build/lcdc16mu.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdgd/build/lcdc16mu.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -35,11 +35,12 @@
 OPTION ARMCC -Otime
 ALWAYS_BUILD_AS_ARM
 
+USERINCLUDE		../inc
+SYSTEMINCLUDE	../inc
+SYSTEMINCLUDE	/epoc32/include/ecom
+SYSTEMINCLUDE	../../../../inc
 APP_LAYER_SYSTEMINCLUDE
 
-USERINCLUDE ../inc
-USERINCLUDE	../../../../inc
-
 SOURCEPATH	../src
 SOURCE		lcdc16mu.cpp
 SOURCE		lcdbitblt.cpp
@@ -54,11 +55,6 @@
 START RESOURCE 10208166.RSS
 TARGET LCDC16MU.RSC
 END
-SOURCEPATH		../resource
-START RESOURCE 10208166_iad.RSS
-TARGET LCDC16MU.RSC
-TARGETPATH resource/java/iad
-END
 
 
 LIBRARY	euser.lib
--- a/javauis/lcdui_akn/lcdgd/build/lcdc4k.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdgd/build/lcdc4k.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -36,11 +36,12 @@
 OPTION ARMCC -Otime
 ALWAYS_BUILD_AS_ARM
 
+USERINCLUDE		../inc
+SYSTEMINCLUDE	../inc
+SYSTEMINCLUDE	../../../../inc
+SYSTEMINCLUDE	/epoc32/include/ecom
 APP_LAYER_SYSTEMINCLUDE
 
-USERINCLUDE ../inc
-USERINCLUDE	../../../../inc
-
 SOURCEPATH	../src
 SOURCE		lcdc4k.cpp
 SOURCE		lcd16bpp.cpp
@@ -55,10 +56,6 @@
 START RESOURCE 10208164.RSS
 TARGET LCDC4K.RSC
 END
-START RESOURCE 10208164_iad.RSS
-TARGET LCDC4K.RSC
-TARGETPATH resource/java/iad
-END
 
 
 LIBRARY	euser.lib
--- a/javauis/lcdui_akn/lcdgd/build/lcdc64k.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdgd/build/lcdc64k.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -35,11 +35,11 @@
 OPTION ARMCC -Otime
 ALWAYS_BUILD_AS_ARM
 
+USERINCLUDE		../inc
+SYSTEMINCLUDE	/epoc32/include/ecom
+SYSTEMINCLUDE	../../../../inc
 APP_LAYER_SYSTEMINCLUDE
 
-USERINCLUDE ../inc
-USERINCLUDE	../../../../inc
-
 SOURCEPATH	../src
 SOURCE		lcdc64k.cpp
 SOURCE		lcd16bpp.cpp
@@ -55,10 +55,6 @@
 START RESOURCE 10208162.RSS
 TARGET LCDC64K.RSC
 END
-START RESOURCE 10208162_iad.RSS
-TARGET LCDC64K.RSC
-TARGETPATH resource/java/iad
-END
 
 LIBRARY	euser.lib
 LIBRARY	gdi.lib
--- a/javauis/lcdui_akn/lcdgd/build/lcdgdrv.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdgd/build/lcdgdrv.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -31,6 +31,8 @@
 APP_LAYER_SYSTEMINCLUDE
 
 USERINCLUDE		../inc
+SYSTEMINCLUDE	../inc
+SYSTEMINCLUDE	/epoc32/include
 
 SOURCEPATH	../src
 SOURCE		lcdgdrv.cpp
--- a/javauis/lcdui_akn/lcdgd/build/lcdgdrvi.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdgd/build/lcdgdrvi.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -34,10 +34,10 @@
 OPTION ARMCC -Otime
 ALWAYS_BUILD_AS_ARM
 
+USERINCLUDE		../inc
+SYSTEMINCLUDE	../inc
 APP_LAYER_SYSTEMINCLUDE
 
-USERINCLUDE		../inc
-
 SOURCEPATH	../src
 SOURCE		lcdgdrvi.cpp
 SOURCE		lcdtransform.cpp
--- a/javauis/lcdui_akn/lcdgd/resource/10208162.RSS	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdgd/resource/10208162.RSS	Wed Oct 13 14:23:59 2010 +0300
@@ -19,13 +19,9 @@
 //
 // Color64K plugin registration resource file.
 //
-#include <ecom/registryinfov2.rh>
+#include <registryinfov2.rh>
 #include "lcdgd.hrh"
 
-#ifndef ECOM_VERSION_NO
-#define ECOM_VERSION_NO 2
-#endif
-
 RESOURCE REGISTRY_INFO r_registry
     {
     resource_format_version = RESOURCE_FORMAT_VERSION_2;
@@ -40,7 +36,7 @@
                 IMPLEMENTATION_INFO
                     {
                     implementation_uid = LCDGD_COLOR64K_IMPLEMENTATION_UID;
-                    version_no   = ECOM_VERSION_NO;
+                    version_no   = 2;
                     display_name = "J2ME_COLOR64K_DRIVER";
                     default_data = LCDGD_COLOR64K_DRIVER_ID_STR;
                     opaque_data  = "0;";
--- a/javauis/lcdui_akn/lcdgd/resource/10208162_iad.RSS	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/*
-* Copyright (c) 2010 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:  ECOM resource definition for IAD
-*
-*/
-
-//  Version for IAD
-#define ECOM_VERSION_NO 3
-
-//  Include actual rss
-#include "10208162.rss"
-
--- a/javauis/lcdui_akn/lcdgd/resource/10208164.RSS	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdgd/resource/10208164.RSS	Wed Oct 13 14:23:59 2010 +0300
@@ -19,13 +19,9 @@
 //
 // Color4K plugin registration resource file.
 //
-#include <ecom/registryinfov2.rh>
+#include <registryinfov2.rh>
 #include "lcdgd.hrh"
 
-#ifndef ECOM_VERSION_NO
-#define ECOM_VERSION_NO 2
-#endif
-
 RESOURCE REGISTRY_INFO r_registry
     {
     resource_format_version = RESOURCE_FORMAT_VERSION_2;
@@ -40,7 +36,7 @@
                 IMPLEMENTATION_INFO
                     {
                     implementation_uid = LCDGD_COLOR4K_IMPLEMENTATION_UID;
-                    version_no   = ECOM_VERSION_NO;
+                    version_no   = 2;
                     display_name = "J2ME_COLOR4K_DRIVER";
                     default_data = LCDGD_COLOR4K_DRIVER_ID_STR;
                     opaque_data  = "0;";
--- a/javauis/lcdui_akn/lcdgd/resource/10208164_iad.RSS	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/*
-* Copyright (c) 2010 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:  ECOM resource definition for IAD
-*
-*/
-
-//  Version for IAD
-#define ECOM_VERSION_NO 3
-
-//  Include actual rss
-#include "10208164.rss"
-
--- a/javauis/lcdui_akn/lcdgd/resource/10208166.RSS	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdgd/resource/10208166.RSS	Wed Oct 13 14:23:59 2010 +0300
@@ -19,13 +19,9 @@
 //
 // Color16MU plugin registration resource file.
 //
-#include <ecom/registryinfov2.rh>
+#include <registryinfov2.rh>
 #include "lcdgd.hrh"
 
-#ifndef ECOM_VERSION_NO
-#define ECOM_VERSION_NO 2
-#endif
-
 RESOURCE REGISTRY_INFO r_registry
     {
     resource_format_version = RESOURCE_FORMAT_VERSION_2;
@@ -40,7 +36,7 @@
                 IMPLEMENTATION_INFO
                     {
                     implementation_uid = LCDGD_COLOR16MU_IMPLEMENTATION_UID;
-                    version_no   = ECOM_VERSION_NO;
+                    version_no   = 2;
                     display_name = "J2ME_COLOR16MU_DRIVER";
                     default_data = LCDGD_COLOR16MU_DRIVER_ID_STR;
                     opaque_data  = "0;";
--- a/javauis/lcdui_akn/lcdgd/resource/10208166_iad.RSS	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/*
-* Copyright (c) 2010 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:  ECOM resource definition for IAD
-*
-*/
-
-//  Version for IAD
-#define ECOM_VERSION_NO 3
-
-//  Include actual rss
-#include "10208166.rss"
-
--- a/javauis/lcdui_akn/lcdgd/resource/10208168.RSS	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdgd/resource/10208168.RSS	Wed Oct 13 14:23:59 2010 +0300
@@ -19,13 +19,9 @@
 //
 // Color16MA plugin registration resource file.
 //
-#include <ecom/registryinfov2.rh>
+#include <registryinfov2.rh>
 #include "lcdgd.hrh"
 
-#ifndef ECOM_VERSION_NO
-#define ECOM_VERSION_NO 2
-#endif
-
 RESOURCE REGISTRY_INFO r_registry
     {
     resource_format_version = RESOURCE_FORMAT_VERSION_2;
@@ -40,7 +36,7 @@
                 IMPLEMENTATION_INFO
                     {
                     implementation_uid = LCDGD_COLOR16MA_IMPLEMENTATION_UID;
-                    version_no   = ECOM_VERSION_NO;
+                    version_no   = 2;
                     display_name = "J2ME_COLOR16MA_DRIVER";
                     default_data = LCDGD_COLOR16MA_DRIVER_ID_STR;
                     opaque_data  = "0;";
--- a/javauis/lcdui_akn/lcdgd/resource/10208168_iad.RSS	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/*
-* Copyright (c) 2010 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:  ECOM resource definition for IAD
-*
-*/
-
-//  Version for IAD
-#define ECOM_VERSION_NO 3
-
-//  Include actual rss
-#include "10208168.rss"
-
--- a/javauis/lcdui_akn/lcdgd/src/lcdc16ma.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdgd/src/lcdc16ma.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -16,7 +16,7 @@
 */
 
 #include <graphicsaccelerator.h>
-#include <ecom/implementationproxy.h>
+#include <implementationproxy.h>
 
 #include "lcdgdrvif.h"
 #include "lcdtransform.h"
--- a/javauis/lcdui_akn/lcdgd/src/lcdc16mu.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdgd/src/lcdc16mu.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -16,7 +16,7 @@
 */
 
 #include <graphicsaccelerator.h>
-#include <ecom/implementationproxy.h>
+#include <implementationproxy.h>
 
 #include "lcdgdrvif.h"
 #include "lcdtransform.h"
--- a/javauis/lcdui_akn/lcdgd/src/lcdc4k.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdgd/src/lcdc4k.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -16,7 +16,7 @@
 */
 
 #include <graphicsaccelerator.h>
-#include <ecom/implementationproxy.h>
+#include <implementationproxy.h>
 #include <j2me/jdebug.h>
 
 
--- a/javauis/lcdui_akn/lcdgd/src/lcdc64k.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdgd/src/lcdc64k.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -16,7 +16,7 @@
 */
 
 #include <graphicsaccelerator.h>
-#include <ecom/implementationproxy.h>
+#include <implementationproxy.h>
 #include <j2me/jdebug.h>
 
 
--- a/javauis/lcdui_akn/lcdgr/build/lcdgr.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdgr/build/lcdgr.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -78,16 +78,17 @@
 
 APP_LAYER_SYSTEMINCLUDE
 
-USERINCLUDE   ../inc
-USERINCLUDE   ../../inc
-USERINCLUDE   ../../../inc
-USERINCLUDE   ../../../../inc
+SYSTEMINCLUDE   ../inc
+
+SYSTEMINCLUDE   ../../inc
+SYSTEMINCLUDE   ../../../inc
+SYSTEMINCLUDE   ../../../../inc
 
 LIBRARY		avkon.lib
 LIBRARY		gdi.lib
 LIBRARY		bitgdi.lib
 LIBRARY		fbscli.lib
-LIBRARY		imageconversion.lib
+LIBRARY		ImageConversion.lib
 LIBRARY		lcdgdrv.lib
 LIBRARY		bafl.lib
 library		efsrv.lib
--- a/javauis/lcdui_akn/lcdgr/src/CMIDGraphics.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdgr/src/CMIDGraphics.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -134,12 +134,6 @@
         // need to be calculated.
         eglAvailable = ETrue;
     }
-    
-    // Use premultiplied colors in target bitmap if
-    // EGL surface is in use or Canvas has video overlay active.
-    TBool premultiplied = eglAvailable || 
-            (iCanvasTarget && iCanvasTarget->IsVideoOverlayActive());
-            
 #else // !RD_JAVA_NGA_ENABLED
 TBool CMIDGraphics::ProcessL(
     const TMIDBufferOp*& aRead, const TMIDBufferOp* aEnd,
@@ -356,7 +350,7 @@
 #ifndef RD_JAVA_NGA_ENABLED
             graphics.DrawImage(image, drawImage->iPoint, drawImage->iAnchor);
 #else // RD_JAVA_NGA_ENABLED
-            graphics.DrawImage(image, drawImage->iPoint, drawImage->iAnchor, premultiplied);
+            graphics.DrawImage(image, drawImage->iPoint, drawImage->iAnchor, eglAvailable);
             if (eglAvailable)
             {
                 UpdateRect(CalcDstRect(
@@ -384,7 +378,7 @@
             graphics.DrawRegion(
                 image, drawRegion->iSrcPosition, drawRegion->iSrcSize,
                 drawRegion->iTransform, drawRegion->iDstPoint,
-                drawRegion->iAnchor, premultiplied);
+                drawRegion->iAnchor, eglAvailable);
             if (eglAvailable)
             {
                 UpdateRect(CalcDstRect(drawRegion->iDstPoint, drawRegion->iSrcSize,
@@ -501,12 +495,6 @@
         premultiplied = ETrue;
         UpdateRect(aRect);
     }
-    
-    // Video overlay support
-    if (iCanvasTarget && iCanvasTarget->IsVideoOverlayActive())
-    {
-        premultiplied = ETrue;
-    }
 #endif
 
     err = iGraphics->DrawPixels(aType, aAddress, aLength, aScanLength,
--- a/javauis/lcdui_akn/lcdui/build/lcdui.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/build/lcdui.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -112,13 +112,14 @@
 TARGETPATH private/10003a3f/apps
 END
 
-USERINCLUDE   ../inc
-USERINCLUDE   ../../inc
-USERINCLUDE   ../../../inc
-USERINCLUDE   ../../../../inc
-USERINCLUDE   ../../../../inc/j2me
-USERINCLUDE   ../../../../inc/j2me/midp2/data
-USERINCLUDE   ../../../../inc/j2me/midp2/security
+SYSTEMINCLUDE     ../inc
+
+SYSTEMINCLUDE   ../../inc
+SYSTEMINCLUDE   ../../../inc
+SYSTEMINCLUDE   ../../../../inc
+SYSTEMINCLUDE   ../../../../inc/j2me
+SYSTEMINCLUDE   ../../../../inc/j2me/midp2/data
+SYSTEMINCLUDE   ../../../../inc/j2me/midp2/security
 
 // LCDUI had dependencies to apps layer
 
@@ -160,7 +161,7 @@
 
 LIBRARY  ConnMon.lib  // for network indicator on the fullcanvas
 LIBRARY  etel3rdparty.lib // for call indicator on the fullcanvas
-LIBRARY  centralrepository.lib
+LIBRARY  CentralRepository.lib
 
 LIBRARY  CommonEngine.lib // shared data stuff for form
 LIBRARY  javalegacyutils.lib
@@ -211,7 +212,6 @@
 LIBRARY libEGL.lib
 LIBRARY libGLESv1_CM.lib
 LIBRARY alfdecoderserverclient.lib
-LIBRARY	goommonitor.lib
 #endif // RD_JAVA_NGA_ENABLED
 
 NOSTRICTDEF
--- a/javauis/lcdui_akn/lcdui/inc/CMIDAppUi.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/inc/CMIDAppUi.h	Wed Oct 13 14:23:59 2010 +0300
@@ -66,14 +66,6 @@
     MMIDComponentFactory* CreateComponentFactoryL();
     // This will be called from Toolkit before it deletes CMIDEnv
     void SetEnv(MMIDEnv* aEnv);
-#ifdef RD_JAVA_NGA_ENABLED
-    /**
-     * Handle graphics out of memory event sent by the GOOM module.
-     * This method releases graphics memory and informs the GOOM about this.
-     * @return <code>ETrue</code> if the event was handled properly.
-     */
-    TBool HandleGoomMemoryLowEventL();
-#endif // RD_JAVA_NGA_ENABLED
 
 private: // data
     MMIDObserver* iObserver;
--- a/javauis/lcdui_akn/lcdui/inc/CMIDCanvas.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/inc/CMIDCanvas.h	Wed Oct 13 14:23:59 2010 +0300
@@ -478,7 +478,7 @@
      * @since  S60 v3.0
       * @param  aRect Content bounds.
      */
-    void MdcAddMMAPIContentBounds(const TRect& aRect);
+    void MdcAddContentBounds(const TRect& aRect);
 
     /**
      * From MDirectContainer.
@@ -487,7 +487,7 @@
      * @since  S60 v3.2
      * @param  aRect Content bound to be removed.
      */
-    void MdcRemoveMMAPIContentBounds(const TRect& aRect);
+    void MdcRemoveContentBounds(const TRect& aRect);
 
     /**
      * From MDirectContainer.
@@ -1211,11 +1211,6 @@
      * @see MMIDCanvas::MidletExiting()
      */
     void MidletExiting();
-
-    /**
-     * @see MMIDCanvas::IsVideoOverlayActive()
-     */
-    TBool IsVideoOverlayActive();
 private:
     /**
      * Blits pbuffer surface scaled to window surface
@@ -1405,14 +1400,6 @@
      * @since S60 9.2
      */
     void PostForcedPaint();
-    
-    /**
-     * Used only in video overlay case.
-     * Sets frame buffer alpha channel back to 0xFF after MMAPI content area have been
-     * removed from canvas. Must be called only in LCDUI thread.
-     * @since S60 9.2
-     */
-    void CheckDirectContentUpdated();
 #endif // RD_JAVA_NGA_ENABLED
 
 private: // data
@@ -1777,7 +1764,7 @@
     TUint8* iTexturePixels;
 
     /**
-     * OpenGL coordinate arrays used for rendering filled rectangles
+     * OpenGL coordinate arrays used fo r rendering filled rectangles
      */
     GLshort* iVertexArray;
     GLubyte* iTriangleStrip;
@@ -1786,13 +1773,6 @@
      * ETrue, when midlet is exiting and this canvas is the current displayable
      */
     TBool iExiting;
-    
-    /**
-     * Indicates if MMAPI content areas have been updated.
-     * This flag is accessed from MMAPI and LCDUI threads.
-     */
-    TBool iMMAPIAreaUpdated;
-
 #endif // RD_JAVA_NGA_ENABLED
 
     /**
--- a/javauis/lcdui_akn/lcdui/inc/CMIDCanvasKeypad.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/inc/CMIDCanvasKeypad.h	Wed Oct 13 14:23:59 2010 +0300
@@ -22,6 +22,7 @@
 #include <coecntrl.h>
 #include <gdi.h>
 #include <lcdui.h>
+#include <AknsBasicBackgroundControlContext.h> //skin
 
 class CAknButton;
 class CMIDDisplayable;
@@ -170,7 +171,7 @@
     *
     * @since S60 5.0
     */
-    void InitializeKeysL();
+    void InitializeKeys();
 
     /**
     * Sets key event struct for each button.
@@ -367,6 +368,11 @@
     static TInt TapTimerCallbackL(TAny* aThis);
 
     /**
+    * Basic Background Control Context
+    */
+    MAknsControlContext* iBackgroundCC;
+
+    /**
      * Tap counter with timer interval KTapTimerExpiryInterval
      */
     void HandleTapTimerEventL();
--- a/javauis/lcdui_akn/lcdui/inc/CMIDChoiceGroupControl.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/inc/CMIDChoiceGroupControl.h	Wed Oct 13 14:23:59 2010 +0300
@@ -166,9 +166,6 @@
     virtual void HandleChoiceGroupModelEventL(
         CMIDChoiceGroupModel* aModel,
         TChoiceGroupModelEvent aEvent);
-#ifdef RD_JAVA_S60_RELEASE_9_2
-    virtual TBool IsControlOnFormHighlighted();
-#endif // RD_JAVA_S60_RELEASE_9_2
 
 public: // from MEikListBoxObserver
     virtual void HandleListBoxEventL(CEikListBox* aControl, TListBoxEvent aEventType);
@@ -236,9 +233,6 @@
      */
     void SingleClickDisableHighlightL(TBool aDisable);
 
-    CMIDControlItem* ControlItem() const;
-    CMIDChoiceGroupListBox* InnerListBoxControl() const;
-    CMIDChoiceGroupModel* InnerListBoxModel() const;
 #endif // RD_JAVA_S60_RELEASE_9_2    
 
 #ifdef RD_TACTILE_FEEDBACK
--- a/javauis/lcdui_akn/lcdui/inc/CMIDChoiceGroupItem.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/inc/CMIDChoiceGroupItem.h	Wed Oct 13 14:23:59 2010 +0300
@@ -149,11 +149,6 @@
 public:
     void PostPendingUpEventL();
     TBool LongTapDetected();
-
-    /**
-     * Overrides function from CMIDControlItem
-     */
-    void SetHighlight(const TBool aHighlight);
 #endif // RD_JAVA_S60_RELEASE_9_2
 
 private:
--- a/javauis/lcdui_akn/lcdui/inc/CMIDChoiceGroupListBox.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/inc/CMIDChoiceGroupListBox.h	Wed Oct 13 14:23:59 2010 +0300
@@ -83,9 +83,6 @@
      */
     void SingleClickDisableHighlightL(TBool aDisable);
     void SetHighlight(TBool aVisible);
-    TBool GetHighlight();
-
-    void UpdateColors();
 
 #endif // RD_JAVA_S60_RELEASE_9_2
 
--- a/javauis/lcdui_akn/lcdui/inc/CMIDChoiceGroupModel.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/inc/CMIDChoiceGroupModel.h	Wed Oct 13 14:23:59 2010 +0300
@@ -53,9 +53,6 @@
     virtual void HandleChoiceGroupModelEventL(
         CMIDChoiceGroupModel* aModel,
         TChoiceGroupModelEvent aEvent) = 0;
-#ifdef RD_JAVA_S60_RELEASE_9_2
-    virtual TBool IsControlOnFormHighlighted() = 0;
-#endif // RD_JAVA_S60_RELEASE_9_2
 };
 
 
@@ -162,11 +159,7 @@
     // NOTE that the indices in the array and the item strings should
     // be synchronised. The selection icon is always at index
     // 0 (selected) and 1 (not selected)
-#ifdef RD_JAVA_S60_RELEASE_9_2
-    void UpdateIconArrayL(TBool aHighlighted);
-#else
     void UpdateIconArrayL();
-#endif // RD_JAVA_S60_RELEASE_9_2
 
     // Returns true if there is at least one item that has icon
     TBool HasIcons() const;
@@ -190,13 +183,6 @@
     CGulIcon* iIconSelected;
     CGulIcon* iIconNotSelected;
 
-#ifdef RD_JAVA_S60_RELEASE_9_2
-    // The same icons as above, but used when whole ChoiceGroup
-    // gets highlighted on Form
-    CGulIcon* iIconSelectedHighlighted;
-    CGulIcon* iIconNotSelectedHighlighted;
-#endif // RD_JAVA_S60_RELEASE_9_2
-
     // Dummy icon for elements that have no icon
     CGulIcon* iIconDummy;
 
--- a/javauis/lcdui_akn/lcdui/inc/CMIDCustomItem.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/inc/CMIDCustomItem.h	Wed Oct 13 14:23:59 2010 +0300
@@ -228,8 +228,8 @@
     void MdcItemContentRect(TRect& aContentRect, TRect& aScreenRect) const;
     void MdcHandlePointerEventL(TPointerEvent& aPointerEvent);
     void MdcFlushContainer(const TRect& aRect);
-    void MdcAddMMAPIContentBounds(const TRect& aRect);
-    void MdcRemoveMMAPIContentBounds(const TRect& aRect);
+    void MdcAddContentBounds(const TRect& aRect);
+    void MdcRemoveContentBounds(const TRect& aRect);
     void MdcGetDSAResources(MUiEventConsumer& aConsumer);
     void MdcGetUICallback(MUiEventConsumer& aConsumer, TInt aCallbackId);
     
--- a/javauis/lcdui_akn/lcdui/inc/CMIDDisplayable.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/inc/CMIDDisplayable.h	Wed Oct 13 14:23:59 2010 +0300
@@ -165,13 +165,10 @@
     void InitializeCbasL();
     void SetCba(CEikButtonGroupContainer* aCba);
     TBool ShowOkOptionsMenuL();
-    TBool ShowScreenOrHelpOptionsMenuL();
     TInt NumCommandsForOkOptionsMenu() const;
-    TInt NumCommandsForScreenOrHelpOptionsMenu() const;
     TInt GetHighestPriorityScreenOrHelpCommand() const;
     void SetItemCommandList(CMIDCommandList* aList, CMIDCommand* aMSKCommand);
     void SetMSKCommand(CMIDCommand* aMSKCommand);
-
     /**
      * Stores select command to Displayable
      * @param aSelectCommand a command used in MSK and in menu
@@ -267,6 +264,12 @@
     void RemoveDirectContentArea(const TRect& aRect);
 
     /**
+    Checks if there were some direct content area added
+    @return ETrue if there no DC Area has been added
+    */
+    TBool NoDirectContentAreaDefined();
+
+    /**
      * Sets popup style TextBox boolean value. Called by CMIDTextBoxDialogControl when
      * TextBox presentation is pop-up.
      *
@@ -339,19 +342,6 @@
      */
     void ReleaseOrientation();
 
-#ifdef RD_JAVA_NGA_ENABLED    
-    /**
-     * Gets the direct content areas that
-     * have been added to this displayable.
-     */
-    void GetDirectContentsRegion(RRegion& region) const;
-
-    /**
-     * Returns the number of direct content areas currently added to this displayable.
-     */
-    TInt DirectContentsCount() const;
-#endif
-
 private:
     // Construction and destruction
     CMIDDisplayable(MMIDEnv& aEnv,CMIDUIManager& aUIManager);
@@ -372,7 +362,7 @@
     void HandleStandardCommandL(const TCommandEntry& aCmdEntry);
     void HandleItemCommandL(const TCommandEntry& aCmdEntry);
     TInt GetInternalCommandIdFor(CMIDCommand* aCommand) const;
-    void GetOkOptionsMenuCommandsL(RPointerArray<CMIDCommand>& aCommands) const;
+    void GetOkOptionsMenuCommands(RPointerArray<CMIDCommand>& aCommands) const;
     void ResetSoftKeysAndCommands(const RArray<CMIDCommandList*>& aLists);
 
     // Visual layouting and updating
@@ -488,7 +478,7 @@
      * If content control is CMIDCanvas, returns pointer to it, NULL otherwise.
      * @since S60 9.2
      */
-    CMIDCanvas* GetContentCanvas() const;
+    CMIDCanvas* GetContentCanvas();
 
 private:
     CMIDAppUi* iAppUi;
--- a/javauis/lcdui_akn/lcdui/inc/CMIDForm.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/inc/CMIDForm.h	Wed Oct 13 14:23:59 2010 +0300
@@ -393,9 +393,9 @@
     static TBool IsStringItemButton(CMIDControlItem& aControlItem);
     static TBool IsCustomItem(CMIDControlItem& aControlItem);
     static TBool IsGaugeItem(CMIDControlItem& aControlItem);
+    static TBool IsInteractiveGaugeItem(CMIDControlItem& aControlItem);
     static TBool IsTextFieldItem(CMIDControlItem& aControlItem);
     static TBool IsChoiceGroup(CMIDControlItem& aControlItem);
-    static TBool IsPopupChoiceGroup(CMIDControlItem& aControlItem);
     static TBool IsDateField(CMIDControlItem& aControlItem);
     static TBool IsLabelContainerItem(CMIDControlItem& aControlItem);
     static TBool IsSpacerUsedForFormatting(CMIDControlItem& aControlItem);
@@ -404,8 +404,6 @@
 #ifdef RD_JAVA_S60_RELEASE_9_2
 public:
     void PostPendingUpEventL();
-    TInt FormRowIndex(CMIDFormRow* aRow);
-    CMIDFormRow* FormRow(TInt aIndex);
 #endif // RD_JAVA_S60_RELEASE_9_2
 
 private:
@@ -596,6 +594,8 @@
     // Storing index to last pointed control
     // before Form layout is performed
     TInt iLastPointedControl;
+
+    TInt iLastGaugeValue;
 };
 
 inline void CMIDForm::Dispose()
--- a/javauis/lcdui_akn/lcdui/inc/CMIDFormRow.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/inc/CMIDFormRow.h	Wed Oct 13 14:23:59 2010 +0300
@@ -44,9 +44,6 @@
 public: // From CCoeControl
     TInt CountComponentControls() const;
     CCoeControl* ComponentControl(TInt aIndex) const;
-#ifdef RD_JAVA_S60_RELEASE_9_2    
-    void Draw(const TRect& /*aRect*/) const;
-#endif // RD_JAVA_S60_RELEASE_9_2    
     virtual void SizeChanged();
     virtual TSize MinimumSize();
 
@@ -73,13 +70,6 @@
 private:
     CMIDFormRow(CMIDForm& aForm);
     void ConstructL();
-#ifdef RD_JAVA_S60_RELEASE_9_2
-    /**
-     * Checks whether the separator line must be drawn
-     * above this form row.
-     */
-    void SetSeparator();
-#endif // RD_JAVA_S60_RELEASE_9_2
 
 private:
     CMIDForm& iForm;
@@ -87,13 +77,6 @@
     RArray<CMIDControlItem*> iItems;
     TSize  iEmptyRowSize; // size used for empty rows
     TInt iCurrentWidth;             // used when adding items to the row. Keeps track of the total width of items added to row
-#ifdef RD_JAVA_S60_RELEASE_9_2
-    /**
-     * Separator line is drawn between Form rows (except between Form rows that
-     * belong together e.g. concatenated StringItems).
-     */
-    TBool iSeparator;
-#endif // RD_JAVA_S60_RELEASE_9_2    
 };
 
 
--- a/javauis/lcdui_akn/lcdui/inc/CMIDGaugeItem.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/inc/CMIDGaugeItem.h	Wed Oct 13 14:23:59 2010 +0300
@@ -38,7 +38,6 @@
 class CEikProgressInfo;
 class CAknSlider;
 class CAknBitmapAnimation;
-class CAknsFrameBackgroundControlContext;
 
 /** This interface is implemented by the alert dialog (CMIDAlertDialog). The current
     design is such that the alert dialog uses its own animations (loaded from resource)
@@ -119,6 +118,8 @@
     */
     virtual void HandleForegroundL(TBool aForeground);
 
+    virtual inline TBool IsInteractive();
+
 protected:
     /**
      * Ctor
@@ -296,7 +297,7 @@
 
     void SetGaugeListenerFromAlert(MMIDGaugeToAlertListner* aGaugeToAlertListner);
 
-    TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
+    virtual inline TBool IsInteractive();
 
 private:
     /**
@@ -361,16 +362,6 @@
      */
     TBool BitmapAnimationUsed() const;
 
-    /**
-     * Gets new correct instance of control context or null.
-     *
-     * @return New instance of CAknsFrameBackgroundControlContext.
-     *         Instance maybe a null.
-     *
-     * @since  S60 v5.0
-     */
-    CAknsFrameBackgroundControlContext* BackgroundControlContext();
-
 private:
     CEikProgressInfo* iProgressInfo;
     MMIDGaugeToAlertListner* iGaugeToAlertListner;
@@ -430,6 +421,8 @@
     //
     void ResolutionChange(TInt aType);
 
+    virtual inline TBool IsInteractive();
+
 private:
 
     /**
@@ -455,6 +448,21 @@
 };
 
 
+TBool inline CMIDGaugeItem::IsInteractive()
+{
+    return EFalse;
+}
+
+TBool inline CMIDNonInteractiveGauge::IsInteractive()
+{
+    return EFalse;
+}
+
+TBool inline CMIDInteractiveGauge::IsInteractive()
+{
+    return ETrue;
+}
+
 #endif // CMIDGAUGEITEM_H
 
 // End of File
--- a/javauis/lcdui_akn/lcdui/inc/CMIDItemLabel.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/inc/CMIDItemLabel.h	Wed Oct 13 14:23:59 2010 +0300
@@ -91,7 +91,6 @@
     void ResolutionChange();
     TInt ItemLabelMargin();
     void AdjustToSizeL(const TSize& aSize);
-    void LayoutItemLabel();
 
 private:
     CMIDItemLabel(TInt aMaxWidth, TBool aLabelBeforeContent, TInt aMaxNumberOfLines,
--- a/javauis/lcdui_akn/lcdui/inc/CMIDKeyDecoder.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/inc/CMIDKeyDecoder.h	Wed Oct 13 14:23:59 2010 +0300
@@ -20,7 +20,6 @@
 #define CMIDKEYDECODER_H
 
 #include <e32base.h>
-#include <e32svr.h>
 #include <lcdui.h>
 
 // CMIDQwertyWatch* iQwertyWatch
--- a/javauis/lcdui_akn/lcdui/src/CMIDAppUi.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/src/CMIDAppUi.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -24,10 +24,7 @@
 #include <javaregistryentry.h>
 #include <javaregistry.h>
 #include <javaattribute.h>
-#ifdef RD_JAVA_NGA_ENABLED
-#include <goommonitorsession.h>
-#include <goommonitorplugin.hrh>
-#endif // RD_JAVA_NGA_ENABLED
+
 #include "CMIDAppUi.h"
 // using CMIDApplication API for iApp
 #include "CMIDApplication.h"
@@ -45,7 +42,7 @@
 
 // class CMIDAppUi
 CMIDAppUi::CMIDAppUi() : iCurrentDisplayable(NULL),
-    iPendingOrientationChange(EFalse), iPauseApp(EFalse)
+        iPendingOrientationChange(EFalse), iPauseApp(EFalse)
 {
     mJavaAppUi = java::ui::CoreUiAvkonLcdui::getInstance().getJavaAknAppUi();
     mCoreAppUi = java::ui::CoreUiAvkonLcdui::getInstance().getJavaUiAppUi();
@@ -169,24 +166,14 @@
 
     if (aEvent.Type() == EEventUser)
     {
-        TApaSystemEvent* eventData = reinterpret_cast<TApaSystemEvent*>(aEvent.EventData());
-        if ((*eventData) == EApaSystemEventShutdown)
+        if ((*reinterpret_cast<TApaSystemEvent*>(aEvent.EventData())) == EApaSystemEventShutdown)
         {
-#ifdef RD_JAVA_NGA_ENABLED
-            // Check the reason
-            eventData++;
-            if ((*eventData) == KGoomMemoryLowEvent)
-            {
-                return HandleGoomMemoryLowEventL();
-            }
-#endif // RD_JAVA_NGA_ENABLED    
             // Oom or exit from task-list. Ask the CoreUi to shutdown the MIDlet.
             java::ui::CoreUiAvkonLcdui::getInstance().shutDownRequestFromWindowServer();
         }
     }
 
     // Workaround to send pauseApp with long-press of the Menu key
-    // if no event was send yet
     if (aEvent.Type() == EEventKey)
     {
         if (aEvent.Key()->iScanCode == EStdKeyApplication0
@@ -287,22 +274,6 @@
     iEnv = 0;
 }
 
-#ifdef RD_JAVA_NGA_ENABLED
-TBool CMIDAppUi::HandleGoomMemoryLowEventL()
-{
-    if (iObserver)
-    {
-        iObserver->HandleFreeGraphicsMemory();
-        RGOomMonitorSession session;
-        User::LeaveIfError(session.Connect());
-        session.ThisAppIsNotExiting(CCoeEnv::Static()->RootWin().Identifier());
-        session.Close();
-        return ETrue;
-    }
-    return EFalse;
-}
-#endif // RD_JAVA_NGA_ENABLED
-
 //
 // From MLcduiPlugin
 //
--- a/javauis/lcdui_akn/lcdui/src/CMIDCanvas.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/src/CMIDCanvas.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -483,7 +483,7 @@
              CustomComponentControl(KComponentMainControl)->IsVisible()))
     {
         // Traversal check
-        if ((aType == EEventKey) &&
+        if ((aType == EEventKeyDown) &&
                 (((aEvent.iCode == EKeyUpArrow) ||
                   (aEvent.iCode == EKeyDownArrow)) ||
                  ((aEvent.iScanCode == EStdKeyUpArrow) ||
@@ -856,104 +856,67 @@
         return EFalse;
     }
 
-    // Usually only one op code is processed by Canvas.
-    // Exception is the video overlay case, where MIDlet
-    // does not draw anything inside Canvas.paint().
-    // In this case EDrwOpcPaintStarted and EDrwOpcBitBltRect/EDrwOpcBitBlt
-    // are received in one ProcessL(). Also EDrwOpcPaintStarted and EDrwOpcM3GContentStart
-    // may be processed in one ProcessL(), if overlays are enabled.
-    while (aRead < aEnd)
-    {
-        switch (aRead->OpCode())
-        {
-        case EDrwOpcM3GContentStart:
+    switch (aRead->OpCode())
+    {
+    case EDrwOpcM3GContentStart:
+    {
+        // EGL surface is created if canvas window is currently visible
+        // even if MIDlet would be on background.
+        if (!iM3GContent &&
+                i3DAccelerated &&
+                iDirectContents.Count() == 0 &&
+                IsWindowVisible())
         {
-            // EGL surface is created if canvas window is currently visible
-            // even if MIDlet would be on background.
-            if (!iM3GContent &&
-                    i3DAccelerated &&
-                    iDirectContents.Count() == 0 &&
-                    IsWindowVisible())
-            {
-                DEBUG("CMIDCanvas::ProcessL - M3G content start");
-                iM3GContent = ETrue;
-                iM3GStart = ETrue;
-                PostEvent(EM3GDraw, iM3GContent, 0);
-                // First time when M3G content is drawn =>
-                // switch to EGL surface drawing.
-                // Pixel source must be disposed first.
-                DisposePixelSource();
-                OpenEglL();
-
-                // if we are scaling with m3g and HW acceleration
-                // create a pbuffer surface to be used with m3g rendering
-                if (iScalingOn && iFullScreen)
-                {
-                    CreatePBufferSurfaceL();
-                }
-                // Draw the whole framebuffer content (as a texture) on top of
-                // the EGL window surface.
-                iUpperUpdateRect = TRect(Size());
-                UpdateEglContent();
-            }
-
-            ASSERT(aRead + aRead->Size() == aEnd);
-        }
-        break;
-        case EDrwOpcBitBltRect:
-        {
-            if (iFirstPaintState == EFirstPaintNeverOccurred)
+            DEBUG("CMIDCanvas::ProcessL - M3G content start");
+            iM3GContent = ETrue;
+            iM3GStart = ETrue;
+            PostEvent(EM3GDraw, iM3GContent, 0);
+            // First time when M3G content is drawn =>
+            // switch to EGL surface drawing.
+            // Pixel source must be disposed first.
+            DisposePixelSource();
+            OpenEglL();
+
+            // if we are scaling with m3g and HW acceleration
+            // create a pbuffer surface to be used with m3g rendering
+            if (iScalingOn && iFullScreen)
             {
-                iFirstPaintState = EFirstPaintInitiated;
+                CreatePBufferSurfaceL();
             }
-
-            const TBitBltData& data = BitBltData(aRead);
-            UpdateL(data.iRect);
-
-            ASSERT(aRead + aRead->Size() == aEnd);
+            // Draw the whole framebuffer content (as a texture) on top of
+            // the EGL window surface.
+            iUpperUpdateRect = TRect(Size());
+            UpdateEglContent();
         }
-        break;
-        case EDrwOpcBitBlt:
-        {
-            if (iFirstPaintState == EFirstPaintNeverOccurred)
-            {
-                iFirstPaintState = EFirstPaintInitiated;
-            }
-
-            UpdateL(iViewRect);
-
-            ASSERT(aRead + aRead->Size() == aEnd);
-        }
-        break;
-        case EDrwOpcPaintStarted:
+    }
+    break;
+    case EDrwOpcBitBltRect:
+    {
+        if (iFirstPaintState == EFirstPaintNeverOccurred)
         {
-            // Clear MMAPI content areas on Canvas to enable overlays.
-            if (IsVideoOverlayActive())
-            {
-                RRegion directContents;
-                iDisplayable->GetDirectContentsRegion(directContents);
-                TInt count = directContents.Count();
-
-                iFrameContext->SetBrushColor(KTransparentClearColor);
-                iFrameContext->SetDrawMode(CGraphicsContext::EDrawModeWriteAlpha);
-
-                for (TInt i = 0; i < count; ++i)
-                {
-                    const TRect rect = directContents[i];
-                    iFrameContext->Clear(rect);
-                }
-                directContents.Close();
-            }
+            iFirstPaintState = EFirstPaintInitiated;
         }
-        break;
-        default:
-            User::Leave(KErrNotSupported);
-            break;
+
+        const TBitBltData& data = BitBltData(aRead);
+        UpdateL(data.iRect);
+    }
+    break;
+    case EDrwOpcBitBlt:
+    {
+        if (iFirstPaintState == EFirstPaintNeverOccurred)
+        {
+            iFirstPaintState = EFirstPaintInitiated;
         }
 
-        aRead += aRead->Size();
-    }
-
+        UpdateL(iViewRect);
+    }
+    break;
+    default:
+        User::Leave(KErrNotSupported);
+        break;
+    }
+
+    aRead += aRead->Size();
     ASSERT(aRead == aEnd);
 
     // iFrameReady tells if this is async operation.
@@ -1182,7 +1145,7 @@
 // Adds a rectangle to be excluded from redrawing.
 // ---------------------------------------------------------------------------
 //
-void CMIDCanvas::MdcAddMMAPIContentBounds(const TRect& aRect)
+void CMIDCanvas::MdcAddContentBounds(const TRect& aRect)
 {
     if (iDisplayable)
     {
@@ -1197,29 +1160,11 @@
 // Removes a rectangle to be excluded from redrawing.
 // ---------------------------------------------------------------------------
 //
-void CMIDCanvas::MdcRemoveMMAPIContentBounds(const TRect& aRect)
+void CMIDCanvas::MdcRemoveContentBounds(const TRect& aRect)
 {
     if (iDisplayable)
     {
-#ifdef RD_JAVA_NGA_ENABLED
-        if (iEnv.VideoOverlayEnabled())
-        {
-            // iMMAPIAreaUpdated may be modified in LCDUI and MMAPI threads.
-            // Lock must be released before RemoveDirectContentArea().
-            RCriticalSection& lock(iEnv.GetMMAPILock());
-            lock.Wait();
-            iMMAPIAreaUpdated = ETrue;
-            lock.Signal();
-
-            iDisplayable->RemoveDirectContentArea(aRect);
-        }
-        else
-        {
-            iDisplayable->RemoveDirectContentArea(aRect);
-        }
-#else
         iDisplayable->RemoveDirectContentArea(aRect);
-#endif // RD_JAVA_NGA_ENABLED        
     }
 }
 
@@ -1507,7 +1452,7 @@
     {
         DEBUG("CMIDCanvas::RegisterComponentL, registering new");
 
-        iCustomComponents.AppendL(aComponent);
+        iCustomComponents.Append(aComponent);
 
         // Update custom components count in order to improve
         // the performance when counting components
@@ -1631,7 +1576,12 @@
         // Remove the old index from the components array.
         iCustomComponents.Remove(index);
 
-        iCustomComponents.InsertL(aComponent, aNewIndex);
+        // Add the component to the new index. Note that the array
+        // should contain memory for all the components since
+        // Remove should not decrease the memory used by the array
+        // Therefore, the following operation is leave-safe and
+        // return value is ignored intentionally.
+        iCustomComponents.Insert(aComponent, aNewIndex);
 
         // Redraw the whole canvas.
         DrawDeferred();
@@ -1957,17 +1907,6 @@
         gc.SetDrawMode(CGraphicsContext::EDrawModeWriteAlpha);
     }
 
-#ifdef RD_JAVA_NGA_ENABLED
-    // If overlay is enabled, need to clear previous content
-    // from CWindowGc.
-    CMIDCanvas* myself = const_cast<CMIDCanvas*>(this);
-    if (myself->IsVideoOverlayActive())
-    {
-        gc.SetBrushColor(KTransparentClearColor);
-        gc.Clear(aRect);
-    }
-#endif
-
     TRect windowRect(aRect);
     PrepareDraw(gc, windowRect);
 
@@ -2265,7 +2204,7 @@
     {
         // We need inform TextEditor that input language is changed.
         if ((iFocusedComponent != KComponentFocusedNone) &&
-                (iFocusedComponent < iCustomComponents.Count()))
+        (iFocusedComponent < iCustomComponents.Count()))
         {
             iCustomComponents[iFocusedComponent]->
             CustomComponentControl(KComponentMainControl)->
@@ -2524,10 +2463,7 @@
             }
 
             // To have the cursor on focused control
-            if ((iFocusedComponent != KComponentFocusedNone) &&
-                    (iFocusedComponent < iCustomComponents.Count()) &&
-                    iCustomComponents[iFocusedComponent]->
-                    CustomComponentControl(KComponentMainControl)->IsVisible())
+            if (iFocusedComponent != KComponentFocusedNone)
             {
                 iCustomComponents[iFocusedComponent]->
                 CustomComponentControl(KComponentMainControl)->
@@ -2725,13 +2661,13 @@
             iLandscape = landscape;
 
             PostEvent(ESizeChanged, iContentSize.iWidth, iContentSize.iHeight);
+
             if (IsWindowVisible() && iWndUpdate)
             {
                 // Post forced paint to enable Canvas repaint behind
                 // Alert or Pop-up TextBox
                 PostForcedPaint();
             }
-
 #else
             iContentSize = contentSize;
             PostEvent(ESizeChanged, iContentSize.iWidth, iContentSize.iHeight);
@@ -2757,14 +2693,6 @@
         // We cannot determine whether the control size actually did change or
         // not, so we have to do the layout no matter what.
         Layout();
-#ifdef RD_JAVA_NGA_ENABLED
-        if (IsWindowVisible() && iWndUpdate)
-        {
-            // Post forced paint to enable Canvas repaint behind
-            // Alert or Pop-up TextBox
-            PostForcedPaint();
-        }
-#endif // RD_JAVA_NGA_ENABLED
     }
     DEBUG("- CMIDCanvas::SizeChanged");
 }
@@ -2908,24 +2836,24 @@
     TBool aUpdateRequired
 #endif // CANVAS_DIRECT_ACCESS
 ) :
-    CCoeControl()
-    ,iEnv(aEnv)
+        CCoeControl()
+        ,iEnv(aEnv)
 #ifdef CANVAS_DOUBLE_BUFFER
-    ,iFrameBuffer(NULL)
+        ,iFrameBuffer(NULL)
 #endif // CANVAS_DOUBLE_BUFFER
-    ,iIsGameCanvas((
-                       aComponentType == MMIDComponent::EGameCanvas ? ETrue : EFalse))
-    ,iFlags(EPostKeyEvents)
-    ,iFullScreen(EFalse)
-    ,iScalingOn(EFalse)
-    ,iS60SelectionKeyCompatibility(EFalse)
-    ,iRestoreContentWhenUnfaded(EFalse)
-    ,iLastFadeMessage(0)
+        ,iIsGameCanvas((
+                           aComponentType == MMIDComponent::EGameCanvas ? ETrue : EFalse))
+        ,iFlags(EPostKeyEvents)
+        ,iFullScreen(EFalse)
+        ,iScalingOn(EFalse)
+        ,iS60SelectionKeyCompatibility(EFalse)
+        ,iRestoreContentWhenUnfaded(EFalse)
+        ,iLastFadeMessage(0)
 #ifdef CANVAS_DIRECT_ACCESS
-    ,iDcDsaToStart(EFalse)
+        ,iDcDsaToStart(EFalse)
 #endif // CANVAS_DIRECT_ACCESS
-    ,iDragEventsStartedInside(EFalse)
-    ,iFirstPaintState(EFirstPaintNeverOccurred)
+        ,iDragEventsStartedInside(EFalse)
+        ,iFirstPaintState(EFirstPaintNeverOccurred)
 {
     DEBUG("+ CMIDCanvas::CMIDCanvas - EDirectEnabled");
 
@@ -4746,28 +4674,6 @@
 }
 
 // ---------------------------------------------------------------------------
-// CMIDCanvas::IsVideoOverlayActive
-// ---------------------------------------------------------------------------
-//
-TBool CMIDCanvas::IsVideoOverlayActive()
-{
-    if (iEnv.VideoOverlayEnabled() && !iIsGameCanvas)
-    {
-        // This method is called also from CMIDGraphics.
-        // Need to check here if MMAPI video area was removed by calling CheckDirectContentUpdated()
-        // in order that lcdgr can use the correct alpha blending
-        // (opaque or transparent target, see CMIDGraphcis.cpp and lcd16ma.cpp).
-        TBool ret = iDisplayable->DirectContentsCount() > 0;
-        CheckDirectContentUpdated();
-        return ret;
-    }
-    else
-    {
-        return EFalse;
-    }
-}
-
-// ---------------------------------------------------------------------------
 // CMIDCanvas::BlitFrameBufferPixels
 // Sets up OpenGL state for 2D texture rendering and renders the textures for
 // updated frame buffer areas by calling BlitSubRect().
@@ -5393,40 +5299,5 @@
     TInt sizePacked = (iContentSize.iWidth << 16) | (iContentSize.iHeight);
     PostEvent(EForcedPaint, posPacked, sizePacked);
 }
-
-// ---------------------------------------------------------------------------
-// CMIDCanvas::CheckDirectContentUpdated
-// Restores opaque alpha channel to direct content areas in
-// framebuffer bitmap after video is removed from canvas.
-// ---------------------------------------------------------------------------
-//
-void CMIDCanvas::CheckDirectContentUpdated()
-{
-    if (iEnv.VideoOverlayEnabled() && iMMAPIAreaUpdated)
-    {
-        // iMMAPIAreaUpdated is modified in LCDUI and MMAPI threads.
-        // Lock must be released before GetDirectContentsRegion().
-        RCriticalSection& lock(iEnv.GetMMAPILock());
-        lock.Wait();
-        iMMAPIAreaUpdated = EFalse;
-        lock.Signal();
-
-        RRegion clearedRegion;
-        RRegion directContentRegion;
-        iDisplayable->GetDirectContentsRegion(directContentRegion);
-        clearedRegion.AddRect(TRect(iFrameBuffer->SizeInPixels()));
-        clearedRegion.SubRegion(directContentRegion);
-
-        iFrameContext->CancelClipping();
-        iFrameContext->SetClippingRegion(clearedRegion);
-        iFrameContext->SetBrushColor(KOpaqueBlackColor);
-        iFrameContext->SetDrawMode(CGraphicsContext::EDrawModeOR);
-        iFrameContext->Clear();
-        // Restore full clip area
-        iFrameContext->CancelClipping();
-        clearedRegion.Close();
-        directContentRegion.Close();
-    }
-}
 #endif // RD_JAVA_NGA_ENABLED        
 // End of File.
--- a/javauis/lcdui_akn/lcdui/src/CMIDCanvasKeypad.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/src/CMIDCanvasKeypad.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -81,6 +81,11 @@
     }
 
     iOSKInBackground = EFalse;
+    if (iBackgroundCC)
+    {
+        delete iBackgroundCC;
+        iBackgroundCC = NULL;
+    }
 }
 TInt CMIDCanvasKeypad::CountComponentControls() const
 {
@@ -99,6 +104,15 @@
 void CMIDCanvasKeypad::SizeChanged()
 {
     SetRectForAllButtons();
+    if (iBackgroundCC)
+    {
+        delete iBackgroundCC;
+        iBackgroundCC = NULL;
+    }
+    TRAP_IGNORE(iBackgroundCC = CAknsBasicBackgroundControlContext::NewL(
+                                    KAknsIIDQsnBgScreen,
+                                    Rect(),
+                                    EFalse));
 }
 
 void CMIDCanvasKeypad::ButtonPriorityQueue(TInt aIdx)
@@ -378,29 +392,31 @@
     }
     SetRectForAllButtons();//Needed for updating OSK-buttons when closing/opening hw-keyboard
     CreateButtonsL();
-    InitializeKeysL();
+    InitializeKeys();
     ActivateL(); // Window owning control draws all children (buttons)
     MakeVisible(ETrue);
     DrawDeferred();
     iOSKInBackground = EFalse;
+    if (iBackgroundCC)
+        {
+            delete iBackgroundCC;
+            iBackgroundCC = NULL;
+        }
+        TRAP_IGNORE(iBackgroundCC = CAknsBasicBackgroundControlContext::NewL(
+                                        KAknsIIDQsnBgScreen,
+                                        Rect(),
+                                        EFalse));
 }
 
 void CMIDCanvasKeypad::Draw(const TRect& /*aRect*/) const
 {
     CWindowGc& gc = SystemGc();
     //Drawing skin
-    MAknsControlContext* cc = NULL;
     gc.SetBrushColor(TRgb(0x0));   //black
-
-    TRAP_IGNORE(cc = CAknsBasicBackgroundControlContext::NewL(
-                         KAknsIIDQsnBgScreen,
-                         Rect(),
-                         EFalse));
-
     if (!iIsFullScreenMode)  //normal mode
     {
         AknsDrawUtils::DrawBackground(AknsUtils::SkinInstance(),
-                                      cc,
+                                      iBackgroundCC,
                                       NULL,
                                       gc,
                                       TPoint(0,0),
@@ -411,7 +427,7 @@
     else //full screen mode
     {
         AknsDrawUtils::DrawBackground(NULL,
-                                      cc,
+                                      iBackgroundCC,
                                       NULL,
                                       gc,
                                       TPoint(0,0),
@@ -465,6 +481,11 @@
     CreateWindowL();
     SetComponentsToInheritVisibility(ETrue);
     Window().SetPointerGrab(ETrue);
+
+    TRAP_IGNORE(iBackgroundCC = CAknsBasicBackgroundControlContext::NewL(
+                                    KAknsIIDQsnBgScreen,
+                                    Rect(),
+                                    EFalse));
 }
 
 CMIDCanvasKeypad::CMIDCanvasKeypad()
@@ -504,7 +525,7 @@
             buttonData.iButton->SetExtent(iRockerRect.iTl, iRockerRect.Size());
             buttonData.iButton->ActivateL();
             InitializeKeyEvents(TKeypadKeys(i), &buttonData);
-            iButtonData.AppendL(buttonData);
+            iButtonData.Append(buttonData);
             CleanupStack::Pop(buttonData.iButton);
         }
         CleanupStack::PopAndDestroy(); // reader;
@@ -554,7 +575,7 @@
         buttonDataGameA.iButton->SetExtent(iGameARect.iTl, iGameARect.Size());
         buttonDataGameA.iButton->ActivateL();
         InitializeKeyEvents(EGameA, &buttonDataGameA);
-        iButtonData.AppendL(buttonDataGameA);
+        iButtonData.Append(buttonDataGameA);
 
         //GameB
         bitmap = NULL;
@@ -589,7 +610,7 @@
         buttonDataGameB.iButton->SetExtent(iGameBRect.iTl, iGameBRect.Size());
         buttonDataGameB.iButton->ActivateL();
         InitializeKeyEvents(EGameB, &buttonDataGameB);
-        iButtonData.AppendL(buttonDataGameB);
+        iButtonData.Append(buttonDataGameB);
 
         //GameC
         bitmap = NULL;
@@ -624,7 +645,7 @@
         buttonDataGameC.iButton->SetExtent(iGameCRect.iTl, iGameCRect.Size());
         buttonDataGameC.iButton->ActivateL();
         InitializeKeyEvents(EGameC, &buttonDataGameC);
-        iButtonData.AppendL(buttonDataGameC);
+        iButtonData.Append(buttonDataGameC);
 
         //GameD
         bitmap = NULL;
@@ -658,7 +679,7 @@
         buttonDataGameD.iButton->SetExtent(iGameDRect.iTl, iGameDRect.Size());
         buttonDataGameD.iButton->ActivateL();
         InitializeKeyEvents(EGameD, &buttonDataGameD);
-        iButtonData.AppendL(buttonDataGameD);
+        iButtonData.Append(buttonDataGameD);
     }
 
     //LSK & RSK buttons
@@ -830,17 +851,17 @@
     buttonDataLSK.iButton->SetExtent(iLskRect.iTl, iLskRect.Size());
     buttonDataLSK.iButton->ActivateL();
     InitializeKeyEvents(ELsk, &buttonDataLSK);
-    iButtonData.AppendL(buttonDataLSK);
+    iButtonData.Append(buttonDataLSK);
 
     buttonDataRSK.iButton->SetContainerWindowL(*this);
     buttonDataRSK.iButton->SetExtent(iRskRect.iTl, iRskRect.Size());
     buttonDataRSK.iButton->ActivateL();
     InitializeKeyEvents(ERsk, &buttonDataRSK);
-    iButtonData.AppendL(buttonDataRSK);
+    iButtonData.Append(buttonDataRSK);
 
 }
 
-void CMIDCanvasKeypad::InitializeKeysL()
+void CMIDCanvasKeypad::InitializeKeys()
 {
     TInt buttonCount = iButtonData.Count();
     iCurrentButtonData.Reset();
@@ -856,8 +877,8 @@
             {
                 iButtonData[i].iButton->SetPosition(iRockerRect.iTl);
                 iButtonData[i].iButton->SetSize(iRockerRect.Size());
-                iCurrentButtonData.AppendL(&iButtonData[i]);
-                iButtonStack.AppendL(i);
+                iCurrentButtonData.Append(&iButtonData[i]);
+                iButtonStack.Append(i);
             }
         }
         // Other keys
@@ -870,29 +891,29 @@
                 {
                     iButtonData[i].iButton->SetPosition(iGameARect.iTl);
                     iButtonData[i].iButton->SetSize(iGameARect.Size());
-                    iCurrentButtonData.AppendL(&iButtonData[i]);
-                    iButtonStack.AppendL(i);
+                    iCurrentButtonData.Append(&iButtonData[i]);
+                    iButtonStack.Append(i);
                 }
                 else if (iButtonData[i].keyType == EGameB)
                 {
                     iButtonData[i].iButton->SetPosition(iGameBRect.iTl);
                     iButtonData[i].iButton->SetSize(iGameBRect.Size());
-                    iCurrentButtonData.AppendL(&iButtonData[i]);
-                    iButtonStack.AppendL(i);
+                    iCurrentButtonData.Append(&iButtonData[i]);
+                    iButtonStack.Append(i);
                 }
                 else if (iButtonData[i].keyType == EGameC)
                 {
                     iButtonData[i].iButton->SetPosition(iGameCRect.iTl);
                     iButtonData[i].iButton->SetSize(iGameCRect.Size());
-                    iCurrentButtonData.AppendL(&iButtonData[i]);
-                    iButtonStack.AppendL(i);
+                    iCurrentButtonData.Append(&iButtonData[i]);
+                    iButtonStack.Append(i);
                 }
                 else if (iButtonData[i].keyType == EGameD)
                 {
                     iButtonData[i].iButton->SetPosition(iGameDRect.iTl);
                     iButtonData[i].iButton->SetSize(iGameDRect.Size());
-                    iCurrentButtonData.AppendL(&iButtonData[i]);
-                    iButtonStack.AppendL(i);
+                    iCurrentButtonData.Append(&iButtonData[i]);
+                    iButtonStack.Append(i);
                 }
             }
 
@@ -900,14 +921,14 @@
             if (iButtonData[i].keyType == ELsk && iIsFullScreenMode)
             {
                 iButtonData[i].iButton->SetExtent(iLskRect.iTl, iLskRect.Size());
-                iCurrentButtonData.AppendL(&iButtonData[i]);
-                iButtonStack.AppendL(i);
+                iCurrentButtonData.Append(&iButtonData[i]);
+                iButtonStack.Append(i);
             }
             else if (iButtonData[i].keyType == ERsk && iIsFullScreenMode)
             {
                 iButtonData[i].iButton->SetExtent(iRskRect.iTl, iRskRect.Size());
-                iCurrentButtonData.AppendL(&iButtonData[i]);
-                iButtonStack.AppendL(i);
+                iCurrentButtonData.Append(&iButtonData[i]);
+                iButtonStack.Append(i);
             }
         }
     }
@@ -1393,7 +1414,7 @@
                 feedback->InstantFeedback(ETouchFeedbackSensitiveButton);
             }
             break;
-#endif //RD_JAVA_ADVANCED_TACTILE_FEEDBACK
+#endif //RD_JAVA_ADVANCED_TACTILE_FEEDBACK                            
         }
     }
 #endif // RD_TACTILE_FEEDBACK
--- a/javauis/lcdui_akn/lcdui/src/CMIDChoiceGroupControl.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/src/CMIDChoiceGroupControl.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -216,21 +216,8 @@
     }
 
     //in case skin or resolution has changed
-#ifdef RD_JAVA_S60_RELEASE_9_2
-    TBool highlighted = EFalse;
-    if (iItem)
-    {
-        highlighted = iItem->IsHighlighted();
-    }
-#endif // RD_JAVA_S60_RELEASE_9_2
-
     iModel->ReConstructSelectionIconsL();
-
-#ifdef RD_JAVA_S60_RELEASE_9_2
-    iModel->UpdateIconArrayL(highlighted);
-#else
     iModel->UpdateIconArrayL();
-#endif // RD_JAVA_S60_RELEASE_9_2
 
     iListBox = CreateListBoxL(aParent);
 
@@ -642,19 +629,6 @@
     }
 }
 
-#ifdef RD_JAVA_S60_RELEASE_9_2
-TBool CMIDChoiceGroupControl::IsControlOnFormHighlighted()
-{
-    if (iItem)
-    {
-        return iItem->IsHighlighted();
-    }
-    else
-    {
-        return EFalse;
-    }
-}
-#endif // RD_JAVA_S60_RELEASE_9_2
 
 // --- from MEikListBoxObserver ---
 // Handles choice listbox events (as in selection)
@@ -714,36 +688,20 @@
     // Save the currently selected item (if exclusive choice)
     TInt oldSelected = iModel->SelectedElement();
     TInt oldCurrentIndex = -1;
-#ifdef RD_JAVA_S60_RELEASE_9_2
-    TBool wasHighlighted = EFalse;
-#endif // RD_JAVA_S60_RELEASE_9_2
 
     if (iListBox)
     {
-#ifdef RD_JAVA_S60_RELEASE_9_2
-        wasHighlighted = iListBox->GetHighlight();
-#endif // RD_JAVA_S60_RELEASE_9_2
-
         oldCurrentIndex = iListBox->View()->CurrentItemIndex();
         // Let the listbox take a shot at the key
         resp = iListBox->OfferKeyEventL(aKeyEvent, aType);
-
-#ifdef RD_JAVA_S60_RELEASE_9_2
-        wasHighlighted = (iListBox->GetHighlight() && !wasHighlighted) ? EFalse : ETrue;
-#endif // RD_JAVA_S60_RELEASE_9_2
     }
 
     // If click (enter) on an already selected item in an exclusive choice,
-    // do not consume the key. This allows the form to display a context menu.
-    // Choicegroup element need to be focused and selected
+    // do not consume the key. This allows the form to display a context menu
     if ((iType == MMIDChoiceGroup::EExclusive) &&
             ((aKeyEvent.iCode == EKeyOK) || (aKeyEvent.iCode == EKeyEnter)) &&
             ((oldSelected != -1) || (oldSelected == -1 && oldCurrentIndex == -1)) &&
-            (oldSelected == iModel->SelectedElement())
-#ifdef RD_JAVA_S60_RELEASE_9_2
-            && (wasHighlighted && iListBox->GetHighlight())
-#endif // RD_JAVA_S60_RELEASE_9_2
-       )
+            (oldSelected == iModel->SelectedElement()))
     {
         // Do not consume the key, so that form can pop a menu
         CMIDDisplayable& displayable = iItem->Form()->CurrentDisplayable();
@@ -765,21 +723,12 @@
         }
         else
         {
-            TInt numScreenOrHelpCommands = displayable.NumCommandsForScreenOrHelpOptionsMenu();
-
             // if ( cntOpt > 1 ) will run menu, else execute ProcessCommandL( CommandOffset )
             if (cntOpt > 1)
             {
                 displayable.MenuHandler()->ShowMenuL(CMIDMenuHandler::EOkMenu);
                 resp = EKeyWasConsumed;
             }
-            else if (cntOpt == 0 && numScreenOrHelpCommands > 1)
-            {
-                // If there is more than one screen command on form
-                // and there is no ok/item commands then show menu
-                displayable.MenuHandler()->ShowMenuL(CMIDMenuHandler::EOptionsMenu);
-                resp = EKeyWasConsumed;
-            }
             else if (command && command->CommandType() != MMIDCommand::EBack &&
                      command->CommandType() != MMIDCommand::ECancel)
             {
@@ -1418,12 +1367,7 @@
 {
     //in case skin or resolution has changed
     iModel->ReConstructSelectionIconsL();
-
-#ifdef RD_JAVA_S60_RELEASE_9_2
-    iModel->UpdateIconArrayL(EFalse);
-#else
     iModel->UpdateIconArrayL();
-#endif
 
     // In order for the listbox to have popup as parent, it
     // needs to be allocated and constructed separately
@@ -1921,19 +1865,4 @@
 {
     return iItem->Form();
 }
-
-CMIDControlItem* CMIDChoiceGroupControl::ControlItem() const
-{
-    return iItem;
-}
-
-CMIDChoiceGroupListBox* CMIDChoiceGroupControl::InnerListBoxControl() const
-{
-    return iListBox;
-}
-
-CMIDChoiceGroupModel* CMIDChoiceGroupControl::InnerListBoxModel() const
-{
-    return iModel;
-}
 #endif // RD_JAVA_S60_RELEASE_9_2    
--- a/javauis/lcdui_akn/lcdui/src/CMIDChoiceGroupItem.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/src/CMIDChoiceGroupItem.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -823,22 +823,4 @@
     }
 }
 
-#ifdef RD_JAVA_S60_RELEASE_9_2
-void CMIDChoiceGroupItem::SetHighlight(const TBool aHighlight)
-{
-    CMIDControlItem::SetHighlight(aHighlight);
-    if (iChoiceGroupControl
-            && iChoiceGroupControl->ChoiceType() != MMIDChoiceGroup::EPopup
-            && iChoiceGroupControl->InnerListBoxControl()
-            && iChoiceGroupControl->InnerListBoxModel())
-    {
-        // Try to update icons (due to color change), if it leaves
-        // do nothing
-        TRAP_IGNORE(iChoiceGroupControl->InnerListBoxModel()->UpdateIconArrayL(aHighlight));
-        iChoiceGroupControl->InnerListBoxControl()->UpdateColors();
-    }
-}
-#endif // RD_JAVA_S60_RELEASE_9_2  
-
-
 // End of File
--- a/javauis/lcdui_akn/lcdui/src/CMIDChoiceGroupListBox.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/src/CMIDChoiceGroupListBox.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -20,8 +20,6 @@
 // API for iChoiceControl
 #include "CMIDChoiceGroupControl.h"
 #include "CMIDChoiceGroupModel.h"
-// API for control item
-#include "CMIDControlItem.h"
 
 #include <e32def.h>
 // using for CColumnListBoxData related to colors
@@ -102,7 +100,6 @@
 #endif //RD_JAVA_ADVANCED_TACTILE_FEEDBACK
 #endif //RD_TACTILE_FEEDBACK
 
-    SetTextColors();
 }
 
 // Overridden, because CEikListBox returns EKeyWasConsumed when
@@ -344,47 +341,31 @@
         MAknsSkinInstance* skin = AknsUtils::SkinInstance();
         TRgb color;
 
-        // Chose correct colors for elements
-        TInt logicalColor = KNonHighlightedItemTextColor; // non-highlighted
-
-#ifdef RD_JAVA_S60_RELEASE_9_2
-        if (iChoiceControl
-                && iChoiceControl->ChoiceType() != MMIDChoiceGroup::EPopup
-                && iChoiceControl->ControlItem()
-                && iChoiceControl->ControlItem()->IsHighlighted())
-        {
-            logicalColor = KHighlightedItemTextColor; // highlighted
-        }
-#endif // RD_JAVA_S60_RELEASE_9_2
-
+        // icon color, checkbox, radio button
         TInt error = AknsUtils::GetCachedColor(skin,
                                                color,
-                                               KAknsIIDQsnTextColors,
-                                               logicalColor);
+                                               KAknsIIDQsnIconColors,
+                                               EAknsCIQsnIconColorsCG14);
+
         if (!error)
         {
             colors.iText = color;
         }
 
+        // icon color, setting list highlight   checkbox, radio button
         error = AknsUtils::GetCachedColor(skin,
                                           color,
-                                          KAknsIIDQsnTextColors,
-                                          logicalColor);
+                                          KAknsIIDQsnIconColors,
+                                          EAknsCIQsnIconColorsCG14);
+
         if (!error)
         {
             colors.iHighlightedText = color;
         }
     }
 
-    if (View() && View()->ItemDrawer())
-    {
-#ifdef RD_JAVA_S60_RELEASE_9_2
-        View()->ItemDrawer()->SetFlags(
-            CListItemDrawer::EUseOverrideSkinTextColor);
-#endif // RD_JAVA_S60_RELEASE_9_2
-        View()->ItemDrawer()->SetTextColor(colors.iText);
-        View()->ItemDrawer()->SetHighlightedTextColor(colors.iHighlightedText);
-    }
+    View()->ItemDrawer()->SetTextColor(colors.iText);
+    View()->ItemDrawer()->SetHighlightedTextColor(colors.iHighlightedText);
 }
 
 
@@ -600,14 +581,4 @@
 {
     iHighlight = aVisible;
 }
-
-TBool CMIDChoiceGroupListBox::GetHighlight()
-{
-    return iHighlight;
-}
-
-void CMIDChoiceGroupListBox::UpdateColors()
-{
-    SetTextColors();
-}
 #endif // RD_JAVA_S60_RELEASE_9_2
--- a/javauis/lcdui_akn/lcdui/src/CMIDChoiceGroupModel.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/src/CMIDChoiceGroupModel.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -71,10 +71,6 @@
     // Delete icons
     delete iIconSelected;
     delete iIconNotSelected;
-#ifdef RD_JAVA_S60_RELEASE_9_2
-    delete iIconSelectedHighlighted;
-    delete iIconNotSelectedHighlighted;
-#endif // RD_JAVA_S60_RELEASE_9_2
     delete iIconDummy;
 }
 
@@ -132,8 +128,6 @@
 
     TSize iconSize(layoutRect.Rect().Width(), layoutRect.Rect().Height());
 
-    // create icons for non-highlighted mode
-
     AknsUtils::CreateColorIconLC(skin, notSelectedSkinId, KAknsIIDQsnIconColors,
                                  EAknsCIQsnIconColorsCG14, bitmap, mask, avkonbmpFilename, notSelectedIconId,
                                  notSelectedMaskId, KRgbBlue, iconSize, EAspectRatioPreservedAndUnusedSpaceRemoved);
@@ -153,29 +147,6 @@
 
     delete iIconSelected;
     iIconSelected = iconSelected;
-
-    // create icons for highlighted mode
-#ifdef RD_JAVA_S60_RELEASE_9_2
-    AknsUtils::CreateColorIconLC(skin, notSelectedSkinId, KAknsIIDQsnIconColors,
-                                 EAknsCIQsnIconColorsCG15, bitmap, mask, avkonbmpFilename, notSelectedIconId,
-                                 notSelectedMaskId, KRgbBlue, iconSize, EAspectRatioPreservedAndUnusedSpaceRemoved);
-
-    CGulIcon* iconNotSelectedHighlighted = CGulIcon::NewL(bitmap, mask);
-    CleanupStack::Pop(2); //bitmap, mask
-
-    delete iIconNotSelectedHighlighted;
-    iIconNotSelectedHighlighted = iconNotSelectedHighlighted;
-
-    AknsUtils::CreateColorIconLC(skin, selectedSkinId, KAknsIIDQsnIconColors,
-                                 EAknsCIQsnIconColorsCG15, bitmap, mask, avkonbmpFilename, selectedIconId,
-                                 selectedMaskId, KRgbBlue, iconSize, EAspectRatioPreservedAndUnusedSpaceRemoved);
-
-    CGulIcon* iconSelectedHighlighted = CGulIcon::NewL(bitmap, mask);
-    CleanupStack::Pop(2); //bitmap, mask
-
-    delete iIconSelectedHighlighted;
-    iIconSelectedHighlighted = iconSelectedHighlighted;
-#endif // RD_JAVA_S60_RELEASE_9_2
 }
 
 // Base class overrides
@@ -241,14 +212,7 @@
     if (!iUpdating)
     {
         // Refresh icon array
-#ifdef RD_JAVA_S60_RELEASE_9_2
-        if (iObserver)
-        {
-            UpdateIconArrayL(iObserver->IsControlOnFormHighlighted());
-        }
-#else
         UpdateIconArrayL();
-#endif // RD_JAVA_S60_RELEASE_9_2
 
         // Report event
         ReportEventL(MMIDChoiceGroupModelObserver::EElementAdded);
@@ -276,14 +240,7 @@
         if (!iUpdating)
         {
             // Refresh icon array
-#ifdef RD_JAVA_S60_RELEASE_9_2
-            if (iObserver)
-            {
-                UpdateIconArrayL(iObserver->IsControlOnFormHighlighted());
-            }
-#else
             UpdateIconArrayL();
-#endif // RD_JAVA_S60_RELEASE_9_2
 
             // Report element addition
             ReportEventL(MMIDChoiceGroupModelObserver::EElementAdded);
@@ -335,14 +292,7 @@
         if (!iUpdating)
         {
             // Refresh icon array.
-#ifdef RD_JAVA_S60_RELEASE_9_2
-            if (iObserver)
-            {
-                UpdateIconArrayL(iObserver->IsControlOnFormHighlighted());
-            }
-#else
             UpdateIconArrayL();
-#endif // RD_JAVA_S60_RELEASE_9_2
 
             // Update the looks of the control
             ReportEventL(MMIDChoiceGroupModelObserver::EElementDeleted);
@@ -366,14 +316,7 @@
         if (!iUpdating)
         {
             // Recreate icon array
-#ifdef RD_JAVA_S60_RELEASE_9_2
-            if (iObserver)
-            {
-                UpdateIconArrayL(iObserver->IsControlOnFormHighlighted());
-            }
-#else
             UpdateIconArrayL();
-#endif // RD_JAVA_S60_RELEASE_9_2
 
             // Report event
             ReportEventL(MMIDChoiceGroupModelObserver::EElementDeleted);
@@ -408,14 +351,7 @@
         if (!iUpdating)
         {
             // Icon may have changed, recreate array.
-#ifdef RD_JAVA_S60_RELEASE_9_2
-            if (iObserver)
-            {
-                UpdateIconArrayL(iObserver->IsControlOnFormHighlighted());
-            }
-#else
             UpdateIconArrayL();
-#endif // RD_JAVA_S60_RELEASE_9_2
 
             // Report event
             ReportEventL(MMIDChoiceGroupModelObserver::EElementModified);
@@ -454,15 +390,7 @@
     if (aReCreate)
     {
         // Recreate, trap & ignore leaves
-#ifdef RD_JAVA_S60_RELEASE_9_2
-        if (iObserver)
-        {
-            TRAP_IGNORE(
-                UpdateIconArrayL(iObserver->IsControlOnFormHighlighted()));
-        }
-#else
         TRAP_IGNORE(UpdateIconArrayL());
-#endif // RD_JAVA_S60_RELEASE_9_2
     }
 
     return iIconArray;
@@ -527,17 +455,10 @@
     iUpdating = EFalse;
 
     // Create array, refresh control
-#ifdef RD_JAVA_S60_RELEASE_9_2
-    if (iObserver)
-    {
-        TRAP_IGNORE(UpdateIconArrayL(iObserver->IsControlOnFormHighlighted()));
-    }
-#else
-    TRAP_IGNORE(UpdateIconArrayL());
-#endif // RD_JAVA_S60_RELEASE_9_2
+    TRAPD(ignore, UpdateIconArrayL());
 
     // Report update end (observer should redraw)
-    TRAP_IGNORE(ReportEventL(MMIDChoiceGroupModelObserver::EUpdateEnded));
+    TRAP(ignore, ReportEventL(MMIDChoiceGroupModelObserver::EUpdateEnded));
 }
 
 
@@ -610,11 +531,7 @@
 // NOTE that the indices in the array and the item strings should
 // be synchronised. The selection icon is always at index
 // 0 (selected) and 1 (not selected)
-#ifdef RD_JAVA_S60_RELEASE_9_2
-void CMIDChoiceGroupModel::UpdateIconArrayL(TBool aHighlighted)
-#else
 void CMIDChoiceGroupModel::UpdateIconArrayL()
-#endif // RD_JAVA_S60_RELEASE_9_2
 {
     ASSERT(iElements);
     ASSERT(iIconArray);
@@ -630,21 +547,8 @@
     }
 
     // First add the selection icons
-#ifdef RD_JAVA_S60_RELEASE_9_2
-    if (aHighlighted)
-    {
-        iIconArray->AppendL(iIconSelectedHighlighted);
-        iIconArray->AppendL(iIconNotSelectedHighlighted);
-    }
-    else
-    {
-        iIconArray->AppendL(iIconSelected);
-        iIconArray->AppendL(iIconNotSelected);
-    }
-#else
     iIconArray->AppendL(iIconSelected);
     iIconArray->AppendL(iIconNotSelected);
-#endif // RD_JAVA_S60_RELEASE_9_2
 
     // Then loop through the elements and add their icons
     for (TInt i = 0; i < nCount; i++)
--- a/javauis/lcdui_akn/lcdui/src/CMIDCustomItem.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/src/CMIDCustomItem.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -76,21 +76,21 @@
 }
 
 CMIDCustomItem::CMIDCustomItem(MMIDEnv& aEnv, CMIDUIManager* aUIManager)
-    : CMIDControlItem(EDefault, aUIManager)
-    , iEntered(EFalse)
-    , iSupportsInternalTraversal(ETrue)
-    , iEnv(aEnv)
-    , iResetFrameBuffer(ETrue)
-    , iDirectAreaAddedToDisplayable(EFalse)
-    , iS60SelectionKeyCompatibility(EFalse)
+        : CMIDControlItem(EDefault, aUIManager)
+        , iEntered(EFalse)
+        , iSupportsInternalTraversal(ETrue)
+        , iEnv(aEnv)
+        , iResetFrameBuffer(ETrue)
+        , iDirectAreaAddedToDisplayable(EFalse)
+        , iS60SelectionKeyCompatibility(EFalse)
 #ifndef RD_JAVA_NGA_ENABLED
-    , iDirectPaused(ETrue)
+        , iDirectPaused(ETrue)
 #endif
-    , iRestoreDirectContentWhenUnfaded(EFalse)
-    , iPreviousVisibility(EFalse)
-    , iConsumerWaitingForDSAResourcesCallback(NULL)
-    , iUiFixed(EFalse)
-    , iUiToBeFixedLater(EFalse)
+        , iRestoreDirectContentWhenUnfaded(EFalse)
+        , iPreviousVisibility(EFalse)
+        , iConsumerWaitingForDSAResourcesCallback(NULL)
+        , iUiFixed(EFalse)
+        , iUiToBeFixedLater(EFalse)
 {
     iMMidItem = this;
 
@@ -259,7 +259,7 @@
     {
         iDirectContent->MdcContainerDestroyed();
     }
-
+    
     if (iUiFixed && iForm)
     {
         iForm->CurrentDisplayable().ReleaseOrientation();
@@ -467,8 +467,7 @@
     iRequestedPreferredSize = CheckRequestedSize(aSize);
 
     if (iRequestedPreferredSize.iWidth == -1)
-    {
-        // Width is not locked
+    { // Width is not locked
         iPreferredSize.iWidth = Min(FormClientAreaWidth(),
                                     PreferredContentSize().iWidth + iContentMargins.iLeft + iContentMargins.iRight);
     }
@@ -485,8 +484,7 @@
 
 
     if (iRequestedPreferredSize.iHeight == -1)
-    {
-        // Height is not locked
+    { // Height is not locked
         iPreferredSize.iHeight = PreferredContentSize().iHeight + iContentMargins.iTop
                                  + iContentMargins.iBottom + LabelHeight();
     }
@@ -515,8 +513,7 @@
     DEBUG_INT("+ CMIDCustomItem::AdjustToSizeL - requested height = %d", requestedHeight);
 
     if (requestedHeight > availableHeight)
-    {
-        // label + control do not fit
+    {// label + control do not fit
         if (iLabelControl && iLabelControl->Text()->Length() > 0)
         {
             //reserve one line to the control
@@ -1350,7 +1347,7 @@
     {
         ChangeDirectContainerVisibility(ETrue);
     }
-
+    
     if (iUiToBeFixedLater && iForm)
     {
         iForm->CurrentDisplayable().FixOrientation();
@@ -1563,7 +1560,7 @@
 // From class MDirectContainer.
 // CMIDCustomItem::MdcFixUIOrientation(TBool aEnableFix)
 // ---------------------------------------------------------------------------
-//
+// 
 
 void CMIDCustomItem::MdcFixUIOrientation(TBool aEnableFix)
 {
@@ -1574,42 +1571,42 @@
     else
     {
         iEnv.ToLcduiObserver().InvokeLcduiEvent(*this, EUnFixUIOrientation);
-    }
+    }     
 }
 
 void CMIDCustomItem::HandleLcduiEvent(int aType)
 {
-    switch (aType)
-    {
-    case EFixUIOrientation:
-        if (!iUiFixed)
-        {
-            if (iForm)
-            {
-                iForm->CurrentDisplayable().FixOrientation();
-                iUiFixed = ETrue;
-                iUiToBeFixedLater = EFalse;
-            }
-            else
-            {
-                iUiToBeFixedLater = ETrue;
-            }
-        }
-        break;
-    case EUnFixUIOrientation:
-        if (iForm && iUiFixed)
-        {
-            iForm->CurrentDisplayable().ReleaseOrientation();
-            iUiFixed = EFalse;
-            iUiToBeFixedLater = EFalse;
-        }
-        break;
+   switch (aType)
+   {
+       case EFixUIOrientation:
+           if (!iUiFixed)
+           {
+               if (iForm)
+               {
+                   iForm->CurrentDisplayable().FixOrientation();
+                   iUiFixed = ETrue;
+                   iUiToBeFixedLater = EFalse;
+               }
+               else
+               {
+                   iUiToBeFixedLater = ETrue;
+               }
+           }
+           break;
+       case EUnFixUIOrientation:
+           if (iForm && iUiFixed)
+           {
+               iForm->CurrentDisplayable().ReleaseOrientation();
+               iUiFixed = EFalse;
+               iUiToBeFixedLater = EFalse;
+           }
+           break;    
     }
 }
 //
 // ---------------------------------------------------------------------------
 //
-void CMIDCustomItem::MdcAddMMAPIContentBounds(const TRect& /*aRect*/)
+void CMIDCustomItem::MdcAddContentBounds(const TRect& /*aRect*/)
 {
     iDirectAreaAddedToDisplayable = UpdateDirectContentBounds();
 }
@@ -1618,7 +1615,7 @@
 //
 // ---------------------------------------------------------------------------
 //
-void CMIDCustomItem::MdcRemoveMMAPIContentBounds(const TRect& /*aRect*/)
+void CMIDCustomItem::MdcRemoveContentBounds(const TRect& /*aRect*/)
 {
     if (iForm && iDirectAreaAddedToDisplayable)
     {
--- a/javauis/lcdui_akn/lcdui/src/CMIDDateFieldItem.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/src/CMIDDateFieldItem.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -492,8 +492,6 @@
             // Show Menu or activate one command
             else
             {
-                TInt numScreenOrHelpCommands = displayable.NumCommandsForScreenOrHelpOptionsMenu();
-
                 // Active Command Show Menu
                 // if ( cntOpt > 1 ) will run menu, else execute ProcessCommandL( CommandOffset )
                 if (cntOpt > 1)
@@ -501,13 +499,6 @@
                     displayable.MenuHandler()->ShowMenuL(CMIDMenuHandler::EOkMenu);
                     return EKeyWasConsumed;
                 }
-                else if (cntOpt == 0 && numScreenOrHelpCommands > 1)
-                {
-                    // If there is more than one screen command on form
-                    // and there is no ok/item commands then show menu
-                    displayable.MenuHandler()->ShowMenuL(CMIDMenuHandler::EOptionsMenu);
-                    return EKeyWasConsumed;
-                }
                 else if (command && command->CommandType() != MMIDCommand::EBack &&
                          command->CommandType() != MMIDCommand::ECancel)
                 {
@@ -526,8 +517,7 @@
     //
     // End Enter Key
     //
-    if (code == EKeyDownArrow || code == EKeyUpArrow ||
-            (code == EKeyApplication0 || aKeyEvent.iScanCode == EStdKeyApplication0))
+    if (code == EKeyDownArrow || code == EKeyUpArrow || code == EKeyApplication0)
         return EKeyWasNotConsumed;
 
     if (!iInitialised && aType == EEventKey && !CMIDUtils::IgnoreKeyEvent(aKeyEvent.iCode))
--- a/javauis/lcdui_akn/lcdui/src/CMIDDisplayable.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/src/CMIDDisplayable.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -284,16 +284,16 @@
 }
 
 CMIDDisplayable::CMIDDisplayable(MMIDEnv& aEnv,CMIDUIManager& aUIManager)
-    :CEikBorderedControl(TGulBorder(KMIDLetBorder)),
-     iUIManager(&aUIManager),iEnv(aEnv),
-     iIsFullScreenMode(EFalse),iActive(EFalse), iSelectCommand(NULL), iSelectCommandEnabled(ETrue),
-     iFullscreenCanvasLabelCacheIsValid(EFalse)
+        :CEikBorderedControl(TGulBorder(KMIDLetBorder)),
+        iUIManager(&aUIManager),iEnv(aEnv),
+        iIsFullScreenMode(EFalse),iActive(EFalse), iSelectCommand(NULL), iSelectCommandEnabled(ETrue),
+        iFullscreenCanvasLabelCacheIsValid(EFalse)
 #ifdef RD_TACTILE_FEEDBACK
-     ,iPenInputServerConnected(EFalse)
+        ,iPenInputServerConnected(EFalse)
 #endif //RD_TACTILE_FEEDBACK
-     ,iIdOfMSKCommand(KErrNotFound)
-     ,iRestoreOrientation(EFalse)
-     ,iReleaseCnt(0)
+        ,iIdOfMSKCommand(KErrNotFound)
+        ,iRestoreOrientation(EFalse)
+        ,iReleaseCnt(0)
 {
 #ifdef RD_JAVA_S60_RELEASE_9_2
     iSplitScreenKeyboard = EFalse;
@@ -424,29 +424,14 @@
 {
     CWindowGc& gc = SystemGc();
 
-    // Set up update region - preventing MMAPI content area to
-    // be destroyed by redrawing
-#ifdef RD_JAVA_NGA_ENABLED
-    // Video overlays supported only for Canvas
-    CMIDCanvas* canvas = GetContentCanvas();
-    TBool overlayEnabled = iEnv.VideoOverlayEnabled() &&
-                           canvas && !canvas->IsGameCanvas();
-
-    if (!iDirectContentsRegion.IsEmpty() && !overlayEnabled)
-#else
+    // Set up update region - preventing DSA to be destroyed by redrawing
     if (!iDirectContentsRegion.IsEmpty())
-#endif // RD_JAVA_NGA_ENABLED
     {
         gc.CancelClippingRect();
         iUpdateRegion.Clear();
         iUpdateRegion.AddRect(aRect);
-
-        // Protect access to iDirectContentsRegion,
-        // because it may be modified in MMAPI thread.
-        MMIDEnv::TCriticalSectionAutoLock autoLock(iEnv.GetMMAPILock());
         // Remove occupied areas out from update region
         iUpdateRegion.SubRegion(iDirectContentsRegion);
-
         // Set the update region for the context
         gc.SetClippingRegion(iUpdateRegion);
     }
@@ -548,11 +533,11 @@
 #endif // RD_JAVA_S60_RELEASE_9_2            
         {
             if ((!isItemCommands &&
-                    (command->CommandType() != MMIDCommand::EOk) &&
-                    (command->CommandType() != MMIDCommand::EItem)) ||
-                    (command->Id() == CMIDEdwinUtils::EMenuCommandFetchPhoneNumber) ||
-                    (command->Id() == CMIDEdwinUtils::EMenuCommandFetchEmailAddress) ||
-                    (command->Id() == CMIDEdwinUtils::EMenuCommandCreatePhoneCall))
+            (command->CommandType() != MMIDCommand::EOk) &&
+            (command->CommandType() != MMIDCommand::EItem)) ||
+            (command->Id() == CMIDEdwinUtils::EMenuCommandFetchPhoneNumber) ||
+            (command->Id() == CMIDEdwinUtils::EMenuCommandFetchEmailAddress) ||
+            (command->Id() == CMIDEdwinUtils::EMenuCommandCreatePhoneCall))
             {
                 continue;
             }
@@ -1033,7 +1018,7 @@
     {
 
         // If MIDlet is sent to background and JAD-attribute BackgroundEvent=Pause,
-        // and window is not faded yet or window is already faded but pauseApp was not called yet,
+        // and window is not faded yet or window is already faded but pauseApp was not called yet
         // then call pauseApp() method for the MIDlet.
         TBool isfaded = this->DrawableWindow()->IsFaded();
 
@@ -2468,7 +2453,7 @@
             // There is no explicitly set MSK command and just one for the context menu.
             // Instead of a menu, put the command to MSK directly.
             RPointerArray<CMIDCommand> commands;
-            GetOkOptionsMenuCommandsL(commands);
+            GetOkOptionsMenuCommands(commands);
             ASSERT(commands.Count() == 1);
             CMIDCommand* command = commands[0];
             commands.Close();
@@ -2623,47 +2608,6 @@
     return EFalse;
 }
 
-// ---------------------------------------------------------------------------
-// See how many commands eligible for the screen or help - optins menu we have.
-// If we have only one command call ProcessCommandL. Otherwise show
-// options menu. In these two cases return ETrue. If zero or negative
-// commands do nothing and return EFalse.
-// ---------------------------------------------------------------------------
-TBool CMIDDisplayable::ShowScreenOrHelpOptionsMenuL()
-{
-    TBool ret = EFalse;
-    TInt numOkCommands = NumCommandsForOkOptionsMenu();
-    TInt numScreenOrHelpCommands = NumCommandsForScreenOrHelpOptionsMenu();
-    TInt screenOrHelpCmdIndex = GetHighestPriorityScreenOrHelpCommand();
-
-    // There is no OK or ITEM command defined on form
-    // There are SCREEN or HELP commands
-    if (iCommandList && screenOrHelpCmdIndex != KErrNotFound && numOkCommands == 0)
-    {
-        CMIDCommand *command = NULL;
-        if (iCommandList->IsValidIndex(screenOrHelpCmdIndex))
-        {
-            command = iCommandList->At(screenOrHelpCmdIndex).iCommand;
-        }
-
-        if (command && (command->CommandType() == MMIDCommand::EScreen ||
-                        command->CommandType() == MMIDCommand::EHelp) && iMenuHandler)
-        {
-            if (numScreenOrHelpCommands > 1)
-            {
-                iMenuHandler->ShowMenuL(CMIDMenuHandler::EOptionsMenu);
-                ret = ETrue;
-            }
-            else if (numScreenOrHelpCommands == 1)
-            {
-                ProcessCommandL(iCommandList->CommandOffset());
-                ret = ETrue;
-            }
-        }
-    }
-
-    return ret;
-}
 
 // ---------------------------------------------------------------------------
 // Return the number of commands that can be displayed in the ok-options menu.
@@ -2726,47 +2670,6 @@
 }
 
 // ---------------------------------------------------------------------------
-// Return the number of commands that can be displayed in the screen or help - options menu.
-// Form item screen or help commands are ignored
-//
-// TextBox/TextField device-provided commands:
-// - "Fetch number"
-// - "Call"
-// - "Fetch e-mail address"
-// are exception. Those are visible ONLY in Options menu so here they are
-// removed from context menu commands count.
-// ---------------------------------------------------------------------------
-TInt CMIDDisplayable::NumCommandsForScreenOrHelpOptionsMenu() const
-{
-    TInt ret = 0;
-
-    // Add SCREEN and HELP commands from form
-    if (iCommandList)
-    {
-        TInt numCommands = iCommandList->Count();
-        for (TInt i = 0; i < numCommands; i++)
-        {
-            const CMIDCommand& command = *(iCommandList->At(i).iCommand);
-
-            if (((command.CommandType() == MMIDCommand::EScreen) ||
-                    (command.CommandType() == MMIDCommand::EHelp)) &&
-                    (command.Id() != CMIDEdwinUtils::EMenuCommandFetchPhoneNumber) &&
-                    (command.Id() != CMIDEdwinUtils::EMenuCommandFetchEmailAddress) &&
-                    (command.Id() != CMIDEdwinUtils::EMenuCommandCreatePhoneCall))
-            {
-                TBool selectCommand = (&command == iSelectCommand);
-                if (selectCommand && !iSelectCommandEnabled)
-                {
-                    continue;
-                }
-                ret++;
-            }
-        }
-    }
-    return ret;
-}
-
-// ---------------------------------------------------------------------------
 // Returns a pointer to the command in the iCommandList with the specified
 // ID number. If such command is not found, returns NULL.
 // ---------------------------------------------------------------------------
@@ -2798,7 +2701,7 @@
 // If there are item commands, there are placed first. Form commands of ITEM
 // and OK type are then included always.
 // ---------------------------------------------------------------------------
-void CMIDDisplayable::GetOkOptionsMenuCommandsL(RPointerArray<CMIDCommand>& aCommands) const
+void CMIDDisplayable::GetOkOptionsMenuCommands(RPointerArray<CMIDCommand>& aCommands) const
 {
     aCommands.Reset();
     if (iItemCommandList && iItemCommandList->Count() > 0)
@@ -2810,7 +2713,7 @@
                     (command->Id() != CMIDEdwinUtils::EMenuCommandFetchEmailAddress) &&
                     (command->Id() != CMIDEdwinUtils::EMenuCommandCreatePhoneCall))
             {
-                aCommands.AppendL(command);
+                aCommands.Append(command);
             }
         }
     }
@@ -2830,7 +2733,7 @@
             {
                 continue;
             }
-            aCommands.AppendL(command);
+            aCommands.Append(command);
         }
     }
 }
@@ -3170,15 +3073,8 @@
                      rect, TIdentityRelation< TDirectContentsRect >(CMIDDisplayable::MatchDirectContentsRects));
     if (index == KErrNotFound)
     {
-        TInt err = iDirectContentsRects.Append(rect);
-        if (KErrNone == err)
-        {
-            UpdateDirectContentsRegion();
-        }
-        else
-        {
-            DEBUG_INT("CMIDDisplayable::AddDirectContentArea - RArray append error %d", err);
-        }
+        iDirectContentsRects.Append(rect);
+        UpdateDirectContentsRegion();
     }
     else
     {
@@ -3227,9 +3123,6 @@
 //
 void CMIDDisplayable::UpdateDirectContentsRegion()
 {
-    // iDirectContentsRegion is accessed both in LCDUI and MMAPI threads
-    MMIDEnv::TCriticalSectionAutoLock autoLock(iEnv.GetMMAPILock());
-
     iDirectContentsRegion.Clear();
     TInt count = iDirectContentsRects.Count();
     for (int index = 0; index < count; index++)
@@ -3239,6 +3132,11 @@
 }
 
 
+TBool CMIDDisplayable::NoDirectContentAreaDefined()
+{
+    return iDirectContentsRegion.IsEmpty();
+}
+
 void CMIDDisplayable::SetPopupTextBox(TBool aPopup)
 {
     iIsPopupTextBox = aPopup;
@@ -3388,21 +3286,6 @@
     }
 }
 
-#ifdef RD_JAVA_NGA_ENABLED
-void CMIDDisplayable::GetDirectContentsRegion(RRegion& region) const
-{
-    // Protect access to iDirectContentsRegion,
-    // because it may be modified in MMAPI thread.
-    MMIDEnv::TCriticalSectionAutoLock autoLock(iEnv.GetMMAPILock());
-    region.Copy(iDirectContentsRegion);
-}
-
-TInt CMIDDisplayable::DirectContentsCount() const
-{
-    return iDirectContentsRegion.Count();
-}
-#endif // RD_JAVA_NGA_ENABLED
-
 void CMIDDisplayable::DisplayableBehindPopupIsDestroyed()
 {
     // Old fullscreen Displayable is destroyed.
@@ -3438,7 +3321,7 @@
     HideIndicator(pane, EEikStatusPaneUidDigitalClock);
 }
 
-CMIDCanvas* CMIDDisplayable::GetContentCanvas() const
+CMIDCanvas* CMIDDisplayable::GetContentCanvas()
 {
     CMIDCanvas* ret = NULL;
     if (iContent && iContentControl &&
@@ -3507,7 +3390,7 @@
 }
 
 CPropertyWatch::CPropertyWatch()
-    : CActive(0)
+        : CActive(0)
 {
 }
 
--- a/javauis/lcdui_akn/lcdui/src/CMIDEdwin.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/src/CMIDEdwin.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -20,7 +20,7 @@
 #include <eikappui.h>
 #include <coecntrl.h>
 // macros for resources
-#include <eikcoctl.rsg>
+#include <EIKCOCTL.rsg>
 
 #include <AknUtils.h>
 // usied for playing error sounds when text input
@@ -770,8 +770,7 @@
         {
             CEikEdwin::SetCursorPosL(cursorPos + 1, EFalse);
         }
-        else if (cursorPos == (iMaxSize - 1) && cursorPos == textLength &&
-                 (scanCode == EStdKeyFullStop || scanCode == EStdKeyMinus))
+        else if (cursorPos == (iMaxSize - 1) && cursorPos == textLength && scanCode==EStdKeyFullStop)
         {
             CEikEdwin::SetCursorPosL(iMaxSize, EFalse);
         }
@@ -841,7 +840,7 @@
         }
     }
 
-    if (aType != EEventKey && aKeyEvent.iScanCode != EStdKeyApplication0)
+    if (aType != EEventKey)
     {
         UpdateTextCapacityIndicatorValueL();
         return EKeyWasConsumed;
@@ -850,16 +849,13 @@
 
     TKeyResponse response = EKeyWasNotConsumed;
 
-    // Error tone playing case2:
-    // Play error tone if TextBox/TextField is read-only or maximum length has been reached.
-    // Here is handling of full keyboard keys(NOT 0...9) and all virtual keyboard keys
-    // (camera and menu key not included).
-    // (Note: Virtual keyboard sends only EEventKey type events, not up or down events)
-    // (Note: Error tone is played when there is no text to be replaced i.e. no text has been painted)
-    if (!iEdwinUtils->IsNavigationKey(aKeyEvent) && !iEdwinUtils->IsHotKeyL(aKeyEvent, iCoeEnv) && aKeyEvent.iCode != EKeyYes &&
-            (!iKeyEventsPending || (scanCode < KKeyQwerty0  || scanCode > KKeyQwerty9)) &&
-            (aKeyEvent.iCode != EKeyApplication0 && scanCode != EStdKeyApplication0 &&
-             aKeyEvent.iCode != EKeyApplication19 && scanCode != EStdKeyApplication19))
+    //Error tone playing case2:
+    //Play error tone if TextBox/TextField is read-only or maximum length has been reached.
+    //Here is handling of full keyboard keys(NOT 0...9) and all virtual keyboard keys.
+    //(Note: Virtual keyboard sends only EEventKey type events, not up or down events)
+    //(Note: Error tone is played when there is no text to be replaced i.e. no text has been painted)
+    if (!iEdwinUtils->IsNavigationKey(aKeyEvent) && !iEdwinUtils->IsHotKeyL(aKeyEvent, iCoeEnv) && !aKeyEvent.iCode == EKeyYes &&
+            (!iKeyEventsPending || (scanCode < KKeyQwerty0  || scanCode > KKeyQwerty9)))
     {
         if (IsReadOnly() || (TextLength() >= iMaxSize && aKeyEvent.iCode != EKeyBackspace))
         {
@@ -926,21 +922,14 @@
                 if (res && TChar(aKeyEvent.iCode) == TChar('-') &&
                         TextLength() < iMaxSize)
                 {
-                    TInt textLength = TextLength();
                     res->InsertL(GetCaretPosition(), KMinusChar);
                     HandleTextChangedL(); // notify editor about the text changes
                     CEikEdwin::ReportEdwinEventL(EEventTextUpdate);
-                    TInt cursorPos = GetCaretPosition();
 
                     if (TextLength() < iMaxSize)
                     {
                         CEikEdwin::SetCursorPosL(GetCaretPosition() + 1, EFalse);
                     }
-                    else if (cursorPos == (iMaxSize - 1) && cursorPos == textLength)
-
-                    {
-                        CEikEdwin::SetCursorPosL(iMaxSize, EFalse);
-                    }
                 }
             }
 
--- a/javauis/lcdui_akn/lcdui/src/CMIDEdwinUtils.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/src/CMIDEdwinUtils.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -60,7 +60,7 @@
 #include <eikappui.h>
 #include <coecntrl.h>
 
-#include <eikcoctl.rsg>
+#include <EIKCOCTL.rsg>
 
 #include <aknenv.h>
 #include <AknUtils.h>
--- a/javauis/lcdui_akn/lcdui/src/CMIDForm.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/src/CMIDForm.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -159,7 +159,7 @@
 /**
  * Inserts a new Item.
  */
-void CMIDForm::InsertItemL(MMIDItem& aItem, TInt aIndex)
+void CMIDForm::InsertItemL(MMIDItem& aItem,TInt aIndex)
 {
     DEBUG("CMIDForm::InsertItemL");
 
@@ -225,6 +225,7 @@
     if (&ci == iPointedControl)
     {
         iPointedControl = NULL;
+        iLastPointedControl = KErrNotFound;
     }
 
     iItems.Remove(aIndex);
@@ -256,6 +257,8 @@
     iIndexPointedControl = -1;
 
     iPointedControl = NULL;
+    iLastPointedControl = KErrNotFound;
+
     RequestLayoutL();
 }
 
@@ -339,25 +342,6 @@
         TRect controlRect = GetControlRect(iFocused);
         TBool visible = RectPartiallyVisible(controlRect);
 
-#ifdef RD_JAVA_S60_RELEASE_9_2
-        TInt numItemCommands = controlItem.CommandList()->Count();
-
-        // If focused form item does not have any commands,
-        // and select key was pressed try to show screen\help option menu.
-        // ChoiceGroup and DateField handles this case separately.
-        // Gauge enter key is also handled here,
-        // so it would behave the same way as selection key.
-        if (numItemCommands == 0 && aType == EEventKey &&
-                controlItem.Type() != MMIDComponent::EChoiceGroup &&
-                controlItem.Type() != MMIDComponent::EDateField &&
-                (aKeyEvent.iScanCode == EStdKeyDevice3 ||
-                 (aKeyEvent.iScanCode == EStdKeyEnter &&
-                  controlItem.Type() == MMIDComponent::EGauge)))
-        {
-            iDisplayable.ShowScreenOrHelpOptionsMenuL();
-        }
-#endif // RD_JAVA_S60_RELEASE_9_2
-
         // arrow key events are not sent to the hidden focused item
         if ((visible || !isArrowKey) &&
                 controlItem.OfferKeyEventL(aKeyEvent,aType) == EKeyWasConsumed)
@@ -639,6 +623,7 @@
         iFocusChangingWithPen = EFalse;
         iScrollOnPointerDown = EFalse;
         iIndexPointedControl = -1;
+        iLastPointedControl = KErrNotFound;
 
         break;
     }
@@ -2004,13 +1989,6 @@
         control.PostFocusTransferEvent(EFalse, aDirection);
         // setting highlight must be called before setting focus
         control.SetHighlight(EFalse);
-#ifdef RD_JAVA_S60_RELEASE_9_2
-        if (IsChoiceGroup(control))
-        {
-            CMIDChoiceGroupItem& cg = static_cast< CMIDChoiceGroupItem& >(control);
-            cg.SetHighlight(EFalse);
-        }
-#endif // RD_JAVA_S60_RELEASE_9_2
         control.SetFocus(EFalse);
         UpdateItemCommands(NULL, NULL);
     }
@@ -2039,16 +2017,11 @@
     if (iFocused != KErrNotFound)
     { // actions for the item gaining focus
         CMIDControlItem& control = ControlItem(iFocused);
+
         SetHighlightBackgroundRects();
+
         control.PostFocusTransferEvent(ETrue, aDirection);
         control.SetHighlight(ETrue);
-#ifdef RD_JAVA_S60_RELEASE_9_2
-        if (IsChoiceGroup(control))
-        {
-            CMIDChoiceGroupItem& cg = static_cast< CMIDChoiceGroupItem& >(control);
-            cg.SetHighlight(ETrue);
-        }
-#endif // RD_JAVA_S60_RELEASE_9_2
         control.SetFocus(ETrue);
         // msk: deliver also the possible MSK command to displayable
         UpdateItemCommands(control.CommandList(), control.GetMSKCommand());
@@ -2346,7 +2319,11 @@
 
     // Background for highlighted item, frame rects are set later
     iHighlightedBackgroundCc = CAknsFrameBackgroundControlContext::NewL(
+#ifdef RD_JAVA_S60_RELEASE_9_2
+                                   KAknsIIDQsnFrPopupPreview,
+#else
                                    KAknsIIDQsnFrInput,
+#endif // RD_JAVA_S60_RELEASE_9_2
                                    TRect(), TRect(), ETrue);
 
     iDisplayable.SetComponentL(*this);
@@ -3184,28 +3161,9 @@
 {
     TInt numLines = aTextControl.NumLines();
     for (TInt j = 0; j < numLines; j++)
-    {
-        CEikLabel* label = aTextControl.LabelAtIdx(j);
-
-        if (label)
-        {
-            CGraphicsContext::TTextAlign align = aTextControl.LabelAtIdx(j)->iAlignment.TextAlign();
-
-            // If aLabel aligment is incorrect relayout aLabel
-            if ((align != CGraphicsContext::ERight &&
-                    iInitialAlignment == MMIDItem::ERight) ||
-                    (align != CGraphicsContext::ELeft &&
-                     iInitialAlignment == MMIDItem::ELeft) ||
-                    (align != CGraphicsContext::ECenter &&
-                     iInitialAlignment == MMIDItem::ECenter))
-            {
-                aTextControl.LayoutItemLabel();
-            }
-
-            // insert every line as a CMIDLabelContainerItem
-            CreateAndAddLabelContainerItemL(
-                aStringItem, *(label), aIsStringItemContent);
-        }
+    { // insert every line as a CMIDLabelContainerItem
+        CreateAndAddLabelContainerItemL(
+            aStringItem, *(aTextControl.LabelAtIdx(j)), aIsStringItemContent);
 
         if (j != (numLines-1))
         { // insert a row break except for the last line
@@ -3396,6 +3354,7 @@
     if (iLastPointedControl != KErrNotFound)
     {
         iPointedControl = &ControlItem(iLastPointedControl);
+        iLastPointedControl = KErrNotFound;
     }
 }
 
@@ -3582,6 +3541,19 @@
     return (aControlItem.iMMidItem->Type() == MMIDComponent::EGauge);
 }
 
+TBool CMIDForm::IsInteractiveGaugeItem(CMIDControlItem& aControlItem)
+{
+    if (IsGaugeItem(aControlItem))
+    {
+        CMIDGaugeItem* gauge = static_cast<CMIDGaugeItem*>(&aControlItem);
+        if (gauge)
+        {
+            return gauge->IsInteractive();
+        }
+    }
+    return EFalse;
+}
+
 TBool CMIDForm::IsTextFieldItem(CMIDControlItem& aControlItem)
 {
     if (!aControlItem.iMMidItem)
@@ -3600,22 +3572,6 @@
     return (aControlItem.iMMidItem->Type() == MMIDComponent::EChoiceGroup);
 }
 
-TBool CMIDForm::IsPopupChoiceGroup(CMIDControlItem& aControlItem)
-{
-    if (aControlItem.iMMidItem
-            && aControlItem.iMMidItem->Type() == MMIDComponent::EChoiceGroup)
-    {
-        CMIDChoiceGroupItem& cgItem = static_cast<CMIDChoiceGroupItem&>(aControlItem);
-        CMIDChoiceGroupControl* cgControl =
-            static_cast<CMIDChoiceGroupControl*>(cgItem.ComponentControl(1));
-        if (cgControl && cgControl->ChoiceType() == MMIDChoiceGroup::EPopup)
-        {
-            return ETrue;
-        }
-    }
-    return EFalse;
-}
-
 TBool CMIDForm::IsDateField(CMIDControlItem& aControlItem)
 {
     if (!aControlItem.iMMidItem)
@@ -3668,20 +3624,6 @@
         }
     }
 }
-
-TInt CMIDForm::FormRowIndex(CMIDFormRow* aRow)
-{
-    return iRows.Find(aRow);
-}
-
-CMIDFormRow* CMIDForm::FormRow(TInt aIndex)
-{
-    if (iRows.Count() > aIndex)
-    {
-        return iRows[aIndex];
-    }
-    return NULL;
-}
 #endif // RD_JAVA_S60_RELEASE_9_2
 
 // returns: The number of new lines before an item.
@@ -3749,7 +3691,7 @@
     // CMIDForm::HandleHighlightTimer or
     // in CMIDForm::HandlePhysicsPointerEventL),
     // iPointedControl must be set to NULL.
-    if (iPointedControl)
+    if (iPointedControl && !iUpEventSent)
     {
         // Store the index to last poited control. It will
         // be restored after item are placed to new rows
@@ -4059,18 +4001,13 @@
 
 TInt CMIDForm::GetMidpNaviPos()
 {
+    // get main pane size from CEikAppU
+    TRect mainPane = iAvkonAppUi->ApplicationRect();
+
+    // get screen size in pixels
     TAknLayoutRect mainMidpPane;
-
-    // get main pane size from Avkon (size in pixels)
-#ifdef RD_JAVA_S60_RELEASE_9_2
-    TRect mainPane;
-    AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, mainPane);
-    mainMidpPane.LayoutRect(mainPane,
-                            AknLayoutScalable_Avkon::main_midp_pane().LayoutLine());
-#else
     mainMidpPane.LayoutRect(iEikonEnv->ScreenDevice()->SizeInPixels(),
                             AknLayoutScalable_Avkon::main_midp_pane().LayoutLine());
-#endif // RD_JAVA_S60_RELEASE_9_2
 
     // getting form size depends on screen orientation
     TInt variety = Layout_Meta_Data::IsLandscapeOrientation() ? 1 : 0;
@@ -4228,6 +4165,12 @@
             iPhysics->Stop();
             CMIDControlItem* ci = ControlItemAtPoint(aPointerEvent.iPosition);
 
+            if (ci && IsInteractiveGaugeItem(*ci))
+            {
+                CMIDGaugeItem* gauge = static_cast<CMIDGaugeItem*>(ci);
+                this->iLastGaugeValue = gauge->GetValue();
+            }
+
             // Physics scrolling was not ongoing and tap hit already selected item.
             // Then forward pointer event to the item.
             if (ci && IsCurrentItem((CMIDItem*)ci) && !iFlickStoppedOnDownEvent)
@@ -4263,10 +4206,6 @@
                 if (iPointedControl)
                 {
                     TInt highlightTimeout = iPhysics->HighlightDelay() * 1000;
-                    if (IsPopupChoiceGroup(*iPointedControl))
-                    {
-                        highlightTimeout /= 2;
-                    }
                     iHighlightTimer->Start(TTimeIntervalMicroSeconds32(highlightTimeout),
                                            TTimeIntervalMicroSeconds32(highlightTimeout),
                                            TCallBack(HighlightTimerCallback, this));
@@ -4291,7 +4230,8 @@
             // Override triggering of physicsScrolling in case of doing text painting in TextField-item
             // or moving slider in Gauge-item.
             if (!iPreventPhysicsScrolling && iPointedControl && iPointedControl->iMMidItem &&
-                    iPointedControl->iMMidItem->Type() == MMIDComponent::ETextField)
+                    (iPointedControl->iMMidItem->Type() == MMIDComponent::ETextField ||
+                     IsInteractiveGaugeItem(*iPointedControl)))
             {
                 // If physics scrolling is not ongoing (abs(dragY) < DragTreshold)
                 // then stop flicking and forward event to the item (iPreventPhysicsScrolling = ETrue).
@@ -4316,6 +4256,28 @@
                 {
                     ControlItem(iFocused).HandlePointerEventL(aPointerEvent);
                 }
+                if (iPointedControl && IsInteractiveGaugeItem(*iPointedControl))
+                {
+                    CMIDGaugeItem* gauge = static_cast<CMIDGaugeItem*>(iPointedControl);
+
+                    // If panning is started here (i.e. dragging of slider
+                    // didn't exceed the horizontal threshold), reset
+                    // gauge value to original value (from pointer down).
+                    // To ensure that slider updates its visual appearance
+                    // (i.e. thumb will be displayed as released),
+                    // lets send dummy event with original position.
+                    TPointerEvent newEvent;
+                    newEvent.iType = TPointerEvent::EButton1Up;
+                    newEvent.iPosition = iStartPosition;
+                    ForwardPointerEventToItemL(newEvent);
+
+                    // reset value
+                    gauge->SetValueL(iLastGaugeValue);
+
+                    // post event to ensure that item state listener is notified
+                    // about change
+                    iEnv->PostJavaEvent(*this, EDisplayable, Index(iPointedControl));
+                }
             }
             // If panning is already ongoing. Update panning position. Also we redraw entire Form
             // to prevent unexpected behavior(artifacts on the screen) during flick scrolling and
@@ -4374,12 +4336,46 @@
             // forward event to the item.
             if (!iUpEventSent)
             {
-                ForwardPointerEventToItemL(aPointerEvent);
+                if (iPointedControl && IsInteractiveGaugeItem(*iPointedControl))
+                {
+                    // In case that pointed control is GaugeItem and
+                    // pointer up happened outside of its bound,
+                    // reset gauge value to original value (from pointer down).
+                    CMIDGaugeItem* gauge = static_cast<CMIDGaugeItem*>(iPointedControl);
+                    if (!gauge->Rect().Contains(aPointerEvent.iPosition))
+                    {
+                        // To ensure that slider updates its visual appearance
+                        // (i.e. thumb will be displayed as released),
+                        // lets send dummy event with original position.
+                        TPointerEvent newEvent;
+                        newEvent.iType = TPointerEvent::EButton1Up;
+                        newEvent.iPosition = iStartPosition;
+                        ForwardPointerEventToItemL(newEvent);
+
+                        // reset value
+                        gauge->SetValueL(iLastGaugeValue);
+                        
+                        // post event to ensure that item state listener is notified
+                        // about change
+                        iEnv->PostJavaEvent(*this, EDisplayable, Index(iPointedControl));
+                    }
+                    else
+                    {
+                        // Pointer up happened inside of GaugeItem,
+                        // forward pointer event to item.
+                        ForwardPointerEventToItemL(aPointerEvent);
+                    }
+                }
+                else
+                {
+                    ForwardPointerEventToItemL(aPointerEvent);
+                }
                 iUpEventSent = ETrue;
             }
 
             iPanningOngoing = EFalse;
             iCanDragFocus = EFalse;
+            iLastPointedControl = KErrNotFound;
             break;
         }
         default:
@@ -4406,14 +4402,7 @@
         {
             if (iFocused != KErrNotFound)
             {
-                if (IsPopupChoiceGroup(*iPointedControl))
-                {
-                    iPointedControl->HandlePointerEventL(aPointerEvent);
-                }
-                else
-                {
-                    ControlItem(iFocused).HandlePointerEventL(aPointerEvent);
-                }
+                ControlItem(iFocused).HandlePointerEventL(aPointerEvent);
             }
 
             if (LayoutPending())
--- a/javauis/lcdui_akn/lcdui/src/CMIDGaugeItem.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/src/CMIDGaugeItem.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -46,9 +46,6 @@
 // using AknsDrawUtils for drawing background
 #include <AknsDrawUtils.h>
 #include <applayout.cdl.h>
-
-// for MAknsControlContext::SupplyMopObject method
-#include <AknsFrameBackgroundControlContext.h>
 // LAF
 #include <aknlayoutscalable_avkon.cdl.h>
 
@@ -101,8 +98,7 @@
 void CMIDGaugeItem::CGaugeTimer::RunL()
 {
     if (!iGauge.iGaugeFrameData)
-    {
-        //if the bitmaps haven't been created it means we are inside an alert,
+    {//if the bitmaps haven't been created it means we are inside an alert,
         //which is using its own bitmaps for the gauge animation.
         //Return without restarting the timer
         return;
@@ -1083,8 +1079,7 @@
 TSize CMIDNonInteractiveGauge::MinimumSize()
 {
     if (!iLabelControl || (iLabelControl->Text()->Length() == 0))
-    {
-        // item doesn't have label
+    { // item doesn't have label
         return TSize(FormClientAreaWidth(), iItemheightWithoutLabel);
     }
     else // item has label
@@ -1644,39 +1639,6 @@
            iBitmapAnimation->BitmapAnimData()->FrameArray().Count() > 0;
 }
 
-TTypeUid::Ptr CMIDNonInteractiveGauge::MopSupplyObject(TTypeUid aId)
-{
-    TTypeUid::Ptr ptr = TTypeUid::Null();
-
-    // When control context is requested we return new correct one.
-    // Default implementation otherwise.
-    if (aId.iUid == MAknsControlContext::ETypeId && iForm && IsFocused())
-    {
-        ptr =  MAknsControlContext::SupplyMopObject(aId, BackgroundControlContext());
-    }
-    else
-    {
-        ptr = CMIDControlItem::MopSupplyObject(aId);
-    }
-    return ptr;
-}
-
-CAknsFrameBackgroundControlContext* CMIDNonInteractiveGauge::BackgroundControlContext()
-{
-    // It tries create new instance of CAknsFrameBackgroundControlContext.
-    // When construction fails, the error is logged.
-    CAknsFrameBackgroundControlContext* context = NULL;
-    TRAPD(err, context = CAknsFrameBackgroundControlContext::NewL(
-                             KAknsIIDQsnFrInput,  Rect(),  Rect(), EFalse));
-    if (err != KErrNone)
-    {
-        DEBUG_INT("CMIDNonInteractiveGauge::BackgroundControlContext -\
- CAknsFrameBackgroundControlContext::NewL failed with error number %d", err);
-        context = NULL;
-    }
-    return context;
-}
-
 // ---------------------------------------------------------------------------
 //
 // ---------------------------------------------------------------------------
@@ -1783,8 +1745,7 @@
 TSize CMIDInteractiveGauge::MinimumSize()
 {
     if (!iLabelControl || (iLabelControl->Text()->Length() == 0))
-    {
-        // item doesn't have label
+    { // item doesn't have label
         return TSize(FormClientAreaWidth(), iItemheightWithoutLabel);
     }
     else // item has label
--- a/javauis/lcdui_akn/lcdui/src/CMIDItemLabel.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/src/CMIDItemLabel.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -643,11 +643,6 @@
     } //else
 }
 
-void CMIDItemLabel::LayoutItemLabel()
-{
-    SizeChanged();
-}
-
 void CMIDItemLabel::ResetLabelArray()
 {
     for (TInt i=0; i < iLabelArray->Count(); i++)
--- a/javauis/lcdui_akn/lcdui/src/CMIDKeyDecoder.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/src/CMIDKeyDecoder.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -191,8 +191,8 @@
 
 /** */
 CMIDKeyDecoder::CMIDKeyDecoder(MMIDEnv& aEnv)
-    : iEnv(aEnv)
-    ,iMediaKeysEnabled(EFalse)
+        : iEnv(aEnv)
+        ,iMediaKeysEnabled(EFalse)
 {
     DEBUG("< CMIDKeyDecoder::CMIDKeyDecoder");
     DEBUG("> CMIDKeyDecoder::CMIDKeyDecoder");
@@ -222,24 +222,18 @@
     TRAP(err, repository = CRepository::NewL(KCRUidMidpLcdui));
     // 2 bytes in scan code
     TBuf8<2> scanCodeBuffer;
-
-    if (err == KErrNone)
-    {
-        CleanupStack::PushL(repository);
-        err = repository->Get(KAdditionalSelectKeyMapping,scanCodeBuffer);
-        CleanupStack::PopAndDestroy(repository);
-    }
+    CleanupStack::PushL(repository);
+    err = repository->Get(KAdditionalSelectKeyMapping,scanCodeBuffer);
+    CleanupStack::PopAndDestroy(repository);
     if (err == KErrNone)
     {
         TUint8 scanCodeLeft = scanCodeBuffer[0];
         TUint8 scanCodeRight = scanCodeBuffer[1];
         TUint scanCode = (scanCodeLeft << 8) + scanCodeRight;
-        iAdditionalSelectkeyMapping = scanCode;
-    }
-    else
-    {
-        // Default value is set in error situations.
-        iAdditionalSelectkeyMapping = 0;
+        if (scanCode != 0)
+        {
+            iAdditionalSelectkeyMapping = scanCode;
+        }
     }
 
     CreateQwertyWatchL();
@@ -303,13 +297,11 @@
     User::LeaveIfError(iSpecialKeys.Append(TMIDKey(EStdKeyDevice13,EKeyLeftDownArrow, R_MIDP_KEY_LEFT)));
     User::LeaveIfError(iSpecialKeys.Append(TMIDKey(EStdKeyDelete,EKeyDelete, R_MIDP_KEY_DELETE)));
     if (!iQwertyModeActive)
-    {
-        // ITU-T keys with different behaviour
+    { // ITU-T keys with different behaviour
         User::LeaveIfError(iSpecialKeys.Append(TMIDKey(EStdKeyBackspace, KMIDKeyClear, R_MIDP_KEY_CLEAR)));
     }
     else
-    {
-        // QWERTY  keys with different behaviour
+    { // QWERTY  keys with different behaviour
         User::LeaveIfError(iSpecialKeys.Append(TMIDKey(EStdKeyBackspace, EKeyBackspace, R_MIDP_KEY_BACKSPACE)));
     }
 
@@ -565,14 +557,12 @@
     iActionScanCodes = NULL;
 
     if (!QwertyInputAvailable())
-    {
-        // if no qwerty always use default ITU-T codes
+    { // if no qwerty always use default ITU-T codes
         DEBUG("  CMIDKeyDecoder::LoadGameActionCodesL - use default ITU-T scan codes");
         iActionScanCodes = (TInt*)&KDefaultActionScanCodes[0];
     }
     else
-    {
-        // if there is qwerty either use CR repository codes or default qwerty codes
+    { // if there is qwerty either use CR repository codes or default qwerty codes
         CRepository* repository = NULL;
         TRAPD(crExists, repository = CRepository::NewL(KCRUidMidpLcdui));
 
@@ -583,14 +573,12 @@
         }
 
         if (iUseCRScanCodes)
-        {
-            // use CR QWERTY codes
+        { // use CR QWERTY codes
             DEBUG("  CMIDKeyDecoder::LoadGameActionCodesL - use central repository scan codes");
             LoadCentralRepositoryCodesL(repository);
         }
         else
-        {
-            //  use default QWERTY codes
+        { //  use default QWERTY codes
             DEBUG("  CMIDKeyDecoder::LoadGameActionCodesL - add default qwerty scan codes");
             iActionScanCodes = (TInt*)&KDefaultQwertyActionScanCodes[0];
         }
--- a/javauis/lcdui_akn/lcdui/src/CMIDTactileFeedbackExtension.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/src/CMIDTactileFeedbackExtension.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -22,8 +22,6 @@
 #include "CMIDCanvas.h"
 #include "CMIDCustomItem.h"
 
-#include <j2me/jdebug.h>
-
 CMIDTactileFeedbackExtension::CMIDTactileFeedbackExtension(MMIDTactileFeedbackComponent* aParent, TInt aParentType): TypeCanvas(1), TypeCustomItem(2)
 
 {
@@ -76,7 +74,6 @@
 void CMIDTactileFeedbackExtension::RegisterFeedbackArea(TInt aId, TRect aRect, TInt aStyle)
 {
     FeedbackArea* area = GetAreaByID(aId, NULL);
-    TInt err = KErrNone;
     if (area)
     {
         area->rect = aRect;
@@ -88,17 +85,10 @@
         newArea.id  = aId;
         newArea.rect = aRect;
         newArea.style = (TTouchLogicalFeedback)aStyle;
-        err = iFeedbackAreasArray.Append(newArea);
+        iFeedbackAreasArray.Append(newArea);
     }
 
-    if (KErrNone == err )
-    {
-        iParent->UpdateTactileFeedback();
-    }
-    else
-    {
-        DEBUG_INT("CMIDTactileFeedbackExtension::RegisterFeedbackArea - RArray append error %d", err);
-    }
+    iParent->UpdateTactileFeedback();
 }
 
 void CMIDTactileFeedbackExtension::SetFeedbackArea(TInt aId, TRect aRect, TInt aStyle)
--- a/javauis/lcdui_akn/lcdui/src/CMIDTextBoxDialogControl.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/src/CMIDTextBoxDialogControl.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -20,7 +20,7 @@
 
 #include "lcdui.hrh"
 #include <lcdui.rsg>
-#include <eikcoctl.rsg>
+#include <EIKCOCTL.rsg>
 
 #include <j2me/jdebug.h>
 
--- a/javauis/lcdui_akn/lcdui/src/CMIDTextBoxQueryDialog.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/src/CMIDTextBoxQueryDialog.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -20,7 +20,7 @@
 
 #include "lcdui.hrh"
 #include <lcdui.rsg>
-#include <eikcoctl.rsg>
+#include <EIKCOCTL.rsg>
 
 #include "CMIDEdwinUtils.h"
 
@@ -688,8 +688,7 @@
         {
             SetCursorPositionL(cursorPos + 1);
         }
-        else if (cursorPos == (iMaxSize - 1) && cursorPos == textLength &&
-                 (scanCode == EStdKeyFullStop || scanCode == EStdKeyMinus))
+        else if (cursorPos == (iMaxSize - 1) && cursorPos == textLength && scanCode==EStdKeyFullStop)
         {
             SetCursorPositionL(iMaxSize);
         }
@@ -768,16 +767,13 @@
     // If there is no focus textbox should not consume keys
     if (isFocused)
     {
-        // Error tone playing case2:
-        // Play error tone if TextBox/TextField is read-only or maximum length has been reached.
-        // Here is handling of full keyboard keys(NOT 0...9) and all virtual keyboard keys
-        // (camera and menu key not included).
-        // (Note: Virtual keyboard sends only EEventKey type events, not up or down events)
-        // (Note: Error tone is played when there is no text to be replaced i.e. no text has been painted)
-        if (!iEdwinUtils->IsNavigationKey(aKeyEvent) && !iEdwinUtils->IsHotKeyL(aKeyEvent, iCoeEnv) && aKeyEvent.iCode != EKeyYes &&
-                (!iKeyEventsPending || (scanCode < KKeyQwerty0  || scanCode > KKeyQwerty9)) &&
-                (aKeyEvent.iCode != EKeyApplication0 && scanCode != EStdKeyApplication0 &&
-                 aKeyEvent.iCode != EKeyApplication19 && scanCode != EStdKeyApplication19))
+        //Error tone playing case2:
+        //Play error tone if TextBox/TextField is read-only or maximum length has been reached.
+        //Here is handling of full keyboard keys(NOT 0...9) and all virtual keyboard keys.
+        //(Note: Virtual keyboard sends only EEventKey type events, not up or down events)
+        //(Note: Error tone is played when there is no text to be replaced i.e. no text has been painted)
+        if (!iEdwinUtils->IsNavigationKey(aKeyEvent) && !iEdwinUtils->IsHotKeyL(aKeyEvent, iCoeEnv) && !aKeyEvent.iCode == EKeyYes &&
+                (!iKeyEventsPending || (scanCode < KKeyQwerty0  || scanCode > KKeyQwerty9)))
         {
             if (iEditor->IsReadOnly() || (Size() >= iMaxSize && aKeyEvent.iCode != EKeyBackspace))
             {
@@ -838,21 +834,15 @@
                     if (res && TChar(aKeyEvent.iCode) == TChar('-') &&
                             Size() < iMaxSize)
                     {
-                        TInt textLength = Size();
                         res->InsertL(GetCaretPosition(), KMinusChar);
                         // notify editor about the text changes
                         iEditor->HandleTextChangedL();
-                        TInt cursorPos = GetCaretPosition();
 
                         if (Size() < iMaxSize)
                         {
                             SetCursorPositionL(GetCaretPosition() + 1);
                         }
-                        else if (cursorPos == (iMaxSize - 1) && cursorPos == textLength)
 
-                        {
-                            SetCursorPositionL(iMaxSize);
-                        }
                         //Prevent changes that would result in an illegal string
                         HandleTextUpdateL(MEikEdwinObserver::EEventTextUpdate);
                     }
@@ -1078,9 +1068,6 @@
         }
         else
         {
-            // avoid po-pup dialog box blinking
-            MakeVisible(EFalse);
-
             ExitSleepingDialog();
 #ifdef RD_SCALABLE_UI_V2
             SetPointerCapture(EFalse);
@@ -1294,8 +1281,8 @@
 
     iThisMultitapKey = 0;   // reset key counter
     iLastMultitapKey = 0;
-    
-    if(iEditor->ScrollBarFrame())
+
+    if (iEditor->ScrollBarFrame())
     {
         iEditor->ScrollBarFrame()->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff, CEikScrollBarFrame::EOff);
     }
--- a/javauis/lcdui_akn/lcdui/src/CMIDTextEditor.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/src/CMIDTextEditor.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -452,7 +452,7 @@
     }
     else
     {
-        iTextEdwin->OfferKeyEventL(aEvent, EEventKey);
+        iTextEdwin->OfferKeyEventL(aEvent, EEventKeyDown);
     }
 }
 
--- a/javauis/lcdui_akn/lcdui/src/CMIDTextEditorEdwin.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/src/CMIDTextEditorEdwin.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -157,9 +157,9 @@
 
         // Not handled, try with CEikEdwin
         // Consume down and up type of keyevents
-        if ((response == EKeyWasConsumed) ||
-                (aType != EEventKey && aKeyEvent.iScanCode !=
-                 EStdKeyApplication0))
+        if ((response == EKeyWasConsumed) || 
+                (aType != EEventKey && aKeyEvent.iScanCode != 
+                EStdKeyApplication0))
         {
             response = EKeyWasConsumed;
         }
@@ -178,9 +178,8 @@
             CleanupStack::PushL(oldContent);
 
             response = CEikEdwin::OfferKeyEventL(aKeyEvent, aType);
-
-            if (response == EKeyWasConsumed)
-            {
+            
+            if (response == EKeyWasConsumed) {
                 // Validate new content and undo if not valid.
                 if (!iEdwinUtils.ConstraintsValidForText(
                             Read(), iConstraints, EFalse))
@@ -193,13 +192,14 @@
                 }
             }
             else
-            {
-                // Consuming the up/down arrows, because edwin does not
-                // consume them when using predictive text
-                if (((aKeyEvent.iCode == EKeyUpArrow) ||
-                        (aKeyEvent.iCode == EKeyDownArrow)) ||
-                        ((aKeyEvent.iScanCode == EStdKeyUpArrow) ||
-                         (aKeyEvent.iScanCode == EStdKeyDownArrow)))
+            { 
+                // Consuming the up/down arrows, because edwin does not 
+                // consume them if at first/last line. 
+                if ((aType == EEventKey) &&
+                        (((aKeyEvent.iCode == EKeyUpArrow) ||
+                          (aKeyEvent.iCode == EKeyDownArrow)) ||
+                         ((aKeyEvent.iScanCode == EStdKeyUpArrow) ||
+                          (aKeyEvent.iScanCode == EStdKeyDownArrow))))
                 {
                     response = EKeyWasConsumed;
                 }
--- a/javauis/lcdui_akn/lcdui/src/CMIDTextFieldEdwin.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/src/CMIDTextFieldEdwin.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -123,7 +123,7 @@
     }
     else
     { // skinning colour groups for editable text
-        // Set color for content text (logical color constants
+        // Set color for content text (logical color constants 
         // are defined in lcdui.h)
         skinTextColor = IsFocused() ?
                         TAknsQsnTextColorsIndex(KHighlightedItemTextColor)
--- a/javauis/lcdui_akn/lcdui/src/CMIDTextFieldItem.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/src/CMIDTextFieldItem.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -326,6 +326,7 @@
 
 void CMIDTextFieldItem::FocusChanged(TDrawNow aDrawNow)
 {
+    TBool cursorVisibility = EFalse;
     if (IsFocused())
     {
         // Setting focus to iTextField changes the cursor visibility. This might cause
@@ -335,17 +336,20 @@
         iTextField->AddFlagToUserFlags(CEikEdwin::EAvkonDisableCursor);
         iTextField->SetFocus(ETrue);
         iTextField->RemoveFlagFromUserFlags(CEikEdwin::EAvkonDisableCursor);
-        SetCursorVisibility(IsVisible());
+        cursorVisibility = IsVisible();
     }
     else
     {
         iTextField->SetFocus(EFalse);
+        cursorVisibility = EFalse;
     }
 
     CMIDControlItem::FocusChanged(aDrawNow);
     // DoLayout and change text color when focused
     SizeChanged();
     TRAP_IGNORE(UpdateTextColorsL());
+
+    SetCursorVisibility(cursorVisibility);
 }
 
 void CMIDTextFieldItem::HandleCurrentL(TBool aCurrent)
@@ -386,7 +390,7 @@
 {
     if (AknLayoutUtils::PenEnabled())
     {
-        if (!iForm->PhysicsScrolling())
+        if (!iForm->PhysicsScrolling() && !iTextField->IsReadOnly())
         {
             SetCursorVisibility(ETrue);
         }
@@ -667,6 +671,11 @@
         TCursor::TVisibility textCursor =
             aVisible ? TCursor::EFCursorFlashing : TCursor::EFCursorInvisible;
 
+        if (iTextField->IsReadOnly())
+        {
+            textCursor = TCursor::EFCursorInvisible;
+        }
+
         // lineCursor is not used in TextField, so it is set to TCursor::EFCursorInvisible always
         TRAP_IGNORE(iTextField->TextView()->SetCursorVisibilityL(TCursor::EFCursorInvisible,
                     textCursor));
@@ -675,7 +684,7 @@
 
 void CMIDTextFieldItem::UpdateTextColorsL()
 {
-    if (iTextField)
+    if (iTextField && !iTextField->IsReadOnly())
     {
         // Set color for content text according to item highlight
         // (logical color constants are defined in lcdui.h)
--- a/javauis/lcdui_akn/lcdui/src/CMIDTicker.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/src/CMIDTicker.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -795,7 +795,7 @@
 
     if (aAdd)
     { //KAddDisplayable:
-        iDisplayableRArray.AppendL(aDisplayable);
+        iDisplayableRArray.Append(aDisplayable);
     }
     else
     {
--- a/javauis/lcdui_akn/lcdui/src/Cmidformrow.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcdui/src/Cmidformrow.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -26,18 +26,6 @@
 #include "CMIDControlItem.h"
 #include "CMIDItemLabel.h"
 
-#ifdef RD_JAVA_S60_RELEASE_9_2
-#include "CMIDLabelContainerItem.h"
-
-#include <AknsUtils.h>
-#include <aknlayoutscalable_avkon.cdl.h>
-
-// CONSTANTS
-// Default for Form separator line color's alpha value, used if not
-// found from skin.
-const TInt KDefaultSeparatorAlpha = 32;
-const TInt KDefaultSeparatorColor = 0;
-#endif // RD_JAVA_S60_RELEASE_9_2
 
 CMIDFormRow* CMIDFormRow::NewL(CMIDForm& aForm)
 {
@@ -76,49 +64,6 @@
     return iItems[aIndex];
 }
 
-#ifdef RD_JAVA_S60_RELEASE_9_2
-void CMIDFormRow::Draw(const TRect& /*aRect*/) const
-{
-    if (iSeparator)
-    {
-        CWindowGc& gc = SystemGc();
-        MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-        gc.SetBrushStyle(CGraphicsContext::ENullBrush);
-        gc.SetPenStyle(CGraphicsContext::ESolidPen);
-
-        TRgb color;
-        TInt err = AknsUtils::GetCachedColor(skin,
-                                             color,
-                                             KAknsIIDQsnTextColors,
-                                             EAknsCIQsnTextColorsCG6);
-        if (err != KErrNone)
-        {
-            color = KDefaultSeparatorColor;
-        }
-
-        TRgb colorFromSkin;
-        // Get alpha value from skin, if not successful, default is used.
-        err = AknsUtils::GetCachedColor(skin ? skin : AknsUtils::SkinInstance(),
-                                        colorFromSkin,
-                                        KAknsIIDQsnLineColors,
-                                        EAknsCIQsnLineColorsCG15);
-
-        color.SetAlpha(!err ? colorFromSkin.Red() : KDefaultSeparatorAlpha);
-        gc.SetDrawMode(CGraphicsContext::EDrawModePEN);
-        gc.SetPenColor(color);
-
-        // Draw line to upper part of the form row.
-        TRect lineRect(Rect());
-        // Using same margin value with avkon list box separator lines.
-        TInt gap = AknLayoutScalable_Avkon::listscroll_gen_pane(0).LayoutLine().it;
-        lineRect.Shrink(gap, 0);
-        lineRect.Move(0, 1);
-        gc.DrawLine(TPoint(lineRect.iTl.iX, lineRect.iTl.iY),
-                    TPoint(lineRect.iBr.iX, lineRect.iTl.iY));
-    }
-}
-#endif // RD_JAVA_S60_RELEASE_9_2
-
 void CMIDFormRow::SizeChanged()
 {
     TInt xOff = 0;
@@ -218,10 +163,6 @@
         User::LeaveIfError(iItems.Insert(aItem, 0));
     }
     iCurrentWidth += aItem->Size().iWidth;
-
-#ifdef RD_JAVA_S60_RELEASE_9_2
-    SetSeparator();
-#endif // RD_JAVA_S60_RELEASE_9_2   
 }
 
 void CMIDFormRow::SetAlignment(MMIDItem::TLayout aAlignment)
@@ -529,7 +470,7 @@
 {
 #ifdef RD_SCALABLE_UI_V2
     SetAllowStrayPointers();
-#endif // RD_SCALABLE_UI_V2
+#endif
 }
 
 void CMIDFormRow::ConstructL()
@@ -556,95 +497,4 @@
     return ret;
 }
 
-#ifdef RD_JAVA_S60_RELEASE_9_2
-void CMIDFormRow::SetSeparator()
-{
-    // Separator is not drawn above the first row.
-    if (iForm.FormRowIndex(this) <= 0)
-    {
-        iSeparator = EFalse;
-        return;
-    }
-    else
-    {
-        iSeparator = ETrue;
-    }
-
-    // Separator is not drawn if the rows includes only spacers
-    if (!HasNonSpacerItems())
-    {
-        iSeparator = EFalse;
-        return;
-    }
-
-    if (Item(0)->HasLabel())
-    {
-        iSeparator = ETrue;
-        return;
-    }
-    else
-    {
-        // If the first item is other than StringItem then draw separator.
-        if (!CMIDForm::IsLabelContainerItem(*Item(0)))
-        {
-            iSeparator = ETrue;
-            return;
-        }
-        else
-        {
-            // If Button type StringItem then separator is drawn.
-            if (CMIDForm::IsStringItemButton(*Item(0)))
-            {
-                iSeparator = ETrue;
-                return;
-            }
-
-            CMIDLabelContainerItem* ucsi = static_cast<CMIDLabelContainerItem*>(Item(0));
-            // If the first item is label, then draw separator.
-            if (ucsi && !ucsi->IsStringItemContent())
-            {
-                iSeparator = ETrue;
-                return;
-            }
-            else
-            {
-                // If the last item in the previous row is StringItem,
-                // then do not draw separator.
-                TInt prevRowIndex = iForm.FormRowIndex(this) - 1;
-                if (prevRowIndex >= 0)
-                {
-                    CMIDFormRow* prevRow = iForm.FormRow(prevRowIndex);
-                    TInt index = 0;
-                    if (prevRow)
-                    {
-                        index = prevRow->NumItems();
-
-                        // If there are items in previous row check if row is StrinItem
-                        if (index >= 1)
-                        {
-                            CMIDControlItem* lastPrevItem = prevRow->Item(index - 1);
-
-                            if (lastPrevItem && CMIDForm::IsLabelContainerItem(*lastPrevItem))
-                            {
-                                iSeparator = EFalse;
-                                return;
-                            }
-                            else
-                            {
-                                iSeparator = ETrue;
-                                return;
-                            }
-                        }
-                        else
-                        {
-                            iSeparator = ETrue;
-                            return;
-                        }
-                    }
-                }
-            }
-        }
-    }
-}
-#endif // RD_JAVA_S60_RELEASE_9_2
 // End of File
--- a/javauis/lcdui_akn/lcduiphysicswrapper/build/lcduiphysicswrapper.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/lcdui_akn/lcduiphysicswrapper/build/lcduiphysicswrapper.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -41,10 +41,10 @@
 SOURCEPATH  ../src
 SOURCE  CMIDPhysicsWrapper.cpp
 
-USERINCLUDE   ../inc
-USERINCLUDE   ../../inc
-USERINCLUDE   ../../../inc
-USERINCLUDE   ../../../../inc
+USERINCLUDE     ../inc
+SYSTEMINCLUDE   ../../inc
+SYSTEMINCLUDE   ../../../inc
+SYSTEMINCLUDE   ../../../../inc
 
 // Dependencies to apps layer
 LIBRARY     aknphysics.lib
--- a/javauis/m2g_akn/build/javam2g_0x2002DCBD.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/m2g_akn/build/javam2g_0x2002DCBD.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc
@@ -117,7 +117,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javauis/m2g_akn/javasrc/com/nokia/microedition/m2g/M2GSVGElement.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/m2g_akn/javasrc/com/nokia/microedition/m2g/M2GSVGElement.java	Wed Oct 13 14:23:59 2010 +0300
@@ -1251,7 +1251,7 @@
                 /*SF*/"The element being removed or one of its decendants have non-null id."/*SF*/);
         }
         // The removedChildHandle handle should be same as the removableChild handle
-        int removedChildHandle = _removeChild(
+        int removedChildHandle  = removedChildHandle = _removeChild(
                                       getNativeEventSourceHandle(), getNativeSVGProxyHandle(),
                                       getHandle(), removableChild.getHandle(), iUIToolkit);
         // Remove the element from the live elements
--- a/javauis/m3g_akn/build/javam3g_0x2002DCBE.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/m3g_akn/build/javam3g_0x2002DCBE.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -47,7 +47,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -55,6 +54,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc
@@ -109,7 +109,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javauis/mmapi_akn/audiostreaming/inc.emc/cmmaaudiostreammetadatacontrol.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/mmapi_akn/audiostreaming/inc.emc/cmmaaudiostreammetadatacontrol.h	Wed Oct 13 14:23:59 2010 +0300
@@ -20,7 +20,7 @@
 #define CMMAAUDIOSTREAMMETADATACONTROL_H
 
 //  INCLUDES
-#include <mmf/common/mmfcontroller.h>
+#include <mmfcontroller.h>
 #include <MetaDataUtility.h>
 #include <MetaDataFieldContainer.h>
 #include "cmmametadatacontrol.h"
--- a/javauis/mmapi_akn/baseline/inc.emc/cmmaemcaudioplayer.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/mmapi_akn/baseline/inc.emc/cmmaemcaudioplayer.h	Wed Oct 13 14:23:59 2010 +0300
@@ -20,7 +20,7 @@
 
 //  INCLUDES
 #include "cmmaemcplayerbase.h"
-#include "mmf/common/mmfbase.h"
+#include "mmfbase.h"
 
 // CONSTANTS
 
--- a/javauis/mmapi_akn/baseline/inc.nga/cmmavideoplayer.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/mmapi_akn/baseline/inc.nga/cmmavideoplayer.h	Wed Oct 13 14:23:59 2010 +0300
@@ -80,9 +80,7 @@
                                         const TDesC& aStringEventData);
 
     IMPORT_C MMMASnapshot* SnapshoterL();
-    void FreeClipRectForUI();
-    void GetClipRectFromUI();
-    
+
 public: // From MMMASnapshot
     IMPORT_C MMMASnapshot::TEncoding TakeSnapshotL(TRequestStatus* aStatus,
             const TSize& aSize,
--- a/javauis/mmapi_akn/baseline/inc/cmmaaudiometadatacontrol.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/mmapi_akn/baseline/inc/cmmaaudiometadatacontrol.h	Wed Oct 13 14:23:59 2010 +0300
@@ -21,7 +21,7 @@
 #define CMMAAUDIOMETADATACONTROL_H
 
 //  INCLUDES
-#include <mmf/common/mmfcontroller.h>
+#include <mmfcontroller.h>
 
 #include "cmmametadatacontrol.h"
 
--- a/javauis/mmapi_akn/baseline/inc/cmmadisplay.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/mmapi_akn/baseline/inc/cmmadisplay.h	Wed Oct 13 14:23:59 2010 +0300
@@ -60,19 +60,6 @@
     TBool IsFullScreen();
     virtual void SetForeground(TBool aIsForeground, TBool UseEventServer);
     virtual void FixUIOrientation(TBool aFix);
-    /**
-     * Allow player to free the clipping rect for
-     * UI usage. required in case of RTSP live streaming player
-     * stop and then start, to avoid the black screen in that time gap
-     */
-    virtual void RemoveClippingRegionPublic();
-    
-    /**
-     * Allow player to get the clipping rect from
-     * UI usage. required in case of RTSP live streaming player
-     * start after stop, to avoid the black screen while its playing video
-     */
-    virtual void SetClippingRegionPublic();
 
     /**
      * Gets notification that there is container to draw assigned
--- a/javauis/mmapi_akn/baseline/inc/cmmaframepositioningcontrol.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/mmapi_akn/baseline/inc/cmmaframepositioningcontrol.h	Wed Oct 13 14:23:59 2010 +0300
@@ -20,8 +20,8 @@
 #define CMMAFRAMEPOSITIONINGCONTROL_H
 
 // EXTERNAL INCLUDES
-#include "mmf/common/mmfcontroller.h"
-#include "mmf/common/mmfstandardcustomcommands.h"
+#include "mmfcontroller.h"
+#include "mmfstandardcustomcommands.h"
 
 //  INTERNAL INCLUDES
 #include "cmmacontrol.h" // base class
--- a/javauis/mmapi_akn/baseline/inc/cmmamidimetadatacontrol.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/mmapi_akn/baseline/inc/cmmamidimetadatacontrol.h	Wed Oct 13 14:23:59 2010 +0300
@@ -21,7 +21,7 @@
 #define CMMAMIDIMETADATACONTROL_H
 
 //  INCLUDES
-#include <mmf/common/mmfcontroller.h>
+#include <mmfcontroller.h>
 
 #include "cmmamidiplayer.h"
 #include "cmmametadatacontrol.h"
--- a/javauis/mmapi_akn/baseline/inc/mmmadisplay.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/mmapi_akn/baseline/inc/mmmadisplay.h	Wed Oct 13 14:23:59 2010 +0300
@@ -190,20 +190,6 @@
      *                If EFalse, the standard UI orientation is restored.        
      */
     virtual void FixUIOrientation(TBool aFix) = 0;
-    
-    
-    /**
-     * Allow player to free the clipping rect for
-     * UI usage. required in case of RTSP live streaming player
-     * stop and then start, to avoid the black screen in that time gap
-     */
-    virtual void RemoveClippingRegionPublic() = 0;
-    /**
-     * Allow player to get the clipping rect from
-     * UI usage. required in case of RTSP live streaming player
-     * start after stop, to avoid the black screen while its playing video
-     */
-    virtual void SetClippingRegionPublic() = 0;
 };
 
 #endif // MMMADISPLAY_H
--- a/javauis/mmapi_akn/baseline/inc/tmmaparametervalidator.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/mmapi_akn/baseline/inc/tmmaparametervalidator.h	Wed Oct 13 14:23:59 2010 +0300
@@ -21,7 +21,7 @@
 
 //  INCLUDES
 #include <e32base.h>
-#include <mmf/common/mmfutilities.h>
+#include <mmfutilities.h>
 #include <imageconversion.h>
 // STRUCTS
 
--- a/javauis/mmapi_akn/baseline/javasrc.emc/com/nokia/microedition/media/ManagerImpl.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/mmapi_akn/baseline/javasrc.emc/com/nokia/microedition/media/ManagerImpl.java	Wed Oct 13 14:23:59 2010 +0300
@@ -33,7 +33,6 @@
 import com.nokia.microedition.media.tone.PlayToneImpl;
 import com.nokia.microedition.volumekeys.ForegroundListener;
 import com.nokia.mj.impl.rt.support.Finalizer;
-import com.nokia.mj.impl.utils.Logger;
 
 /**
  * ManagerImpl implements the functionality specified in
@@ -57,7 +56,6 @@
     private final ProtocolFactory iProtocolFactory = new ProtocolFactory();
     private final ForegroundListener iForegroundListener;
 
-    private boolean iClosed = false;
     private Finalizer mFinalizer = new Finalizer()
     {
         public void finalizeImpl()
@@ -168,17 +166,6 @@
         iPlugIns.addElement(aPlugIn);
     }
 
-    private void checkClose() throws MediaException
-    {
-        if (iClosed)
-        {
-            MediaException me = new MediaException("MIDlet closed.");
-            Logger.LOG(Logger.EJavaMMAPI, Logger.EInfo,
-                       "Trying to create player when MIDlet is destroyed ", me);
-            throw me;
-        }
-    }
-
     private void doFinalize()
     {
         if (mFinalizer != null)
@@ -193,7 +180,6 @@
      */
     synchronized final void registeredFinalize()
     {
-        iClosed = true;
         _dispose(sEventSourceHandle);
         sEventSourceHandle = 0;
     }
@@ -205,7 +191,6 @@
      */
     synchronized final void release()
     {
-        iClosed = true;
         _release(sEventSourceHandle);
     }
 
@@ -363,10 +348,9 @@
     /**
      * From PlugIn.
      */
-    public synchronized InternalPlayer createPlayer(DataSource aSource)
+    public InternalPlayer createPlayer(DataSource aSource)
     throws MediaException, IOException
     {
-        checkClose();
         InternalPlayer player = null;
         if (aSource.getContentType() != null)
         {
@@ -440,10 +424,9 @@
      * @exception SecurityException Thrown if the caller does not
      * have security permission to create the <code>Player</code>.
      */
-    public synchronized Player createPlayer(String aLocator)
+    public Player createPlayer(String aLocator)
     throws IOException, MediaException
     {
-        checkClose();
         if (aLocator == null)
         {
             throw new IllegalArgumentException("Locator is null.");
@@ -536,10 +519,9 @@
      * @exception SecurityException Thrown if the caller does not
      * have security permission to create the <code>Player</code>.
      */
-    public synchronized Player createPlayer(InputStream aStream, String aType)
+    public Player createPlayer(InputStream aStream, String aType)
     throws IOException, MediaException
     {
-        checkClose();
         if (aStream == null)
         {
             throw new IllegalArgumentException("InputStream is null.");
--- a/javauis/mmapi_akn/baseline/src.dsa/cmmacameraplayer.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/mmapi_akn/baseline/src.dsa/cmmacameraplayer.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -19,7 +19,6 @@
 //  INCLUDE FILES
 #include <jdebug.h>
 #include <fbs.h>
-#include <e32svr.h>
 #include "cmmacameraplayer.h"
 #include "tmmaparametervalidator.h"
 #include "mmmadisplay.h"
--- a/javauis/mmapi_akn/baseline/src.nga/cmmacameraplayer.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/mmapi_akn/baseline/src.nga/cmmacameraplayer.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -21,7 +21,6 @@
 #include <sensrvorientationsensor.h>
 #include <jdebug.h>
 #include <fbs.h>
-#include <e32svr.h>
 #include "cmmacameraplayer.h"
 #include "tmmaparametervalidator.h"
 #include "mmmadisplay.h"
@@ -581,6 +580,9 @@
     // save status which will be notified
     iSnapshotStatus = aStatus;
 
+    // changing status to pending
+    *iSnapshotStatus = KRequestPending;
+
     // Source size not set in the beginning
     TSize sourceSize;
 
@@ -686,9 +688,7 @@
 
     // play sound when capturing image
     CMMACameraSound::PlayImageCaptureSoundL();
-    
-    // changing status to pending
-    *iSnapshotStatus = KRequestPending;
+
     // start capture, ImageBufferReady will be called when ready
     iWindow->SetStarted(EFalse);
 
--- a/javauis/mmapi_akn/baseline/src.nga/cmmavideoplayer.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/mmapi_akn/baseline/src.nga/cmmavideoplayer.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -573,15 +573,6 @@
     NotifyWithStringEvent(CMMAPlayerEvent::ESizeChanged, KVideoControlName);
 }
 
-void CMMAVideoPlayer::FreeClipRectForUI()
-{
-    iDisplay->RemoveClippingRegionPublic();
-}
-
-void CMMAVideoPlayer::GetClipRectFromUI()
-{
-    iDisplay->SetClippingRegionPublic();
-}
 void CMMAVideoPlayer::ConnectedL(CAccMonitorInfo* aAccessoryInfo)
 {
     TAccMonCapability deviceType = aAccessoryInfo->AccDeviceType() ;
--- a/javauis/mmapi_akn/baseline/src/cmmaaudiorecorder.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/mmapi_akn/baseline/src/cmmaaudiorecorder.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -19,7 +19,7 @@
 #include <jdebug.h>
 #include <mmf/server/mmffile.h>
 #include <mmf/server/mmfdes.h>
-#include <mmf/plugin/mmfformatimplementationuids.hrh>
+#include <mmfformatimplementationuids.hrh>
 #include "cmmaaudiorecorder.h"
 #include "cmmaoutputstream.h"
 
--- a/javauis/mmapi_akn/baseline/src/cmmacanvasdisplay.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/mmapi_akn/baseline/src/cmmacanvasdisplay.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -55,7 +55,6 @@
               aSourceSize.iWidth);
     DEBUG_INT("MMA::CMMACanvasDisplay::SourceSizeChanged %d",
               aSourceSize.iHeight);
-
     iSourceSize = aSourceSize;
     // If user rect size was set or full screen was set then we need to take
     // that into account then the actual source size
@@ -65,6 +64,7 @@
     }
     TSize fullScreenSize(iCanvas->ContentSize());
 
+
     TBool sourceIsBigger = (aSourceSize.iWidth > fullScreenSize.iWidth ||
                             aSourceSize.iHeight > fullScreenSize.iHeight);
 
--- a/javauis/mmapi_akn/baseline/src/cmmadisplay.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/mmapi_akn/baseline/src/cmmadisplay.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -37,7 +37,7 @@
                                              iClipRect.iTl.iX,iClipRect.iTl.iY);
             DEBUG_INT2("CMMADisplay::~CMMADisplay(): Removing clip rect iBr = %d X %d",
                                              iClipRect.iBr.iX,iClipRect.iBr.iY);
-            iDirectContainer->MdcRemoveMMAPIContentBounds(iClipRect);
+            iDirectContainer->MdcRemoveContentBounds(iClipRect);
         }
 
         // Remove this object from MDirectContainer
@@ -162,7 +162,7 @@
     if (!iClipRect.IsEmpty())
     {
         DEBUG("CMMADisplay::SetClippingRegion: Removing old rect");
-        iDirectContainer->MdcRemoveMMAPIContentBounds(iClipRect);
+        iDirectContainer->MdcRemoveContentBounds(iClipRect);
         iClipRect.SetRect(0, 0, 0, 0);
         refreshScreen = ETrue;
     }
@@ -178,7 +178,7 @@
             DEBUG_INT2("CMMADisplay::SetClippingRegion: Adding new rect iBr = %d X %d",
                                           iClipRect.iBr.iX,iClipRect.iBr.iY);
             // Add new clipping rect
-            iDirectContainer->MdcAddMMAPIContentBounds(iClipRect);
+            iDirectContainer->MdcAddContentBounds(iClipRect);
             refreshScreen = ETrue;
         }
     }
@@ -204,7 +204,7 @@
     if (!iClipRect.IsEmpty())
     {
         DEBUG("CMMADisplay::RemoveClippingRegion: Removing old rect");
-        iDirectContainer->MdcRemoveMMAPIContentBounds(iClipRect);
+        iDirectContainer->MdcRemoveContentBounds(iClipRect);
         iClipRect.SetRect(0, 0, 0, 0);
         // refresh screen
         iDirectContainer->MdcFlushContainer(iWindow->WindowRect());
@@ -238,7 +238,6 @@
     if (iVisible)
     {
         iClipRect = iWindow->DrawRect();
-
         if (!iClipRect.IsEmpty())
         {
             DEBUG_INT2("CMMADisplay::AddClippingRegion: Adding new rect iTL = %d X %d",
@@ -246,7 +245,7 @@
             DEBUG_INT2("CMMADisplay::AddClippingRegion: Adding new rect iBr = %d X %d",
                                           iClipRect.iBr.iX,iClipRect.iBr.iY);
             // Add new clipping rect
-            iDirectContainer->MdcAddMMAPIContentBounds(iClipRect);
+            iDirectContainer->MdcAddContentBounds(iClipRect);
             // refresh screen
             iDirectContainer->MdcFlushContainer(
                 iWindow->WindowRect());
@@ -515,15 +514,4 @@
     }
 }
 
-
-void CMMADisplay::RemoveClippingRegionPublic()
-{
-    RemoveClippingRegion();
-}
-
-void CMMADisplay::SetClippingRegionPublic()
-{
-    SetClippingRegion();
-}
-
 //  END OF FILE
--- a/javauis/mmapi_akn/baseline/src/cmmaplayer.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/mmapi_akn/baseline/src/cmmaplayer.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -464,9 +464,6 @@
 
 EXPORT_C void CMMAPlayer::HandleCallStateEventL(TUid aUid, TInt aKey)
 {
-    (void)aUid;     // Suppress warnings about unused arguments in urel builds
-    (void)aKey;
-
     DEBUG("CMMAPlayer::HandleCallStateEvent +");
     DEBUG_INT2( "CMMAVideoUrlPlayer::HandleCallStateEvent(TUid aUid, TInt aKey) = (%d, %d)",aUid.iUid, aKey);
 
--- a/javauis/mmapi_akn/baseline/src/cmmasnapshotevent.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/mmapi_akn/baseline/src/cmmasnapshotevent.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -48,11 +48,9 @@
     DEBUG("MMA::CMMASnapshotEvent::Dispatch");
 
     // create java byte array
-
     jbyteArray byteArray;
 
     if (iImageBuffer)
-
     {
         byteArray = aJni.NewByteArray(iImageBuffer->Size());
         if (byteArray)
@@ -84,8 +82,8 @@
                         byteArray);
 
     delete iImageBuffer;
+
     iImageBuffer = NULL; // otherwise double delete in destructor
-
     aJni.DeleteLocalRef(byteArray);
 
 }
--- a/javauis/mmapi_akn/baseline/src/cmmavideourlplayerclipstreamdelegate.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/mmapi_akn/baseline/src/cmmavideourlplayerclipstreamdelegate.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -88,7 +88,7 @@
     {
         // going to prefetch state, after Play
         // KMMFEventCategoryVideoLoadingComplete event will be received
-        DEBUG("MMA:CMMAVideoUrlPlayer: Clip stream: HandleEvent KMMFEventCategoryVideoPrepareComplete");
+    DEBUG("MMA:CMMAVideoUrlPlayer: Clip stream: HandleEvent KMMFEventCategoryVideoPrepareComplete");
         if (err == KErrNone)
         {
             //iPlayer.PrepareDisplay();
--- a/javauis/mmapi_akn/baseline/src/cmmavideourlplayerlivestreamdelegate.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/mmapi_akn/baseline/src/cmmavideourlplayerlivestreamdelegate.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -99,9 +99,6 @@
         // Call stop instead of Pause as per the suggestions from helix
         // Pause has no meaning for live streaming
         iPlayer.iController.Stop();
-#ifdef RD_JAVA_NGA_ENABLED
-        iPlayer.FreeClipRectForUI();
-#endif
     }
     DEBUG("MMA:CMMAVideoUrlPlayer: Live stream: StopL - ");
 }
@@ -156,9 +153,6 @@
             DEBUG("MMA:CMMAVideoUrlPlayer: Live stream: KMMFEventCategoryVideoLoadingComplete ASW Stop");
             // calling PrepareDisplay() in the nick of time as this takes over the control of window and 
             // any UI widget can't be drawn after this call at the prescribed area for video display.
-#ifdef RD_JAVA_NGA_ENABLED
-			iPlayer.GetClipRectFromUI();
-#endif
             iPlayer.PrepareDisplay();
             iActiveSchedulerWait->AsyncStop();
         }
--- a/javauis/mmapi_akn/baseline/src/tmmaparametervalidator.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/mmapi_akn/baseline/src/tmmaparametervalidator.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -18,10 +18,10 @@
 
 //  INCLUDE FILES
 #include <jdebug.h>
-#include <mmf/plugin/mmfformatimplementationuids.hrh>
-#include <mmf/plugin/mmfcontrollerimplementationuids.hrh>
-#include <mmf/common/mmfcontrollerpluginresolver.h>
+#include <mmfformatimplementationuids.hrh>
+#include <mmfcontrollerimplementationuids.hrh>
 #include "cmmaplayerproperties.h"
+#include <mmfcontrollerpluginresolver.h>
 
 
 #include "tmmaparametervalidator.h"
--- a/javauis/mmapi_akn/build/exports.inf	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/mmapi_akn/build/exports.inf	Wed Oct 13 14:23:59 2010 +0300
@@ -37,9 +37,6 @@
 ../baseline/inc/cmmaplayerevent.h                   |../../inc/cmmaplayerevent.h
 ../baseline/inc/cmmasourcestream.h                  |../../inc/cmmasourcestream.h
 ../baseline/inc/cmmavideocontrol.h                  |../../inc/cmmavideocontrol.h
-../baseline/inc/cmmaaudioplayer.h                   |../../inc/cmmaaudioplayer.h
-../baseline/inc/cmmamidiplayer.h                    |../../inc/cmmamidiplayer.h
-../baseline/inc/cmmammfplayerbase.h                 |../../inc/cmmammfplayerbase.h
 ../baseline/inc/cmmavolumecontrol.h                 |../../inc/cmmavolumecontrol.h
 ../baseline/inc/cmmammfplayerfactory.h              |../../inc/cmmammfplayerfactory.h
 ../baseline/inc/cmmaaudiovolumecontrol.h            |../../inc/cmmaaudiovolumecontrol.h
@@ -50,23 +47,16 @@
 ../baseline/inc/mmmadisplaywindow.h                 |../../inc/mmmadisplaywindow.h
 ../baseline/inc/mmmaplayerfactory.h                 |../../inc/mmmaplayerfactory.h
 ../baseline/inc/mmmaplayerstatelistener.h           |../../inc/mmmaplayerstatelistener.h
-../baseline/inc/mmmaplayerinstanceobserver.h        |../../inc/mmmaplayerinstanceobserver.h
-../baseline/inc/mmmacallstateobserver.h             |../../inc/mmmacallstateobserver.h
 ../baseline/inc/mmmasourcestreamlistener.h          |../../inc/mmmasourcestreamlistener.h
 ../baseline/inc/mmmasnapshotreadycallback.h         |../../inc/mmmasnapshotreadycallback.h
 
 #ifdef RD_JAVA_NGA_ENABLED
 ../baseline/inc.nga/cmmavideoplayer.h               |../../inc/cmmavideoplayer.h
 ../baseline/inc.nga/cmmasurfacewindow.h             |../../inc/cmmasurfacewindow.h
-#else
-../baseline/inc.dsa/cmmadsawindow.h                 |../../inc/cmmadsawindow.h
-../baseline/inc.dsa/cmmavideoplayer.h               |../../inc/cmmavideoplayer.h
 #endif
 
 #ifdef RD_JAVA_HTTP_EMC_ENABLED
 ../baseline/inc.emc/cmmamanager.h                   |../../inc/cmmamanager.h
-../baseline/inc.emc/cmmaemcaudioplayer.h            |../../inc/cmmaemcaudioplayer.h
-../baseline/inc.emc/cmmaemcplayerbase.h             |../../inc/cmmaemcplayerbase.h
 #endif
 
 // Generic configuration interface for mobilemedia cenrep settings  
--- a/javauis/mmapi_akn/build/javamobilemedia.pro	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/mmapi_akn/build/javamobilemedia.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -24,7 +24,8 @@
 DEFINES += RD_JAVA_VOLUME_CONTROL
 DEFINES += RD_JAVA_OMA_DRM_V2
 
-INCLUDEPATH +=  ../animated_gif/inc \
+INCLUDEPATH +=  /epoc32/include/mmf/common \              
+                ../animated_gif/inc \
                 ../baseline/inc \
                 ../src_drmv2/inc \
                 ../directcontent/inc \
@@ -84,13 +85,13 @@
         -laknskinsrv \
         -lapgrfx \
         -lapmime \
-        -lbitmaptransforms \
+        -lBitmapTransforms \
         -lDRMHelper \
         -lDrmAudioPlayUtility \
-        -limageconversion \
+        -lImageConversion \
         -lIHL \
         -lMMFControllerFramework \
-        -lmediaclientaudio \
+        -lMediaClientAudio \
         -lMmfStandardCustomCommands \
         -lRemConCoreApi \
         -lRemConInterfaceBase \
--- a/javauis/mmapi_akn/build/javamobilemedia_0x2002DCC2.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/mmapi_akn/build/javamobilemedia_0x2002DCC2.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -47,7 +47,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -55,8 +54,10 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
+SYSTEMINCLUDE		/epoc32/include/mmf/common
 SYSTEMINCLUDE		../animated_gif/inc
 SYSTEMINCLUDE		../baseline/inc
 SYSTEMINCLUDE		../src_drmv2/inc
@@ -228,13 +229,13 @@
 LIBRARY		AknIcon.lib
 LIBRARY		aknskins.lib
 LIBRARY		aknskinsrv.lib
-LIBRARY		bitmaptransforms.lib
+LIBRARY		BitmapTransforms.lib
 LIBRARY		DRMHelper.lib
 LIBRARY		DrmAudioPlayUtility.lib
-LIBRARY		imageconversion.lib
+LIBRARY		ImageConversion.lib
 LIBRARY		IHL.lib
 LIBRARY		MMFControllerFramework.lib
-LIBRARY		mediaclientaudio.lib
+LIBRARY		MediaClientAudio.lib
 LIBRARY		MmfStandardCustomCommands.lib
 LIBRARY		RemConCoreApi.lib
 LIBRARY		RemConInterfaceBase.lib
@@ -266,6 +267,7 @@
 LIBRARY		libc.lib
 LIBRARY		libm.lib
 LIBRARY		libdl.lib
+LIBRARY		mediaclientaudio.lib
 LIBRARY		eiksrv.lib
 LIBRARY		apparc.lib
 LIBRARY		avkon.lib
@@ -282,7 +284,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javauis/mmapi_akn/src_drmv2/inc/cmmadrmmetadatacontrol.h	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/mmapi_akn/src_drmv2/inc/cmmadrmmetadatacontrol.h	Wed Oct 13 14:23:59 2010 +0300
@@ -21,7 +21,7 @@
 #define CMMADRMMETADATACONTROL_H
 
 //  INCLUDES
-#include <mmf/common/mmfcontroller.h>
+#include <mmfcontroller.h>
 
 #include "cmmadrmaudioplayer.h"
 #include "cmmametadatacontrol.h"
--- a/javauis/mmapi_akn/src_drmv2/src/cmmadrmplayerfactory.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/mmapi_akn/src_drmv2/src/cmmadrmplayerfactory.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -19,14 +19,9 @@
 //  INCLUDE FILES
 #include <jdebug.h>
 
-#ifndef RD_JAVA_S60_RELEASE_5_0
-#include <caf/cafplatform.h>
-#endif
-
-#include <caf/stringattributeset.h>
-
 #include <DRMCommon.h>
 #include <DRMHelper.h>
+#include <caf/stringattributeset.h>
 
 #include "cmmadrmplayerfactory.h"
 #include "cmmadrmaudioplayer.h"
--- a/javauis/nokiasound/build/bld.inf	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-/*
-* 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: Generated bld.inf -file
-*
-*/
-
-PRJ_PLATFORMS
-default
-
-PRJ_MMPFILES  
-javanokiasound_0x2002DCC4.mmp 
--- a/javauis/nokiasound/build/build.xml	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-<!--
-#
-# Copyright (c) 2008-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: 
-#
--->
-
-<project name="javanokiasound" default="deploy" basedir=".">
-
-  <import file="../../../build/utilities.xml"/>
-
-    <!-- Needed by the utilities.xml. See the description form the utilities.xml
-       file -->
-  <property name="javah.classnames" 
-            value="com.nokia.mid.sound.Sound"/>
-            
-  <target name="create.public.api.jar">
-      <omj.public.apis includes="com/nokia/mid/sound/Sound.class,
-                                 com/nokia/mid/sound/SoundListener.class"/>
-  </target>
-  
-</project>
--- a/javauis/nokiasound/build/bwins/javanokiasoundu.def	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	?jni_lookup@@YAP6AXXZPBD@Z @ 1 NONAME ; void (*)(void) jni_lookup(char const *)
-
--- a/javauis/nokiasound/build/eabi/javanokiasoundu.def	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	_Z10jni_lookupPKc @ 1 NONAME
-
--- a/javauis/nokiasound/build/javanokiasound.pro	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-#
-# 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: 
-#
-
-TEMPLATE=lib
-TARGET=javanokiasound
-CONFIG += omj java stl
-CONFIG -= qt
-
-LIBS += -lcenrepnotifhandler \
-        -lcentralrepository \
-        -lmediaclientaudio \
-        -lCommonEngine \
-        -ljavautils
-
-include(../../../build/omj.pri)
--- a/javauis/nokiasound/build/javanokiasound_0x2002DCC4.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,151 +0,0 @@
-/*
-* 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: Generated file - do not edit manually
-*
-*/
-
-// ==============================================================================
-// Generated by qmake (2.01a) (Qt 4.6.4) on: (date)
-// This file is generated by qmake and should not be modified by the
-// user.
-//  Name        : javanokiasound.mmp
-// ==============================================================================
-
-TARGET		javanokiasound.dll
-TARGETTYPE		DLL
-
-UID		0x1000008d 0x2002DCC4
-SECUREID		0x2002DCC4
-
-EPOCALLOWDLLDATA
-
-
-// Qt Macros
-MACRO		UNICODE
-MACRO		QT_KEYPAD_NAVIGATION
-MACRO		QT_SOFTKEYS_ENABLED
-MACRO		QT_USE_MATH_H_FLOATS
-MACRO		RD_JAVA_SYMBIAN_TARGET
-MACRO		RD_JAVA_S60_RELEASE_9_2
-MACRO		RD_JAVA_S60_RELEASE_9_2_ONWARDS
-MACRO		RD_JAVA_S60_RELEASE_5_0_ONWARDS
-MACRO		RD_JAVA_STDCPPV5
-MACRO		RD_JAVA_EPOCALLOWDLLDATA_FIX
-MACRO		RD_JAVA_HTTP_EMC_ENABLED
-MACRO		RD_JAVA_NGA_ENABLED
-MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
-MACRO		RD_JAVA_OPENC_BETA_PATCH
-MACRO		RD_JAVA_INSTALLERUI_ENABLED
-MACRO		RD_JAVA_PREWARM
-MACRO		RD_JAVA_ADVANCED_TACTILE_FEEDBACK
-MACRO		RD_JAVA_MIDPRMS_DB
-MACRO		__SYMBIAN32__
-MACRO		J9EPOC32
-
-SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
-SYSTEMINCLUDE		../inc
-SYSTEMINCLUDE		../../inc
-SYSTEMINCLUDE		../../../inc
-SYSTEMINCLUDE		../src
-SYSTEMINCLUDE		/epoc32/include/stdapis/stlportv5
-SYSTEMINCLUDE		/epoc32/include/mw
-SYSTEMINCLUDE		.
-
-SOURCEPATH 	../src
-SOURCE		cmidclip.cpp
-SOURCE		cmidsound.cpp
-SOURCE		CMIDSoundImpl.cpp
-SOURCE		cmidtone.cpp
-SOURCE		sound.cpp
-
-
-LIBRARY		cenrepnotifhandler.lib
-LIBRARY		centralrepository.lib
-LIBRARY		mediaclientaudio.lib
-LIBRARY		CommonEngine.lib
-LIBRARY		javautils.lib
-LIBRARY		libpthread.lib
-LIBRARY		libstdcppv5.lib
-LIBRARY		libc.lib
-LIBRARY		libm.lib
-LIBRARY		euser.lib
-LIBRARY		libdl.lib
-LIBRARY		cone.lib
-LIBRARY		eikcore.lib
-LIBRARY		eikcoctl.lib
-LIBRARY		eiksrv.lib
-LIBRARY		apparc.lib
-LIBRARY		avkon.lib
-LIBRARY		efsrv.lib
-LIBRARY		charconv.lib
-LIBRARY		ws32.lib
-LIBRARY		hal.lib
-LIBRARY		gdi.lib
-LIBRARY		apgrfx.lib
-
-CAPABILITY		all -tcb 
-
-OPTION CW -wchar_t on
-OPTION ARMCC --visibility_inlines_hidden
-#if defined(ARMCC_4_0)
-OPTION ARMCC --import_all_vtbl
-#endif
-OPTION GCCE -fvisibility-inlines-hidden
-
-VERSION 10.525
-
-ARMFPU softvfp
-
-PAGED
-
-BYTEPAIRCOMPRESSTARGET
-
-USERINCLUDE .
-
-#include <platform_paths.hrh>
-
- APP_LAYER_SYSTEMINCLUDE
-
- OS_LAYER_LIBC_SYSTEMINCLUDE
-
- OS_LAYER_SSL_SYSTEMINCLUDE
-
-deffile ./~/javanokiasound.def
-
- SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlportv5)
-
-SYSTEMINCLUDE /epoc32/build/jrt/javabuild/inc.javah
-
-SOURCEPATH /epoc32/build/jrt/javabuild/javanokiasound
-
-SOURCE lookup.cpp
-
-SOURCEPATH /epoc32/build/jrt/javabuild/javanokiasound
-
-SOURCE jxe.c
-
-#ifdef WINSCW
-
-LIBRARY ewsd.lib
-
-#endif
-
-STDCPP
-
-#ifdef WINSCW
-DEFFILE ./bwins/javanokiasound.def
-#elif defined EABI
-DEFFILE ./eabi/javanokiasound.def
-#endif
--- a/javauis/nokiasound/inc/CMIDClip.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-/*
-* 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:  This class implements wav playing.
-*
-*/
-
-
-#ifndef CMIDCLIP_H
-#define CMIDCLIP_H
-
-//  INCLUDES
-#include <e32base.h>
-#include <mdaaudiosampleplayer.h>
-
-#include "CMIDSoundImpl.h"
-
-// FORWARD DECLARATIONS
-class MMIDEventSender;
-
-//  CLASS DEFINITION
-/**
- * This class implements wav playing.
- *
- */
-NONSHARABLE_CLASS(CMIDClip): public CMIDSoundImpl,
-        public MMdaAudioPlayerCallback
-{
-public:
-
-    static CMIDClip* NewL(const TDesC8* aData, MMIDEventSender* aEventSender);
-    //   Destructor
-    ~CMIDClip();
-
-protected:
-
-    //   C++ constructor
-    CMIDClip(MMIDEventSender* aEventSender);
-    //   Second phase
-    void ConstructL(const TDesC8* aData);
-
-public:
-
-    virtual TInt Play(TInt aLoop);
-    virtual void Stop();
-    virtual void SetVolume(TInt aVolume);
-    virtual TInt Volume();
-    virtual void Release();
-
-public: // from MMdaAudioPlayerCallback
-    void MapcInitComplete(TInt aError,
-                          const TTimeIntervalMicroSeconds& aDuration);
-    void MapcPlayComplete(TInt aError);
-
-private:
-
-    HBufC8* iClip;
-    CMdaAudioPlayerUtility* iMdaAudioPlayerUtility;
-    TInt iLoops;
-    TInt iVolume;
-};
-
-#endif // CMIDCLIP_H
--- a/javauis/nokiasound/inc/CMIDSound.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-/*
-* 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:  Wrapper for CMIDClip and CMIDTone class initialisations.
-*
-*/
-
-
-//  INCLUDES
-#include <e32base.h>
-#include <cenrepnotifyhandler.h>
-#include "MMIDEventSender.h"
-#include "functionserver.h"
-
-// FORWARD DECLARATIONS
-class CMIDSoundImpl;
-
-// CLASS DEFINITION
-/**
- * CMIDSound is a wrapper that handles which class is
- * wanted to be initialised, CMIDClip or CMIDTone
- *
- */
-NONSHARABLE_CLASS(CMIDSound):
-        public CBase, MCenRepNotifyHandlerCallback, MMIDEventSender, java::util::FunctionServer
-{
-
-public:
-
-    //   Destructor
-    ~CMIDSound();
-
-public: // From MCenRepNotifyHandlerCallback
-    /**
-     * Notifies this class about changes in the audio enable status
-     */
-    void HandleNotifyInt(TUint32 aId, TInt aNewValue);
-
-public: // From MMIDEventSender
-    /**
-    * Sends event to Java SoundListener.
-    * @since 3.0
-    * @param aEventType Type of the event to send
-    */
-    void SendEvent(TInt aEventType);
-
-protected:
-
-    //  C++ default constructor
-    CMIDSound();
-
-private:
-    TBool IsAudioEnabled();
-
-public:
-
-    static CMIDSound* NewL(JNIEnv& aJni, jobject aSound);
-    void SetBeep(TInt aFreq, TInt64 aDuration);
-    TInt Init(TInt aType, const TDesC8* aData);
-    void InitL(TInt aType, const TDesC8* aData);
-    TInt InitProfileListener();
-    void InitProfileListenerL();
-    TInt Play(TInt aLoop);
-    TInt DoPlay(TInt aLoop);
-    void Resume();
-    void DoResume();
-    void Stop();
-    void DoStop();
-    TInt SoundVolume();
-    TInt Volume();
-    void SetVolume(TInt aVolume);
-    void DoSetVolume(TInt aVolume);
-    TInt State();
-    TInt PlayerState();
-    void Release();
-    void DoRelease();
-
-
-private:
-
-    CMIDSoundImpl* iMIDSound;
-    TInt iFreq;
-    TInt64 iDur;
-    TInt iSource;
-    TInt iRealVolume;
-
-    // owned, informs about changes in iRepository
-    CCenRepNotifyHandler* iProfileListener;
-
-    // owned, current profile
-    CRepository* iRepository;
-
-    TInt iHandle;
-};
-
--- a/javauis/nokiasound/inc/CMIDSoundEvent.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-/*
-* 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:  Class for sound related events.
-*
-*/
-
-
-#ifndef CMIDSOUNDEVENT_H
-#define CMIDSOUNDEVENT_H
-
-#include <jni.h>
-
-//  CLASS DEFINITION
-
-/**
- * Class for sound related events.
- */
-NONSHARABLE_CLASS(CMIDSoundEvent)
-{
-public: // constructor
-    CMIDSoundEvent(TInt aEvent);
-
-public: // new methods
-    /**
-     * Setter for listener
-     * @param aListener this event will be sent to this listener
-     */
-    void SetListener(jobject aListener);
-
-    /**
-     * Setter for method ID
-     * @param aMethodID this event will be sent by calling this method
-     */
-    void SetMethodID(jmethodID aMethodID);
-
-    /**
-     * Adds a global reference to peer object, this reference is
-     * removed when the event is dispatched. This prevents peer
-     * object from being deleted by garbage collector before the
-     * event has been dispatched.
-     */
-    void AddGlobalRef(JavaVM* javaVM);
-
-
-private:
-    void Dispatch(JNIEnv& aJni);
-
-private:
-    jobject iListener;
-    jmethodID iMethodID;
-    TInt iEvent;
-    jobject iGlobalRef;
-    // Number of times the global reference has been added.
-    // The actual global reference is removed when the counter reaches zero.
-    TInt iRefCount;
-
-};
-
-
-#endif // CMIDSOUNDEVENT_H
--- a/javauis/nokiasound/inc/CMIDSoundImpl.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-/*
-* 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:  Interface and a base class for CMIDClip and CMIDTone.
-*
-*/
-
-
-
-#ifndef CMIDSOUNDIMPL_H
-#define CMIDSOUNDIMPL_H
-
-//  INCLUDES
-#include <e32base.h>
-
-// FORWARD DECLARATIONS
-class MMIDEventSender;
-
-
-//  CLASS DEFINITION
-/**
- * This class is interface and a base class for CMIDClip and CMIDTone
- *
- */
-NONSHARABLE_CLASS(CMIDSoundImpl): public CBase
-{
-
-public:
-
-    enum TState
-    {
-        ENotReady,
-        EReadyToPlay,
-        EPlaying,
-        ENotSupported,
-        EInitialising
-    };
-
-public:
-
-    // destructor
-    ~CMIDSoundImpl();
-
-protected:
-
-    void ConstructL();
-
-    // C++ constructor
-    CMIDSoundImpl(MMIDEventSender* aEventSender);
-
-public:
-
-    void Resume();
-
-    virtual TInt Play(TInt aLoop) = 0;
-    virtual void Stop() = 0;
-    virtual void SetVolume(TInt aVolume) = 0;
-    virtual TInt Volume() = 0;
-    virtual void Release() = 0;
-
-    inline TInt State() const;
-
-protected:
-
-
-    TInt iState;
-
-    // true if playback has been started.
-    TBool iPlayed;
-
-    CActiveSchedulerWait* iSchedulerWait;
-
-    // events are sent through this interface
-    MMIDEventSender* iEventSender;
-
-};
-
-inline TInt CMIDSoundImpl::State() const
-{
-    return iState;
-};
-
-#endif // CMIDSOUNDIMPL_H
--- a/javauis/nokiasound/inc/CMIDTone.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-/*
-* 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:  This class implements beep playing and OTA ringingtone playing.
-*
-*/
-
-
-#ifndef CMIDTONE_H
-#define CMIDTONE_H
-
-//  INCLUDES
-#include <e32base.h>
-#include <mdaaudiotoneplayer.h>
-
-#include "CMIDSoundImpl.h"
-
-// FORWARD DECLARATIONS
-class MMIDEventSender;
-
-//  CLASS DEFINITION
-/**
- *  This class implements beep playing and OTA ringingtone playing.
- *
- */
-NONSHARABLE_CLASS(CMIDTone): public CMIDSoundImpl, public MMdaAudioToneObserver
-{
-public:
-
-    static CMIDTone* NewL(TInt aFreq, TInt64 aDuration,
-    MMIDEventSender* aEventSender);
-    static CMIDTone* NewL(const TDesC8& aData, MMIDEventSender* aEventSender);
-    //   Destructor
-    ~CMIDTone();
-
-protected:
-
-    //   C++  constructor
-    CMIDTone(MMIDEventSender* aEventSender);
-    //   Second phase
-    void ConstructL(TInt aFreq, TInt64 aDuration);
-    void ConstructL(const TDesC8& aData);
-
-public:
-
-    virtual TInt Play(TInt aLoop);
-    virtual void Stop();
-    virtual void SetVolume(TInt aVolume);
-    virtual TInt Volume();
-    virtual void Release();
-
-public: // from MMdaAudioToneObserver
-
-    void MatoPrepareComplete(TInt aError);
-    void MatoPlayComplete(TInt aError);
-
-private:
-
-    TInt iFreq;
-    TInt64 iDuration;
-    CMdaAudioToneUtility* iMdaAudioToneUtility;
-};
-
-#endif // CMIDTONE_H
--- a/javauis/nokiasound/inc/MMIDEventSender.h	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
-* Copyright (c) 2005 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:  SoundImpl instances can send events through this interface
-*
-*/
-
-
-
-#ifndef MMIDEVENTSENDER_H
-#define MMIDEVENTSENDER_H
-
-/**
-*  SoundImpl instances cand send events through this interface.
-*  This interface has only one method, SendEvent(), which can be used
-*  for sending all types of sound events.
-*
-*  @since 3.0
-*/
-NONSHARABLE_CLASS(MMIDEventSender)
-{
-
-public: // New functions
-
-    /**
-    * Sends event to Java SoundListener.
-    * @since 3.0
-    * @param aEventType Type of the event to send
-    */
-    virtual void SendEvent(TInt aEventType) = 0;
-
-protected:
-
-    /**
-    * C++ default constructor.
-    */
-    MMIDEventSender() { }
-
-private:
-
-    // Prohibit copy constructor if not deriving from CBase.
-    MMIDEventSender(const MMIDEventSender&) { }
-    // Prohibit assigment operator if not deriving from CBase.
-    MMIDEventSender& operator=(const MMIDEventSender&)
-    {
-        return *this;
-    }
-
-};
-
-#endif // MMIDEVENTSENDER_H
-
-// End of File
--- a/javauis/nokiasound/javasrc/com/nokia/mid/sound/Sound.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,698 +0,0 @@
-/*
-* 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:  Provides Sound API for playing tones and digitized audio.
-*
-*/
-
-
-package com.nokia.mid.sound;
-
-import com.nokia.mj.impl.rt.support.Finalizer;
-import java.util.Vector;
-import com.nokia.mj.impl.utils.Logger;
-import java.lang.Thread;
-
-/**
- * <p>
- * Provides simple Sound API for playing tones and digitized audio.
- * </p><p>
- * Since MIDP doesn't have any Sound API for games there is a need
- * for proprietary sound extension to support devices audio
- * capabilities. Every implementation has capability to produce tone
- * sounds (e.g. ringing tones), this is the minimum support. Currently
- * some products support or will support also digitized audio formats.
- * The Game sound API will support both buzzer and digitized audio.
- * Buzzer must be supported by all implementations. If implementation
- * doesn't have buzzer the buzzer tones are emulated.
- * </p>
- * Since implementations have different audio capabilities,
- * application can query which audio formats are supported by
- * implementation by calling {@link #getSupportedFormats()}.
- * <p>
- * All implementations need to support at least tone based sounds
- * (type FORMAT_TONE) via {@link #Sound(int freq, long duration)} and
- * {@link #init(int freq, long duration)}. In addition all implementations
- * must support Smart messaging ringingtone format (type FORMAT_TONE)
- * via {@link #Sound(byte[] data, int type)} and
- * {@link #init(byte[] data, int type) }.
- * <p>
- * Note that there is also work going on with Multimedia API that
- * is done in JCP as
- * <a href="http://www.jcp.org/jsr/detail/135.jsp">JSR 135</a>.
- * The standard Multimedia API
- * will replace the proprietary Game Sound API when it is ready. However
- * Sound API will be supported also later on but probably it will be
- * stated as deprecated.
- * </p>
- * @version 1.1
- * @see com.nokia.mid.ui.DeviceControl
- * @since 1.0
- */
-
-public class Sound
-{
-
-    /**
-     * Tone based format is used.
-     *
-     * init(int freq, int duration) puts sound into this format.
-     * @since 1.0
-     *
-     */
-    public static final int FORMAT_TONE = 1;
-
-    /**
-     * Content is in WAV format.
-     * @since 1.0
-     *
-     */
-    public static final int FORMAT_WAV = 5;
-
-    /**
-     * Sound is playing.
-     * @since 1.0
-     *
-     */
-    public static final int SOUND_PLAYING = 0;
-
-    /**
-     * Sound is stopped.
-     * @since 1.0
-     *
-     */
-    public static final int SOUND_STOPPED = 1;
-
-    /**
-     * Sound is uninitialized (released).
-     * @since 1.0
-     */
-    public static final int SOUND_UNINITIALIZED = 3;
-
-    /**
-     * Sound is reinitialising
-     */
-    private static final int SOUND_REINITIALISING = 4;
-
-    private static final int FORMAT_BEEP = 2;
-    private static final int NOT_SUPPORTED_ERROR = 3;
-
-    private static final int ERR_NOT_READY = -18;
-    private static final int ERR_ARGUMENT  = -6;
-
-    private int iHandle;
-
-    private Finalizer iFinalizer;
-    private int iCurrentType;
-    private int iState;
-    private int iGain = -1;
-
-    Vector iSoundListeners = new Vector();
-
-    private static Sound iPlayingSound;
-
-    static
-    {
-        com.nokia.mj.impl.rt.support.Jvm.loadSystemLibrary("javanokiasound");
-    }
-
-    /**
-     * Constructors initialize the Sound object so that it is ready for
-     * playback. This constructor is used for initializing Sound
-     * object based on byte array data. The data should contain the data
-     * presented in the data format specified by type parameter. The Sound
-     * class defines also generally supported types as constants.
-     * <p>
-     * All implementations need to support at least Nokia
-     * Smart Messaging, Over the Air (OTA) ringingtone format.
-     * The type of this format is FORMAT_TONE.
-     * <p>
-     * Note: some implementations can't throw exceptions about
-     * sound data being corrupted or illegal during construction.
-     * This will result that IllagalArgumentException is delayed until
-     * play(int loop) method is called. Applications thus need to except
-     * that IllegalArgumentException is thrown in this method or during
-     * play method call.
-     * <p>
-     * @throws java.lang.IllegalArgumentException if the data can not be
-     recognized to
-     * given type or the type is unsupported or unknown
-     * @throws java.lang.NullPointerException if the data is null
-     * @since 1.0
-     *
-     */
-    public Sound(byte[] data, int type)
-    {
-        Logger.LOG(Logger.EJavaUI, Logger.EInfo, "Sound Constructor");
-        iFinalizer = registerForFinalization();
-
-        iHandle = _create();
-
-        iState = SOUND_UNINITIALIZED;
-
-        init(data, type);
-    }
-
-    /**
-     * Constructors initialize the Sound object so that it is ready for
-     * playback. Sound is initialized as a simple tone based sound.
-     * <p>
-     * See method {@link #init(int freq, long duration)} for
-     * freq value descriptions. See also a note on exceptions semantics in
-     * {@link #init(int freq, long duration)}.
-     *
-     * @param freq a frequency value
-     * @param duration the duration of the tone in milliseconds
-     * @throws java.lang.IllegalArgumentException if parameter values are
-     * illegal, freq is not in given range or duration is negative or zero
-     * @since 1.0
-     */
-    public Sound(int freq, long duration)
-    {
-
-        iFinalizer = registerForFinalization();
-        iHandle = _create();
-
-        iState = SOUND_UNINITIALIZED;
-
-        init(freq, duration);
-    }
-
-    /**
-      * Called when this object is finalized, frees native resources
-      */
-
-    public Finalizer registerForFinalization()
-    {
-
-        return new Finalizer()
-        {
-            public void finalizeImpl()
-            {
-                doFinalize();
-            }
-        };
-    }
-
-    void doFinalize()
-    {
-
-        if (iFinalizer == null)
-        {
-            return;
-        }
-        iFinalizer = null;
-
-        if (iHandle > 0)
-        {
-            _dispose(iHandle);
-        }
-    }
-
-    /**
-     * Releases audio resources reserved by this object. After object
-     * is released it goes to uninitialized state. This method should
-     * be called when Sound object is not needed anymore.
-     * @since 1.0
-     */
-    public void release()
-    {
-        if ((iState != SOUND_UNINITIALIZED) &&
-                (iState != SOUND_REINITIALISING))
-        {
-            iState = SOUND_REINITIALISING;
-            soundStateChanged(SOUND_UNINITIALIZED);
-        }
-
-        _release(iHandle);
-
-        iState = SOUND_UNINITIALIZED;
-
-    }
-
-    /**
-     * Initializes Sound to play a simple beep.
-     * <p>
-     * Note: some implementations may not support the full frequency
-     * scale defined in table below. They will throw
-     * IllegalArgumentException instead for unsupported values. The
-     * exception may also be delayed
-     * until the play(int loop) method is called.
-     * <p>
-     * Following table describes some freq argument
-     * values:
-     * <pre>
-     * Description            Frequency
-     * Freq off               0
-     * Ring freq A0           220
-     * Ring freq B0b          233
-     * Ring freq B0           247
-     * Ring freq C0           262
-     * Ring freq D0b          277
-     * Ring freq D0           294
-     * Ring freq E0b          311
-     * Ring freq E0           330
-     * Ring freq F0           349
-     * Ring freq G0b          370
-     * Ring freq G0           392
-     * Ring freq A1b          416
-     * Ring freq A1           440
-     * Ring freq B1b          466
-     * Ring freq B1           494
-     * Ring freq C1           523
-     * Ring freq D1b          554
-     * Ring freq D1           587
-     * Ring freq E1b          622
-     * Ring freq E1           659
-     * Ring freq F1           698
-     * Ring freq G1b          740
-     * Ring freq G1           784
-     * Ring freq A2b          831
-     * Ring freq A2           880
-     * Ring freq B2b          932
-     * Ring freq B2           988
-     * Ring freq C2           1047
-     * Ring freq D2b          1109
-     * Ring freq D2           1175
-     * Ring freq E2b          1245
-     * Ring freq E2           1319
-     * Ring freq F2           1397
-     * Ring freq G2b          1480
-     * Ring freq G2           1568
-     * Ring freq A3b          1661
-     * Ring freq A3           1760
-     * Ring freq B3b          1865
-     * Ring freq B3           1976
-     * Ring freq C3           2093
-     * Ring freq D3b          2217
-     * Ring freq D3           2349
-     * Ring freq E3b          2489
-     * Ring freq E3           2637
-     * Ring freq F3           2794
-     * Ring freq G3b          2960
-     * Ring freq G3           3136
-     * Ring freq A4b          3322
-     * Ring freq A4           3520
-     * Ring freq B4b          3729
-     * Ring freq B4           3951
-     * Ring freq C4           4186
-     * Ring freq D4b          4434
-     * Ring freq D4           4698
-     * Ring freq E4b          4978
-     * Ring freq E4           5274
-     * Ring freq F4           5588
-     * Ring freq G4b          5920
-     * Ring freq G4           6272
-     * Ring freq A5b          6644
-     * Ring freq A5           7040
-     * Ring freq B5b          7458
-     * Ring freq B5           7902
-     * Ring freq C5           8372
-     * Ring freq D5b          8870
-     * Ring freq D5           9396
-     * Ring freq E5b          9956
-     * Ring freq E5           10548
-     * Ring freq F5           11176
-     * Ring freq G5b          11840
-     * Ring freq G5           12544
-     * Ring freq A6b          13288
-     *
-     * </pre>
-     *
-     * @param duration length of the beep in milliseconds
-     * @param freq frequency to be played
-     * @throws java.lang.IllegalArgumentException if parameter values are
-     * illegal, freq is not in given range or duration is negative or zero
-     * @since 1.0
-     */
-    public void init(int freq, long duration)
-    {
-        if (duration < 1 || duration > 10000000)
-        {
-            throw(new IllegalArgumentException(
-                      "Bad duration value, must be 1-10000000"));
-        }
-        if (freq < 0 || freq > 15000)
-        {
-            throw(new IllegalArgumentException(
-                      "Bad frequency value, must be 0-15000"));
-        }
-        // if the uninitialised event is sent from native side, it reaches
-        // listener too late in TCK test sound8004, thus we send the event
-        // already here
-        if ((iState != SOUND_UNINITIALIZED) &&
-                (iState != SOUND_REINITIALISING))
-        {
-            iState = SOUND_REINITIALISING;
-            soundStateChanged(SOUND_UNINITIALIZED);
-        } // end of if (iState != SOUND_UNINITIALIZED)
-
-        iCurrentType = FORMAT_BEEP;
-        int err = _init(iHandle, iCurrentType, null, freq, duration);
-        if (err == ERR_NOT_READY)
-        {
-            throw new RuntimeException(Integer.toString(err));
-        }
-        else if (err == ERR_ARGUMENT)
-        {
-            throw new IllegalArgumentException("Data is invalid");            
-        }
-        iState = SOUND_STOPPED;
-    }
-
-    /**
-     * Initializes Sound object based on byte
-     * array data. The data should contain the data presented in the data
-     * format specified by type parameter. The Sound class defines also
-     * generally supported types as constants.
-     * <p>
-     * All implementations need to support at least Nokia
-     * Smart Messaging, Over the Air (OTA) ringingtone format.
-     * The type of this format is FORMAT_TONE.
-     * <p>
-     * Note: some implementations can't throw exceptions about
-     * sound data being corrupted or illegal during this method call.
-     * This will result that IllagalArgumentException is delayed until
-     * play(int loop) method is called. Applications thus need to except
-     * that IllegalArgumentException is thrown in this method or during
-     * play method call.
-     * <p>
-     * @param data a byte array containing the data to be played
-     * @param type type of the audio
-     * @throws java.lang.IllegalArgumentException if the data can not be
-     recognized to
-     * given type or the type is unsupported or unknown
-     * @throws java.lang.NullPointerException if the data is null
-     * @since 1.0
-     */
-    public void init(byte[] data, int type)
-    {
-        if (!(type == FORMAT_WAV || type == FORMAT_TONE))
-        {
-            throw(new IllegalArgumentException("Type is not supported"));
-        }
-        if (data == null)
-        {
-            throw(new NullPointerException("Data is null"));
-        }
-
-        if ((iState != SOUND_UNINITIALIZED) &&
-                (iState != SOUND_REINITIALISING))
-        {
-            iState = SOUND_REINITIALISING;
-            soundStateChanged(SOUND_UNINITIALIZED);
-        } // end of if (iState != SOUND_UNINITIALIZED)
-
-        iCurrentType = type;
-        int err = _init(iHandle, iCurrentType, data, 0, 0);
-        if (err == ERR_NOT_READY || err == ERR_ARGUMENT )
-        {
-            throw new IllegalArgumentException("Data is invalid");
-        }
-
-        iState = SOUND_STOPPED;
-    }
-
-
-    /**
-     * Get the current state of the Sound object.
-     *
-     * @return current state, SOUND_PLAYING, SOUND_STOPPED or
-     SOUND_UNINITIALIZED
-     * @since 1.0
-     *
-     */
-    public int getState()
-    {
-        if (iState == SOUND_REINITIALISING)
-        {
-            return SOUND_UNINITIALIZED;
-        }
-
-        iState = _getState(iHandle);
-        switch (iState)
-        {
-        case(0):  // ENotReady
-        case(4):  // EInitialising
-            iState = SOUND_UNINITIALIZED;
-            break;
-        case(1):  // EReadyToPlay
-            iState = SOUND_STOPPED;
-            break;
-        case(2):  // EPlaying
-            iState = SOUND_PLAYING;
-            break;
-        default:
-        }
-        return iState;
-    }
-
-    /**
-     * This method is used for starting the playback from the beginning of a
-     * sound object. The loop parameter defined the loop count for playback.
-     * Argument zero (0) means continuos looping. For uninitialized sound the
-     * play method doesn't do anything and silently returns. For stopped and
-     * playing sounds the playback starts from beginning of the sound with new
-     * looping information.
-     * <p>
-     * This method will throw IllegalStateException if playback cannot be
-     * started since all channels are in use, or playback is not possible
-     * because there is more higher priority system sounds being played.
-     * <p>
-     * If Sound playback is possible this method will return immediately and
-     * thus will not block the calling thread during the playback. If any error
-     * that prevents the playback is encountered during the playback, the
-     * playback is silently stopped as if called to the stop method.
-     *
-     * @param number number of times audio is played. Value 0 plays audio in
-     * continous loop.
-     * @throws java.lang.IllegalStateException if the sound object cannot be
-     * played because all the channels are already in use.
-     * @throws java.lang.IllegalArgumentException if the loop value is negative,
-     * or if sound values/date is illegal or corrupted.
-     * @since 1.0
-     *
-     */
-    public void play(int loop) throws IllegalArgumentException
-    {
-        if (loop < 0)
-        {
-            throw(new IllegalArgumentException("Negative loop value"));
-        }
-        if (iState == SOUND_REINITIALISING)
-        {
-            return;
-        } // end of if (iState == SOUND_REINITIALISING)
-
-        if (iPlayingSound != null)
-        {
-            if (iPlayingSound.getState() == SOUND_PLAYING)
-            {
-                iPlayingSound.stop();
-            }
-        } // end of if (iPlayingSound != null)
-
-        int error = _play(iHandle, loop);
-        if ((error == NOT_SUPPORTED_ERROR))
-        {
-            throw(new IllegalArgumentException("Sound is not supported"));
-        }
-        iPlayingSound = this;
-    }
-
-    /**
-     *  The method will stop the sound playback, storing the current position.
-     *  For sound that has never been started (may be uninitialized), or is
-     *  currently being stopped the method call doesn't do anything and returns
-     *  silently.
-     *
-     *  Note that for tone based sounds it is not possible to resume from
-     *  position the sound was stopped at, to be specific, stop will reset
-     *  the position to the beginning of the sound.
-     *  @since 1.0
-     */
-    public void stop()
-    {
-        if (iState == SOUND_REINITIALISING)
-        {
-            return;
-        } // end of if (iState == SOUND_REINITIALISING)
-        _stop(iHandle);
-    }
-
-    /**
-     *  The method will continue the stopped sound object from the position it
-     *  was stopped to. For sound that has never been started (may be
-     *  uninitialized), or is currently being played the method call doesn't
-     *  do anything.
-     *  <p>
-     *  Note: For tone based sounds the resume starts the sound from the
-     *  beginning of the sound clip.
-     *  @since 1.0
-     *
-     */
-    public void resume()
-    {
-        if (iState == SOUND_REINITIALISING)
-        {
-            return;
-        } // end of if (iState == SOUND_REINITIALISING)
-        _resume(iHandle);
-    }
-
-    /**
-     * Sets the gain for the sound object. The gain is a value between
-     * 0 and 255. Implementation scales the gain value to the limits it
-     * supports. Notice that any gain value > 0 should result a gain
-     * value > 0. If the gain is smaller than this minimum value then
-     * gain is set to 0, if the gain greater than this maximum value
-     * then the gain is set to maximum value (255).
-     *
-     * @param gain gain value: 0 - 255
-     * @throws java.lang.IllegalArgumentException if the gain not 0 - 255
-     * @since 1.0
-     */
-    public void setGain(int gain)
-    {
-        if (iState == SOUND_REINITIALISING)
-        {
-            return;
-        } // end of if (iState == SOUND_REINITIALISING)
-        if (gain < 0)
-        {
-            gain = 0;
-        }
-        else if (gain > 255)
-        {
-            gain = 255;
-        }
-        iGain = gain;
-        _setVolume(iHandle, iGain);
-    }
-
-    /**
-     * Get the gain (or volume) of Sound object. The gain is a value
-     * between 0 and 255. System returns a scaled value based on the
-     * limits it supports. Notice that any system gain value > 0 should
-     * return a gain value > 0.
-     *
-     * @return gain value 0 - 255
-     * @since 1.0
-     *
-     */
-    public int getGain()
-    {
-        if (iGain == -1)
-        {
-            return _volume(iHandle);
-        }
-        // we have previously set gain
-        return iGain;
-    }
-
-    /**
-     * Returns number of concurrent sounds the device can play for
-     * specific audio type. Returns 1 if only one sound can be played
-     * at a time. Notice that most types use same channel resources.
-     * @return total number of available channels.
-     * @param type the media type
-     * @throws java.lang.IllegalArgumentException if the type is unsupported
-     * or unknown
-     * @since 1.0
-     */
-    public static int getConcurrentSoundCount(int type)
-    {
-        if ((type != FORMAT_TONE) && (type != FORMAT_WAV))
-        {
-            throw(new IllegalArgumentException("Type is not supported"));
-        }
-
-        return 1;
-    }
-
-    /**
-     *  Returns the supported audio formats as an int array.
-     *
-     *  @return an array containing supported audio formats as
-     *  int values (e.g. FORMAT_TONE, FORMAT_WAV),
-     *  or an empty array if no audio formats are supported.
-     *  @since 1.0
-     */
-    static public int[] getSupportedFormats()
-    {
-        return(new int[] { FORMAT_TONE, FORMAT_WAV });
-    }
-
-    /**
-     *  Registeres a listener for playback state notifications.
-     *  @see com.nokia.mid.sound.SoundListener
-     *  @param listener a listener that is notified when state
-     *  changes occur or null if listener is to be
-     *  removed.
-     *  @since 1.0
-     *
-     */
-    public void setSoundListener(SoundListener listener)
-    {
-        iSoundListeners.addElement(listener);
-    }
-
-    /**
-     * Callback method when sound state changes
-     *
-     */
-    public void soundStateChanged(final int event)
-    {
-        /*
-        for(int i = 0; i < iSoundListeners.size(); i++)
-        {
-          ((SoundListener)iSoundListeners.elementAt(i)).soundStateChanged(this, event);
-        }
-        */
-        //Notify SoundState Listeners in a separate thread, so that application doesn't
-        //block main thread
-        new Thread(new Runnable()
-        {
-            public void run()
-            {
-                notifySoundStateListeners(event);
-            }
-        }).start();
-    }
-
-    /**
-     * Notify Sound State Listeners
-     */
-    public synchronized void notifySoundStateListeners(int event)
-    {
-        for (int i = 0; i < iSoundListeners.size(); i++)
-        {
-            ((SoundListener)iSoundListeners.elementAt(i)).soundStateChanged(this, event);
-        }
-    }
-
-    private native void _dispose(int aHandle);
-    private native int _create();
-    private native int _init(int aHandle, int aType,
-                             byte[] aData,
-                             int aFrequency, long aDuration);
-    private native void _release(int aHandle);
-    private native int _play(int aHandle, int aLoop);
-    private native void _stop(int aHandle);
-    private native void _resume(int aHandle);
-    private native void _setVolume(int aHandle, int aVolume);
-    private native int _volume(int aHandle);
-    private native int _getState(int aHandle);
-
-} //End of Sound class
-
--- a/javauis/nokiasound/javasrc/com/nokia/mid/sound/SoundListener.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* 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:  Interface indicating changes in the playback state.
-*
-*/
-
-
-package com.nokia.mid.sound;
-
-/**
- * <p>
- * This interface is used by applications which need to receive events
- * that indicate changes in the playback state of the Sound objects.
- * </p>
- * @see com.nokia.mid.sound.Sound
- * @version 1.1
- * @since 1.0
- */
-
-public interface SoundListener
-{
-
-    /**
-     *  Called when playback state of an Sound has been changed.
-     *  Listener will be notified when playback has been started
-     *  or stopped.
-     *  @see com.nokia.mid.sound.Sound#setSoundListener(SoundListener listener)
-     *  @see com.nokia.mid.sound.Sound#SOUND_PLAYING
-     *  @see com.nokia.mid.sound.Sound#SOUND_STOPPED
-     *  @param sound the sound object this event relates to
-     *  @param event the sound changed event, SOUND_PLAYING or SOUND_STOPPED
-     *  @since 1.0
-     */
-    public abstract void soundStateChanged(Sound sound, int event);
-
-}
--- a/javauis/nokiasound/src/CMIDSoundImpl.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
-* 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:  Interface and a base class for CMIDClip and CMIDTone.
-*
-*/
-
-
-#include "CMIDSoundImpl.h"
-#include "CMIDSoundEvent.h"
-#include "com_nokia_mid_sound_Sound.h"
-
-CMIDSoundImpl::~CMIDSoundImpl()
-{
-
-}
-
-CMIDSoundImpl::CMIDSoundImpl(MMIDEventSender* aEventSender)
-{
-    iEventSender = aEventSender;
-}
-
-void CMIDSoundImpl::ConstructL()
-{
-
-}
-
-void CMIDSoundImpl::Resume()
-{
-    if (iPlayed && (iState == EReadyToPlay))
-    {
-        Play(1);
-    }
-}
--- a/javauis/nokiasound/src/cmidclip.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,196 +0,0 @@
-/*
-* 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:  This class implements wav playing.
-*
-*/
-
-
-#include <e32std.h>
-#include <AudioPreference.h>
-
-#include "com_nokia_mid_sound_Sound.h"
-#include "CMIDClip.h"
-#include "MMIDEventSender.h"
-
-namespace
-{
-const TInt KMIDMaxJavaVolume = 255;
-const TInt KMIDMinNativeVolume = 1;
-const TInt KMIDHeaderLength = 4;
-_LIT8(KMIDHeaderWAV, "RIFF");
-_LIT8(KMIDHeaderAMR, "#!AM");
-const TInt KMIDClipForever = 999999;
-const TInt KMIDMinDataSize = 4;
-}
-
-CMIDClip* CMIDClip::NewL(const TDesC8* aData, MMIDEventSender* aEventSender)
-{
-    CMIDClip* self = new(ELeave) CMIDClip(aEventSender);
-    CleanupStack::PushL(self);
-    self->ConstructL(aData);
-    CleanupStack::Pop(self);
-    return self;
-}
-
-CMIDClip::~CMIDClip()
-{
-    if (iMdaAudioPlayerUtility)
-    {
-        if (iState == EPlaying)
-        {
-            iMdaAudioPlayerUtility->Stop();
-        }
-    }
-    delete iMdaAudioPlayerUtility;
-    delete iClip;
-    delete iSchedulerWait;
-}
-
-CMIDClip::CMIDClip(MMIDEventSender* aEventSender)
-        : CMIDSoundImpl(aEventSender)
-{
-}
-
-void CMIDClip::ConstructL(const TDesC8* aData)
-{
-    CMIDSoundImpl::ConstructL();
-    iSchedulerWait = new(ELeave) CActiveSchedulerWait;
-
-    if (aData->Length() < KMIDMinDataSize)
-    {
-        iState = ENotSupported;
-        User::Leave(KErrArgument);
-    }
-
-    TPtrC8 header = aData->Left(KMIDHeaderLength);
-
-    if ((header != KMIDHeaderWAV()) && (header != KMIDHeaderAMR))
-    {
-        iState = ENotSupported;
-        User::Leave(KErrArgument);
-    }
-
-    iState = EInitialising;
-    iClip = aData->AllocL();
-    iMdaAudioPlayerUtility =
-        CMdaAudioPlayerUtility::
-        NewDesPlayerReadOnlyL(*iClip, *this,
-                              KAudioPriorityRecording);
-    iMdaAudioPlayerUtility->UseSharedHeap();
-    iSchedulerWait->Start();
-}
-
-TInt CMIDClip::Play(TInt aLoop)
-{
-    __ASSERT_DEBUG(iState == EReadyToPlay, User::Invariant());
-
-    if (aLoop == 0)
-    {
-        // There is no known working method to play clip forever, so we play
-        // it for a long time instead.
-        aLoop = KMIDClipForever;
-    }
-
-    --aLoop;
-
-    // Setting repeats to 1 causes sound played twice
-    if (aLoop > 0)
-    {
-        iMdaAudioPlayerUtility->SetRepeats(aLoop, TTimeIntervalMicroSeconds(0));
-    }
-
-    iEventSender->SendEvent(com_nokia_mid_sound_Sound_SOUND_PLAYING);
-
-    iMdaAudioPlayerUtility->Play();
-    iState = EPlaying;
-    iPlayed = ETrue;
-    return KErrNone;
-}
-
-void CMIDClip::Stop()
-{
-    if (iState == EPlaying)
-    {
-        iEventSender->SendEvent(com_nokia_mid_sound_Sound_SOUND_STOPPED);
-        iMdaAudioPlayerUtility->Stop();
-        iState = EReadyToPlay;
-    }
-}
-
-void CMIDClip::SetVolume(TInt aVolume)
-{
-    iVolume = aVolume;
-    TInt volume = 0;
-    if (aVolume)
-    {
-        volume = (((iMdaAudioPlayerUtility->MaxVolume()
-                    - KMIDMinNativeVolume + 1)
-                   * aVolume)
-                  / (KMIDMaxJavaVolume + 1)) + KMIDMinNativeVolume;
-    }
-    iMdaAudioPlayerUtility->SetVolume(volume);
-}
-
-TInt CMIDClip::Volume()
-{
-    return iVolume;
-}
-
-void CMIDClip::MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& /*aDuration*/)
-{
-    if (aError == KErrNone)
-    {
-        //Setting iVolume to max because
-        //CMdaAudioPlayerUtility doesn't have Volume()
-        iVolume = KMIDMaxJavaVolume;
-        iState = EReadyToPlay;
-    }
-    else
-    {
-        if (aError == KErrNotSupported)
-        {
-            iState = ENotSupported;
-        }
-        else
-        {
-            iState = ENotReady;
-        }
-    }
-    iSchedulerWait->AsyncStop();
-}
-
-void CMIDClip::MapcPlayComplete(TInt /*aError*/)
-{
-    iEventSender->SendEvent(com_nokia_mid_sound_Sound_SOUND_STOPPED);
-    iState = EReadyToPlay;
-}
-
-void CMIDClip::Release()
-{
-    if (iMdaAudioPlayerUtility)
-    {
-        if (iState == EPlaying)
-        {
-            iMdaAudioPlayerUtility->Stop();
-        }
-    }
-    delete iMdaAudioPlayerUtility;
-    iMdaAudioPlayerUtility = NULL;
-    delete iClip;
-    iClip = NULL;
-    iState = ENotReady;
-}
-
-//End of File
-
--- a/javauis/nokiasound/src/cmidsound.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,313 +0,0 @@
-/*
-* 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:  Wrapper for CMIDClip and CMIDTone class initialisations.
-*
-*/
-
-
-#include <e32std.h>
-#include <centralrepository.h>
-#include <ProfileEngineSDKCRKeys.h>
-
-#include "CMIDSound.h"
-#include "CMIDTone.h"
-#include "CMIDClip.h"
-#include "logger.h"
-#include "fs_methodcall.h"
-#include "com_nokia_mid_sound_Sound.h"
-
-
-CMIDSound* CMIDSound::NewL(JNIEnv& aJni, jobject aPeer)
-{
-    JELOG2(EJavaUI);
-
-    CMIDSound* self = new CMIDSound();
-    if (self != NULL)
-    {
-        self->attachToVm(aJni, aPeer);
-    }
-    return self;
-}
-
-CMIDSound::~CMIDSound()
-{
-    delete iMIDSound;
-
-    // CENREP
-    if (iProfileListener)
-    {
-        iProfileListener->StopListening();
-        delete iProfileListener;
-    }
-    delete iRepository;
-}
-
-void CMIDSound::HandleNotifyInt(TUint32 aId, TInt aNewValue)
-{
-    JELOG2(EJavaUI);
-    if (aId == KProEngActiveWarningTones)
-    {
-        if (iMIDSound)
-        {
-            iMIDSound->SetVolume(aNewValue == 0 ? 0 : iRealVolume);
-        }
-    }
-}
-
-void CMIDSound::SendEvent(TInt aEventType)
-{
-    /**
-     *Callback to Java
-     */
-    JELOG2(EJavaUI);
-
-    jclass javaPeerClass = mJniEnv->FindClass("com/nokia/mid/sound/Sound");
-
-    jmethodID soundStateChangeCallback = mJniEnv->GetMethodID(
-                                             javaPeerClass /*mJavaPeerClass */, "soundStateChanged", "(I)V");
-
-
-    mJniEnv->CallVoidMethod(mJavaPeerObject, soundStateChangeCallback,
-                            aEventType);
-}
-
-CMIDSound::CMIDSound()
-        : java::util::FunctionServer("CMIDSoundFunctionServer"),
-        iMIDSound(0)
-{
-    JELOG2(EJavaUI);
-    createServerToNewThread();
-}
-
-int CMIDSound::InitProfileListener()
-{
-    TRAPD(err, CallMethodL(this, &CMIDSound::InitProfileListenerL, this));
-    return err;
-}
-
-void CMIDSound::InitProfileListenerL()
-{
-    JELOG2(EJavaUI);
-    // repository for profile
-    iRepository = CRepository::NewL(KCRUidProfileEngine);
-
-    // get notifies about changes in KProEngActiveWarningTones
-    iProfileListener = CCenRepNotifyHandler::NewL(*this,
-                       *iRepository,
-                       CCenRepNotifyHandler::EIntKey,
-                       KProEngActiveWarningTones);
-
-    // Changes will be informed to HandleNotifyInt
-    iProfileListener->StartListeningL();
-}
-
-TBool CMIDSound::IsAudioEnabled(/*CMIDSound* aSelf*/)
-{
-    JELOG2(EJavaUI);
-    TInt isProfileOn = 0;
-    TInt error = iRepository->Get(KProEngActiveWarningTones, isProfileOn);
-    TBool retVal = EFalse;
-
-    // If getting profile status fails do not play any tones.
-    if ((isProfileOn == 1) &&
-            (error == KErrNone))
-    {
-        retVal = ETrue;
-    }
-    return retVal;
-}
-
-void CMIDSound::SetBeep(TInt aFreq, TInt64 aDuration)
-{
-    JELOG2(EJavaUI);
-    iFreq = aFreq;
-    iDur = aDuration;
-}
-
-TInt CMIDSound::Init(TInt aType, const TDesC8* aData)
-{
-    JELOG2(EJavaUI);
-    TRAPD(err, CallMethodL(this, &CMIDSound::InitL, aType, aData, this));
-    return err;
-}
-
-void CMIDSound::InitL(TInt aType, const TDesC8* aData)
-{
-    JELOG2(EJavaUI);
-
-    if (iMIDSound)
-    {
-        if (iMIDSound->State() == CMIDSoundImpl::EInitialising)
-        {
-            return;
-        }
-        if (iMIDSound->State() == CMIDSoundImpl::EReadyToPlay ||
-                iMIDSound->State() == CMIDSoundImpl::EPlaying)
-        {
-            iMIDSound->Release();
-        }
-    }
-
-    CMIDSoundImpl* soundImpl = NULL;
-    switch (aType)
-    {
-    case com_nokia_mid_sound_Sound_FORMAT_TONE: //Tone
-    {
-        soundImpl = CMIDTone::NewL(*aData, this);
-        break;
-    }
-    case com_nokia_mid_sound_Sound_FORMAT_BEEP: //Beep
-    {
-        soundImpl = CMIDTone::NewL(iFreq, iDur, this);
-        break;
-    }
-    case com_nokia_mid_sound_Sound_FORMAT_WAV:  //Wav
-    {
-        soundImpl = CMIDClip::NewL(aData, this);
-        break;
-    }
-    default:
-    {
-        break;
-    }
-    }
-
-    if (soundImpl)
-    {
-        if (soundImpl->State() != CMIDSoundImpl::EReadyToPlay)
-        {
-            TInt state = soundImpl->State();
-            delete soundImpl;
-            User::Leave(KErrNotReady);
-        }
-        iRealVolume = soundImpl->Volume();
-    }
-
-    delete iMIDSound;
-    iMIDSound = soundImpl;
-}
-
-TInt CMIDSound::Play(TInt aLoop)
-{
-    JELOG2(EJavaUI);
-    TInt err = 0;
-    CallMethod(err, this, &CMIDSound::DoPlay, aLoop, this);
-    return err;
-}
-
-TInt CMIDSound::DoPlay(TInt aLoop)
-{
-    JELOG2(EJavaUI);
-
-    if (iMIDSound)
-    {
-        TInt state = iMIDSound->State();
-        if (state != CMIDSoundImpl::EReadyToPlay)
-        {
-            return state;
-        }
-    }
-    else
-    {
-        return CMIDSoundImpl::ENotSupported;
-    }
-    if (!IsAudioEnabled())
-    {
-        iMIDSound->SetVolume(0);
-    }
-    return iMIDSound->Play(aLoop);
-}
-
-void CMIDSound::Resume()
-{
-    JELOG2(EJavaUI);
-    CallMethod(this, &CMIDSound::DoResume, this);
-}
-
-void CMIDSound::DoResume()
-{
-    JELOG2(EJavaUI);
-    iMIDSound->Resume();
-}
-
-void CMIDSound::Stop()
-{
-    JELOG2(EJavaUI);
-    CallMethod(this, &CMIDSound::DoStop, this);
-}
-
-void CMIDSound::DoStop()
-{
-    JELOG2(EJavaUI);
-    iMIDSound->Stop();
-}
-
-TInt CMIDSound::SoundVolume()
-{
-    JELOG2(EJavaUI);
-    TInt result = 0;
-    CallMethod(result, this, &CMIDSound::Volume, this);
-    return result;
-}
-
-TInt CMIDSound::Volume()
-{
-    JELOG2(EJavaUI);
-    return iMIDSound->Volume();
-}
-
-void CMIDSound::SetVolume(TInt aVolume)
-{
-    JELOG2(EJavaUI);
-    CallMethod(this, &CMIDSound::DoSetVolume, aVolume, this);
-}
-
-void CMIDSound::DoSetVolume(TInt aVolume)
-{
-    JELOG2(EJavaUI);
-    iRealVolume = aVolume;
-    TInt currentState = iMIDSound->State();
-    if ((currentState == CMIDSoundImpl::EReadyToPlay) ||
-            (currentState == CMIDSoundImpl::EPlaying))
-    {
-        iMIDSound->SetVolume(IsAudioEnabled() ? aVolume : 0);
-    }
-}
-
-
-TInt CMIDSound::PlayerState()
-{
-    JELOG2(EJavaUI);
-    TInt result = 0;
-    CallMethod(result, this, &CMIDSound::State, this);
-    return result;
-}
-
-TInt CMIDSound::State()
-{
-    JELOG2(EJavaUI);
-    return iMIDSound->State();
-}
-
-void CMIDSound::Release()
-{
-    JELOG2(EJavaUI);
-    CallMethod(this, &CMIDSound::DoRelease, this);
-}
-
-void CMIDSound::DoRelease()
-{
-    JELOG2(EJavaUI);
-    iMIDSound->Release();
-}
--- a/javauis/nokiasound/src/cmidtone.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,244 +0,0 @@
-/*
-* 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:  This class implements beep playing and OTA ringingtone playing.
-*
-*/
-
-
-#include <e32std.h>
-#include <e32svr.h>
-
-#include "com_nokia_mid_sound_Sound.h"
-#include "CMIDTone.h"
-#include "MMIDEventSender.h"
-
-namespace
-{
-const TInt KMIDMaxJavaVolume = 255;
-const TInt KMIDMinNativeVolume = 1;
-const TInt KMIDStopSleepTime = 10000;
-const TInt KMIDMicrosInMilli = 1000;
-const TInt KMIDMinDataLength = 4;
-const TInt KMIDLoopForever = 999999;
-}
-
-CMIDTone* CMIDTone::NewL(TInt aFreq, TInt64 aDuration,
-                         MMIDEventSender* aEventSender)
-{
-    CMIDTone* self = new(ELeave) CMIDTone(aEventSender);
-    CleanupStack::PushL(self);
-    self->ConstructL(aFreq, aDuration);
-    CleanupStack::Pop(self);
-    return self;
-}
-
-CMIDTone* CMIDTone::NewL(const TDesC8& aData, MMIDEventSender* aEventSender)
-{
-    CMIDTone* self = new(ELeave) CMIDTone(aEventSender);
-    CleanupStack::PushL(self);
-    self->ConstructL(aData);
-    CleanupStack::Pop(self);
-    return self;
-}
-
-
-CMIDTone::~CMIDTone()
-{
-    if (iMdaAudioToneUtility)
-    {
-        if (iMdaAudioToneUtility->State() == EMdaAudioToneUtilityNotReady)
-        {
-            iMdaAudioToneUtility->CancelPrepare();
-        }
-        else if (iMdaAudioToneUtility->State()
-                 == EMdaAudioToneUtilityPlaying)
-        {
-            iMdaAudioToneUtility->CancelPlay();
-        }
-    }
-    delete iMdaAudioToneUtility;
-    delete iSchedulerWait;
-}
-
-CMIDTone::CMIDTone(MMIDEventSender* aEventSender)
-        : CMIDSoundImpl(aEventSender)
-{
-}
-
-void CMIDTone::ConstructL(TInt aFreq, TInt64 aDuration)
-{
-    CMIDSoundImpl::ConstructL();
-    iSchedulerWait = new(ELeave) CActiveSchedulerWait;
-    iFreq = aFreq;
-    iDuration = aDuration;
-    iState = EInitialising;
-    iMdaAudioToneUtility = CMdaAudioToneUtility::NewL(*this);
-    iMdaAudioToneUtility->PrepareToPlayTone(iFreq,
-                                            TTimeIntervalMicroSeconds(iDuration * KMIDMicrosInMilli));
-    iSchedulerWait->Start();
-}
-
-void CMIDTone::ConstructL(const TDesC8& aData)
-{
-    CMIDSoundImpl::ConstructL();
-    iSchedulerWait = new(ELeave) CActiveSchedulerWait;
-    // first byte is the number of command parts
-    iFreq = 0;
-    iDuration = 0;
-    iState = EInitialising;
-
-    if (aData.Length() < KMIDMinDataLength)
-    {
-        iState = ENotSupported;
-        User::Leave(KErrArgument);
-    }
-
-    if (aData[0x000] == 0x02 && aData[0x001] == 0x4a && aData[0x002] == 0x3a)
-    {
-        iState = EInitialising;
-    }
-    else if (aData[0x000] == 0x03 && aData[0x001] == 0x4a && aData[0x002] ==
-             0x44 && aData[0x003] == 0x3a)
-    {
-        iState = EInitialising;
-    }
-    else if (aData[0] == 0x00 && aData[1] == 0x11)
-    {
-        iState = EInitialising;
-    }
-    else
-    {
-        iState = ENotSupported;
-        User::Leave(KErrArgument);
-    }
-    iMdaAudioToneUtility = CMdaAudioToneUtility::NewL(*this);
-    iMdaAudioToneUtility->PrepareToPlayDesSequence(aData);
-    iSchedulerWait->Start();
-
-}
-
-TInt CMIDTone::Play(TInt aLoop)
-{
-    __ASSERT_DEBUG(iState == EReadyToPlay, User::Invariant());
-
-    if (aLoop == 0)
-    {
-        // There is no known working method to play tone forever
-        aLoop = KMIDLoopForever;
-    }
-
-    // Setting repeats to 1 causes sound played twice
-    if (aLoop == 1)
-    {
-        iMdaAudioToneUtility->SetRepeats(0, TTimeIntervalMicroSeconds(0));
-    }
-    else if (aLoop > 1)
-    {
-        iMdaAudioToneUtility->SetRepeats(aLoop, TTimeIntervalMicroSeconds(0));
-    }
-
-    iMdaAudioToneUtility->Play();
-
-    iEventSender->SendEvent(com_nokia_mid_sound_Sound_SOUND_PLAYING);
-    iState = EPlaying;
-    iPlayed = ETrue;
-
-    return KErrNone;
-}
-
-void CMIDTone::Stop()
-{
-    if (iState == EPlaying)
-    {
-        iMdaAudioToneUtility->CancelPlay();
-        // sleep to make sure the device has time to stop
-        User::After(TTimeIntervalMicroSeconds32(KMIDStopSleepTime));      // CSI: 92 MdaAudioToneUtility does not send event when stopping has finished #
-        iEventSender->SendEvent(com_nokia_mid_sound_Sound_SOUND_STOPPED);
-        iState = EReadyToPlay;
-    }
-}
-
-void CMIDTone::SetVolume(TInt aVolume)
-{
-    TInt maxVolume = iMdaAudioToneUtility->MaxVolume();
-    TInt volume = 0;
-    if (aVolume)
-    {
-        volume = (((maxVolume
-                    - KMIDMinNativeVolume + 1)
-                   * aVolume)
-                  / (KMIDMaxJavaVolume + 1)) + KMIDMinNativeVolume;
-    }
-    iMdaAudioToneUtility->SetVolume(volume);
-}
-
-TInt CMIDTone::Volume()
-{
-    TInt maxVolume = iMdaAudioToneUtility->MaxVolume();
-    TInt volume = (iMdaAudioToneUtility->Volume() *
-                   KMIDMaxJavaVolume) / maxVolume;
-
-    return volume;
-}
-
-void CMIDTone::MatoPrepareComplete(TInt aError)
-{
-    if (aError == KErrNone)
-    {
-        iState = EReadyToPlay;
-    }
-    else
-    {
-        if (aError == KErrNotSupported)
-        {
-            iState = ENotSupported;
-        }
-        else
-        {
-            iState = ENotReady;
-        }
-    }
-    iSchedulerWait->AsyncStop();
-}
-
-void CMIDTone::MatoPlayComplete(TInt aError)
-{
-    if (KErrNone == aError)
-    {
-        iEventSender->SendEvent(com_nokia_mid_sound_Sound_SOUND_STOPPED);
-        iState = EReadyToPlay;
-    }
-}
-
-void CMIDTone::Release()
-{
-    iState = ENotReady;
-    if (iMdaAudioToneUtility)
-    {
-        if (iMdaAudioToneUtility->State() == EMdaAudioToneUtilityNotReady)
-        {
-            iMdaAudioToneUtility->CancelPrepare();
-        }
-        else if (iMdaAudioToneUtility->State() == EMdaAudioToneUtilityPlaying
-                 || iState == EPlaying)
-        {
-            iMdaAudioToneUtility->CancelPlay();
-        }
-    }
-    delete iMdaAudioToneUtility;
-    iMdaAudioToneUtility = NULL;
-    iState = ENotReady;
-}
-
-//  End of File
--- a/javauis/nokiasound/src/sound.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,209 +0,0 @@
-/*
-* 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:  JNI class for Sound.java.
-*
-*/
-
-
-#include <e32def.h> // MAKE_TINT64 Warning fix
-
-#include "com_nokia_mid_sound_Sound.h"
-#include "CMIDSound.h"
-#include "javajniutils.h"
-#include "javacommonutils.h"
-#include "logger.h"
-
-/*
- * Class:     com_nokia_mid_sound_Sound
- * Method:    _dispose
- * Signature: (II)V
- */
-JNIEXPORT void JNICALL Java_com_nokia_mid_sound_Sound__1dispose
-(JNIEnv* /* aJni */, jobject /* aSound */, jint aHandle)
-{
-    JELOG2(EJavaUI);
-    CMIDSound* sound = reinterpret_cast<CMIDSound*>(aHandle);
-    delete sound;
-}
-
-/*
- * Class:     com_nokia_mid_sound_Sound
- * Method:    _create
- * Signature: (I)I
- */
-JNIEXPORT jint JNICALL Java_com_nokia_mid_sound_Sound__1create
-(JNIEnv* aJni, jobject aSound)
-{
-    JELOG2(EJavaUI);
-
-    TInt handle(0);
-    CMIDSound* sound = 0;
-    TRAPD(err,
-    {
-        sound = CMIDSound::NewL(*aJni, aSound);
-        if (sound != 0)
-        {
-            sound->InitProfileListener();
-        }
-    });
-
-    if (err != KErrNone)
-    {
-
-        java::util::JniUtils::throwNewException(aJni, "java/lang/RuntimeException" ,
-                                                "Failed to create Native Peer " +
-                                                java::util::JavaCommonUtils::intToString(err));
-    }
-    else
-    {
-
-        handle = reinterpret_cast<TInt>(sound);
-    }
-    return handle;
-}
-
-/*
- * Class:     com_nokia_mid_sound_Sound
- * Method:    _init
- * Signature: (III[BIJ)I
- */
-JNIEXPORT jint JNICALL Java_com_nokia_mid_sound_Sound__1init
-(JNIEnv* aJni, jobject, jint aHandle, jint aType, jbyteArray aData,
- jint aFrequency, jlong aDuration)
-{
-    JELOG2(EJavaUI);
-    TInt freq(aFrequency);
-    TInt64 duration = *reinterpret_cast<TInt64*>(&aDuration);
-
-    CMIDSound* sound = reinterpret_cast<CMIDSound*>(aHandle);
-
-    TPtrC8 ptr;
-    jbyte* data = NULL;
-
-    if (aType != com_nokia_mid_sound_Sound_FORMAT_BEEP)
-    {
-        if (!aData)
-        {
-            return KErrGeneral;
-        }
-        data = aJni->GetByteArrayElements(aData,0);
-        jint length = aJni->GetArrayLength(aData);
-        ptr.Set((TUint8*)data, length);
-    }
-
-    // Had to make SetBeep() due to number of maximum parameters in ExecuteTrap.
-    sound->SetBeep(freq, duration);
-    TInt err = sound->Init(aType, (const TDesC8*)&ptr);
-
-    if (aType != com_nokia_mid_sound_Sound_FORMAT_BEEP)
-    {
-        aJni->ReleaseByteArrayElements(aData, data, 0);
-    }
-    return err;
-}
-
-/*
- * Class:     com_nokia_mid_sound_Sound
- * Method:    _release
- * Signature: (II)V
- */
-JNIEXPORT void JNICALL Java_com_nokia_mid_sound_Sound__1release
-(JNIEnv*, jobject, jint aHandle)
-{
-    JELOG2(EJavaUI);
-    CMIDSound* sound = reinterpret_cast<CMIDSound*>(aHandle);
-    sound->Release();
-}
-
-
-/*
- * Class:     com_nokia_mid_sound_Sound
- * Method:    _play
- * Signature: (II)I
- */
-JNIEXPORT jint JNICALL Java_com_nokia_mid_sound_Sound__1play
-(JNIEnv*, jobject, jint aHandle, jint aLoop)
-{
-    JELOG2(EJavaUI);
-    CMIDSound* sound = reinterpret_cast<CMIDSound*>(aHandle);
-    TInt err = sound->Play(aLoop);
-    return err;
-}
-
-/*
- * Class:     com_nokia_mid_sound_Sound
- * Method:    _stop
- * Signature: (II)V
- */
-JNIEXPORT void JNICALL Java_com_nokia_mid_sound_Sound__1stop
-(JNIEnv*, jobject, jint aHandle)
-{
-    JELOG2(EJavaUI);
-    CMIDSound* sound = reinterpret_cast<CMIDSound*>(aHandle);
-    sound->Stop();
-}
-
-/*
- * Class:     com_nokia_mid_sound_Sound
- * Method:    _resume
- * Signature: (II)V
- */
-JNIEXPORT void JNICALL Java_com_nokia_mid_sound_Sound__1resume
-(JNIEnv*, jobject, jint aHandle)
-{
-    JELOG2(EJavaUI);
-    CMIDSound* sound = reinterpret_cast<CMIDSound*>(aHandle);
-    sound->Resume();
-}
-
-/*
- * Class:     com_nokia_mid_sound_Sound
- * Method:    _setVolume
- * Signature: (III)V
- */
-JNIEXPORT void JNICALL Java_com_nokia_mid_sound_Sound__1setVolume
-(JNIEnv*, jobject, jint aHandle, jint aVolume)
-{
-    JELOG2(EJavaUI);
-    CMIDSound* sound = reinterpret_cast<CMIDSound*>(aHandle);
-    sound->SetVolume(aVolume);
-}
-
-/*
- * Class:     com_nokia_mid_sound_Sound
- * Method:    _volume
- * Signature: (II)I
- */
-JNIEXPORT jint JNICALL Java_com_nokia_mid_sound_Sound__1volume
-(JNIEnv*, jobject, jint aHandle)
-{
-    JELOG2(EJavaUI);
-    CMIDSound* sound = reinterpret_cast<CMIDSound*>(aHandle);
-    TInt volume = sound->SoundVolume();
-    return(volume);
-}
-
-/*
- * Class:     com_nokia_mid_sound_Sound
- * Method:    _getState
- * Signature: (II)I
- */
-JNIEXPORT jint JNICALL Java_com_nokia_mid_sound_Sound__1getState
-(JNIEnv*, jobject, jint aHandle)
-{
-    JELOG2(EJavaUI);
-    CMIDSound* sound = reinterpret_cast<CMIDSound*>(aHandle);
-    TInt state = sound->PlayerState();
-    return state;
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/nokiasound_akn/build/bld.inf	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,22 @@
+/*
+* 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: Generated bld.inf -file
+*
+*/
+
+PRJ_PLATFORMS
+default
+
+PRJ_MMPFILES  
+javanokiasound_0x2002DCC4.mmp 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/nokiasound_akn/build/build.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,33 @@
+<!--
+#
+# Copyright (c) 2008-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: 
+#
+-->
+
+<project name="javanokiasound" default="deploy" basedir=".">
+
+  <import file="../../../build/utilities.xml"/>
+
+    <!-- Needed by the utilities.xml. See the description form the utilities.xml
+       file -->
+  <property name="javah.classnames" 
+            value="com.nokia.mid.sound.Sound"/>
+            
+  <target name="create.public.api.jar">
+      <omj.public.apis includes="com/nokia/mid/sound/Sound.class,
+                                 com/nokia/mid/sound/SoundListener.class"/>
+  </target>
+  
+</project>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/nokiasound_akn/build/bwins/javanokiasoundu.def	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	?jni_lookup@@YAP6AXXZPBD@Z @ 1 NONAME ; void (*)(void) jni_lookup(char const *)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/nokiasound_akn/build/eabi/javanokiasoundu.def	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	_Z10jni_lookupPKc @ 1 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/nokiasound_akn/build/javanokiasound.pro	Wed Oct 13 14:23:59 2010 +0300
@@ -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: 
+#
+
+TEMPLATE=lib
+TARGET=javanokiasound
+CONFIG += omj java stl
+CONFIG -= qt
+
+LIBS += -lcenrepnotifhandler \
+        -lcentralrepository \
+        -lmediaclientaudio \
+        -lcommonengine \
+        -ljavautils
+
+include(../../../build/omj.pri)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/nokiasound_akn/build/javanokiasound_0x2002DCC4.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,151 @@
+/*
+* 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: Generated file - do not edit manually
+*
+*/
+
+// ==============================================================================
+// Generated by qmake (2.01a) (Qt 4.6.4) on: (date)
+// This file is generated by qmake and should not be modified by the
+// user.
+//  Name        : javanokiasound.mmp
+// ==============================================================================
+
+TARGET		javanokiasound.dll
+TARGETTYPE		DLL
+
+UID		0x1000008d 0x2002DCC4
+SECUREID		0x2002DCC4
+
+EPOCALLOWDLLDATA
+
+
+// Qt Macros
+MACRO		UNICODE
+MACRO		QT_KEYPAD_NAVIGATION
+MACRO		QT_SOFTKEYS_ENABLED
+MACRO		QT_USE_MATH_H_FLOATS
+MACRO		RD_JAVA_SYMBIAN_TARGET
+MACRO		RD_JAVA_S60_RELEASE_9_2
+MACRO		RD_JAVA_S60_RELEASE_9_2_ONWARDS
+MACRO		RD_JAVA_S60_RELEASE_5_0_ONWARDS
+MACRO		RD_JAVA_STDCPPV5
+MACRO		RD_JAVA_EPOCALLOWDLLDATA_FIX
+MACRO		RD_JAVA_HTTP_EMC_ENABLED
+MACRO		RD_JAVA_NGA_ENABLED
+MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
+MACRO		RD_JAVA_OPENC_BETA_PATCH
+MACRO		RD_JAVA_INSTALLERUI_ENABLED
+MACRO		RD_JAVA_PREWARM
+MACRO		RD_JAVA_ADVANCED_TACTILE_FEEDBACK
+MACRO		RD_JAVA_MIDPRMS_DB
+MACRO		__SYMBIAN32__
+MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
+
+SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
+SYSTEMINCLUDE		../inc
+SYSTEMINCLUDE		../../inc
+SYSTEMINCLUDE		../../../inc
+SYSTEMINCLUDE		../src
+SYSTEMINCLUDE		/epoc32/include/stdapis/stlportv5
+SYSTEMINCLUDE		/epoc32/include/mw
+SYSTEMINCLUDE		.
+
+SOURCEPATH 	../src
+SOURCE		cmidclip.cpp
+SOURCE		cmidsound.cpp
+SOURCE		CMIDSoundImpl.cpp
+SOURCE		cmidtone.cpp
+SOURCE		sound.cpp
+
+
+LIBRARY		cenrepnotifhandler.lib
+LIBRARY		centralrepository.lib
+LIBRARY		mediaclientaudio.lib
+LIBRARY		commonengine.lib
+LIBRARY		javautils.lib
+LIBRARY		libpthread.lib
+LIBRARY		libstdcppv5.lib
+LIBRARY		libc.lib
+LIBRARY		libm.lib
+LIBRARY		euser.lib
+LIBRARY		libdl.lib
+LIBRARY		cone.lib
+LIBRARY		eikcore.lib
+LIBRARY		eikcoctl.lib
+LIBRARY		eiksrv.lib
+LIBRARY		apparc.lib
+LIBRARY		avkon.lib
+LIBRARY		efsrv.lib
+LIBRARY		charconv.lib
+LIBRARY		ws32.lib
+LIBRARY		hal.lib
+LIBRARY		gdi.lib
+LIBRARY		apgrfx.lib
+
+CAPABILITY		all -tcb 
+
+OPTION CW -wchar_t on
+OPTION ARMCC --visibility_inlines_hidden
+#if defined(ARMCC_4_0)
+OPTION ARMCC --import_all_vtbl
+#endif
+OPTION GCCE -fvisibility-inlines-hidden
+
+VERSION 10.0
+
+ARMFPU softvfp
+
+PAGED
+
+BYTEPAIRCOMPRESSTARGET
+
+USERINCLUDE .
+
+#include <platform_paths.hrh>
+
+ APP_LAYER_SYSTEMINCLUDE
+
+ OS_LAYER_LIBC_SYSTEMINCLUDE
+
+ OS_LAYER_SSL_SYSTEMINCLUDE
+
+deffile ./~/javanokiasound.def
+
+ SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlportv5)
+
+SYSTEMINCLUDE /epoc32/build/jrt/javabuild/inc.javah
+
+SOURCEPATH /epoc32/build/jrt/javabuild/javanokiasound
+
+SOURCE lookup.cpp
+
+SOURCEPATH /epoc32/build/jrt/javabuild/javanokiasound
+
+SOURCE jxe.c
+
+#ifdef WINSCW
+
+LIBRARY ewsd.lib
+
+#endif
+
+STDCPP
+
+#ifdef WINSCW
+DEFFILE ./bwins/javanokiasound.def
+#elif defined EABI
+DEFFILE ./eabi/javanokiasound.def
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/nokiasound_akn/inc/CMIDClip.h	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,73 @@
+/*
+* 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:  This class implements wav playing.
+*
+*/
+
+
+#ifndef CMIDCLIP_H
+#define CMIDCLIP_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <mdaaudiosampleplayer.h>
+
+#include "CMIDSoundImpl.h"
+
+// FORWARD DECLARATIONS
+class MMIDEventSender;
+
+//  CLASS DEFINITION
+/**
+ * This class implements wav playing.
+ *
+ */
+NONSHARABLE_CLASS(CMIDClip): public CMIDSoundImpl,
+        public MMdaAudioPlayerCallback
+{
+public:
+
+    static CMIDClip* NewL(const TDesC8* aData, MMIDEventSender* aEventSender);
+    //   Destructor
+    ~CMIDClip();
+
+protected:
+
+    //   C++ constructor
+    CMIDClip(MMIDEventSender* aEventSender);
+    //   Second phase
+    void ConstructL(const TDesC8* aData);
+
+public:
+
+    virtual TInt Play(TInt aLoop);
+    virtual void Stop();
+    virtual void SetVolume(TInt aVolume);
+    virtual TInt Volume();
+    virtual void Release();
+
+public: // from MMdaAudioPlayerCallback
+    void MapcInitComplete(TInt aError,
+                          const TTimeIntervalMicroSeconds& aDuration);
+    void MapcPlayComplete(TInt aError);
+
+private:
+
+    HBufC8* iClip;
+    CMdaAudioPlayerUtility* iMdaAudioPlayerUtility;
+    TInt iLoops;
+    TInt iVolume;
+};
+
+#endif // CMIDCLIP_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/nokiasound_akn/inc/CMIDSound.h	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,106 @@
+/*
+* 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:  Wrapper for CMIDClip and CMIDTone class initialisations.
+*
+*/
+
+
+//  INCLUDES
+#include <mevents.h>
+#include <e32base.h>
+#include <cenrepnotifyhandler.h>
+#include "MMIDEventSender.h"
+#include "functionserver.h"
+
+// FORWARD DECLARATIONS
+class CMIDSoundImpl;
+
+// CLASS DEFINITION
+/**
+ * CMIDSound is a wrapper that handles which class is
+ * wanted to be initialised, CMIDClip or CMIDTone
+ *
+ */
+NONSHARABLE_CLASS(CMIDSound):
+        public CBase, MCenRepNotifyHandlerCallback, MMIDEventSender, java::util::FunctionServer
+{
+
+public:
+
+    //   Destructor
+    ~CMIDSound();
+
+public: // From MCenRepNotifyHandlerCallback
+    /**
+     * Notifies this class about changes in the audio enable status
+     */
+    void HandleNotifyInt(TUint32 aId, TInt aNewValue);
+
+public: // From MMIDEventSender
+    /**
+    * Sends event to Java SoundListener.
+    * @since 3.0
+    * @param aEventType Type of the event to send
+    */
+    void SendEvent(TInt aEventType);
+
+protected:
+
+    //  C++ default constructor
+    CMIDSound();
+
+private:
+    TBool IsAudioEnabled();
+
+public:
+
+    static CMIDSound* NewL(JNIEnv& aJni, jobject aSound);
+    void SetBeep(TInt aFreq, TInt64 aDuration);
+    TInt Init(TInt aType, const TDesC8* aData);
+    void InitL(TInt aType, const TDesC8* aData);
+    TInt InitProfileListener();
+    void InitProfileListenerL();
+    TInt Play(TInt aLoop);
+    TInt DoPlay(TInt aLoop);
+    void Resume();
+    void DoResume();
+    void Stop();
+    void DoStop();
+    TInt SoundVolume();
+    TInt Volume();
+    void SetVolume(TInt aVolume);
+    void DoSetVolume(TInt aVolume);
+    TInt State();
+    TInt PlayerState();
+    void Release();
+    void DoRelease();
+
+
+private:
+
+    CMIDSoundImpl* iMIDSound;
+    TInt iFreq;
+    TInt64 iDur;
+    TInt iSource;
+    TInt iRealVolume;
+
+    // owned, informs about changes in iRepository
+    CCenRepNotifyHandler* iProfileListener;
+
+    // owned, current profile
+    CRepository* iRepository;
+
+    TInt iHandle;
+};
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/nokiasound_akn/inc/CMIDSoundEvent.h	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,71 @@
+/*
+* 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:  Class for sound related events.
+*
+*/
+
+
+#ifndef CMIDSOUNDEVENT_H
+#define CMIDSOUNDEVENT_H
+
+#include <jni.h>
+
+//  CLASS DEFINITION
+
+/**
+ * Class for sound related events.
+ */
+NONSHARABLE_CLASS(CMIDSoundEvent)
+{
+public: // constructor
+    CMIDSoundEvent(TInt aEvent);
+
+public: // new methods
+    /**
+     * Setter for listener
+     * @param aListener this event will be sent to this listener
+     */
+    void SetListener(jobject aListener);
+
+    /**
+     * Setter for method ID
+     * @param aMethodID this event will be sent by calling this method
+     */
+    void SetMethodID(jmethodID aMethodID);
+
+    /**
+     * Adds a global reference to peer object, this reference is
+     * removed when the event is dispatched. This prevents peer
+     * object from being deleted by garbage collector before the
+     * event has been dispatched.
+     */
+    void AddGlobalRef(JavaVM* javaVM);
+
+
+private:
+    void Dispatch(JNIEnv& aJni);
+
+private:
+    jobject iListener;
+    jmethodID iMethodID;
+    TInt iEvent;
+    jobject iGlobalRef;
+    // Number of times the global reference has been added.
+    // The actual global reference is removed when the counter reaches zero.
+    TInt iRefCount;
+
+};
+
+
+#endif // CMIDSOUNDEVENT_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/nokiasound_akn/inc/CMIDSoundImpl.h	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,93 @@
+/*
+* 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:  Interface and a base class for CMIDClip and CMIDTone.
+*
+*/
+
+
+
+#ifndef CMIDSOUNDIMPL_H
+#define CMIDSOUNDIMPL_H
+
+//  INCLUDES
+#include <e32base.h>
+
+// FORWARD DECLARATIONS
+class MMIDEventSender;
+
+
+//  CLASS DEFINITION
+/**
+ * This class is interface and a base class for CMIDClip and CMIDTone
+ *
+ */
+NONSHARABLE_CLASS(CMIDSoundImpl): public CBase
+{
+
+public:
+
+    enum TState
+    {
+        ENotReady,
+        EReadyToPlay,
+        EPlaying,
+        ENotSupported,
+        EInitialising
+    };
+
+public:
+
+    // destructor
+    ~CMIDSoundImpl();
+
+protected:
+
+    void ConstructL();
+
+    // C++ constructor
+    CMIDSoundImpl(MMIDEventSender* aEventSender);
+
+public:
+
+    void Resume();
+
+    virtual TInt Play(TInt aLoop) = 0;
+    virtual void Stop() = 0;
+    virtual void SetVolume(TInt aVolume) = 0;
+    virtual TInt Volume() = 0;
+    virtual void Release() = 0;
+
+    inline TInt State() const;
+
+protected:
+
+
+    TInt iState;
+
+    // true if playback has been started.
+    TBool iPlayed;
+
+    CActiveSchedulerWait* iSchedulerWait;
+
+    // events are sent through this interface
+    MMIDEventSender* iEventSender;
+
+};
+
+inline TInt CMIDSoundImpl::State() const
+{
+    return iState;
+};
+
+#endif // CMIDSOUNDIMPL_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/nokiasound_akn/inc/CMIDTone.h	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,74 @@
+/*
+* 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:  This class implements beep playing and OTA ringingtone playing.
+*
+*/
+
+
+#ifndef CMIDTONE_H
+#define CMIDTONE_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <mdaaudiotoneplayer.h>
+
+#include "CMIDSoundImpl.h"
+
+// FORWARD DECLARATIONS
+class MMIDEventSender;
+
+//  CLASS DEFINITION
+/**
+ *  This class implements beep playing and OTA ringingtone playing.
+ *
+ */
+NONSHARABLE_CLASS(CMIDTone): public CMIDSoundImpl, public MMdaAudioToneObserver
+{
+public:
+
+    static CMIDTone* NewL(TInt aFreq, TInt64 aDuration,
+    MMIDEventSender* aEventSender);
+    static CMIDTone* NewL(const TDesC8& aData, MMIDEventSender* aEventSender);
+    //   Destructor
+    ~CMIDTone();
+
+protected:
+
+    //   C++  constructor
+    CMIDTone(MMIDEventSender* aEventSender);
+    //   Second phase
+    void ConstructL(TInt aFreq, TInt64 aDuration);
+    void ConstructL(const TDesC8& aData);
+
+public:
+
+    virtual TInt Play(TInt aLoop);
+    virtual void Stop();
+    virtual void SetVolume(TInt aVolume);
+    virtual TInt Volume();
+    virtual void Release();
+
+public: // from MMdaAudioToneObserver
+
+    void MatoPrepareComplete(TInt aError);
+    void MatoPlayComplete(TInt aError);
+
+private:
+
+    TInt iFreq;
+    TInt64 iDuration;
+    CMdaAudioToneUtility* iMdaAudioToneUtility;
+};
+
+#endif // CMIDTONE_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/nokiasound_akn/inc/MMIDEventSender.h	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,63 @@
+/*
+* Copyright (c) 2005 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:  SoundImpl instances can send events through this interface
+*
+*/
+
+
+
+#ifndef MMIDEVENTSENDER_H
+#define MMIDEVENTSENDER_H
+
+/**
+*  SoundImpl instances cand send events through this interface.
+*  This interface has only one method, SendEvent(), which can be used
+*  for sending all types of sound events.
+*
+*  @since 3.0
+*/
+NONSHARABLE_CLASS(MMIDEventSender)
+{
+
+public: // New functions
+
+    /**
+    * Sends event to Java SoundListener.
+    * @since 3.0
+    * @param aEventType Type of the event to send
+    */
+    virtual void SendEvent(TInt aEventType) = 0;
+
+protected:
+
+    /**
+    * C++ default constructor.
+    */
+    MMIDEventSender() { }
+
+private:
+
+    // Prohibit copy constructor if not deriving from CBase.
+    MMIDEventSender(const MMIDEventSender&) { }
+    // Prohibit assigment operator if not deriving from CBase.
+    MMIDEventSender& operator=(const MMIDEventSender&)
+    {
+        return *this;
+    }
+
+};
+
+#endif // MMIDEVENTSENDER_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/nokiasound_akn/javasrc/com/nokia/mid/sound/Sound.java	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,698 @@
+/*
+* 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:  Provides Sound API for playing tones and digitized audio.
+*
+*/
+
+
+package com.nokia.mid.sound;
+
+import com.nokia.mj.impl.rt.support.Finalizer;
+import java.util.Vector;
+import com.nokia.mj.impl.utils.Logger;
+import java.lang.Thread;
+
+/**
+ * <p>
+ * Provides simple Sound API for playing tones and digitized audio.
+ * </p><p>
+ * Since MIDP doesn't have any Sound API for games there is a need
+ * for proprietary sound extension to support devices audio
+ * capabilities. Every implementation has capability to produce tone
+ * sounds (e.g. ringing tones), this is the minimum support. Currently
+ * some products support or will support also digitized audio formats.
+ * The Game sound API will support both buzzer and digitized audio.
+ * Buzzer must be supported by all implementations. If implementation
+ * doesn't have buzzer the buzzer tones are emulated.
+ * </p>
+ * Since implementations have different audio capabilities,
+ * application can query which audio formats are supported by
+ * implementation by calling {@link #getSupportedFormats()}.
+ * <p>
+ * All implementations need to support at least tone based sounds
+ * (type FORMAT_TONE) via {@link #Sound(int freq, long duration)} and
+ * {@link #init(int freq, long duration)}. In addition all implementations
+ * must support Smart messaging ringingtone format (type FORMAT_TONE)
+ * via {@link #Sound(byte[] data, int type)} and
+ * {@link #init(byte[] data, int type) }.
+ * <p>
+ * Note that there is also work going on with Multimedia API that
+ * is done in JCP as
+ * <a href="http://www.jcp.org/jsr/detail/135.jsp">JSR 135</a>.
+ * The standard Multimedia API
+ * will replace the proprietary Game Sound API when it is ready. However
+ * Sound API will be supported also later on but probably it will be
+ * stated as deprecated.
+ * </p>
+ * @version 1.1
+ * @see com.nokia.mid.ui.DeviceControl
+ * @since 1.0
+ */
+
+public class Sound
+{
+
+    /**
+     * Tone based format is used.
+     *
+     * init(int freq, int duration) puts sound into this format.
+     * @since 1.0
+     *
+     */
+    public static final int FORMAT_TONE = 1;
+
+    /**
+     * Content is in WAV format.
+     * @since 1.0
+     *
+     */
+    public static final int FORMAT_WAV = 5;
+
+    /**
+     * Sound is playing.
+     * @since 1.0
+     *
+     */
+    public static final int SOUND_PLAYING = 0;
+
+    /**
+     * Sound is stopped.
+     * @since 1.0
+     *
+     */
+    public static final int SOUND_STOPPED = 1;
+
+    /**
+     * Sound is uninitialized (released).
+     * @since 1.0
+     */
+    public static final int SOUND_UNINITIALIZED = 3;
+
+    /**
+     * Sound is reinitialising
+     */
+    private static final int SOUND_REINITIALISING = 4;
+
+    private static final int FORMAT_BEEP = 2;
+    private static final int NOT_SUPPORTED_ERROR = 3;
+
+    private static final int ERR_NOT_READY = -18;
+    private static final int ERR_ARGUMENT  = -6;
+
+    private int iHandle;
+
+    private Finalizer iFinalizer;
+    private int iCurrentType;
+    private int iState;
+    private int iGain = -1;
+
+    Vector iSoundListeners = new Vector();
+
+    private static Sound iPlayingSound;
+
+    static
+    {
+        com.nokia.mj.impl.rt.support.Jvm.loadSystemLibrary("javanokiasound");
+    }
+
+    /**
+     * Constructors initialize the Sound object so that it is ready for
+     * playback. This constructor is used for initializing Sound
+     * object based on byte array data. The data should contain the data
+     * presented in the data format specified by type parameter. The Sound
+     * class defines also generally supported types as constants.
+     * <p>
+     * All implementations need to support at least Nokia
+     * Smart Messaging, Over the Air (OTA) ringingtone format.
+     * The type of this format is FORMAT_TONE.
+     * <p>
+     * Note: some implementations can't throw exceptions about
+     * sound data being corrupted or illegal during construction.
+     * This will result that IllagalArgumentException is delayed until
+     * play(int loop) method is called. Applications thus need to except
+     * that IllegalArgumentException is thrown in this method or during
+     * play method call.
+     * <p>
+     * @throws java.lang.IllegalArgumentException if the data can not be
+     recognized to
+     * given type or the type is unsupported or unknown
+     * @throws java.lang.NullPointerException if the data is null
+     * @since 1.0
+     *
+     */
+    public Sound(byte[] data, int type)
+    {
+        Logger.LOG(Logger.EJavaUI, Logger.EInfo, "Sound Constructor");
+        iFinalizer = registerForFinalization();
+
+        iHandle = _create();
+
+        iState = SOUND_UNINITIALIZED;
+
+        init(data, type);
+    }
+
+    /**
+     * Constructors initialize the Sound object so that it is ready for
+     * playback. Sound is initialized as a simple tone based sound.
+     * <p>
+     * See method {@link #init(int freq, long duration)} for
+     * freq value descriptions. See also a note on exceptions semantics in
+     * {@link #init(int freq, long duration)}.
+     *
+     * @param freq a frequency value
+     * @param duration the duration of the tone in milliseconds
+     * @throws java.lang.IllegalArgumentException if parameter values are
+     * illegal, freq is not in given range or duration is negative or zero
+     * @since 1.0
+     */
+    public Sound(int freq, long duration)
+    {
+
+        iFinalizer = registerForFinalization();
+        iHandle = _create();
+
+        iState = SOUND_UNINITIALIZED;
+
+        init(freq, duration);
+    }
+
+    /**
+      * Called when this object is finalized, frees native resources
+      */
+
+    public Finalizer registerForFinalization()
+    {
+
+        return new Finalizer()
+        {
+            public void finalizeImpl()
+            {
+                doFinalize();
+            }
+        };
+    }
+
+    void doFinalize()
+    {
+
+        if (iFinalizer == null)
+        {
+            return;
+        }
+        iFinalizer = null;
+
+        if (iHandle > 0)
+        {
+            _dispose(iHandle);
+        }
+    }
+
+    /**
+     * Releases audio resources reserved by this object. After object
+     * is released it goes to uninitialized state. This method should
+     * be called when Sound object is not needed anymore.
+     * @since 1.0
+     */
+    public void release()
+    {
+        if ((iState != SOUND_UNINITIALIZED) &&
+                (iState != SOUND_REINITIALISING))
+        {
+            iState = SOUND_REINITIALISING;
+            soundStateChanged(SOUND_UNINITIALIZED);
+        }
+
+        _release(iHandle);
+
+        iState = SOUND_UNINITIALIZED;
+
+    }
+
+    /**
+     * Initializes Sound to play a simple beep.
+     * <p>
+     * Note: some implementations may not support the full frequency
+     * scale defined in table below. They will throw
+     * IllegalArgumentException instead for unsupported values. The
+     * exception may also be delayed
+     * until the play(int loop) method is called.
+     * <p>
+     * Following table describes some freq argument
+     * values:
+     * <pre>
+     * Description            Frequency
+     * Freq off               0
+     * Ring freq A0           220
+     * Ring freq B0b          233
+     * Ring freq B0           247
+     * Ring freq C0           262
+     * Ring freq D0b          277
+     * Ring freq D0           294
+     * Ring freq E0b          311
+     * Ring freq E0           330
+     * Ring freq F0           349
+     * Ring freq G0b          370
+     * Ring freq G0           392
+     * Ring freq A1b          416
+     * Ring freq A1           440
+     * Ring freq B1b          466
+     * Ring freq B1           494
+     * Ring freq C1           523
+     * Ring freq D1b          554
+     * Ring freq D1           587
+     * Ring freq E1b          622
+     * Ring freq E1           659
+     * Ring freq F1           698
+     * Ring freq G1b          740
+     * Ring freq G1           784
+     * Ring freq A2b          831
+     * Ring freq A2           880
+     * Ring freq B2b          932
+     * Ring freq B2           988
+     * Ring freq C2           1047
+     * Ring freq D2b          1109
+     * Ring freq D2           1175
+     * Ring freq E2b          1245
+     * Ring freq E2           1319
+     * Ring freq F2           1397
+     * Ring freq G2b          1480
+     * Ring freq G2           1568
+     * Ring freq A3b          1661
+     * Ring freq A3           1760
+     * Ring freq B3b          1865
+     * Ring freq B3           1976
+     * Ring freq C3           2093
+     * Ring freq D3b          2217
+     * Ring freq D3           2349
+     * Ring freq E3b          2489
+     * Ring freq E3           2637
+     * Ring freq F3           2794
+     * Ring freq G3b          2960
+     * Ring freq G3           3136
+     * Ring freq A4b          3322
+     * Ring freq A4           3520
+     * Ring freq B4b          3729
+     * Ring freq B4           3951
+     * Ring freq C4           4186
+     * Ring freq D4b          4434
+     * Ring freq D4           4698
+     * Ring freq E4b          4978
+     * Ring freq E4           5274
+     * Ring freq F4           5588
+     * Ring freq G4b          5920
+     * Ring freq G4           6272
+     * Ring freq A5b          6644
+     * Ring freq A5           7040
+     * Ring freq B5b          7458
+     * Ring freq B5           7902
+     * Ring freq C5           8372
+     * Ring freq D5b          8870
+     * Ring freq D5           9396
+     * Ring freq E5b          9956
+     * Ring freq E5           10548
+     * Ring freq F5           11176
+     * Ring freq G5b          11840
+     * Ring freq G5           12544
+     * Ring freq A6b          13288
+     *
+     * </pre>
+     *
+     * @param duration length of the beep in milliseconds
+     * @param freq frequency to be played
+     * @throws java.lang.IllegalArgumentException if parameter values are
+     * illegal, freq is not in given range or duration is negative or zero
+     * @since 1.0
+     */
+    public void init(int freq, long duration)
+    {
+        if (duration < 1 || duration > 10000000)
+        {
+            throw(new IllegalArgumentException(
+                      "Bad duration value, must be 1-10000000"));
+        }
+        if (freq < 0 || freq > 15000)
+        {
+            throw(new IllegalArgumentException(
+                      "Bad frequency value, must be 0-15000"));
+        }
+        // if the uninitialised event is sent from native side, it reaches
+        // listener too late in TCK test sound8004, thus we send the event
+        // already here
+        if ((iState != SOUND_UNINITIALIZED) &&
+                (iState != SOUND_REINITIALISING))
+        {
+            iState = SOUND_REINITIALISING;
+            soundStateChanged(SOUND_UNINITIALIZED);
+        } // end of if (iState != SOUND_UNINITIALIZED)
+
+        iCurrentType = FORMAT_BEEP;
+        int err = _init(iHandle, iCurrentType, null, freq, duration);
+        if (err == ERR_NOT_READY)
+        {
+            throw new RuntimeException(Integer.toString(err));
+        }
+        else if (err == ERR_ARGUMENT)
+        {
+            throw new IllegalArgumentException("Data is invalid");            
+        }
+        iState = SOUND_STOPPED;
+    }
+
+    /**
+     * Initializes Sound object based on byte
+     * array data. The data should contain the data presented in the data
+     * format specified by type parameter. The Sound class defines also
+     * generally supported types as constants.
+     * <p>
+     * All implementations need to support at least Nokia
+     * Smart Messaging, Over the Air (OTA) ringingtone format.
+     * The type of this format is FORMAT_TONE.
+     * <p>
+     * Note: some implementations can't throw exceptions about
+     * sound data being corrupted or illegal during this method call.
+     * This will result that IllagalArgumentException is delayed until
+     * play(int loop) method is called. Applications thus need to except
+     * that IllegalArgumentException is thrown in this method or during
+     * play method call.
+     * <p>
+     * @param data a byte array containing the data to be played
+     * @param type type of the audio
+     * @throws java.lang.IllegalArgumentException if the data can not be
+     recognized to
+     * given type or the type is unsupported or unknown
+     * @throws java.lang.NullPointerException if the data is null
+     * @since 1.0
+     */
+    public void init(byte[] data, int type)
+    {
+        if (!(type == FORMAT_WAV || type == FORMAT_TONE))
+        {
+            throw(new IllegalArgumentException("Type is not supported"));
+        }
+        if (data == null)
+        {
+            throw(new NullPointerException("Data is null"));
+        }
+
+        if ((iState != SOUND_UNINITIALIZED) &&
+                (iState != SOUND_REINITIALISING))
+        {
+            iState = SOUND_REINITIALISING;
+            soundStateChanged(SOUND_UNINITIALIZED);
+        } // end of if (iState != SOUND_UNINITIALIZED)
+
+        iCurrentType = type;
+        int err = _init(iHandle, iCurrentType, data, 0, 0);
+        if (err == ERR_NOT_READY || err == ERR_ARGUMENT )
+        {
+            throw new IllegalArgumentException("Data is invalid");
+        }
+
+        iState = SOUND_STOPPED;
+    }
+
+
+    /**
+     * Get the current state of the Sound object.
+     *
+     * @return current state, SOUND_PLAYING, SOUND_STOPPED or
+     SOUND_UNINITIALIZED
+     * @since 1.0
+     *
+     */
+    public int getState()
+    {
+        if (iState == SOUND_REINITIALISING)
+        {
+            return SOUND_UNINITIALIZED;
+        }
+
+        iState = _getState(iHandle);
+        switch (iState)
+        {
+        case(0):  // ENotReady
+        case(4):  // EInitialising
+            iState = SOUND_UNINITIALIZED;
+            break;
+        case(1):  // EReadyToPlay
+            iState = SOUND_STOPPED;
+            break;
+        case(2):  // EPlaying
+            iState = SOUND_PLAYING;
+            break;
+        default:
+        }
+        return iState;
+    }
+
+    /**
+     * This method is used for starting the playback from the beginning of a
+     * sound object. The loop parameter defined the loop count for playback.
+     * Argument zero (0) means continuos looping. For uninitialized sound the
+     * play method doesn't do anything and silently returns. For stopped and
+     * playing sounds the playback starts from beginning of the sound with new
+     * looping information.
+     * <p>
+     * This method will throw IllegalStateException if playback cannot be
+     * started since all channels are in use, or playback is not possible
+     * because there is more higher priority system sounds being played.
+     * <p>
+     * If Sound playback is possible this method will return immediately and
+     * thus will not block the calling thread during the playback. If any error
+     * that prevents the playback is encountered during the playback, the
+     * playback is silently stopped as if called to the stop method.
+     *
+     * @param number number of times audio is played. Value 0 plays audio in
+     * continous loop.
+     * @throws java.lang.IllegalStateException if the sound object cannot be
+     * played because all the channels are already in use.
+     * @throws java.lang.IllegalArgumentException if the loop value is negative,
+     * or if sound values/date is illegal or corrupted.
+     * @since 1.0
+     *
+     */
+    public void play(int loop) throws IllegalArgumentException
+    {
+        if (loop < 0)
+        {
+            throw(new IllegalArgumentException("Negative loop value"));
+        }
+        if (iState == SOUND_REINITIALISING)
+        {
+            return;
+        } // end of if (iState == SOUND_REINITIALISING)
+
+        if (iPlayingSound != null)
+        {
+            if (iPlayingSound.getState() == SOUND_PLAYING)
+            {
+                iPlayingSound.stop();
+            }
+        } // end of if (iPlayingSound != null)
+
+        int error = _play(iHandle, loop);
+        if ((error == NOT_SUPPORTED_ERROR))
+        {
+            throw(new IllegalArgumentException("Sound is not supported"));
+        }
+        iPlayingSound = this;
+    }
+
+    /**
+     *  The method will stop the sound playback, storing the current position.
+     *  For sound that has never been started (may be uninitialized), or is
+     *  currently being stopped the method call doesn't do anything and returns
+     *  silently.
+     *
+     *  Note that for tone based sounds it is not possible to resume from
+     *  position the sound was stopped at, to be specific, stop will reset
+     *  the position to the beginning of the sound.
+     *  @since 1.0
+     */
+    public void stop()
+    {
+        if (iState == SOUND_REINITIALISING)
+        {
+            return;
+        } // end of if (iState == SOUND_REINITIALISING)
+        _stop(iHandle);
+    }
+
+    /**
+     *  The method will continue the stopped sound object from the position it
+     *  was stopped to. For sound that has never been started (may be
+     *  uninitialized), or is currently being played the method call doesn't
+     *  do anything.
+     *  <p>
+     *  Note: For tone based sounds the resume starts the sound from the
+     *  beginning of the sound clip.
+     *  @since 1.0
+     *
+     */
+    public void resume()
+    {
+        if (iState == SOUND_REINITIALISING)
+        {
+            return;
+        } // end of if (iState == SOUND_REINITIALISING)
+        _resume(iHandle);
+    }
+
+    /**
+     * Sets the gain for the sound object. The gain is a value between
+     * 0 and 255. Implementation scales the gain value to the limits it
+     * supports. Notice that any gain value > 0 should result a gain
+     * value > 0. If the gain is smaller than this minimum value then
+     * gain is set to 0, if the gain greater than this maximum value
+     * then the gain is set to maximum value (255).
+     *
+     * @param gain gain value: 0 - 255
+     * @throws java.lang.IllegalArgumentException if the gain not 0 - 255
+     * @since 1.0
+     */
+    public void setGain(int gain)
+    {
+        if (iState == SOUND_REINITIALISING)
+        {
+            return;
+        } // end of if (iState == SOUND_REINITIALISING)
+        if (gain < 0)
+        {
+            gain = 0;
+        }
+        else if (gain > 255)
+        {
+            gain = 255;
+        }
+        iGain = gain;
+        _setVolume(iHandle, iGain);
+    }
+
+    /**
+     * Get the gain (or volume) of Sound object. The gain is a value
+     * between 0 and 255. System returns a scaled value based on the
+     * limits it supports. Notice that any system gain value > 0 should
+     * return a gain value > 0.
+     *
+     * @return gain value 0 - 255
+     * @since 1.0
+     *
+     */
+    public int getGain()
+    {
+        if (iGain == -1)
+        {
+            return _volume(iHandle);
+        }
+        // we have previously set gain
+        return iGain;
+    }
+
+    /**
+     * Returns number of concurrent sounds the device can play for
+     * specific audio type. Returns 1 if only one sound can be played
+     * at a time. Notice that most types use same channel resources.
+     * @return total number of available channels.
+     * @param type the media type
+     * @throws java.lang.IllegalArgumentException if the type is unsupported
+     * or unknown
+     * @since 1.0
+     */
+    public static int getConcurrentSoundCount(int type)
+    {
+        if ((type != FORMAT_TONE) && (type != FORMAT_WAV))
+        {
+            throw(new IllegalArgumentException("Type is not supported"));
+        }
+
+        return 1;
+    }
+
+    /**
+     *  Returns the supported audio formats as an int array.
+     *
+     *  @return an array containing supported audio formats as
+     *  int values (e.g. FORMAT_TONE, FORMAT_WAV),
+     *  or an empty array if no audio formats are supported.
+     *  @since 1.0
+     */
+    static public int[] getSupportedFormats()
+    {
+        return(new int[] { FORMAT_TONE, FORMAT_WAV });
+    }
+
+    /**
+     *  Registeres a listener for playback state notifications.
+     *  @see com.nokia.mid.sound.SoundListener
+     *  @param listener a listener that is notified when state
+     *  changes occur or null if listener is to be
+     *  removed.
+     *  @since 1.0
+     *
+     */
+    public void setSoundListener(SoundListener listener)
+    {
+        iSoundListeners.addElement(listener);
+    }
+
+    /**
+     * Callback method when sound state changes
+     *
+     */
+    public void soundStateChanged(final int event)
+    {
+        /*
+        for(int i = 0; i < iSoundListeners.size(); i++)
+        {
+          ((SoundListener)iSoundListeners.elementAt(i)).soundStateChanged(this, event);
+        }
+        */
+        //Notify SoundState Listeners in a separate thread, so that application doesn't
+        //block main thread
+        new Thread(new Runnable()
+        {
+            public void run()
+            {
+                notifySoundStateListeners(event);
+            }
+        }).start();
+    }
+
+    /**
+     * Notify Sound State Listeners
+     */
+    public synchronized void notifySoundStateListeners(int event)
+    {
+        for (int i = 0; i < iSoundListeners.size(); i++)
+        {
+            ((SoundListener)iSoundListeners.elementAt(i)).soundStateChanged(this, event);
+        }
+    }
+
+    private native void _dispose(int aHandle);
+    private native int _create();
+    private native int _init(int aHandle, int aType,
+                             byte[] aData,
+                             int aFrequency, long aDuration);
+    private native void _release(int aHandle);
+    private native int _play(int aHandle, int aLoop);
+    private native void _stop(int aHandle);
+    private native void _resume(int aHandle);
+    private native void _setVolume(int aHandle, int aVolume);
+    private native int _volume(int aHandle);
+    private native int _getState(int aHandle);
+
+} //End of Sound class
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/nokiasound_akn/javasrc/com/nokia/mid/sound/SoundListener.java	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,47 @@
+/*
+* 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:  Interface indicating changes in the playback state.
+*
+*/
+
+
+package com.nokia.mid.sound;
+
+/**
+ * <p>
+ * This interface is used by applications which need to receive events
+ * that indicate changes in the playback state of the Sound objects.
+ * </p>
+ * @see com.nokia.mid.sound.Sound
+ * @version 1.1
+ * @since 1.0
+ */
+
+public interface SoundListener
+{
+
+    /**
+     *  Called when playback state of an Sound has been changed.
+     *  Listener will be notified when playback has been started
+     *  or stopped.
+     *  @see com.nokia.mid.sound.Sound#setSoundListener(SoundListener listener)
+     *  @see com.nokia.mid.sound.Sound#SOUND_PLAYING
+     *  @see com.nokia.mid.sound.Sound#SOUND_STOPPED
+     *  @param sound the sound object this event relates to
+     *  @param event the sound changed event, SOUND_PLAYING or SOUND_STOPPED
+     *  @since 1.0
+     */
+    public abstract void soundStateChanged(Sound sound, int event);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/nokiasound_akn/src/CMIDSoundImpl.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,44 @@
+/*
+* 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:  Interface and a base class for CMIDClip and CMIDTone.
+*
+*/
+
+
+#include "CMIDSoundImpl.h"
+#include "CMIDSoundEvent.h"
+#include "com_nokia_mid_sound_Sound.h"
+
+CMIDSoundImpl::~CMIDSoundImpl()
+{
+
+}
+
+CMIDSoundImpl::CMIDSoundImpl(MMIDEventSender* aEventSender)
+{
+    iEventSender = aEventSender;
+}
+
+void CMIDSoundImpl::ConstructL()
+{
+
+}
+
+void CMIDSoundImpl::Resume()
+{
+    if (iPlayed && (iState == EReadyToPlay))
+    {
+        Play(1);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/nokiasound_akn/src/cmidclip.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,196 @@
+/*
+* 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:  This class implements wav playing.
+*
+*/
+
+
+#include <e32std.h>
+#include <AudioPreference.h>
+
+#include "com_nokia_mid_sound_Sound.h"
+#include "CMIDClip.h"
+#include "MMIDEventSender.h"
+
+namespace
+{
+const TInt KMIDMaxJavaVolume = 255;
+const TInt KMIDMinNativeVolume = 1;
+const TInt KMIDHeaderLength = 4;
+_LIT8(KMIDHeaderWAV, "RIFF");
+_LIT8(KMIDHeaderAMR, "#!AM");
+const TInt KMIDClipForever = 999999;
+const TInt KMIDMinDataSize = 4;
+}
+
+CMIDClip* CMIDClip::NewL(const TDesC8* aData, MMIDEventSender* aEventSender)
+{
+    CMIDClip* self = new(ELeave) CMIDClip(aEventSender);
+    CleanupStack::PushL(self);
+    self->ConstructL(aData);
+    CleanupStack::Pop(self);
+    return self;
+}
+
+CMIDClip::~CMIDClip()
+{
+    if (iMdaAudioPlayerUtility)
+    {
+        if (iState == EPlaying)
+        {
+            iMdaAudioPlayerUtility->Stop();
+        }
+    }
+    delete iMdaAudioPlayerUtility;
+    delete iClip;
+    delete iSchedulerWait;
+}
+
+CMIDClip::CMIDClip(MMIDEventSender* aEventSender)
+        : CMIDSoundImpl(aEventSender)
+{
+}
+
+void CMIDClip::ConstructL(const TDesC8* aData)
+{
+    CMIDSoundImpl::ConstructL();
+    iSchedulerWait = new(ELeave) CActiveSchedulerWait;
+
+    if (aData->Length() < KMIDMinDataSize)
+    {
+        iState = ENotSupported;
+        User::Leave(KErrArgument);
+    }
+
+    TPtrC8 header = aData->Left(KMIDHeaderLength);
+
+    if ((header != KMIDHeaderWAV()) && (header != KMIDHeaderAMR))
+    {
+        iState = ENotSupported;
+        User::Leave(KErrArgument);
+    }
+
+    iState = EInitialising;
+    iClip = aData->AllocL();
+    iMdaAudioPlayerUtility =
+        CMdaAudioPlayerUtility::
+        NewDesPlayerReadOnlyL(*iClip, *this,
+                              KAudioPriorityRecording);
+    iMdaAudioPlayerUtility->UseSharedHeap();
+    iSchedulerWait->Start();
+}
+
+TInt CMIDClip::Play(TInt aLoop)
+{
+    __ASSERT_DEBUG(iState == EReadyToPlay, User::Invariant());
+
+    if (aLoop == 0)
+    {
+        // There is no known working method to play clip forever, so we play
+        // it for a long time instead.
+        aLoop = KMIDClipForever;
+    }
+
+    --aLoop;
+
+    // Setting repeats to 1 causes sound played twice
+    if (aLoop > 0)
+    {
+        iMdaAudioPlayerUtility->SetRepeats(aLoop, TTimeIntervalMicroSeconds(0));
+    }
+
+    iEventSender->SendEvent(com_nokia_mid_sound_Sound_SOUND_PLAYING);
+
+    iMdaAudioPlayerUtility->Play();
+    iState = EPlaying;
+    iPlayed = ETrue;
+    return KErrNone;
+}
+
+void CMIDClip::Stop()
+{
+    if (iState == EPlaying)
+    {
+        iEventSender->SendEvent(com_nokia_mid_sound_Sound_SOUND_STOPPED);
+        iMdaAudioPlayerUtility->Stop();
+        iState = EReadyToPlay;
+    }
+}
+
+void CMIDClip::SetVolume(TInt aVolume)
+{
+    iVolume = aVolume;
+    TInt volume = 0;
+    if (aVolume)
+    {
+        volume = (((iMdaAudioPlayerUtility->MaxVolume()
+                    - KMIDMinNativeVolume + 1)
+                   * aVolume)
+                  / (KMIDMaxJavaVolume + 1)) + KMIDMinNativeVolume;
+    }
+    iMdaAudioPlayerUtility->SetVolume(volume);
+}
+
+TInt CMIDClip::Volume()
+{
+    return iVolume;
+}
+
+void CMIDClip::MapcInitComplete(TInt aError, const TTimeIntervalMicroSeconds& /*aDuration*/)
+{
+    if (aError == KErrNone)
+    {
+        //Setting iVolume to max because
+        //CMdaAudioPlayerUtility doesn't have Volume()
+        iVolume = KMIDMaxJavaVolume;
+        iState = EReadyToPlay;
+    }
+    else
+    {
+        if (aError == KErrNotSupported)
+        {
+            iState = ENotSupported;
+        }
+        else
+        {
+            iState = ENotReady;
+        }
+    }
+    iSchedulerWait->AsyncStop();
+}
+
+void CMIDClip::MapcPlayComplete(TInt /*aError*/)
+{
+    iEventSender->SendEvent(com_nokia_mid_sound_Sound_SOUND_STOPPED);
+    iState = EReadyToPlay;
+}
+
+void CMIDClip::Release()
+{
+    if (iMdaAudioPlayerUtility)
+    {
+        if (iState == EPlaying)
+        {
+            iMdaAudioPlayerUtility->Stop();
+        }
+    }
+    delete iMdaAudioPlayerUtility;
+    iMdaAudioPlayerUtility = NULL;
+    delete iClip;
+    iClip = NULL;
+    iState = ENotReady;
+}
+
+//End of File
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/nokiasound_akn/src/cmidsound.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,309 @@
+/*
+* 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:  Wrapper for CMIDClip and CMIDTone class initialisations.
+*
+*/
+
+
+#include <e32std.h>
+#include <centralrepository.h>
+#include <ProfileEngineSDKCRKeys.h>
+
+#include "CMIDSound.h"
+#include "CMIDTone.h"
+#include "CMIDClip.h"
+#include "logger.h"
+#include "fs_methodcall.h"
+#include "com_nokia_mid_sound_Sound.h"
+
+
+CMIDSound* CMIDSound::NewL(JNIEnv& aJni, jobject aPeer)
+{
+    JELOG2(EJavaUI);
+
+    CMIDSound* self = new CMIDSound();
+    if (self != NULL)
+    {
+        self->attachToVm(aJni, aPeer);
+    }
+    return self;
+}
+
+CMIDSound::~CMIDSound()
+{
+    delete iMIDSound;
+
+    // CENREP
+    if (iProfileListener)
+    {
+        iProfileListener->StopListening();
+        delete iProfileListener;
+    }
+    delete iRepository;
+}
+
+void CMIDSound::HandleNotifyInt(TUint32 aId, TInt aNewValue)
+{
+    JELOG2(EJavaUI);
+    if (aId == KProEngActiveWarningTones)
+    {
+        if (iMIDSound)
+        {
+            iMIDSound->SetVolume(aNewValue == 0 ? 0 : iRealVolume);
+        }
+    }
+}
+
+void CMIDSound::SendEvent(TInt aEventType)
+{
+    /**
+     *Callback to Java
+     */
+    JELOG2(EJavaUI);
+
+    jclass javaPeerClass = mJniEnv->FindClass("com/nokia/mid/sound/Sound");
+
+    jmethodID soundStateChangeCallback = mJniEnv->GetMethodID(
+                                             javaPeerClass /*mJavaPeerClass */, "soundStateChanged", "(I)V");
+
+
+    mJniEnv->CallVoidMethod(mJavaPeerObject, soundStateChangeCallback,
+                            aEventType);
+}
+
+CMIDSound::CMIDSound()
+        : java::util::FunctionServer("CMIDSoundFunctionServer"),
+        iMIDSound(0)
+{
+    JELOG2(EJavaUI);
+    createServerToNewThread();
+}
+
+int CMIDSound::InitProfileListener()
+{
+    TRAPD(err, CallMethodL(this, &CMIDSound::InitProfileListenerL, this));
+    return err;
+}
+
+void CMIDSound::InitProfileListenerL()
+{
+    JELOG2(EJavaUI);
+    // repository for profile
+    iRepository = CRepository::NewL(KCRUidProfileEngine);
+
+    // get notifies about changes in KProEngActiveWarningTones
+    iProfileListener = CCenRepNotifyHandler::NewL(*this,
+                       *iRepository,
+                       CCenRepNotifyHandler::EIntKey,
+                       KProEngActiveWarningTones);
+
+    // Changes will be informed to HandleNotifyInt
+    iProfileListener->StartListeningL();
+}
+
+TBool CMIDSound::IsAudioEnabled(/*CMIDSound* aSelf*/)
+{
+    JELOG2(EJavaUI);
+    TInt isProfileOn = 0;
+    TInt error = iRepository->Get(KProEngActiveWarningTones, isProfileOn);
+    TBool retVal = EFalse;
+
+    // If getting profile status fails do not play any tones.
+    if ((isProfileOn == 1) &&
+            (error == KErrNone))
+    {
+        retVal = ETrue;
+    }
+    return retVal;
+}
+
+void CMIDSound::SetBeep(TInt aFreq, TInt64 aDuration)
+{
+    JELOG2(EJavaUI);
+    iFreq = aFreq;
+    iDur = aDuration;
+}
+
+TInt CMIDSound::Init(TInt aType, const TDesC8* aData)
+{
+    JELOG2(EJavaUI);
+    TRAPD(err, CallMethodL(this, &CMIDSound::InitL, aType, aData, this));
+    return err;
+}
+
+void CMIDSound::InitL(TInt aType, const TDesC8* aData)
+{
+    JELOG2(EJavaUI);
+
+    if (iMIDSound)
+    {
+        if (iMIDSound->State() == CMIDSoundImpl::EInitialising)
+        {
+            return;
+        }
+        if (iMIDSound->State() == CMIDSoundImpl::EReadyToPlay ||
+                iMIDSound->State() == CMIDSoundImpl::EPlaying)
+        {
+            iMIDSound->Release();
+        }
+    }
+
+    CMIDSoundImpl* soundImpl = NULL;
+    switch (aType)
+    {
+    case com_nokia_mid_sound_Sound_FORMAT_TONE: //Tone
+    {
+        soundImpl = CMIDTone::NewL(*aData, this);
+        break;
+    }
+    case com_nokia_mid_sound_Sound_FORMAT_BEEP: //Beep
+    {
+        soundImpl = CMIDTone::NewL(iFreq, iDur, this);
+        break;
+    }
+    case com_nokia_mid_sound_Sound_FORMAT_WAV:  //Wav
+    {
+        soundImpl = CMIDClip::NewL(aData, this);
+        break;
+    }
+    default:
+    {
+        break;
+    }
+    }
+    if (soundImpl->State() != CMIDSoundImpl::EReadyToPlay)
+    {
+        TInt state = soundImpl->State();
+        delete soundImpl;
+        User::Leave(KErrNotReady);
+    }
+    iRealVolume = soundImpl->Volume();
+
+    delete iMIDSound;
+    iMIDSound = soundImpl;
+}
+
+TInt CMIDSound::Play(TInt aLoop)
+{
+    JELOG2(EJavaUI);
+    TInt err = 0;
+    CallMethod(err, this, &CMIDSound::DoPlay, aLoop, this);
+    return err;
+}
+
+TInt CMIDSound::DoPlay(TInt aLoop)
+{
+    JELOG2(EJavaUI);
+    
+    if ( iMIDSound )
+    {
+        TInt state = iMIDSound->State();
+        if (state != CMIDSoundImpl::EReadyToPlay)
+        {
+            return state;
+    	}
+    }
+    else
+    {
+        return CMIDSoundImpl::ENotSupported;
+    }
+    if (!IsAudioEnabled())
+    {
+        iMIDSound->SetVolume(0);
+    }
+    return iMIDSound->Play(aLoop);
+}
+
+void CMIDSound::Resume()
+{
+    JELOG2(EJavaUI);
+    CallMethod(this, &CMIDSound::DoResume, this);
+}
+
+void CMIDSound::DoResume()
+{
+    JELOG2(EJavaUI);
+    iMIDSound->Resume();
+}
+
+void CMIDSound::Stop()
+{
+    JELOG2(EJavaUI);
+    CallMethod(this, &CMIDSound::DoStop, this);
+}
+
+void CMIDSound::DoStop()
+{
+    JELOG2(EJavaUI);
+    iMIDSound->Stop();
+}
+
+TInt CMIDSound::SoundVolume()
+{
+    JELOG2(EJavaUI);
+    TInt result = 0;
+    CallMethod(result, this, &CMIDSound::Volume, this);
+    return result;
+}
+
+TInt CMIDSound::Volume()
+{
+    JELOG2(EJavaUI);
+    return iMIDSound->Volume();
+}
+
+void CMIDSound::SetVolume(TInt aVolume)
+{
+    JELOG2(EJavaUI);
+    CallMethod(this, &CMIDSound::DoSetVolume, aVolume, this);
+}
+
+void CMIDSound::DoSetVolume(TInt aVolume)
+{
+    JELOG2(EJavaUI);
+    iRealVolume = aVolume;
+    TInt currentState = iMIDSound->State();
+    if ((currentState == CMIDSoundImpl::EReadyToPlay) ||
+            (currentState == CMIDSoundImpl::EPlaying))
+    {
+        iMIDSound->SetVolume(IsAudioEnabled() ? aVolume : 0);
+    }
+}
+
+
+TInt CMIDSound::PlayerState()
+{
+    JELOG2(EJavaUI);
+    TInt result = 0;
+    CallMethod(result, this, &CMIDSound::State, this);
+    return result;
+}
+
+TInt CMIDSound::State()
+{
+    JELOG2(EJavaUI);
+    return iMIDSound->State();
+}
+
+void CMIDSound::Release()
+{
+    JELOG2(EJavaUI);
+    CallMethod(this, &CMIDSound::DoRelease, this);
+}
+
+void CMIDSound::DoRelease()
+{
+    JELOG2(EJavaUI);
+    iMIDSound->Release();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/nokiasound_akn/src/cmidtone.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,244 @@
+/*
+* 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:  This class implements beep playing and OTA ringingtone playing.
+*
+*/
+
+
+#include <e32std.h>
+#include <e32svr.h>
+
+#include "com_nokia_mid_sound_Sound.h"
+#include "CMIDTone.h"
+#include "MMIDEventSender.h"
+
+namespace
+{
+const TInt KMIDMaxJavaVolume = 255;
+const TInt KMIDMinNativeVolume = 1;
+const TInt KMIDStopSleepTime = 10000;
+const TInt KMIDMicrosInMilli = 1000;
+const TInt KMIDMinDataLength = 4;
+const TInt KMIDLoopForever = 999999;
+}
+
+CMIDTone* CMIDTone::NewL(TInt aFreq, TInt64 aDuration,
+                         MMIDEventSender* aEventSender)
+{
+    CMIDTone* self = new(ELeave) CMIDTone(aEventSender);
+    CleanupStack::PushL(self);
+    self->ConstructL(aFreq, aDuration);
+    CleanupStack::Pop(self);
+    return self;
+}
+
+CMIDTone* CMIDTone::NewL(const TDesC8& aData, MMIDEventSender* aEventSender)
+{
+    CMIDTone* self = new(ELeave) CMIDTone(aEventSender);
+    CleanupStack::PushL(self);
+    self->ConstructL(aData);
+    CleanupStack::Pop(self);
+    return self;
+}
+
+
+CMIDTone::~CMIDTone()
+{
+    if (iMdaAudioToneUtility)
+    {
+        if (iMdaAudioToneUtility->State() == EMdaAudioToneUtilityNotReady)
+        {
+            iMdaAudioToneUtility->CancelPrepare();
+        }
+        else if (iMdaAudioToneUtility->State()
+                 == EMdaAudioToneUtilityPlaying)
+        {
+            iMdaAudioToneUtility->CancelPlay();
+        }
+    }
+    delete iMdaAudioToneUtility;
+    delete iSchedulerWait;
+}
+
+CMIDTone::CMIDTone(MMIDEventSender* aEventSender)
+        : CMIDSoundImpl(aEventSender)
+{
+}
+
+void CMIDTone::ConstructL(TInt aFreq, TInt64 aDuration)
+{
+    CMIDSoundImpl::ConstructL();
+    iSchedulerWait = new(ELeave) CActiveSchedulerWait;
+    iFreq = aFreq;
+    iDuration = aDuration;
+    iState = EInitialising;
+    iMdaAudioToneUtility = CMdaAudioToneUtility::NewL(*this);
+    iMdaAudioToneUtility->PrepareToPlayTone(iFreq,
+                                            TTimeIntervalMicroSeconds(iDuration * KMIDMicrosInMilli));
+    iSchedulerWait->Start();
+}
+
+void CMIDTone::ConstructL(const TDesC8& aData)
+{
+    CMIDSoundImpl::ConstructL();
+    iSchedulerWait = new(ELeave) CActiveSchedulerWait;
+    // first byte is the number of command parts
+    iFreq = 0;
+    iDuration = 0;
+    iState = EInitialising;
+
+    if (aData.Length() < KMIDMinDataLength)
+    {
+        iState = ENotSupported;
+        User::Leave(KErrArgument);
+    }
+
+    if (aData[0x000] == 0x02 && aData[0x001] == 0x4a && aData[0x002] == 0x3a)
+    {
+        iState = EInitialising;
+    }
+    else if (aData[0x000] == 0x03 && aData[0x001] == 0x4a && aData[0x002] ==
+             0x44 && aData[0x003] == 0x3a)
+    {
+        iState = EInitialising;
+    }
+    else if (aData[0] == 0x00 && aData[1] == 0x11)
+    {
+        iState = EInitialising;
+    }
+    else
+    {
+        iState = ENotSupported;
+        User::Leave(KErrArgument);
+    }
+    iMdaAudioToneUtility = CMdaAudioToneUtility::NewL(*this);
+    iMdaAudioToneUtility->PrepareToPlayDesSequence(aData);
+    iSchedulerWait->Start();
+
+}
+
+TInt CMIDTone::Play(TInt aLoop)
+{
+    __ASSERT_DEBUG(iState == EReadyToPlay, User::Invariant());
+
+    if (aLoop == 0)
+    {
+        // There is no known working method to play tone forever
+        aLoop = KMIDLoopForever;
+    }
+
+    // Setting repeats to 1 causes sound played twice
+    if (aLoop == 1)
+    {
+        iMdaAudioToneUtility->SetRepeats(0, TTimeIntervalMicroSeconds(0));
+    }
+    else if (aLoop > 1)
+    {
+        iMdaAudioToneUtility->SetRepeats(aLoop, TTimeIntervalMicroSeconds(0));
+    }
+
+    iMdaAudioToneUtility->Play();
+
+    iEventSender->SendEvent(com_nokia_mid_sound_Sound_SOUND_PLAYING);
+    iState = EPlaying;
+    iPlayed = ETrue;
+
+    return KErrNone;
+}
+
+void CMIDTone::Stop()
+{
+    if (iState == EPlaying)
+    {
+        iMdaAudioToneUtility->CancelPlay();
+        // sleep to make sure the device has time to stop
+        User::After(TTimeIntervalMicroSeconds32(KMIDStopSleepTime));      // CSI: 92 MdaAudioToneUtility does not send event when stopping has finished #
+        iEventSender->SendEvent(com_nokia_mid_sound_Sound_SOUND_STOPPED);
+        iState = EReadyToPlay;
+    }
+}
+
+void CMIDTone::SetVolume(TInt aVolume)
+{
+    TInt maxVolume = iMdaAudioToneUtility->MaxVolume();
+    TInt volume = 0;
+    if (aVolume)
+    {
+        volume = (((maxVolume
+                    - KMIDMinNativeVolume + 1)
+                   * aVolume)
+                  / (KMIDMaxJavaVolume + 1)) + KMIDMinNativeVolume;
+    }
+    iMdaAudioToneUtility->SetVolume(volume);
+}
+
+TInt CMIDTone::Volume()
+{
+    TInt maxVolume = iMdaAudioToneUtility->MaxVolume();
+    TInt volume = (iMdaAudioToneUtility->Volume() *
+                   KMIDMaxJavaVolume) / maxVolume;
+
+    return volume;
+}
+
+void CMIDTone::MatoPrepareComplete(TInt aError)
+{
+    if (aError == KErrNone)
+    {
+        iState = EReadyToPlay;
+    }
+    else
+    {
+        if (aError == KErrNotSupported)
+        {
+            iState = ENotSupported;
+        }
+        else
+        {
+            iState = ENotReady;
+        }
+    }
+    iSchedulerWait->AsyncStop();
+}
+
+void CMIDTone::MatoPlayComplete(TInt aError)
+{
+    if (KErrNone == aError)
+    {
+        iEventSender->SendEvent(com_nokia_mid_sound_Sound_SOUND_STOPPED);
+        iState = EReadyToPlay;
+    }
+}
+
+void CMIDTone::Release()
+{
+    iState = ENotReady;
+    if (iMdaAudioToneUtility)
+    {
+        if (iMdaAudioToneUtility->State() == EMdaAudioToneUtilityNotReady)
+        {
+            iMdaAudioToneUtility->CancelPrepare();
+        }
+        else if (iMdaAudioToneUtility->State() == EMdaAudioToneUtilityPlaying
+                 || iState == EPlaying)
+        {
+            iMdaAudioToneUtility->CancelPlay();
+        }
+    }
+    delete iMdaAudioToneUtility;
+    iMdaAudioToneUtility = NULL;
+    iState = ENotReady;
+}
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/nokiasound_akn/src/sound.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,209 @@
+/*
+* 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:  JNI class for Sound.java.
+*
+*/
+
+
+#include <e32def.h> // MAKE_TINT64 Warning fix
+
+#include "com_nokia_mid_sound_Sound.h"
+#include "CMIDSound.h"
+#include "javajniutils.h"
+#include "javacommonutils.h"
+#include "logger.h"
+
+/*
+ * Class:     com_nokia_mid_sound_Sound
+ * Method:    _dispose
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_nokia_mid_sound_Sound__1dispose
+(JNIEnv* /* aJni */, jobject /* aSound */, jint aHandle)
+{
+    JELOG2(EJavaUI);
+    CMIDSound* sound = reinterpret_cast<CMIDSound*>(aHandle);
+    delete sound;
+}
+
+/*
+ * Class:     com_nokia_mid_sound_Sound
+ * Method:    _create
+ * Signature: (I)I
+ */
+JNIEXPORT jint JNICALL Java_com_nokia_mid_sound_Sound__1create
+(JNIEnv* aJni, jobject aSound)
+{
+    JELOG2(EJavaUI);
+
+    TInt handle(0);
+    CMIDSound* sound = 0;
+    TRAPD(err,
+    {
+        sound = CMIDSound::NewL(*aJni, aSound);
+        if (sound != 0)
+        {
+            sound->InitProfileListener();
+        }
+    });
+
+    if (err != KErrNone)
+    {
+
+        java::util::JniUtils::throwNewException(aJni, "java/lang/RuntimeException" ,
+                                                "Failed to create Native Peer " +
+                                                java::util::JavaCommonUtils::intToString(err));
+    }
+    else
+    {
+
+        handle = reinterpret_cast<TInt>(sound);
+    }
+    return handle;
+}
+
+/*
+ * Class:     com_nokia_mid_sound_Sound
+ * Method:    _init
+ * Signature: (III[BIJ)I
+ */
+JNIEXPORT jint JNICALL Java_com_nokia_mid_sound_Sound__1init
+(JNIEnv* aJni, jobject, jint aHandle, jint aType, jbyteArray aData,
+ jint aFrequency, jlong aDuration)
+{
+    JELOG2(EJavaUI);
+    TInt freq(aFrequency);
+    TInt64 duration = *reinterpret_cast<TInt64*>(&aDuration);
+
+    CMIDSound* sound = reinterpret_cast<CMIDSound*>(aHandle);
+
+    TPtrC8 ptr;
+    jbyte* data = NULL;
+
+    if (aType != com_nokia_mid_sound_Sound_FORMAT_BEEP)
+    {
+        if (!aData)
+        {
+            return KErrGeneral;
+        }
+        data = aJni->GetByteArrayElements(aData,0);
+        jint length = aJni->GetArrayLength(aData);
+        ptr.Set((TUint8*)data, length);
+    }
+
+    // Had to make SetBeep() due to number of maximum parameters in ExecuteTrap.
+    sound->SetBeep(freq, duration);
+    TInt err = sound->Init(aType, (const TDesC8*)&ptr);
+
+    if (aType != com_nokia_mid_sound_Sound_FORMAT_BEEP)
+    {
+        aJni->ReleaseByteArrayElements(aData, data, 0);
+    }
+    return err;
+}
+
+/*
+ * Class:     com_nokia_mid_sound_Sound
+ * Method:    _release
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_nokia_mid_sound_Sound__1release
+(JNIEnv*, jobject, jint aHandle)
+{
+    JELOG2(EJavaUI);
+    CMIDSound* sound = reinterpret_cast<CMIDSound*>(aHandle);
+    sound->Release();
+}
+
+
+/*
+ * Class:     com_nokia_mid_sound_Sound
+ * Method:    _play
+ * Signature: (II)I
+ */
+JNIEXPORT jint JNICALL Java_com_nokia_mid_sound_Sound__1play
+(JNIEnv*, jobject, jint aHandle, jint aLoop)
+{
+    JELOG2(EJavaUI);
+    CMIDSound* sound = reinterpret_cast<CMIDSound*>(aHandle);
+    TInt err = sound->Play(aLoop);
+    return err;
+}
+
+/*
+ * Class:     com_nokia_mid_sound_Sound
+ * Method:    _stop
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_nokia_mid_sound_Sound__1stop
+(JNIEnv*, jobject, jint aHandle)
+{
+    JELOG2(EJavaUI);
+    CMIDSound* sound = reinterpret_cast<CMIDSound*>(aHandle);
+    sound->Stop();
+}
+
+/*
+ * Class:     com_nokia_mid_sound_Sound
+ * Method:    _resume
+ * Signature: (II)V
+ */
+JNIEXPORT void JNICALL Java_com_nokia_mid_sound_Sound__1resume
+(JNIEnv*, jobject, jint aHandle)
+{
+    JELOG2(EJavaUI);
+    CMIDSound* sound = reinterpret_cast<CMIDSound*>(aHandle);
+    sound->Resume();
+}
+
+/*
+ * Class:     com_nokia_mid_sound_Sound
+ * Method:    _setVolume
+ * Signature: (III)V
+ */
+JNIEXPORT void JNICALL Java_com_nokia_mid_sound_Sound__1setVolume
+(JNIEnv*, jobject, jint aHandle, jint aVolume)
+{
+    JELOG2(EJavaUI);
+    CMIDSound* sound = reinterpret_cast<CMIDSound*>(aHandle);
+    sound->SetVolume(aVolume);
+}
+
+/*
+ * Class:     com_nokia_mid_sound_Sound
+ * Method:    _volume
+ * Signature: (II)I
+ */
+JNIEXPORT jint JNICALL Java_com_nokia_mid_sound_Sound__1volume
+(JNIEnv*, jobject, jint aHandle)
+{
+    JELOG2(EJavaUI);
+    CMIDSound* sound = reinterpret_cast<CMIDSound*>(aHandle);
+    TInt volume = sound->SoundVolume();
+    return(volume);
+}
+
+/*
+ * Class:     com_nokia_mid_sound_Sound
+ * Method:    _getState
+ * Signature: (II)I
+ */
+JNIEXPORT jint JNICALL Java_com_nokia_mid_sound_Sound__1getState
+(JNIEnv*, jobject, jint aHandle)
+{
+    JELOG2(EJavaUI);
+    CMIDSound* sound = reinterpret_cast<CMIDSound*>(aHandle);
+    TInt state = sound->PlayerState();
+    return state;
+}
--- a/javauis/remconobserver_akn/build/javaremconobserver_0x2002DCCA.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/remconobserver_akn/build/javaremconobserver_0x2002DCCA.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc
@@ -102,7 +102,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javauis/runtimeui_akn/build/javaruntimeui_0x2002DCCD.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/runtimeui_akn/build/javaruntimeui_0x2002DCCD.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../src.s60
@@ -100,7 +100,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javauis/runtimeui_akn/loc/javausermessages.loc	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/runtimeui_akn/loc/javausermessages.loc	Wed Oct 13 14:23:59 2010 +0300
@@ -450,18 +450,6 @@
 #define qtn_java_secur_error_drm_rights_not_valid "No digital rights to launch application."
 
 // d:Security error message:
-// d:short error message
-// l:popup_info_list_pane_t1
-//
-#define qtn_java_secur_error_jar_not_found "Application's deployment package not found."
-
-// d:Security error message:
-// d:short error message
-// l:popup_info_list_pane_t1
-//
-#define qtn_java_secur_error_jar_not_found_details "Possible reasons for the missing files: the files might reside on a memory card which is not currently present or has been formatted."
-
-// d:Security error message:
 // d:detailed error message
 // l:popup_info_list_pane_t1
 //
--- a/javauis/softnotification_akn/build/javasoftnotification_0x2002DCD6.mmp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/softnotification_akn/build/javasoftnotification_0x2002DCD6.mmp	Wed Oct 13 14:23:59 2010 +0300
@@ -45,7 +45,6 @@
 MACRO		RD_JAVA_HTTP_EMC_ENABLED
 MACRO		RD_JAVA_NGA_ENABLED
 MACRO		RD_JAVA_PROXIMITY_LISTENER_ENABLED
-MACRO		RD_JAVA_PIM_MULTICAL_ENABLED
 MACRO		RD_JAVA_OPENC_BETA_PATCH
 MACRO		RD_JAVA_INSTALLERUI_ENABLED
 MACRO		RD_JAVA_PREWARM
@@ -53,6 +52,7 @@
 MACRO		RD_JAVA_MIDPRMS_DB
 MACRO		__SYMBIAN32__
 MACRO		J9EPOC32
+MACRO		RD_JAVA_OMJ_FSERVER
 
 SYSTEMINCLUDE		../../../../../mw/qt/mkspecs/common/symbian
 SYSTEMINCLUDE		../inc
@@ -103,7 +103,7 @@
 #endif
 OPTION GCCE -fvisibility-inlines-hidden
 
-VERSION 10.525
+VERSION 10.0
 
 ARMFPU softvfp
 
--- a/javauis/subsystem.mk	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/subsystem.mk	Wed Oct 13 14:23:59 2010 +0300
@@ -23,14 +23,13 @@
 NONQTSUBSYSTEMS += \
 	coreui/build
 
-COMPONENTS += nokiasound/build
 
 #
 # Common legacy utilities
 #
+SUBSYSTEMS += javalegacyutils
 
-SYMBIAN_ONLY += nokiasound/build
-
+SYMBIAN_ONLY += javalegacyutils
 
 
 #
--- a/javauis/subsystem_akn.mk	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/subsystem_akn.mk	Wed Oct 13 14:23:59 2010 +0300
@@ -22,6 +22,7 @@
 	m2g_akn/build \
 	m3g_akn/build \
 	mmapi_akn/build \
+	nokiasound_akn/build \
 	remconobserver_akn/build \
 	runtimeui_akn/build \
 	softnotification_akn/build
@@ -32,13 +33,13 @@
 	eswt_akn/eswtphysics/group
 
 SUBSYSTEMS += \
-	javalegacyutils \
 	lcdui_akn
 
 ifdef RD_JAVA_S60_RELEASE_5_0_IAD
     SUBSYSTEMS += ptivariation_akn
 endif
 
+
 #
 # Additional dependencies between the components
 #
--- a/javauis/subsystem_qt.mk	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/subsystem_qt.mk	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 #
-# Copyright (c) 2009, 2010 Nokia Corporation and/or its subsidiary(-ies).
+# 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"
@@ -14,10 +14,6 @@
 # Description: Makefile for Qt based components and subsystems
 #
 
-SUBSYSTEMS   += eswt_qt/build
-COMPONENTS   += lcdui_qt/build runtimeui_qt/build nokiauiapi_qt/build mmapi_qt/build amms_qt/build m3g_qt/build
+COMPONENTS   += eswt_qt/build lcdui_qt/build runtimeui_qt/build nokiauiapi_qt/build mmapi_qt/build amms_qt/build
 
 SYMBIAN_ONLY += mmapi_qt/build amms_qt/build m3g_qt/build
-
-# Build order dependency
-lcdui_qt/build runtimeui_qt/build nokiauiapi_qt/build mmapi_qt/build amms_qt/build m3g_qt/build: eswt_qt/build
--- a/javauis/tsrc/fute/lcdui/Midp_Alert_01/build.xml	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/tsrc/fute/lcdui/Midp_Alert_01/build.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -28,7 +28,7 @@
     <property name="midlet.permissions" value=""/>
     <property name="package.name" value="Midp_Alert_01"/>
     <property name="company.name" value="Nokia"/>
-    <property name="midlet.version" value="1.2"/>
+    <property name="midlet.version" value="1.1"/>
     <property name="midlet.description" value=""/>
 
     <!-- Get settings for a basic MIDlet. -->
--- a/javauis/tsrc/fute/lcdui/Midp_Alert_01/src/AlertTests.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/tsrc/fute/lcdui/Midp_Alert_01/src/AlertTests.java	Wed Oct 13 14:23:59 2010 +0300
@@ -156,14 +156,6 @@
                 errorAlert.setTimeout(Alert.FOREVER);
                 Display.getDisplay(parent).setCurrent(errorAlert);
             }
-            catch (IllegalArgumentException e)
-            {
-                System.out.println("Exception: " + e.toString());
-                Alert errorAlert = new Alert("Exception", e.toString(), null,
-                                             AlertType.ERROR);
-                errorAlert.setTimeout(Alert.FOREVER);
-                Display.getDisplay(parent).setCurrent(errorAlert);
-            }
         }
         else if (c == cmdExit)
         {
--- a/javauis/tsrc/fute/lcdui/Midp_Form_01/build.xml	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/tsrc/fute/lcdui/Midp_Form_01/build.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -28,7 +28,7 @@
     <property name="midlet.permissions" value=""/>
     <property name="package.name" value="Midp_Form_01"/>
     <property name="company.name" value="Nokia"/>
-    <property name="midlet.version" value="1.2"/>
+    <property name="midlet.version" value="1.1"/>
     <property name="midlet.description" value=""/>
 
     <!-- Get settings for a basic MIDlet. -->
--- a/javauis/tsrc/fute/lcdui/Midp_Form_01/src/FormMethodsTests.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/tsrc/fute/lcdui/Midp_Form_01/src/FormMethodsTests.java	Wed Oct 13 14:23:59 2010 +0300
@@ -56,7 +56,7 @@
 
     private final String imgStr = "ImageItem";
 
-    private final String spacerStr = "Spacer (100x100)";
+    private final String spacerStr = "Spacer";
 
     private ChoiceGroup cg = null;
 
@@ -324,7 +324,7 @@
             else if (item.equals(imgStr))
                 addImageItem();
             else if (item.equals(spacerStr))
-                addSpacer(100,100);
+                addSpacer(10,10);
             else if (item.equals(tfStr))
             {
                 addTextField("ANY", TextField.ANY);
--- a/javauis/tsrc/fute/lcdui/Midp_General/build.xml	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-<!--
-#
-# Copyright (c) 2010 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 name="Midp_General" default="pack">
-
-    <!-- Get general settings for MIDlet projects. -->
-    <import file="../../properties.xml"/>
-
-    <!-- Set properties for this project. -->
-    <property name="midlet1.name" value="Midp_General_01"/>
-    <property name="midlet1.icon.name" value=""/>
-    <property name="midlet1.package.name" value="Midp_General_01"/>
-    <property name="midlet2.name" value="Midp_General_02"/>
-    <property name="midlet2.icon.name" value=""/>
-    <property name="midlet2.package.name" value="Midp_General_02"/>
-    <property name="midlet3.name" value="Midp_General_03"/>
-    <property name="midlet3.icon.name" value=""/>
-    <property name="midlet3.package.name" value="Midp_General_03"/>
-    <property name="midlet4.name" value="Midp_General_04"/>
-    <property name="midlet4.icon.name" value=""/>
-    <property name="midlet4.package.name" value="Midp_General_04"/>
-    <property name="midlet5.name" value="Midp_General_05"/>
-    <property name="midlet5.icon.name" value=""/>
-    <property name="midlet5.package.name" value="Midp_General_05"/>
-    <property name="midlet.permissions" value=""/>
-    <property name="package.name" value="Midp_General"/>
-    <property name="company.name" value="Nokia"/>
-    <property name="midlet.version" value="1.2"/>
-    <property name="midlet.description" value=""/>
-
-    <!-- Package Preverifed classes, resources and MANIFEST file -->
-    <target name="pack" depends="preverify">
-        <wtkjad jadfile="${bin}/${package.name}.jad"
-            jarfile="${bin}/${package.name}.jar"
-            update="true"
-            config="1.1"
-            profile="2.1"
-            manifest="${bin}/MANIFEST.MF"
-            name="${package.name}"
-            vendor="${company.name}">
-            <attribute name="MIDlet-Permissions" value="${midlet.permissions}"/>
-            <attribute name="MicroEdition-Profile" value="MIDP-2.1"/>
-            <attribute name="MicroEdition-Configuration" value="CLDC-1.1"/>
-            <attribute name="MIDlet-Version" value="${midlet.version}"/>
-            <attribute name="MIDlet-Description" value="${midlet.description}"/>
-            <attribute name="Nokia-UI-Enhancement" value="PopUpTextBox"/>
-            <midlet name="${midlet1.name}" icon="${midlet1.icon.name}" class="${midlet1.package.name}" />
-            <midlet name="${midlet2.name}" icon="${midlet2.icon.name}" class="${midlet2.package.name}" />
-            <midlet name="${midlet3.name}" icon="${midlet3.icon.name}" class="${midlet3.package.name}" />
-            <midlet name="${midlet4.name}" icon="${midlet4.icon.name}" class="${midlet4.package.name}" />
-            <midlet name="${midlet5.name}" icon="${midlet5.icon.name}" class="${midlet5.package.name}" />
-        </wtkjad>
-
-        <wtkjad jadfile="${bin}/${package.name}_fullscreen_textbox.jad"
-            jarfile="${bin}/${package.name}.jar"
-            update="true"
-            config="1.1"
-            profile="2.1"
-            manifest="${bin}/MANIFEST.MF"
-            name="${package.name}"
-            vendor="${company.name}">
-            <attribute name="MIDlet-Permissions" value="${midlet.permissions}"/>
-            <attribute name="MicroEdition-Profile" value="MIDP-2.1"/>
-            <attribute name="MicroEdition-Configuration" value="CLDC-1.1"/>
-            <attribute name="MIDlet-Version" value="${midlet.version}"/>
-            <attribute name="MIDlet-Description" value="${midlet.description}"/>
-            <attribute name="Nokia-UI-Enhancement" value="FullScreenTextBox"/>
-            <midlet name="${midlet1.name}" icon="${midlet1.icon.name}" class="${midlet1.package.name}" />
-            <midlet name="${midlet2.name}" icon="${midlet2.icon.name}" class="${midlet2.package.name}" />
-            <midlet name="${midlet3.name}" icon="${midlet3.icon.name}" class="${midlet3.package.name}" />
-            <midlet name="${midlet4.name}" icon="${midlet4.icon.name}" class="${midlet4.package.name}" />
-            <midlet name="${midlet5.name}" icon="${midlet5.icon.name}" class="${midlet5.package.name}" />
-        </wtkjad>
-
-        <wtkpackage
-            jarfile="${bin}/${package.name}.jar"
-            jadfile="${bin}/${package.name}.jad"
-            classpath="${project.class.path}"
-            basedir="${prever}"
-            autoversion="false">
-            <exclude_from_manifest name="Nokia-UI-Enhancement"/>
-            <fileset dir="${res}"
-                excludes="**/distribution.policy.s60" />
-        </wtkpackage>
-
-        <wtkpackage
-            jarfile="${bin}/${package.name}.jar"
-            jadfile="${bin}/${package.name}_fullscreen_textbox.jad"
-            classpath="${project.class.path}"
-            basedir="${prever}"
-            autoversion="false">
-            <exclude_from_manifest name="Nokia-UI-Enhancement"/>
-            <fileset dir="${res}"
-                excludes="**/distribution.policy.s60" />
-        </wtkpackage>
-    </target>
-
-</project>
\ No newline at end of file
Binary file javauis/tsrc/fute/lcdui/Midp_General/res/small.png has changed
--- a/javauis/tsrc/fute/lcdui/Midp_General/src/EmptyForm.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/*
-* Copyright (c) 2003-2010 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:
-*
-*/
-
-/**
- * import midp classes.
- */
-import javax.microedition.midlet.*;
-import javax.microedition.lcdui.*;
-
-/**
- * This is the main class for the empty Form.
- */
-
-public class EmptyForm extends Form
-{
-
-    /**
-     *  The constructor creates and displays the Form.
-     *
-     *@param  parent  is the parent midlet.
-     */
-    public EmptyForm(MIDlet parent)
-    {
-        super(parent.getClass().getName());
-        Display.getDisplay(parent).setCurrent(this);
-    }
-}
--- a/javauis/tsrc/fute/lcdui/Midp_General/src/Midp_General_01.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-/*
-* Copyright (c) 2003-2010 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:
-*
-*/
-
-/**
- * import midp classes.
- */
-import javax.microedition.midlet.*;
-import javax.microedition.lcdui.*;
-
-/**
- * This is the main class for the Midp_General_01 tests.
- */
-
-public class Midp_General_01 extends MIDlet implements CommandListener
-{
-    private Form theForm;
-    private Command cmdExit = new Command("Exit", Command.EXIT, 1);
-
-    /**
-     * Signals the MIDlet to start and enter the Active state.
-     */
-    protected void startApp()
-    {
-        theForm = new EmptyForm(this);
-        theForm.addCommand(cmdExit);
-        theForm.setCommandListener(this);
-    }
-
-    /**
-     *  Signals the MIDlet to terminate and enter the Destroyed state.
-     *
-     */
-    protected void destroyApp(boolean unconditional)
-    {
-    }
-
-    /**
-     *  Signals the MIDlet to stop and enter the Paused state.
-     */
-    protected void pauseApp()
-    {
-    }
-
-    /**
-     *  This method handles command invocations.
-     *
-     *@param  c  This is the command responsible for the event.
-     *@param  s  Should be equal to this.
-     */
-    public void commandAction(Command c, Displayable s)
-    {
-        if (c == cmdExit)
-        {
-            destroyApp(false);
-            notifyDestroyed();
-        }
-    }
-}
--- a/javauis/tsrc/fute/lcdui/Midp_General/src/Midp_General_02.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-/*
-* Copyright (c) 2003-2010 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:
-*
-*/
-
-/**
- * import midp classes.
- */
-import javax.microedition.midlet.*;
-import javax.microedition.lcdui.*;
-
-/**
- *  This is the main class for the Midp_General_02 tests.
- */
-
-public class Midp_General_02 extends MIDlet implements CommandListener
-{
-
-    TextBox tb;
-    Display display;
-    private Command cmdExit = new Command("Exit", Command.EXIT, 1);
-
-    String theText = "This is a TextBox with very long text blah blah blah blah blah blah" +
-                     "blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah" +
-                     "blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah" +
-                     "blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah" +
-                     "blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah" +
-                     "blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah" +
-                     "blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah blah" +
-                     "This is the last sentence.";
-
-    public Midp_General_02()
-    {
-        tb = new TextBox("TextBox", theText, 1000, TextField.ANY);
-        tb.addCommand(cmdExit);
-        tb.setCommandListener(this);
-        display = Display.getDisplay(this);
-    }
-
-    /**
-     * Signals the MIDlet to start and enter the Active state.
-     */
-    protected void startApp()
-    {
-        display.setCurrent(tb);
-    }
-
-    /**
-     *  Signals the MIDlet to terminate and enter the Destroyed state.
-     *
-     */
-    protected void destroyApp(boolean unconditional)
-    {
-    }
-
-    /**
-     *  Signals the MIDlet to stop and enter the Paused state.
-     */
-    protected void pauseApp()
-    {
-    }
-
-    /**
-     *  This method handles command invocations.
-     *
-     *@param  c  This is the command responsible for the event.
-     *@param  s  Should be equal to this.
-     */
-    public void commandAction(Command c, Displayable s)
-    {
-        if (c == cmdExit)
-        {
-            destroyApp(false);
-            notifyDestroyed();
-        }
-    }
-}
--- a/javauis/tsrc/fute/lcdui/Midp_General/src/Midp_General_03.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-/*
-* Copyright (c) 2003-2010 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:
-*
-*/
-
-/**
- * import midp classes.
- */
-import javax.microedition.midlet.*;
-import javax.microedition.lcdui.*;
-
-/**
- *  This is the main class for the Midp_General_03 tests.
- */
-
-public class Midp_General_03 extends MIDlet implements CommandListener
-{
-
-    private List emptyList;
-    private Display display;
-    private Command cmdExit = new Command("Exit", Command.EXIT, 1);
-
-    public Midp_General_03()
-    {
-        emptyList = new List("List", List.EXCLUSIVE);
-        emptyList.addCommand(cmdExit);
-        emptyList.setCommandListener(this);
-        display = Display.getDisplay(this);
-    }
-
-    /**
-     * Signals the MIDlet to start and enter the Active state.
-     */
-    protected void startApp()
-    {
-        display.setCurrent(emptyList);
-    }
-
-    /**
-     *  Signals the MIDlet to terminate and enter the Destroyed state.
-     *
-     */
-    protected void destroyApp(boolean unconditional)
-    {
-    }
-
-    /**
-     *  Signals the MIDlet to stop and enter the Paused state.
-     */
-    protected void pauseApp()
-    {
-    }
-
-    /**
-     *  This method handles command invocations.
-     *
-     *@param  c  This is the command responsible for the event.
-     *@param  s  Should be equal to this.
-     */
-    public void commandAction(Command c, Displayable s)
-    {
-        if (c == cmdExit)
-        {
-            destroyApp(false);
-            notifyDestroyed();
-        }
-    }
-}
--- a/javauis/tsrc/fute/lcdui/Midp_General/src/Midp_General_04.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-/*
-* Copyright (c) 2003-2010 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:
-*
-*/
-
-/**
- * import midp classes.
- */
-import javax.microedition.midlet.*;
-import javax.microedition.lcdui.*;
-
-/**
- *  This is the main class for the Midp_General_04 tests.
- */
-
-public class Midp_General_04 extends MIDlet implements CommandListener
-{
-
-    private Alert alert;
-    private Display display;
-    private Gauge indicator;
-    private Image image;
-    private Command cmdScreen = new Command("Screen cmd", Command.SCREEN, 1);
-    private Command cmdExit = new Command("Exit", Command.EXIT, 1);
-
-    private String alertText = "This is a modal alert with very long text blah blah blah blah blah blah " +
-                               "blah blah blah blah blah blah blah blah blah blah blah blah blah blah " +
-                               "blah blah blah blah blah blah blah blah blah blah blah blah blah blah " +
-                               "blah blah blah blah blah blah blah blah blah blah blah blah blah blah " +
-                               "blah blah blah blah blah blah blah blah blah blah blah blah blah blah " +
-                               "blah blah blah blah blah blah blah blah blah blah blah blah blah blah " +
-                               "blah blah blah blah blah blah blah blah blah blah blah blah blah blah";
-
-    public Midp_General_04()
-    {
-        alert = new Alert("Alert title", alertText, null, AlertType.INFO);
-        alert.addCommand(cmdExit);
-        alert.addCommand(cmdScreen);
-        alert.setCommandListener(this);
-        indicator = new Gauge(null, false, Gauge.INDEFINITE, Gauge.CONTINUOUS_RUNNING);
-        alert.setIndicator(indicator);
-
-        try
-        {
-            image = Image.createImage("/small.png");
-        }
-        catch (java.io.IOException e)
-        {
-        }
-        alert.setImage(image);
-
-        display = Display.getDisplay(this);
-    }
-
-    /**
-     * Signals the MIDlet to start and enter the Active state.
-     */
-    protected void startApp()
-    {
-        display.setCurrent(alert);
-    }
-
-    /**
-     *  Signals the MIDlet to terminate and enter the Destroyed state.
-     *
-     */
-    protected void destroyApp(boolean unconditional)
-    {
-    }
-
-    /**
-     *  Signals the MIDlet to stop and enter the Paused state.
-     */
-    protected void pauseApp()
-    {
-    }
-
-    /**
-     *  This method handles command invocations.
-     *
-     *@param  c  This is the command responsible for the event.
-     *@param  s  Should be equal to this.
-     */
-    public void commandAction(Command c, Displayable s)
-    {
-        if (c == cmdExit)
-        {
-            destroyApp(false);
-            notifyDestroyed();
-        }
-        else if (c == cmdScreen)
-        {
-            alert.setTitle("Command run");
-        }
-    }
-}
--- a/javauis/tsrc/fute/lcdui/Midp_General/src/Midp_General_05.java	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-/*
-* Copyright (c) 2003-2010 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:
-*
-*/
-
-/**
- * import midp classes.
- */
-import javax.microedition.midlet.*;
-import javax.microedition.lcdui.*;
-
-/**
- *  This is the main class for the Midp_General_05 tests.
- */
-
-public class Midp_General_05 extends MIDlet implements CommandListener
-{
-
-    private Canvas canvas;
-    private Display display;
-    private Command cmdExit = new Command("Exit", Command.EXIT, 1);
-
-    public Midp_General_05()
-    {
-        display = Display.getDisplay(this);
-        canvas = new EmptyCanvas();
-        canvas.addCommand(cmdExit);
-        canvas.setCommandListener(this);
-    }
-
-    /**
-     * Signals the MIDlet to start and enter the Active state.
-     */
-    protected void startApp()
-    {
-        display.setCurrent(canvas);
-    }
-
-    /**
-     *  Signals the MIDlet to terminate and enter the Destroyed state.
-     *
-     */
-    protected void destroyApp(boolean unconditional)
-    {
-    }
-
-    /**
-     *  Signals the MIDlet to stop and enter the Paused state.
-     */
-    protected void pauseApp()
-    {
-    }
-
-    /**
-     *  This method handles command invocations.
-     *
-     *@param  c  This is the command responsible for the event.
-     *@param  s  Should be equal to this.
-     */
-    public void commandAction(Command c, Displayable s)
-    {
-        if (c == cmdExit)
-        {
-            destroyApp(false);
-            notifyDestroyed();
-        }
-    }
-}
-
-class EmptyCanvas extends Canvas
-{
-    protected void paint(Graphics g)
-    {
-        g.setColor(0, 0, 0);
-        g.drawString("Empty Canvas", getWidth()/2, getHeight()/2, Graphics.TOP | Graphics.HCENTER);
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/tsrc/fute/lcdui/Midp_General_02/build.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,37 @@
+<!--
+#
+# Copyright (c) 2010 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 name="Midp_General_02" default="pack">
+
+    <!-- Get general settings for MIDlet projects. -->
+    <import file="../../properties.xml"/>
+
+    <!-- Set properties for this project. -->
+    <property name="midlet1.name" value="Midp_General_02"/>
+    <property name="midlet1.icon.name" value=""/>
+    <property name="midlet1.package.name" value="Midp_General_02"/>
+    <property name="midlet.permissions" value=""/>
+    <property name="package.name" value="Midp_General_02"/>
+    <property name="company.name" value="Nokia"/>
+    <property name="midlet.version" value="1.0"/>
+    <property name="midlet.description" value=""/>
+
+    <!-- Get settings for a basic MIDlet. -->
+    <import file="../../properties-basic-midlet.xml"/>
+
+</project>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/tsrc/fute/lcdui/Midp_General_02/src/Midp_General_02.java	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,63 @@
+/*
+* Copyright (c) 2003-2010 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:
+*
+*/
+
+/**
+ * import midp classes.
+ */
+import javax.microedition.midlet.*;
+import javax.microedition.lcdui.*;
+
+/**
+ *
+ */
+
+public class Midp_General_02 extends MIDlet
+{
+
+    TextBox tb;
+    Display display;
+
+    public Midp_General_02()
+    {
+        tb = new TextBox("TextBox", null, 1000, TextField.ANY);
+        display = Display.getDisplay(this);
+    }
+
+    /**
+     * Signals the MIDlet to start and enter the Active state.
+     */
+    protected void startApp()
+    {
+        display.setCurrent(tb);
+    }
+
+    /**
+     *  Signals the MIDlet to terminate and enter the Destroyed state.
+     *
+     */
+    protected void destroyApp(boolean unconditional)
+    {
+    }
+
+    /**
+     *  Signals the MIDlet to stop and enter the Paused state.
+     */
+    protected void pauseApp()
+    {
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/tsrc/fute/lcdui/Midp_General_04/build.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,37 @@
+<!--
+#
+# Copyright (c) 2010 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 name="Midp_General_04" default="pack">
+
+    <!-- Get general settings for MIDlet projects. -->
+    <import file="../../properties.xml"/>
+
+    <!-- Set properties for this project. -->
+    <property name="midlet1.name" value="Midp_General_04"/>
+    <property name="midlet1.icon.name" value=""/>
+    <property name="midlet1.package.name" value="Midp_General_04"/>
+    <property name="midlet.permissions" value=""/>
+    <property name="package.name" value="Midp_General_04"/>
+    <property name="company.name" value="Nokia"/>
+    <property name="midlet.version" value="1.0"/>
+    <property name="midlet.description" value=""/>
+
+    <!-- Get settings for a basic MIDlet. -->
+    <import file="../../properties-basic-midlet.xml"/>
+
+</project>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/tsrc/fute/lcdui/Midp_General_04/src/Midp_General_04.java	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,63 @@
+/*
+* Copyright (c) 2003-2010 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:
+*
+*/
+
+/**
+ * import midp classes.
+ */
+import javax.microedition.midlet.*;
+import javax.microedition.lcdui.*;
+
+/**
+ *
+ */
+
+public class Midp_General_04 extends MIDlet
+{
+
+    private Alert alert;
+    private Display display;
+
+    public Midp_General_04()
+    {
+        alert = new Alert("Alert title", "Alert Text", null, AlertType.INFO);
+        display = Display.getDisplay(this);
+    }
+
+    /**
+     * Signals the MIDlet to start and enter the Active state.
+     */
+    protected void startApp()
+    {
+        display.setCurrent(alert);
+    }
+
+    /**
+     *  Signals the MIDlet to terminate and enter the Destroyed state.
+     *
+     */
+    protected void destroyApp(boolean unconditional)
+    {
+    }
+
+    /**
+     *  Signals the MIDlet to stop and enter the Paused state.
+     */
+    protected void pauseApp()
+    {
+    }
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/tsrc/fute/lcdui/Midp_General_05/build.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,37 @@
+<!--
+#
+# Copyright (c) 2010 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 name="Midp_General_05" default="pack">
+
+    <!-- Get general settings for MIDlet projects. -->
+    <import file="../../properties.xml"/>
+
+    <!-- Set properties for this project. -->
+    <property name="midlet1.name" value="Midp_General_05"/>
+    <property name="midlet1.icon.name" value=""/>
+    <property name="midlet1.package.name" value="Midp_General_05"/>
+    <property name="midlet.permissions" value=""/>
+    <property name="package.name" value="Midp_General_05"/>
+    <property name="company.name" value="Nokia"/>
+    <property name="midlet.version" value="1.0"/>
+    <property name="midlet.description" value=""/>
+
+    <!-- Get settings for a basic MIDlet. -->
+    <import file="../../properties-basic-midlet.xml"/>
+
+</project>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/tsrc/fute/lcdui/Midp_General_05/src/Midp_General_05.java	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,72 @@
+/*
+* Copyright (c) 2003-2010 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:
+*
+*/
+
+/**
+ * import midp classes.
+ */
+import javax.microedition.midlet.*;
+import javax.microedition.lcdui.*;
+
+/**
+ *
+ */
+
+public class Midp_General_05 extends MIDlet
+{
+
+    private Canvas canvas;
+    private Display display;
+
+    public Midp_General_05()
+    {
+        display = Display.getDisplay(this);
+        canvas = new EmptyCanvas();
+    }
+
+    /**
+     * Signals the MIDlet to start and enter the Active state.
+     */
+    protected void startApp()
+    {
+        display.setCurrent(canvas);
+    }
+
+    /**
+     *  Signals the MIDlet to terminate and enter the Destroyed state.
+     *
+     */
+    protected void destroyApp(boolean unconditional)
+    {
+    }
+
+    /**
+     *  Signals the MIDlet to stop and enter the Paused state.
+     */
+    protected void pauseApp()
+    {
+    }
+}
+
+class EmptyCanvas extends Canvas
+{
+    protected void paint(Graphics g)
+    {
+        g.setColor(0, 0, 0);
+        g.drawString("Empty Canvas", getWidth()/2, getHeight()/2, Graphics.TOP | Graphics.HCENTER);
+    }
+}
+
--- a/javauis/tsrc/fute/lcdui/Midp_StringItem_01/build.xml	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/tsrc/fute/lcdui/Midp_StringItem_01/build.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -28,7 +28,7 @@
     <property name="midlet.permissions" value=""/>
     <property name="package.name" value="Midp_StringItem_01"/>
     <property name="company.name" value="Nokia"/>
-    <property name="midlet.version" value="1.2"/>
+    <property name="midlet.version" value="1.1"/>
     <property name="midlet.description" value=""/>
 
     <!-- Get settings for a basic MIDlet. -->
--- a/javauis/tsrc/fute/lcdui/Midp_StringItem_01/src/FormStringItemTests.java	Wed Sep 15 12:05:25 2010 +0300
+++ b/javauis/tsrc/fute/lcdui/Midp_StringItem_01/src/FormStringItemTests.java	Wed Oct 13 14:23:59 2010 +0300
@@ -62,11 +62,9 @@
 
     //the command to create the StringItem with the entered label and text and with focus
     private Command cmdCreateHL = new Command("Create as Hyperlink", Command.SCREEN, 1);
-    private Command cmdCreateHLM = new Command("Create as Hyperlink 2 cmds", Command.SCREEN, 1);
 
     //the command to create the StringItem with the entered label and text and with focus
     private Command cmdCreateButton = new Command("Create as Button", Command.SCREEN, 1);
-    private Command cmdCreateButtonM = new Command("Create as Button 2 cmds", Command.SCREEN, 1);
 
     //the command to unlock the Item
     private Command cmdUnlock = new Command("Unlock", Command.SCREEN, 1);
@@ -99,11 +97,6 @@
     private Command cmdNext = new Command("Next", Command.SCREEN, 1);
     private Command cmdExit = new Command("Exit", Command.EXIT, 1);
 
-    // commands for the form
-    private Command cmdItemF = new Command("ItemF", Command.ITEM, 1);
-    private Command cmdOkF = new Command("OkF", Command.OK, 1);
-    private Command cmdScreenF = new Command("Add form commands", Command.SCREEN, 1);
-
     static int change = -1;
 
     public FormStringItemTests(Midp_StringItem_01 m)
@@ -125,9 +118,7 @@
         append(cg);
         addCommand(cmdCreate);
         addCommand(cmdCreateHL);
-        addCommand(cmdCreateHLM);
         addCommand(cmdCreateButton);
-        addCommand(cmdCreateButtonM);
         addCommand(cmdLayout);
         addCommand(cmdLayoutHL);
         addCommand(cmdLayoutButton);
@@ -143,7 +134,6 @@
         //create StringItemForm
         stringItemForm = new Form("StringItem");
         stringItemForm.addCommand(cmdBack);
-        stringItemForm.addCommand(cmdScreenF);
         stringItemForm.setCommandListener(this);
     }
 
@@ -233,27 +223,39 @@
         }
         else if (c == cmdLayout)
         {
+
             layoutTest(Item.PLAIN);
+
         }
         else if (c == cmdLayoutHL)
         {
+
             layoutTest(Item.HYPERLINK);
+
         }
         else if (c == cmdLayoutButton)
         {
+
             layoutTest(Item.BUTTON);
+
         }
         else if (c == cmdVLayout)
         {
+
             verticalLayoutTest(Item.PLAIN);
+
         }
         else if (c == cmdVLayoutHL)
         {
+
             verticalLayoutTest(Item.HYPERLINK);
+
         }
         else if (c == cmdVLayoutButton)
         {
+
             verticalLayoutTest(Item.BUTTON);
+
         }
         else if (c == cmdAddListeners)
         {
@@ -270,11 +272,6 @@
             m.destroyApp(false);
             m.notifyDestroyed();
         }
-        else if (c == cmdScreenF)
-        {
-            stringItemForm.addCommand(cmdItemF);
-            stringItemForm.addCommand(cmdOkF);
-        }
         else
         {
             String l = label.getString();
@@ -285,12 +282,12 @@
 
             if (c == cmdCreate)
                 si = new StringItem(l, t);
-            else if (c == cmdCreateHL || c == cmdCreateHLM)
+            else if (c == cmdCreateHL)
             {
                 si = new StringItem(l, t, Item.HYPERLINK);
                 si.setDefaultCommand(cmdItem);
             }
-            else if (c == cmdCreateButton || c == cmdCreateButtonM)
+            else if (c == cmdCreateButton)
             {
                 si = new StringItem(l, t, Item.BUTTON);
                 si.setDefaultCommand(cmdItem);
@@ -355,10 +352,6 @@
             stringItemForm.addCommand(cmdRemoveCommand);
             stringItemForm.addCommand(cmdRestoreCommand);
             stringItemForm.addCommand(cmdRemoveItem);
-            if (c == cmdCreateButtonM || c == cmdCreateHLM)
-            {
-                si.addCommand(cmdBack);
-            }
             Display.getDisplay(m).setCurrent(stringItemForm);
         }
     }
--- a/layers.sysdef.xml	Wed Sep 15 12:05:25 2010 +0300
+++ b/layers.sysdef.xml	Wed Oct 13 14:23:59 2010 +0300
@@ -10,10 +10,22 @@
         <unit unitID="jrt.jrt" mrp="" bldFile="&layer_real_source_path;/group"
         filter="!sf_build" name="jrt" />
       </module>      
+
+<!--  When releasing to SF, change the sf_build to this.      
       <module name="jrt_sf">
         <unit unitID="jrt.jrt_sf" mrp="" bldFile="&layer_real_source_path;/group/sf"
         filter="sf_build" name="jrt_sf" />
       </module>
+-->
+      <module name="jrt">
+        <unit unitID="jrt.jrt.jrt_plat" mrp="" bldFile="&layer_real_source_path;/jrt_plat/group"
+        filter="sf_build" name="jrt_jrt_plat" />
+      </module>
+      <module name="jrt">
+        <unit unitID="jrt.jrt.java_stubs" mrp="" bldFile="&layer_real_source_path;/java_stubs/group"
+        filter="sf_build" name="jrt_jrt_stubs" />
+      </module>
+      
     </layer>
   </systemModel>
 </SystemDefinition>
--- a/rom/installerodclist30	Wed Sep 15 12:05:25 2010 +0300
+++ b/rom/installerodclist30	Wed Oct 13 14:23:59 2010 +0300
@@ -10,6 +10,7 @@
 javamidpruntime.odc
 javainstaller.odc
 javainstallerui.odc
+javalegacyutils.odc
 javapushregistry.odc
 javaruntimeui.odc
 javasecurity.odc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rom/java_2_1.iby	Wed Oct 13 14:23:59 2010 +0300
@@ -0,0 +1,366 @@
+/*
+* 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:
+* Image-description file of the Java package for ROFS1.
+*/
+
+#ifndef __JAVA_IBY__
+#define __JAVA_IBY__
+
+#include <data_caging_paths_for_iby.hrh>
+
+// Helper defines
+define JAVA_RES_BLD        ABI_DIR\BUILD_DIR\z\resource\java
+define JAVA_RES_IMG        RESOURCE_FILES_DIR\java
+define JAVA_VM_RES_BLD     JAVA_RES_BLD\jvm\lib\jrt
+define JAVA_VM_RES_IMG     JAVA_RES_IMG\jvm\lib\jrt
+define JAVA_POLICY_BLD     ABI_DIR\BUILD_DIR\z\resource\java\security\policies
+define JAVA_POLICY_IMG     RESOURCE_FILES_DIR\java\security\policies
+
+
+////////////////////////////
+// Java Manager collection//
+////////////////////////////
+
+// stub sis
+data=ZSYSTEM\install\java.sis    System\Install\java.sis
+
+
+// AppMngr plugin
+ECOM_PLUGIN( appmngr2midletplugin.dll, appmngr2midletplugin.rsc )
+data=ZRESOURCE\plugins\appmngr2midletplugin.rsc    ECOM_RESOURCE_DIR\appmngr2midletplugin.rsc
+
+// Captain
+file=ABI_DIR\BUILD_DIR\javacaptain_ext_btdeviceclassmanager.dll             SHARED_LIB_DIR\javacaptain_ext_btdeviceclassmanager.dll
+file=ABI_DIR\BUILD_DIR\javacaptain_ext_config.dll                           SHARED_LIB_DIR\javacaptain_ext_config.dll
+file=ABI_DIR\BUILD_DIR\javacaptain_ext_ondemand_2.dll                       SHARED_LIB_DIR\javacaptain_ext_ondemand_2.dll
+file=ABI_DIR\BUILD_DIR\javacaptain_ext_ondemand_7.dll                       SHARED_LIB_DIR\javacaptain_ext_ondemand_7.dll
+file=ABI_DIR\BUILD_DIR\javacaptain_ext_preinstallerstarter.dll              SHARED_LIB_DIR\javacaptain_ext_preinstallerstarter.dll
+file=ABI_DIR\BUILD_DIR\javacaptain_ext_pushregistryplugin.dll               SHARED_LIB_DIR\javacaptain_ext_pushregistryplugin.dll
+file=ABI_DIR\BUILD_DIR\javacaptain_ext_storageserverplugin.dll              SHARED_LIB_DIR\javacaptain_ext_storageserverplugin.dll
+file=ABI_DIR\BUILD_DIR\javacaptain_ext_settingslistener.dll                 SHARED_LIB_DIR\javacaptain_ext_settingslistener.dll
+file=ABI_DIR\BUILD_DIR\javacaptain.exe                                      PROGRAMS_DIR\javacaptain.exe
+
+// Registry
+file=ABI_DIR\BUILD_DIR\javaregistryclient.dll                               SHARED_LIB_DIR\javaregistryclient.dll
+file=ABI_DIR\BUILD_DIR\javasizehelperclient.dll                             SHARED_LIB_DIR\javasizehelperclient.dll
+file=ABI_DIR\BUILD_DIR\javasizehelperserver.dll                             SHARED_LIB_DIR\javasizehelperserver.dll
+
+// Installer
+ECOM_PLUGIN(ifeui.dll,ifeui.rsc)
+data=ZRESOURCE\plugins\ifeui.rsc                                            ECOM_RESOURCE_DIR\ifeui.rsc
+data=ZPRIVATE\10003a3f\apps\javainstaller_reg.rsc                           \private\10003a3f\import\apps\javainstaller_reg.rsc
+data=ZRESOURCE\apps\javainstaller_loc.rsc                                   APP_RESOURCE_DIR\javainstaller_loc.rsc
+data=ZRESOURCE\apps\javainstaller_icon.mif                                  APP_BITMAP_DIR\javainstaller_icon.mif
+file=ABI_DIR\BUILD_DIR\javainstaller.dll                                    SHARED_LIB_DIR\javainstaller.dll
+data=JAVA_VM_RES_BLD\javainstallerui.odc                                    JAVA_VM_RES_IMG\javainstallerui.odc
+file=ABI_DIR\BUILD_DIR\javainstallerui.dll                                  SHARED_LIB_DIR\javainstallerui.dll
+data=JAVA_VM_RES_BLD\javainstaller.odc                                      JAVA_VM_RES_IMG\javainstaller.odc
+file=ABI_DIR\BUILD_DIR\javainstallerstarter.dll                             PROGRAMS_DIR\javainstallerstarter.dll
+file=ABI_DIR\BUILD_DIR\javapreinstaller.dll                                 PROGRAMS_DIR\javapreinstaller.dll
+data=ZRESOURCE\java\java_app_92.mif                                         JAVA_RES_IMG\java_app.mif
+data=ZRESOURCE\java\java_trusted.png                                        JAVA_RES_IMG\java_trusted.png
+data=ZRESOURCE\java\java_untrusted.png                                      JAVA_RES_IMG\java_untrusted.png
+data=DATAZ_\private\102033E6\installer\inst_plugins.cfg           	    \private\102033E6\installer\inst_plugins.cfg
+
+// Launchers
+file=ABI_DIR\BUILD_DIR\javalauncher.exe                                     PROGRAMS_DIR\javalauncher.exe
+ECOM_PLUGIN(javaappschemeplugin.dll,javaappschemeplugin.rsc)
+data=ZRESOURCE\plugins\javaappschemeplugin.rsc                              ECOM_RESOURCE_DIR\javaappschemeplugin.rsc
+
+// SID Checker
+ECOM_PLUGIN(javasidchecker.dll,10281FBE.rsc)
+data=ZRESOURCE\plugins\javasidchecker.rsc                                   ECOM_RESOURCE_DIR\javasidchecker.rsc
+
+// Recognizers
+ECOM_PLUGIN(recjar.dll, 102031FB.rsc)
+data=ZRESOURCE\plugins\recjar.rsc                                           ECOM_RESOURCE_DIR\recjar.rsc
+
+// Backup & Restore
+file=ABI_DIR\BUILD_DIR\javabackup.exe                                       PROGRAMS_DIR\javabackup.exe
+ECOM_PLUGIN(midp2backupplugin.dll,10282474.rsc)
+data=ZRESOURCE\plugins\midp2backupplugin.rsc                                ECOM_RESOURCE_DIR\midp2backupplugin.rsc
+data=DATAZ_\private\1028246F\backup_registration.xml                        \private\1028246F\backup_registration.xml
+data=DATAZ_\private\102033E6\backup_registration.xml                        \private\102033E6\backup_registration.xml
+
+
+/////////////////////////
+// Java UIs collection //
+/////////////////////////
+
+// CoreUi
+file=ABI_DIR\BUILD_DIR\javacoreui.dll                                       SHARED_LIB_DIR\javacoreui.dll
+data=JAVA_VM_RES_BLD\javacoreui.odc                                         JAVA_VM_RES_IMG\javacoreui.odc
+
+// eSWT
+file=ABI_DIR\BUILD_DIR\eswt.dll                                             SHARED_LIB_DIR\eswt.dll
+data=JAVA_VM_RES_BLD\eswt.odc                                               JAVA_VM_RES_IMG\eswt.odc
+file=ABI_DIR\BUILD_DIR\eswtphysics.dll                                      SHARED_LIB_DIR\eswtphysics.dll
+file=ABI_DIR\BUILD_DIR\eswtapifacade.dll                                    SHARED_LIB_DIR\eswtapifacade.dll
+file=ABI_DIR\BUILD_DIR\eswtdirectcontent.dll                                SHARED_LIB_DIR\eswtdirectcontent.dll
+data=JAVA_VM_RES_BLD\eswtdirectcontent.odc                                  JAVA_VM_RES_IMG\eswtdirectcontent.odc
+data=ZPRIVATE\10003a3f\apps\eswt_reg.rsc                                    \private\10003a3f\import\apps\eswt_reg.rsc
+
+// LCDUI
+file=ABI_DIR\BUILD_DIR\javalcdui.dll                                        SHARED_LIB_DIR\javalcdui.dll
+data=JAVA_VM_RES_BLD\javalcdui.odc                                          JAVA_VM_RES_IMG\javalcdui.odc
+file=ABI_DIR\BUILD_DIR\lcdui.dll                                            SHARED_LIB_DIR\lcdui.dll
+file=ABI_DIR\BUILD_DIR\lcdgr.dll                                            SHARED_LIB_DIR\lcdgr.dll
+file=ABI_DIR\BUILD_DIR\lcdgdrv.dll                                          SHARED_LIB_DIR\lcdgdrv.dll
+file=ABI_DIR\BUILD_DIR\lcdgdrvi.dll                                         SHARED_LIB_DIR\lcdgdrvi.dll
+file=ABI_DIR\BUILD_DIR\lcduiphysicswrap.dll                                 SHARED_LIB_DIR\lcduiphysicswrap.dll
+ECOM_PLUGIN(LCDC4K.dll, 10208164.rsc)
+ECOM_PLUGIN(LCDC64K.dll, 10208162.rsc)
+ECOM_PLUGIN(LCDC16MU.dll, 10208166.rsc)
+ECOM_PLUGIN(LCDC16MA.dll, 10208168.rsc)
+data=ZRESOURCE\java\lcdgr.rsc                                               JAVA_RES_IMG\lcdgr.rsc
+data=ZPRIVATE\10003a3f\apps\lcdui_reg.rsc                                   \private\10003a3f\import\apps\lcdui_reg.rsc
+
+SCALABLE_IMAGE(APP_BITMAP_DIR,APP_BITMAP_DIR,lcdui)
+
+// AMMS API
+file=ABI_DIR\BUILD_DIR\javaamms.dll                                         SHARED_LIB_DIR\javaamms.dll
+data=JAVA_VM_RES_BLD\javaamms.odc                                           JAVA_VM_RES_IMG\javaamms.odc
+
+// Mobile Media API
+file=ABI_DIR\BUILD_DIR\javamobilemedia.dll                                  SHARED_LIB_DIR\javamobilemedia.dll
+data=JAVA_VM_RES_BLD\javamobilemedia.odc                                    JAVA_VM_RES_IMG\javamobilemedia.odc
+data=ABI_DIR\BUILD_DIR\z\system\sounds\digital\CamcorderJavaCapture.wav     \System\Sounds\Digital\CamcorderJavaCapture.wav
+data=ABI_DIR\BUILD_DIR\z\system\sounds\digital\CamcorderJavaStart.wav       \System\Sounds\Digital\CamcorderJavaStart.wav
+
+// MobInfo API
+file=ABI_DIR\BUILD_DIR\javamobinfo.dll                                      SHARED_LIB_DIR\javamobinfo.dll
+data=JAVA_VM_RES_BLD\javamobinfo.odc                                        JAVA_VM_RES_IMG\javamobinfo.odc
+
+// GlobalIndicators API
+file=ABI_DIR\BUILD_DIR\javaglobalindicators.dll                             SHARED_LIB_DIR\javaglobalindicators.dll
+data=JAVA_VM_RES_BLD\javaglobalindicators.odc                               JAVA_VM_RES_IMG\javaglobalindicators.odc
+
+// SoftNotification API
+file=ABI_DIR\BUILD_DIR\javasoftnotification.dll                             SHARED_LIB_DIR\javasoftnotification.dll
+data=JAVA_VM_RES_BLD\javasoftnotification.odc                               JAVA_VM_RES_IMG\javasoftnotification.odc
+
+// 2G API
+file=ABI_DIR\BUILD_DIR\javam2g.dll                                          SHARED_LIB_DIR\javam2g.dll
+data=JAVA_VM_RES_BLD\javam2g.odc                                            JAVA_VM_RES_IMG\javam2g.odc
+
+// 3G API
+file=ABI_DIR\BUILD_DIR\javam3g.dll                                          SHARED_LIB_DIR\javam3g.dll
+data=JAVA_VM_RES_BLD\javam3g.odc                                            JAVA_VM_RES_IMG\javam3g.odc
+
+// Nokia Sound API
+file=ABI_DIR\BUILD_DIR\javanokiasound.dll                                   SHARED_LIB_DIR\javanokiasound.dll
+data=JAVA_VM_RES_BLD\javanokiasound.odc                                     JAVA_VM_RES_IMG\javanokiasound.odc
+
+// Remote Connection Observer
+file=ABI_DIR\BUILD_DIR\javaremconobserver.dll                               SHARED_LIB_DIR\javaremconobserver.dll
+
+// Legacy utilities
+file=ABI_DIR\BUILD_DIR\javalegacyutils.dll                                  SHARED_LIB_DIR\javalegacyutils.dll
+data=JAVA_VM_RES_BLD\javalegacyutils.odc                                    JAVA_VM_RES_IMG\javalegacyutils.odc
+
+
+/////////////////////////////
+// Java Runtimes collection //
+/////////////////////////////
+
+// Runtime utilities
+file=ABI_DIR\BUILD_DIR\javaruntimeui.dll                                    SHARED_LIB_DIR\javaruntimeui.dll
+data=JAVA_VM_RES_BLD\javaruntimeui.odc                                      JAVA_VM_RES_IMG\javaruntimeui.odc
+file=ABI_DIR\BUILD_DIR\javaruntimestarterutils.dll                          SHARED_LIB_DIR\javaruntimestarterutils.dll
+
+// MIDP runtime
+file=ABI_DIR\BUILD_DIR\javamidp.exe                                         PROGRAMS_DIR\javamidp.exe
+file=ABI_DIR\BUILD_DIR\javamidpstarter.dll                                  SHARED_LIB_DIR\javamidpstarter.dll
+file=ABI_DIR\BUILD_DIR\javamidpruntime.dll                                  SHARED_LIB_DIR\javamidpruntime.dll
+data=JAVA_VM_RES_BLD\javamidpruntime.odc                                    JAVA_VM_RES_IMG\javamidpruntime.odc
+
+// An empty JVM argument modifier (to prevent 3rd parties from installing a DLL with this name)
+// To enable JVM argument modifier - comment 1st line below and uncomment 2nd line below
+file=ABI_DIR\BUILD_DIR\javajvmargsmodifier.dll                              SHARED_LIB_DIR\javajvmargsmodifier.dll
+//file=ABI_DIR\BUILD_DIR\javajvmargsmodifierfile.dll                        SHARED_LIB_DIR\javajvmargsmodifier.dll
+
+
+/////////////////////////////
+// Java Commons collection //
+/////////////////////////////
+
+// J9 JVM
+file=ABI_DIR\BUILD_DIR\j9.dll                                               SHARED_LIB_DIR\j9.dll
+file=ABI_DIR\BUILD_DIR\j9vmall23.dll                                        SHARED_LIB_DIR\j9vmall23.dll
+file=ABI_DIR\BUILD_DIR\j9mjit23.dll                                         SHARED_LIB_DIR\j9mjit23.dll
+file=ABI_DIR\BUILD_DIR\jclcldc11_23.dll                                     SHARED_LIB_DIR\jclcldc11_23.dll
+file=ABI_DIR\BUILD_DIR\jclcdc11_23.dll                                      SHARED_LIB_DIR\jclcdc11_23.dll
+file=ABI_DIR\BUILD_DIR\j9fdm23.dll                                          SHARED_LIB_DIR\j9fdm23.dll
+file=ABI_DIR\BUILD_DIR\JvmNativePort.dll                                    SHARED_LIB_DIR\JvmNativePort.dll
+data=JAVA_RES_BLD\jvm\bin\java.properties                                   JAVA_RES_IMG\jvm\bin\java.properties
+data=JAVA_RES_BLD\jvm\lib\security\java.policy                              JAVA_RES_IMG\jvm\lib\security\java.policy
+data=JAVA_RES_BLD\jvm\lib\security\java.security                            JAVA_RES_IMG\jvm\lib\security\java.security
+
+// Utilities
+file=ABI_DIR\BUILD_DIR\javautils.dll                                        SHARED_LIB_DIR\javautils.dll
+data=JAVA_VM_RES_BLD\javautils.odc                                          JAVA_VM_RES_IMG\javautils.odc
+file=ABI_DIR\BUILD_DIR\javacomms.dll                                        SHARED_LIB_DIR\javacomms.dll
+data=JAVA_VM_RES_BLD\javacomms.odc                                          JAVA_VM_RES_IMG\javacomms.odc
+file=ABI_DIR\BUILD_DIR\javaipc.dll                                          SHARED_LIB_DIR\javaipc.dll
+file=ABI_DIR\BUILD_DIR\javafileutils.dll                                    SHARED_LIB_DIR\javafileutils.dll
+data=JAVA_VM_RES_BLD\javafileutils.odc                                      JAVA_VM_RES_IMG\javafileutils.odc
+file=ABI_DIR\BUILD_DIR\javadebugapi.dll                                     SHARED_LIB_DIR\javadebugapi.dll
+
+// Security dlls
+file=ABI_DIR\BUILD_DIR\javasecurity.dll                                     SHARED_LIB_DIR\javasecurity.dll
+data=JAVA_VM_RES_BLD\javasecurity.odc                                       JAVA_VM_RES_IMG\javasecurity.odc
+ECOM_PLUGIN(javaunicertstoreplugin.dll,200213A3.rsc)
+data=ZRESOURCE\plugins\javaunicertstoreplugin.rsc                           ECOM_RESOURCE_DIR\javaunicertstoreplugin.rsc
+
+// Security certs & policies
+data=JAVA_POLICY_BLD\s60_manufacturer.ser                                   JAVA_POLICY_IMG\s60_manufacturer.ser
+data=JAVA_POLICY_BLD\s60_operator.ser                                       JAVA_POLICY_IMG\s60_operator.ser
+data=JAVA_POLICY_BLD\s60_trustedthirdparty.ser                              JAVA_POLICY_IMG\s60_trustedthirdparty.ser
+data=JAVA_POLICY_BLD\s60_untrusted.ser                                      JAVA_POLICY_IMG\s60_untrusted.ser
+data=JAVA_POLICY_BLD\msa_manufacturer.ser                                   JAVA_POLICY_IMG\msa_manufacturer.ser
+data=JAVA_POLICY_BLD\msa_operator.ser                                       JAVA_POLICY_IMG\msa_operator.ser
+data=JAVA_POLICY_BLD\msa_trustedthirdparty.ser                              JAVA_POLICY_IMG\msa_trustedthirdparty.ser
+data=JAVA_POLICY_BLD\msa_untrusted.ser                                      JAVA_POLICY_IMG\msa_untrusted.ser
+data=JAVA_POLICY_BLD\att_manufacturer.ser                                   JAVA_POLICY_IMG\att_manufacturer.ser
+data=JAVA_POLICY_BLD\att_operator.ser                                       JAVA_POLICY_IMG\att_operator.ser
+data=JAVA_POLICY_BLD\att_operatorextra.ser                                  JAVA_POLICY_IMG\att_operatorextra.ser
+data=JAVA_POLICY_BLD\att_trustedthirdparty.ser                              JAVA_POLICY_IMG\att_trustedthirdparty.ser
+data=JAVA_POLICY_BLD\att_untrusted.ser                                      JAVA_POLICY_IMG\att_untrusted.ser
+data=JAVA_POLICY_BLD\all.ser                                                JAVA_POLICY_IMG\all.ser
+
+
+// Java environment info
+file=ABI_DIR\BUILD_DIR\javaenvinfo.dll                                      SHARED_LIB_DIR\javaenvinfo.dll
+data=ABI_DIR\BUILD_DIR\Z\Resource\versions\java.txt                         RESOURCE_FILES_DIR\versions\java.txt
+
+// Storage
+file=ABI_DIR\BUILD_DIR\javastorage.dll                                      SHARED_LIB_DIR\javastorage.dll
+data=JAVA_VM_RES_BLD\javastorage.odc                                        JAVA_VM_RES_IMG\javastorage.odc
+
+// GCF base
+file=ABI_DIR\BUILD_DIR\javagcf.dll                                          SHARED_LIB_DIR\javagcf.dll
+data=JAVA_VM_RES_BLD\javagcf.odc                                            JAVA_VM_RES_IMG\javagcf.odc
+
+// Connection Manager
+file=ABI_DIR\BUILD_DIR\javaconnectionmanager.dll                            SHARED_LIB_DIR\javaconnectionmanager.dll
+data=JAVA_VM_RES_BLD\javaconnectionmanager.odc                              JAVA_VM_RES_IMG\javaconnectionmanager.odc
+
+// Http & https protocols
+file=ABI_DIR\BUILD_DIR\javahttp.dll                                         SHARED_LIB_DIR\javahttp.dll
+file=ABI_DIR\BUILD_DIR\javahttps.dll                                        SHARED_LIB_DIR\javahttps.dll
+data=JAVA_VM_RES_BLD\javahttp.odc                                           JAVA_VM_RES_IMG\javahttp.odc
+data=JAVA_VM_RES_BLD\javahttps.odc                                          JAVA_VM_RES_IMG\javahttps.odc
+
+// Socket protocol
+file=ABI_DIR\BUILD_DIR\javasocket.dll                                       SHARED_LIB_DIR\javasocket.dll
+file=ABI_DIR\BUILD_DIR\javasocketscplugin.dll                               SHARED_LIB_DIR\javasocketscplugin.dll
+data=JAVA_VM_RES_BLD\javasocket.odc                                         JAVA_VM_RES_IMG\javasocket.odc
+
+// Secure socket protocol
+file=ABI_DIR\BUILD_DIR\javassl.dll                                          SHARED_LIB_DIR\javassl.dll
+data=JAVA_VM_RES_BLD\javassl.odc                                            JAVA_VM_RES_IMG\javassl.odc
+
+
+////////////////////////////////
+// Java Extensions collection //
+////////////////////////////////
+
+// Push
+file=ABI_DIR\BUILD_DIR\javapushcontroller.dll                               SHARED_LIB_DIR\javapushcontroller.dll
+file=ABI_DIR\BUILD_DIR\javapushregistry.dll                                 SHARED_LIB_DIR\javapushregistry.dll
+data=JAVA_VM_RES_BLD\javapushregistry.odc                                   JAVA_VM_RES_IMG\javapushregistry.odc
+
+// Bluetooth
+file=ABI_DIR\BUILD_DIR\javabluecove.dll                                     SHARED_LIB_DIR\javabluecove.dll
+file=ABI_DIR\BUILD_DIR\javabluetooth.dll                                    SHARED_LIB_DIR\javabluetooth.dll
+file=ABI_DIR\BUILD_DIR\javabluetoothcommons.dll                             SHARED_LIB_DIR\javabluetoothcommons.dll
+file=ABI_DIR\BUILD_DIR\javabtgoepscplugin.dll                               SHARED_LIB_DIR\javabtgoepscplugin.dll
+file=ABI_DIR\BUILD_DIR\javabtl2capscplugin.dll                              SHARED_LIB_DIR\javabtl2capscplugin.dll
+file=ABI_DIR\BUILD_DIR\javabtsppscplugin.dll                                SHARED_LIB_DIR\javabtsppscplugin.dll
+data=JAVA_VM_RES_BLD\javabluecove.odc                                       JAVA_VM_RES_IMG\javabluecove.odc
+data=JAVA_VM_RES_BLD\javabluetooth.odc                                      JAVA_VM_RES_IMG\javabluetooth.odc
+data=JAVA_VM_RES_BLD\javabluetoothcommons.odc                               JAVA_VM_RES_IMG\javabluetoothcommons.odc
+
+// WMA
+file=ABI_DIR\BUILD_DIR\javawma.dll                                          SHARED_LIB_DIR\javawma.dll
+file=ABI_DIR\BUILD_DIR\javawmamms.dll                                       SHARED_LIB_DIR\javawmamms.dll
+file=ABI_DIR\BUILD_DIR\javacbsscplugin.dll                                  SHARED_LIB_DIR\javacbsscplugin.dll
+file=ABI_DIR\BUILD_DIR\javammsscplugin.dll                                  SHARED_LIB_DIR\javammsscplugin.dll
+file=ABI_DIR\BUILD_DIR\javasmsscplugin.dll                                  SHARED_LIB_DIR\javasmsscplugin.dll
+data=JAVA_VM_RES_BLD\javawma.odc                                            JAVA_VM_RES_IMG\javawma.odc
+data=JAVA_VM_RES_BLD\javawmamms.odc                                         JAVA_VM_RES_IMG\javawmamms.odc
+
+// Comm
+file=ABI_DIR\BUILD_DIR\javacomm.dll                                         SHARED_LIB_DIR\javacomm.dll
+data=JAVA_VM_RES_BLD\javacomm.odc                                           JAVA_VM_RES_IMG\javacomm.odc
+
+// Datagram
+file=ABI_DIR\BUILD_DIR\javadatagram.dll                                     SHARED_LIB_DIR\javadatagram.dll
+file=ABI_DIR\BUILD_DIR\javadatagramscplugin.dll                             SHARED_LIB_DIR\javadatagramscplugin.dll
+data=JAVA_VM_RES_BLD\javadatagram.odc                                       JAVA_VM_RES_IMG\javadatagram.odc
+
+// Location API
+file=ABI_DIR\BUILD_DIR\javalocation.dll                                     SHARED_LIB_DIR\javalocation.dll
+data=JAVA_VM_RES_BLD\javalocation.odc                                       JAVA_VM_RES_IMG\javalocation.odc
+
+// Sensor API
+file=ABI_DIR\BUILD_DIR\javasensor.dll                                       SHARED_LIB_DIR\javasensor.dll
+data=JAVA_VM_RES_BLD\javasensor.odc                                         JAVA_VM_RES_IMG\javasensor.odc
+
+// Web services API
+file=ABI_DIR\BUILD_DIR\javawebservices.dll                                  SHARED_LIB_DIR\javawebservices.dll
+data=JAVA_VM_RES_BLD\javawebservices.odc                                    JAVA_VM_RES_IMG\javawebservices.odc
+
+// PIM API
+file=ABI_DIR\BUILD_DIR\javapim.dll                                          SHARED_LIB_DIR\javapim.dll
+data=JAVA_VM_RES_BLD\javapim.odc                                            JAVA_VM_RES_IMG\javapim.odc
+
+// RMS API
+file=ABI_DIR\BUILD_DIR\javarms.dll                                          SHARED_LIB_DIR\javarms.dll
+data=JAVA_VM_RES_BLD\javarms.odc                                            JAVA_VM_RES_IMG\javarms.odc
+
+// SATSA API
+file=ABI_DIR\BUILD_DIR\javasatsa.dll                                        SHARED_LIB_DIR\javasatsa.dll
+data=JAVA_VM_RES_BLD\javasatsa.odc                                          JAVA_VM_RES_IMG\javasatsa.odc
+
+// File API
+file=ABI_DIR\BUILD_DIR\javafile.dll                                         SHARED_LIB_DIR\javafile.dll
+data=JAVA_VM_RES_BLD\javafile.odc                                           JAVA_VM_RES_IMG\javafile.odc
+
+// IAP Info API
+file=ABI_DIR\BUILD_DIR\javaiapinfo.dll                                      SHARED_LIB_DIR\javaiapinfo.dll
+data=JAVA_VM_RES_BLD\javaiapinfo.odc                                        JAVA_VM_RES_IMG\javaiapinfo.odc
+
+
+///////////////////
+// Miscellaneous //
+///////////////////
+
+// Generated localization file resources
+data=JAVA_VM_RES_BLD\resources.jar                                          JAVA_VM_RES_IMG\resources.jar
+
+// ODC list files
+data=ZRESOURCE\java\midpOdcList                                             JAVA_RES_IMG\midpodclist
+data=ZRESOURCE\java\installerOdcList                                        JAVA_RES_IMG\installerodclist
+data=ZRESOURCE\java\tckRunnerOdcList                                        JAVA_RES_IMG\tckrunnerodclist
+
+// trust roots list
+data=ZRESOURCE\java\security\trustroots\midprootslist                       JAVA_RES_IMG\security\trustroots\midprootslist
+
+// Java icon size notifier ecom plugin
+ECOM_PLUGIN(javaiconsizenotifplugin.dll, javaiconsizenotifplugin.rsc)
+data=ZRESOURCE\plugins\javaiconsizenotifplugin.rsc ECOM_RESOURCE_DIR\javaiconsizenotifplugin.rsc
+
+#endif
--- a/rom/java_2_2.iby	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,375 +0,0 @@
-/*
-* 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:
-* Image-description file of the Java package for ROFS1.
-*/
-
-#ifndef __JAVA_IBY__
-#define __JAVA_IBY__
-
-#include <data_caging_paths_for_iby.hrh>
-
-// Helper defines
-define JAVA_RES_BLD        ABI_DIR\BUILD_DIR\z\resource\java
-define JAVA_RES_IMG        RESOURCE_FILES_DIR\java
-define JAVA_VM_RES_BLD     JAVA_RES_BLD\jvm\lib\jrt
-define JAVA_VM_RES_IMG     JAVA_RES_IMG\jvm\lib\jrt
-define JAVA_POLICY_BLD     ABI_DIR\BUILD_DIR\z\resource\java\security\policies
-define JAVA_POLICY_IMG     RESOURCE_FILES_DIR\java\security\policies
-
-
-////////////////////////////
-// Java Manager collection//
-////////////////////////////
-
-// stub sis
-data=ZSYSTEM\install\java.sis    System\Install\java.sis
-
-
-// AppMngr plugin
-ECOM_PLUGIN( appmngr2midletplugin.dll, appmngr2midletplugin.rsc )
-data=ZRESOURCE\plugins\appmngr2midletplugin.rsc    ECOM_RESOURCE_DIR\appmngr2midletplugin.rsc
-
-// Captain
-file=ABI_DIR\BUILD_DIR\javacaptain_ext_autostarter.dll             	        SHARED_LIB_DIR\javacaptain_ext_autostarter.dll
-file=ABI_DIR\BUILD_DIR\javacaptain_ext_btdeviceclassmanager.dll             SHARED_LIB_DIR\javacaptain_ext_btdeviceclassmanager.dll
-file=ABI_DIR\BUILD_DIR\javacaptain_ext_config.dll                           SHARED_LIB_DIR\javacaptain_ext_config.dll
-file=ABI_DIR\BUILD_DIR\javacaptain_ext_ondemand_2.dll                       SHARED_LIB_DIR\javacaptain_ext_ondemand_2.dll
-file=ABI_DIR\BUILD_DIR\javacaptain_ext_ondemand_7.dll                       SHARED_LIB_DIR\javacaptain_ext_ondemand_7.dll
-file=ABI_DIR\BUILD_DIR\javacaptain_ext_preinstallerstarter.dll              SHARED_LIB_DIR\javacaptain_ext_preinstallerstarter.dll
-file=ABI_DIR\BUILD_DIR\javacaptain_ext_pushregistryplugin.dll               SHARED_LIB_DIR\javacaptain_ext_pushregistryplugin.dll
-file=ABI_DIR\BUILD_DIR\javacaptain_ext_storageserverplugin.dll              SHARED_LIB_DIR\javacaptain_ext_storageserverplugin.dll
-file=ABI_DIR\BUILD_DIR\javacaptain_ext_settingslistener.dll                 SHARED_LIB_DIR\javacaptain_ext_settingslistener.dll
-file=ABI_DIR\BUILD_DIR\javacaptain.exe                                      PROGRAMS_DIR\javacaptain.exe
-
-// Registry
-file=ABI_DIR\BUILD_DIR\javaregistryclient.dll                               SHARED_LIB_DIR\javaregistryclient.dll
-file=ABI_DIR\BUILD_DIR\javasizehelperclient.dll                             SHARED_LIB_DIR\javasizehelperclient.dll
-file=ABI_DIR\BUILD_DIR\javasizehelperserver.dll                             SHARED_LIB_DIR\javasizehelperserver.dll
-
-// Installer
-ECOM_PLUGIN(ifeui.dll,ifeui.rsc)
-data=ZRESOURCE\plugins\ifeui.rsc                                            ECOM_RESOURCE_DIR\ifeui.rsc
-data=ZPRIVATE\10003a3f\apps\javainstaller_reg.rsc                           \private\10003a3f\import\apps\javainstaller_reg.rsc
-data=ZRESOURCE\apps\javainstaller_loc.rsc                                   APP_RESOURCE_DIR\javainstaller_loc.rsc
-data=ZRESOURCE\apps\javainstaller_icon.mif                                  APP_BITMAP_DIR\javainstaller_icon.mif
-file=ABI_DIR\BUILD_DIR\javainstaller.dll                                    SHARED_LIB_DIR\javainstaller.dll
-data=JAVA_VM_RES_BLD\javainstallerui.odc                                    JAVA_VM_RES_IMG\javainstallerui.odc
-file=ABI_DIR\BUILD_DIR\javainstallerui.dll                                  SHARED_LIB_DIR\javainstallerui.dll
-data=JAVA_VM_RES_BLD\javainstaller.odc                                      JAVA_VM_RES_IMG\javainstaller.odc
-file=ABI_DIR\BUILD_DIR\javainstallerstarter.dll                             PROGRAMS_DIR\javainstallerstarter.dll
-file=ABI_DIR\BUILD_DIR\javapreinstaller.dll                                 PROGRAMS_DIR\javapreinstaller.dll
-data=ZRESOURCE\java\java_app_92.mif                                         JAVA_RES_IMG\java_app.mif
-data=ZRESOURCE\java\java_trusted.png                                        JAVA_RES_IMG\java_trusted.png
-data=ZRESOURCE\java\java_untrusted.png                                      JAVA_RES_IMG\java_untrusted.png
-data=DATAZ_\private\102033E6\installer\inst_plugins.cfg           	    \private\102033E6\installer\inst_plugins.cfg
-
-// Launchers
-file=ABI_DIR\BUILD_DIR\javalauncher.exe                                     PROGRAMS_DIR\javalauncher.exe
-ECOM_PLUGIN(javaappschemeplugin.dll,javaappschemeplugin.rsc)
-data=ZRESOURCE\plugins\javaappschemeplugin.rsc                              ECOM_RESOURCE_DIR\javaappschemeplugin.rsc
-
-// SID Checker
-ECOM_PLUGIN(javasidchecker.dll,10281FBE.rsc)
-data=ZRESOURCE\plugins\javasidchecker.rsc                                   ECOM_RESOURCE_DIR\javasidchecker.rsc
-
-// Recognizers
-ECOM_PLUGIN(recjar.dll, 102031FB.rsc)
-data=ZRESOURCE\plugins\recjar.rsc                                           ECOM_RESOURCE_DIR\recjar.rsc
-
-// Backup & Restore
-file=ABI_DIR\BUILD_DIR\javabackup.exe                                       PROGRAMS_DIR\javabackup.exe
-ECOM_PLUGIN(midp2backupplugin.dll,10282474.rsc)
-data=ZRESOURCE\plugins\midp2backupplugin.rsc                                ECOM_RESOURCE_DIR\midp2backupplugin.rsc
-data=DATAZ_\private\1028246F\backup_registration.xml                        \private\1028246F\backup_registration.xml
-data=DATAZ_\private\102033E6\backup_registration.xml                        \private\102033E6\backup_registration.xml
-
-
-/////////////////////////
-// Java UIs collection //
-/////////////////////////
-
-// CoreUi
-file=ABI_DIR\BUILD_DIR\javacoreui.dll                                       SHARED_LIB_DIR\javacoreui.dll
-data=JAVA_VM_RES_BLD\javacoreui.odc                                         JAVA_VM_RES_IMG\javacoreui.odc
-
-// eSWT
-file=ABI_DIR\BUILD_DIR\eswt.dll                                             SHARED_LIB_DIR\eswt.dll
-data=JAVA_VM_RES_BLD\eswt.odc                                               JAVA_VM_RES_IMG\eswt.odc
-file=ABI_DIR\BUILD_DIR\eswtphysics.dll                                      SHARED_LIB_DIR\eswtphysics.dll
-file=ABI_DIR\BUILD_DIR\eswtapifacade.dll                                    SHARED_LIB_DIR\eswtapifacade.dll
-file=ABI_DIR\BUILD_DIR\eswtdirectcontent.dll                                SHARED_LIB_DIR\eswtdirectcontent.dll
-data=JAVA_VM_RES_BLD\eswtdirectcontent.odc                                  JAVA_VM_RES_IMG\eswtdirectcontent.odc
-data=ZPRIVATE\10003a3f\apps\eswt_reg.rsc                                    \private\10003a3f\import\apps\eswt_reg.rsc
-
-// LCDUI
-file=ABI_DIR\BUILD_DIR\javalcdui.dll                                        SHARED_LIB_DIR\javalcdui.dll
-data=JAVA_VM_RES_BLD\javalcdui.odc                                          JAVA_VM_RES_IMG\javalcdui.odc
-file=ABI_DIR\BUILD_DIR\lcdui.dll                                            SHARED_LIB_DIR\lcdui.dll
-file=ABI_DIR\BUILD_DIR\lcdgr.dll                                            SHARED_LIB_DIR\lcdgr.dll
-file=ABI_DIR\BUILD_DIR\lcdgdrv.dll                                          SHARED_LIB_DIR\lcdgdrv.dll
-file=ABI_DIR\BUILD_DIR\lcdgdrvi.dll                                         SHARED_LIB_DIR\lcdgdrvi.dll
-file=ABI_DIR\BUILD_DIR\lcduiphysicswrap.dll                                 SHARED_LIB_DIR\lcduiphysicswrap.dll
-ECOM_PLUGIN(LCDC4K.dll, 10208164.rsc)
-ECOM_PLUGIN(LCDC64K.dll, 10208162.rsc)
-ECOM_PLUGIN(LCDC16MU.dll, 10208166.rsc)
-ECOM_PLUGIN(LCDC16MA.dll, 10208168.rsc)
-data=ZRESOURCE\java\lcdgr.rsc                                               JAVA_RES_IMG\lcdgr.rsc
-data=ZPRIVATE\10003a3f\apps\lcdui_reg.rsc                                   \private\10003a3f\import\apps\lcdui_reg.rsc
-
-SCALABLE_IMAGE(APP_BITMAP_DIR,APP_BITMAP_DIR,lcdui)
-
-// AMMS API
-file=ABI_DIR\BUILD_DIR\javaamms.dll                                         SHARED_LIB_DIR\javaamms.dll
-data=JAVA_VM_RES_BLD\javaamms.odc                                           JAVA_VM_RES_IMG\javaamms.odc
-
-// Mobile Media API
-file=ABI_DIR\BUILD_DIR\javamobilemedia.dll                                  SHARED_LIB_DIR\javamobilemedia.dll
-data=JAVA_VM_RES_BLD\javamobilemedia.odc                                    JAVA_VM_RES_IMG\javamobilemedia.odc
-data=ABI_DIR\BUILD_DIR\z\system\sounds\digital\CamcorderJavaCapture.wav     \System\Sounds\Digital\CamcorderJavaCapture.wav
-data=ABI_DIR\BUILD_DIR\z\system\sounds\digital\CamcorderJavaStart.wav       \System\Sounds\Digital\CamcorderJavaStart.wav
-
-// MobInfo API
-file=ABI_DIR\BUILD_DIR\javamobinfo.dll                                      SHARED_LIB_DIR\javamobinfo.dll
-data=JAVA_VM_RES_BLD\javamobinfo.odc                                        JAVA_VM_RES_IMG\javamobinfo.odc
-
-// GlobalIndicators API
-file=ABI_DIR\BUILD_DIR\javaglobalindicators.dll                             SHARED_LIB_DIR\javaglobalindicators.dll
-data=JAVA_VM_RES_BLD\javaglobalindicators.odc                               JAVA_VM_RES_IMG\javaglobalindicators.odc
-
-// SoftNotification API
-file=ABI_DIR\BUILD_DIR\javasoftnotification.dll                             SHARED_LIB_DIR\javasoftnotification.dll
-data=JAVA_VM_RES_BLD\javasoftnotification.odc                               JAVA_VM_RES_IMG\javasoftnotification.odc
-
-// 2G API
-file=ABI_DIR\BUILD_DIR\javam2g.dll                                          SHARED_LIB_DIR\javam2g.dll
-data=JAVA_VM_RES_BLD\javam2g.odc                                            JAVA_VM_RES_IMG\javam2g.odc
-
-// 3G API
-file=ABI_DIR\BUILD_DIR\javam3g.dll                                          SHARED_LIB_DIR\javam3g.dll
-data=JAVA_VM_RES_BLD\javam3g.odc                                            JAVA_VM_RES_IMG\javam3g.odc
-
-// Nokia Sound API
-file=ABI_DIR\BUILD_DIR\javanokiasound.dll                                   SHARED_LIB_DIR\javanokiasound.dll
-data=JAVA_VM_RES_BLD\javanokiasound.odc                                     JAVA_VM_RES_IMG\javanokiasound.odc
-
-// Remote Connection Observer
-file=ABI_DIR\BUILD_DIR\javaremconobserver.dll                               SHARED_LIB_DIR\javaremconobserver.dll
-
-// Legacy utilities
-file=ABI_DIR\BUILD_DIR\javalegacyutils.dll                                  SHARED_LIB_DIR\javalegacyutils.dll
-data=JAVA_VM_RES_BLD\javalegacyutils.odc                                    JAVA_VM_RES_IMG\javalegacyutils.odc
-
-
-/////////////////////////////
-// Java Runtimes collection //
-/////////////////////////////
-
-// Runtime utilities
-file=ABI_DIR\BUILD_DIR\javaruntimeui.dll                                    SHARED_LIB_DIR\javaruntimeui.dll
-data=JAVA_VM_RES_BLD\javaruntimeui.odc                                      JAVA_VM_RES_IMG\javaruntimeui.odc
-file=ABI_DIR\BUILD_DIR\javaruntimestarterutils.dll                          SHARED_LIB_DIR\javaruntimestarterutils.dll
-file=ABI_DIR\BUILD_DIR\javastarter.dll                                      SHARED_LIB_DIR\javastarter.dll
-
-// MIDP runtime
-file=ABI_DIR\BUILD_DIR\javamidp.exe                                         PROGRAMS_DIR\javamidp.exe
-file=ABI_DIR\BUILD_DIR\javamidpstarter.dll                                  SHARED_LIB_DIR\javamidpstarter.dll
-file=ABI_DIR\BUILD_DIR\javamidpruntime.dll                                  SHARED_LIB_DIR\javamidpruntime.dll
-data=JAVA_VM_RES_BLD\javamidpruntime.odc                                    JAVA_VM_RES_IMG\javamidpruntime.odc
-
-// An empty JVM argument modifier (to prevent 3rd parties from installing a DLL with this name)
-// To enable JVM argument modifier - comment 1st line below and uncomment 2nd line below
-file=ABI_DIR\BUILD_DIR\javajvmargsmodifier.dll                              SHARED_LIB_DIR\javajvmargsmodifier.dll
-//file=ABI_DIR\BUILD_DIR\javajvmargsmodifierfile.dll                        SHARED_LIB_DIR\javajvmargsmodifier.dll
-
-
-/////////////////////////////
-// Java Commons collection //
-/////////////////////////////
-
-// J9 JVM
-file=ABI_DIR\BUILD_DIR\j9.dll                                               SHARED_LIB_DIR\j9.dll
-file=ABI_DIR\BUILD_DIR\j9vmall23.dll                                        SHARED_LIB_DIR\j9vmall23.dll
-file=ABI_DIR\BUILD_DIR\j9mjit23.dll                                         SHARED_LIB_DIR\j9mjit23.dll
-file=ABI_DIR\BUILD_DIR\jclcldc11_23.dll                                     SHARED_LIB_DIR\jclcldc11_23.dll
-file=ABI_DIR\BUILD_DIR\jclcdc11_23.dll                                      SHARED_LIB_DIR\jclcdc11_23.dll
-file=ABI_DIR\BUILD_DIR\j9fdm23.dll                                          SHARED_LIB_DIR\j9fdm23.dll
-file=ABI_DIR\BUILD_DIR\JvmNativePort.dll                                    SHARED_LIB_DIR\JvmNativePort.dll
-data=JAVA_RES_BLD\jvm\bin\java.properties                                   JAVA_RES_IMG\jvm\bin\java.properties
-data=JAVA_RES_BLD\jvm\lib\security\java.policy                              JAVA_RES_IMG\jvm\lib\security\java.policy
-data=JAVA_RES_BLD\jvm\lib\security\java.security                            JAVA_RES_IMG\jvm\lib\security\java.security
-
-// Utilities
-file=ABI_DIR\BUILD_DIR\javautils.dll                                        SHARED_LIB_DIR\javautils.dll
-data=JAVA_VM_RES_BLD\javautils.odc                                          JAVA_VM_RES_IMG\javautils.odc
-file=ABI_DIR\BUILD_DIR\javacomms.dll                                        SHARED_LIB_DIR\javacomms.dll
-data=JAVA_VM_RES_BLD\javacomms.odc                                          JAVA_VM_RES_IMG\javacomms.odc
-file=ABI_DIR\BUILD_DIR\javaipc.dll                                          SHARED_LIB_DIR\javaipc.dll
-file=ABI_DIR\BUILD_DIR\javafileutils.dll                                    SHARED_LIB_DIR\javafileutils.dll
-data=JAVA_VM_RES_BLD\javafileutils.odc                                      JAVA_VM_RES_IMG\javafileutils.odc
-file=ABI_DIR\BUILD_DIR\javadebugapi.dll                                     SHARED_LIB_DIR\javadebugapi.dll
-
-// Security dlls
-file=ABI_DIR\BUILD_DIR\javasecurity.dll                                     SHARED_LIB_DIR\javasecurity.dll
-data=JAVA_VM_RES_BLD\javasecurity.odc                                       JAVA_VM_RES_IMG\javasecurity.odc
-ECOM_PLUGIN(javaunicertstoreplugin.dll,200213A3.rsc)
-data=ZRESOURCE\plugins\javaunicertstoreplugin.rsc                           ECOM_RESOURCE_DIR\javaunicertstoreplugin.rsc
-
-// Security certs & policies
-data=JAVA_POLICY_BLD\s60_manufacturer.ser                                   JAVA_POLICY_IMG\s60_manufacturer.ser
-data=JAVA_POLICY_BLD\s60_operator.ser                                       JAVA_POLICY_IMG\s60_operator.ser
-data=JAVA_POLICY_BLD\s60_trustedthirdparty.ser                              JAVA_POLICY_IMG\s60_trustedthirdparty.ser
-data=JAVA_POLICY_BLD\s60_untrusted.ser                                      JAVA_POLICY_IMG\s60_untrusted.ser
-data=JAVA_POLICY_BLD\msa_manufacturer.ser                                   JAVA_POLICY_IMG\msa_manufacturer.ser
-data=JAVA_POLICY_BLD\msa_operator.ser                                       JAVA_POLICY_IMG\msa_operator.ser
-data=JAVA_POLICY_BLD\msa_trustedthirdparty.ser                              JAVA_POLICY_IMG\msa_trustedthirdparty.ser
-data=JAVA_POLICY_BLD\msa_untrusted.ser                                      JAVA_POLICY_IMG\msa_untrusted.ser
-data=JAVA_POLICY_BLD\att_manufacturer.ser                                   JAVA_POLICY_IMG\att_manufacturer.ser
-data=JAVA_POLICY_BLD\att_operator.ser                                       JAVA_POLICY_IMG\att_operator.ser
-data=JAVA_POLICY_BLD\att_operatorextra.ser                                  JAVA_POLICY_IMG\att_operatorextra.ser
-data=JAVA_POLICY_BLD\att_trustedthirdparty.ser                              JAVA_POLICY_IMG\att_trustedthirdparty.ser
-data=JAVA_POLICY_BLD\att_untrusted.ser                                      JAVA_POLICY_IMG\att_untrusted.ser
-data=JAVA_POLICY_BLD\all.ser                                                JAVA_POLICY_IMG\all.ser
-
-
-// Java environment info
-file=ABI_DIR\BUILD_DIR\javaenvinfo.dll                                      SHARED_LIB_DIR\javaenvinfo.dll
-data=ABI_DIR\BUILD_DIR\Z\Resource\versions\java.txt                         RESOURCE_FILES_DIR\versions\java.txt
-
-// Storage
-file=ABI_DIR\BUILD_DIR\javastorage.dll                                      SHARED_LIB_DIR\javastorage.dll
-data=JAVA_VM_RES_BLD\javastorage.odc                                        JAVA_VM_RES_IMG\javastorage.odc
-
-// GCF base
-file=ABI_DIR\BUILD_DIR\javagcf.dll                                          SHARED_LIB_DIR\javagcf.dll
-data=JAVA_VM_RES_BLD\javagcf.odc                                            JAVA_VM_RES_IMG\javagcf.odc
-
-// Connection Manager
-file=ABI_DIR\BUILD_DIR\javaconnectionmanager.dll                            SHARED_LIB_DIR\javaconnectionmanager.dll
-data=JAVA_VM_RES_BLD\javaconnectionmanager.odc                              JAVA_VM_RES_IMG\javaconnectionmanager.odc
-
-// Http & https protocols
-file=ABI_DIR\BUILD_DIR\javahttp.dll                                         SHARED_LIB_DIR\javahttp.dll
-file=ABI_DIR\BUILD_DIR\javahttps.dll                                        SHARED_LIB_DIR\javahttps.dll
-data=JAVA_VM_RES_BLD\javahttp.odc                                           JAVA_VM_RES_IMG\javahttp.odc
-data=JAVA_VM_RES_BLD\javahttps.odc                                          JAVA_VM_RES_IMG\javahttps.odc
-
-// Socket protocol
-file=ABI_DIR\BUILD_DIR\javasocket.dll                                       SHARED_LIB_DIR\javasocket.dll
-file=ABI_DIR\BUILD_DIR\javasocketscplugin.dll                               SHARED_LIB_DIR\javasocketscplugin.dll
-data=JAVA_VM_RES_BLD\javasocket.odc                                         JAVA_VM_RES_IMG\javasocket.odc
-
-// Secure socket protocol
-file=ABI_DIR\BUILD_DIR\javassl.dll                                          SHARED_LIB_DIR\javassl.dll
-data=JAVA_VM_RES_BLD\javassl.odc                                            JAVA_VM_RES_IMG\javassl.odc
-
-
-////////////////////////////////
-// Java Extensions collection //
-////////////////////////////////
-
-// Push
-file=ABI_DIR\BUILD_DIR\javapushcontroller.dll                               SHARED_LIB_DIR\javapushcontroller.dll
-file=ABI_DIR\BUILD_DIR\javapushregistry.dll                                 SHARED_LIB_DIR\javapushregistry.dll
-data=JAVA_VM_RES_BLD\javapushregistry.odc                                   JAVA_VM_RES_IMG\javapushregistry.odc
-
-// Bluetooth
-file=ABI_DIR\BUILD_DIR\javabluecove.dll                                     SHARED_LIB_DIR\javabluecove.dll
-file=ABI_DIR\BUILD_DIR\javabluetooth.dll                                    SHARED_LIB_DIR\javabluetooth.dll
-file=ABI_DIR\BUILD_DIR\javabluetoothcommons.dll                             SHARED_LIB_DIR\javabluetoothcommons.dll
-file=ABI_DIR\BUILD_DIR\javabtgoepscplugin.dll                               SHARED_LIB_DIR\javabtgoepscplugin.dll
-file=ABI_DIR\BUILD_DIR\javabtl2capscplugin.dll                              SHARED_LIB_DIR\javabtl2capscplugin.dll
-file=ABI_DIR\BUILD_DIR\javabtsppscplugin.dll                                SHARED_LIB_DIR\javabtsppscplugin.dll
-data=JAVA_VM_RES_BLD\javabluecove.odc                                       JAVA_VM_RES_IMG\javabluecove.odc
-data=JAVA_VM_RES_BLD\javabluetooth.odc                                      JAVA_VM_RES_IMG\javabluetooth.odc
-data=JAVA_VM_RES_BLD\javabluetoothcommons.odc                               JAVA_VM_RES_IMG\javabluetoothcommons.odc
-
-// WMA
-file=ABI_DIR\BUILD_DIR\javawma.dll                                          SHARED_LIB_DIR\javawma.dll
-file=ABI_DIR\BUILD_DIR\javawmamms.dll                                       SHARED_LIB_DIR\javawmamms.dll
-file=ABI_DIR\BUILD_DIR\javacbsscplugin.dll                                  SHARED_LIB_DIR\javacbsscplugin.dll
-file=ABI_DIR\BUILD_DIR\javammsscplugin.dll                                  SHARED_LIB_DIR\javammsscplugin.dll
-file=ABI_DIR\BUILD_DIR\javasmsscplugin.dll                                  SHARED_LIB_DIR\javasmsscplugin.dll
-data=JAVA_VM_RES_BLD\javawma.odc                                            JAVA_VM_RES_IMG\javawma.odc
-data=JAVA_VM_RES_BLD\javawmamms.odc                                         JAVA_VM_RES_IMG\javawmamms.odc
-
-// Comm
-file=ABI_DIR\BUILD_DIR\javacomm.dll                                         SHARED_LIB_DIR\javacomm.dll
-data=JAVA_VM_RES_BLD\javacomm.odc                                           JAVA_VM_RES_IMG\javacomm.odc
-
-// Datagram
-file=ABI_DIR\BUILD_DIR\javadatagram.dll                                     SHARED_LIB_DIR\javadatagram.dll
-file=ABI_DIR\BUILD_DIR\javadatagramscplugin.dll                             SHARED_LIB_DIR\javadatagramscplugin.dll
-data=JAVA_VM_RES_BLD\javadatagram.odc                                       JAVA_VM_RES_IMG\javadatagram.odc
-
-// Location API
-file=ABI_DIR\BUILD_DIR\javalocation.dll                                     SHARED_LIB_DIR\javalocation.dll
-data=JAVA_VM_RES_BLD\javalocation.odc                                       JAVA_VM_RES_IMG\javalocation.odc
-
-// Sensor API
-file=ABI_DIR\BUILD_DIR\javasensor.dll                                       SHARED_LIB_DIR\javasensor.dll
-data=JAVA_VM_RES_BLD\javasensor.odc                                         JAVA_VM_RES_IMG\javasensor.odc
-
-// Web services API
-file=ABI_DIR\BUILD_DIR\javawebservices.dll                                  SHARED_LIB_DIR\javawebservices.dll
-data=JAVA_VM_RES_BLD\javawebservices.odc                                    JAVA_VM_RES_IMG\javawebservices.odc
-
-// PIM API
-file=ABI_DIR\BUILD_DIR\javapim.dll                                          SHARED_LIB_DIR\javapim.dll
-data=JAVA_VM_RES_BLD\javapim.odc                                            JAVA_VM_RES_IMG\javapim.odc
-
-// RMS API
-file=ABI_DIR\BUILD_DIR\javarms.dll                                          SHARED_LIB_DIR\javarms.dll
-data=JAVA_VM_RES_BLD\javarms.odc                                            JAVA_VM_RES_IMG\javarms.odc
-
-// SATSA API
-file=ABI_DIR\BUILD_DIR\javasatsa.dll                                        SHARED_LIB_DIR\javasatsa.dll
-data=JAVA_VM_RES_BLD\javasatsa.odc                                          JAVA_VM_RES_IMG\javasatsa.odc
-
-// File API
-file=ABI_DIR\BUILD_DIR\javafile.dll                                         SHARED_LIB_DIR\javafile.dll
-data=JAVA_VM_RES_BLD\javafile.odc                                           JAVA_VM_RES_IMG\javafile.odc
-
-// IAP Info API
-file=ABI_DIR\BUILD_DIR\javaiapinfo.dll                                      SHARED_LIB_DIR\javaiapinfo.dll
-data=JAVA_VM_RES_BLD\javaiapinfo.odc                                        JAVA_VM_RES_IMG\javaiapinfo.odc
-
-// CentralRepository API
-file=ABI_DIR\BUILD_DIR\javacentrep.dll                                      SHARED_LIB_DIR\javacentrep.dll
-data=JAVA_VM_RES_BLD\javacentrep.odc                                        JAVA_VM_RES_IMG\javacentrep.odc
-
-///////////////////
-// Miscellaneous //
-///////////////////
-
-// Generated localization file resources
-data=JAVA_VM_RES_BLD\resources.jar                                          JAVA_VM_RES_IMG\resources.jar
-
-// ODC list files
-data=ZRESOURCE\java\midpOdcList                                             JAVA_RES_IMG\midpodclist
-data=ZRESOURCE\java\installerOdcList                                        JAVA_RES_IMG\installerodclist
-data=ZRESOURCE\java\tckRunnerOdcList                                        JAVA_RES_IMG\tckrunnerodclist
-data=ZRESOURCE\java\javacontrolpanelodclist                                 JAVA_RES_IMG\javacontrolpanelodclist
-
-// trust roots list
-data=ZRESOURCE\java\security\trustroots\midprootslist                       JAVA_RES_IMG\security\trustroots\midprootslist
-
-// Utility for Services team
-file=ABI_DIR\BUILD_DIR\javaupgradeapp.exe                                   PROGRAMS_DIR\javaupgradeapp.exe
-
-// Java icon size notifier ecom plugin
-ECOM_PLUGIN(javaiconsizenotifplugin.dll, javaiconsizenotifplugin.rsc)
-data=ZRESOURCE\plugins\javaiconsizenotifplugin.rsc ECOM_RESOURCE_DIR\javaiconsizenotifplugin.rsc
-
-#endif
--- a/rom/java_3_1.iby	Wed Sep 15 12:05:25 2010 +0300
+++ b/rom/java_3_1.iby	Wed Oct 13 14:23:59 2010 +0300
@@ -36,12 +36,13 @@
 // stub sis
 data=ZSYSTEM\install\java.sis    System\Install\java.sis
 
+#ifdef RD_JAVA_APPLICATION_SETTINGS_QT
 // Application settings
-file=ABI_DIR\BUILD_DIR\javaapplicationsettingsview.dll                              SHARED_LIB_DIR\javaapplicationsettingsview.dll
-data=DATAZ_\resource\qt\plugins\appsettings\javaapplicationsettingsview.qtplugin 		resource\qt\plugins\appsettings\javaapplicationsettingsview.qtplugin
+//file=ABI_DIR\BUILD_DIR\javaapplicationsettingsview.dll             SHARED_LIB_DIR\javaapplicationsettingsview.dll
+//data=DATAZ_\resource\qt\plugins\appsettings\javaapplicationsettingsview.qtplugin 													resource\qt\plugins\appsettings\javaapplicationsettingsview.qtplugin
+#endif
 
 // Captain
-file=ABI_DIR\BUILD_DIR\javacaptain_ext_autostarter.dll             	        SHARED_LIB_DIR\javacaptain_ext_autostarter.dll
 file=ABI_DIR\BUILD_DIR\javacaptain_ext_btdeviceclassmanager.dll             SHARED_LIB_DIR\javacaptain_ext_btdeviceclassmanager.dll
 file=ABI_DIR\BUILD_DIR\javacaptain_ext_config.dll                           SHARED_LIB_DIR\javacaptain_ext_config.dll
 file=ABI_DIR\BUILD_DIR\javacaptain_ext_ondemand_2.dll                       SHARED_LIB_DIR\javacaptain_ext_ondemand_2.dll
@@ -61,6 +62,8 @@
 file=ABI_DIR\BUILD_DIR\javasizehelperserver.dll                             SHARED_LIB_DIR\javasizehelperserver.dll
 
 // Installer
+ECOM_PLUGIN(ifeui.dll,ifeui.rsc)
+data=ZRESOURCE\plugins\ifeui.rsc                                            ECOM_RESOURCE_DIR\ifeui.rsc
 data=ZPRIVATE\10003a3f\apps\javainstaller_reg.rsc                           \private\10003a3f\import\apps\javainstaller_reg.rsc
 data=ZRESOURCE\apps\javainstaller_loc.rsc                                   APP_RESOURCE_DIR\javainstaller_loc.rsc
 data=ZRESOURCE\apps\javainstaller_icon.mif                                  APP_BITMAP_DIR\javainstaller_icon.mif
@@ -71,21 +74,23 @@
 file=ABI_DIR\BUILD_DIR\javainstallerstarter.dll                             PROGRAMS_DIR\javainstallerstarter.dll
 file=ABI_DIR\BUILD_DIR\javapreinstaller.dll                                 PROGRAMS_DIR\javapreinstaller.dll
 data=ZRESOURCE\java\java_app_92.mif                                         JAVA_RES_IMG\java_app.mif
-data=ZRESOURCE\java\java_3_trusted.png                                      JAVA_RES_IMG\java_3_trusted.png
-data=ZRESOURCE\java\java_3_untrusted.png                                    JAVA_RES_IMG\java_3_untrusted.png
-data=ZRESOURCE\java\javaapplicationinstaller.css                            JAVA_RES_IMG\javaapplicationinstaller.css
+data=ZRESOURCE\java\java_trusted.png                                        JAVA_RES_IMG\java_trusted.png
+data=ZRESOURCE\java\java_untrusted.png                                      JAVA_RES_IMG\java_untrusted.png
 data=DATAZ_\private\102033E6\installer\inst_plugins.cfg                     \private\102033E6\installer\inst_plugins.cfg
 
 // Launchers
 file=ABI_DIR\BUILD_DIR\javalauncher.exe                                     PROGRAMS_DIR\javalauncher.exe
-file=ABI_DIR\BUILD_DIR\javaappscheme.exe                                    PROGRAMS_DIR\javaappscheme.exe
-file=ABI_DIR\BUILD_DIR\javaqtrequest.exe                                    PROGRAMS_DIR\javaqtrequest.exe
+ECOM_PLUGIN(javaappschemeplugin.dll,javaappschemeplugin.rsc)
+data=ZRESOURCE\plugins\javaappschemeplugin.rsc                              ECOM_RESOURCE_DIR\javaappschemeplugin.rsc
+
+// SID Checker
+ECOM_PLUGIN(javasidchecker.dll,javasidchecker.rsc)
+data=ZRESOURCE\plugins\javasidchecker.rsc                                   ECOM_RESOURCE_DIR\javasidchecker.rsc
 
 #ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
 // Usif installer plugin
 ECOM_PLUGIN(javasifplugin.dll,javasifplugin.rsc)
 data=ZRESOURCE\plugins\javasifplugin.rsc                                    ECOM_RESOURCE_DIR\javasifplugin.rsc
-file=ABI_DIR\BUILD_DIR\javainstallcopier.exe                                PROGRAMS_DIR\javainstallcopier.exe
 #endif
 
 // Recognizers
@@ -113,13 +118,22 @@
 // eSWT
 file=ABI_DIR\BUILD_DIR\eswtqt.dll                                             SHARED_LIB_DIR\eswtqt.dll
 data=JAVA_VM_RES_BLD\eswtqt.odc                                               JAVA_VM_RES_IMG\eswtqt.odc
-file=ABI_DIR\BUILD_DIR\eswtqtwebkit.dll                                       SHARED_LIB_DIR\eswtqtwebkit.dll
-data=JAVA_VM_RES_BLD\eswtqtwebkit.odc                                         JAVA_VM_RES_IMG\eswtqtwebkit.odc
 
 // LCDUI
 file=ABI_DIR\BUILD_DIR\openlcdui.dll                                        SHARED_LIB_DIR\openlcdui.dll
 data=JAVA_VM_RES_BLD\openlcdui.odc                                          JAVA_VM_RES_IMG\openlcdui.odc
-
+// AMMS API
+/*
+file=ABI_DIR\BUILD_DIR\javaamms.dll                                         SHARED_LIB_DIR\javaamms.dll
+data=JAVA_VM_RES_BLD\javaamms.odc                                           JAVA_VM_RES_IMG\javaamms.odc
+*/
+// Mobile Media API
+/*
+file=ABI_DIR\BUILD_DIR\javamobilemedia.dll                                  SHARED_LIB_DIR\javamobilemedia.dll
+data=JAVA_VM_RES_BLD\javamobilemedia.odc                                    JAVA_VM_RES_IMG\javamobilemedia.odc
+data=ABI_DIR\BUILD_DIR\z\system\sounds\digital\CamcorderJavaCapture.wav     \System\Sounds\Digital\CamcorderJavaCapture.wav
+data=ABI_DIR\BUILD_DIR\z\system\sounds\digital\CamcorderJavaStart.wav       \System\Sounds\Digital\CamcorderJavaStart.wav
+*/
 // MobInfo API
 file=ABI_DIR\BUILD_DIR\javamobinfo.dll                                      SHARED_LIB_DIR\javamobinfo.dll
 data=JAVA_VM_RES_BLD\javamobinfo.odc                                        JAVA_VM_RES_IMG\javamobinfo.odc
@@ -133,26 +147,31 @@
 data=JAVA_VM_RES_BLD\javasoftnotification.odc                               JAVA_VM_RES_IMG\javasoftnotification.odc
 */
 
-// M2G API
+// 2G API
 /*file=ABI_DIR\BUILD_DIR\javam2g.dll                                          SHARED_LIB_DIR\javam2g.dll
 data=JAVA_VM_RES_BLD\javam2g.odc                                            JAVA_VM_RES_IMG\javam2g.odc
 */
-// M3G API
-file=ABI_DIR\BUILD_DIR\javam3g.dll                                          SHARED_LIB_DIR\javam3g.dll
+// 3G API
+/*file=ABI_DIR\BUILD_DIR\javam3g.dll                                          SHARED_LIB_DIR\javam3g.dll
 data=JAVA_VM_RES_BLD\javam3g.odc                                            JAVA_VM_RES_IMG\javam3g.odc
-
+*/
 // Nokia UI API
 file=ABI_DIR\BUILD_DIR\javanokiaui.dll                                     SHARED_LIB_DIR\javanokiaui.dll
 data=JAVA_VM_RES_BLD\javanokiaui.odc                                       JAVA_VM_RES_IMG\javanokiaui.odc
 
 // Nokia Sound API
-file=ABI_DIR\BUILD_DIR\javanokiasound.dll                                   SHARED_LIB_DIR\javanokiasound.dll
+/*file=ABI_DIR\BUILD_DIR\javanokiasound.dll                                   SHARED_LIB_DIR\javanokiasound.dll
 data=JAVA_VM_RES_BLD\javanokiasound.odc                                     JAVA_VM_RES_IMG\javanokiasound.odc
+*/
 
 // Remote Connection Observer
 /*file=ABI_DIR\BUILD_DIR\javaremconobserver.dll                               SHARED_LIB_DIR\javaremconobserver.dll
 */
 
+// Legacy utilities
+file=ABI_DIR\BUILD_DIR\javalegacyutils.dll                                  SHARED_LIB_DIR\javalegacyutils.dll
+data=JAVA_VM_RES_BLD\javalegacyutils.odc                                    JAVA_VM_RES_IMG\javalegacyutils.odc
+
 
 /////////////////////////////
 // Java Runtimes collection //
@@ -162,7 +181,6 @@
 file=ABI_DIR\BUILD_DIR\javaruntimeui.dll                                    SHARED_LIB_DIR\javaruntimeui.dll
 data=JAVA_VM_RES_BLD\javaruntimeui.odc                                      JAVA_VM_RES_IMG\javaruntimeui.odc
 file=ABI_DIR\BUILD_DIR\javaruntimestarterutils.dll                          SHARED_LIB_DIR\javaruntimestarterutils.dll
-file=ABI_DIR\BUILD_DIR\javastarter.dll                                      SHARED_LIB_DIR\javastarter.dll
 
 // MIDP runtime
 file=ABI_DIR\BUILD_DIR\javamidp.exe                                         PROGRAMS_DIR\javamidp.exe
@@ -327,19 +345,6 @@
 file=ABI_DIR\BUILD_DIR\javaiapinfo.dll                                      SHARED_LIB_DIR\javaiapinfo.dll
 data=JAVA_VM_RES_BLD\javaiapinfo.odc                                        JAVA_VM_RES_IMG\javaiapinfo.odc
 
-// MMAPI
-file=ABI_DIR\BUILD_DIR\javamobilemedia.dll                                      SHARED_LIB_DIR\javamobilemedia.dll
-data=JAVA_VM_RES_BLD\javamobilemedia.odc                                        JAVA_VM_RES_IMG\javamobilemedia.odc
-data=ABI_DIR\BUILD_DIR\z\system\sounds\digital\CamcorderJavaCapture.wav     \System\Sounds\Digital\CamcorderJavaCapture.wav
-data=ABI_DIR\BUILD_DIR\z\system\sounds\digital\CamcorderJavaStart.wav       \System\Sounds\Digital\CamcorderJavaStart.wav
-
-// AMMS
-file=ABI_DIR\BUILD_DIR\javaamms.dll                                      SHARED_LIB_DIR\javaamms.dll
-data=JAVA_VM_RES_BLD\javaamms.odc                                        JAVA_VM_RES_IMG\javaamms.odc
-
-// CentralRepository API
-file=ABI_DIR\BUILD_DIR\javacentrep.dll                                      SHARED_LIB_DIR\javacentrep.dll
-data=JAVA_VM_RES_BLD\javacentrep.odc                                        JAVA_VM_RES_IMG\javacentrep.odc
 
 ///////////////////
 // Miscellaneous //
@@ -352,12 +357,8 @@
 data=ZRESOURCE\java\midpOdcList                                             JAVA_RES_IMG\midpodclist
 data=ZRESOURCE\java\installerOdcList                                        JAVA_RES_IMG\installerodclist
 data=ZRESOURCE\java\tckRunnerOdcList                                        JAVA_RES_IMG\tckrunnerodclist
-data=ZRESOURCE\java\javacontrolpanelodclist                                 JAVA_RES_IMG\javacontrolpanelodclist
 
 // trust roots list
 data=ZRESOURCE\java\security\trustroots\midprootslist                       JAVA_RES_IMG\security\trustroots\midprootslist
 
-// Utility for Services team
-file=ABI_DIR\BUILD_DIR\javaupgradeapp.exe                                   PROGRAMS_DIR\javaupgradeapp.exe
-
 #endif
--- a/rom/javacontrolpanelodclist	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-javautils.odc
-javacomms.odc
-javalegacyutils.odc
-eswt.odc
-eswtdirectcontent.odc
-resources.jar
-javacontrolpanel.odc
--- a/rom/javacontrolpanelodclist30	Wed Sep 15 12:05:25 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-javautils.odc
-javacomms.odc
-eswtqt.odc
-resources.jar
-javacontrolpanel.odc
--- a/rom/javatest.iby	Wed Sep 15 12:05:25 2010 +0300
+++ b/rom/javatest.iby	Wed Oct 13 14:23:59 2010 +0300
@@ -46,10 +46,9 @@
 data=JAVA_CERT_BLD\test_trustedthirdparty.der        JAVA_CERT_IMG\test_trustedthirdparty.der
 data=JAVA_CERT_BLD\test_trustedthirdparty.metadata   JAVA_CERT_IMG\test_trustedthirdparty.metadata
 
-// Java Control Panel test utility
-file=ABI_DIR\BUILD_DIR\javacontrolpanel.exe             PROGRAMS_DIR\javacontrolpanel.exe
-file=ABI_DIR\BUILD_DIR\javacontrolpanel.dll             SHARED_LIB_DIR\javacontrolpanel.dll
-data=JAVA_VM_ODC_BLD\javacontrolpanel.odc               JAVA_VM_ODC_IMG\javacontrolpanel.odc
-data=ZPRIVATE\10003a3f\apps\javacontrolpanel_reg.rsc    \private\10003a3f\import\apps\javacontrolpanel_reg.rsc
+// JavaCap App test utility
+file=ABI_DIR\BUILD_DIR\JavaCap.exe              PROGRAMS_DIR\JavaCap.exe
+data=ZPRIVATE\10003a3f\apps\JavaCap_reg.rsc     \private\10003a3f\import\apps\JavaCap_reg.rsc
+data=\epoc32\data\z\resource\apps\JavaCap.rsc   \resource\apps\JavaCap.rsc
 
 #endif
--- a/rom/midpodclist	Wed Sep 15 12:05:25 2010 +0300
+++ b/rom/midpodclist	Wed Oct 13 14:23:59 2010 +0300
@@ -41,5 +41,4 @@
 javawebservices.odc
 javawma.odc
 javawmamms.odc
-javacentrep.odc
 resources.jar
--- a/rom/midpodclist30	Wed Sep 15 12:05:25 2010 +0300
+++ b/rom/midpodclist30	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,4 @@
 eswtqt.odc
-javaamms.odc
 javabluecove.odc
 javabluetooth.odc
 javabluetoothcommons.odc
@@ -18,7 +17,6 @@
 javam3g.odc
 javamidpruntime.odc
 javamobinfo.odc
-javamobilemedia.odc
 javanokiasound.odc
 javapim.odc
 javapushregistry.odc
@@ -36,6 +34,5 @@
 javawmamms.odc
 openlcdui.odc
 javanokiaui.odc
-javacentrep.odc
 resources.jar