summaryrefslogtreecommitdiffstats
path: root/connectivity
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2013-01-16 15:16:05 +0200
committerNoel Grandin <noel@peralex.com>2013-02-11 08:02:10 +0200
commit9a36294079a13d713490ed754be441d9dbc214ce (patch)
tree6bd7c23e2cdfba1d03dedf689646e67bae0cca54 /connectivity
parentuse static/reinterpret_cast and minor rewrite (diff)
downloadcore-9a36294079a13d713490ed754be441d9dbc214ce.tar.gz
core-9a36294079a13d713490ed754be441d9dbc214ce.zip
fdo#46808, Adapt java::JavaVirtualMachine UNO service to new style
Change-Id: Ib0329b9cdc4290ce98c4182e8466c1b44b408341
Diffstat (limited to 'connectivity')
-rw-r--r--connectivity/inc/connectivity/CommonTools.hxx6
-rw-r--r--connectivity/source/commontools/CommonTools.cxx17
-rw-r--r--connectivity/source/drivers/jdbc/JConnection.cxx5
-rw-r--r--connectivity/source/drivers/jdbc/Object.cxx10
-rw-r--r--connectivity/source/inc/java/lang/Object.hxx9
-rw-r--r--connectivity/source/inc/java/sql/Connection.hxx1
6 files changed, 21 insertions, 27 deletions
diff --git a/connectivity/inc/connectivity/CommonTools.hxx b/connectivity/inc/connectivity/CommonTools.hxx
index 6a1dfc9de9ad..f562d6720a57 100644
--- a/connectivity/inc/connectivity/CommonTools.hxx
+++ b/connectivity/inc/connectivity/CommonTools.hxx
@@ -31,7 +31,7 @@
#include <com/sun/star/sdbcx/XColumnsSupplier.hpp>
#include <osl/interlck.h>
#include <jvmaccess/virtualmachine.hxx>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
#include "connectivity/dbtoolsdllapi.hxx"
namespace com { namespace sun { namespace star { namespace util {
@@ -158,12 +158,12 @@ namespace connectivity
/** creates a java virtual machine
- @param _rxFactory
+ @param _rxContext
The ORB.
@return
The JavaVM.
*/
- OOO_DLLPUBLIC_DBTOOLS ::rtl::Reference< jvmaccess::VirtualMachine > getJavaVM(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory);
+ OOO_DLLPUBLIC_DBTOOLS ::rtl::Reference< jvmaccess::VirtualMachine > getJavaVM(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& _rxContext);
/** return <TRUE/> if the java class exists, otherwise <FALSE/>.
@param _pJVM
diff --git a/connectivity/source/commontools/CommonTools.cxx b/connectivity/source/commontools/CommonTools.cxx
index d8bb7ff7efe4..918193402ba7 100644
--- a/connectivity/source/commontools/CommonTools.cxx
+++ b/connectivity/source/commontools/CommonTools.cxx
@@ -30,7 +30,7 @@
#include <cppuhelper/interfacecontainer.h>
#include "TConnection.hxx"
#include <comphelper/types.hxx>
-#include <com/sun/star/java/XJavaVM.hpp>
+#include <com/sun/star/java/JavaVirtualMachine.hpp>
#include <rtl/process.h>
using namespace ::comphelper;
@@ -44,8 +44,8 @@ namespace connectivity
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::beans;
+ using namespace ::com::sun::star::java;
using namespace dbtools;
- namespace starjava = com::sun::star::java;
//------------------------------------------------------------------------------
const sal_Unicode CHAR_PLACE = '_';
const sal_Unicode CHAR_WILD = '%';
@@ -153,21 +153,16 @@ namespace connectivity
}
// -----------------------------------------------------------------------------
- ::rtl::Reference< jvmaccess::VirtualMachine > getJavaVM(const Reference<XMultiServiceFactory >& _rxFactory)
+ ::rtl::Reference< jvmaccess::VirtualMachine > getJavaVM(const Reference<XComponentContext >& _rxContext)
{
::rtl::Reference< jvmaccess::VirtualMachine > aRet;
- OSL_ENSURE(_rxFactory.is(),"No XMultiServiceFactory a.v.!");
- if(!_rxFactory.is())
+ OSL_ENSURE(_rxContext.is(),"No XMultiServiceFactory a.v.!");
+ if(!_rxContext.is())
return aRet;
try
{
- Reference< starjava::XJavaVM > xVM(_rxFactory->createInstance(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.java.JavaVirtualMachine"))), UNO_QUERY);
-
- OSL_ENSURE(_rxFactory.is(),"InitJava: I have no factory!");
- if (!xVM.is() || !_rxFactory.is())
- throw Exception(); // -2;
+ Reference< XJavaVM > xVM = JavaVirtualMachine::create(_rxContext);
Sequence<sal_Int8> processID(16);
rtl_getGlobalProcessId( (sal_uInt8*) processID.getArray() );
diff --git a/connectivity/source/drivers/jdbc/JConnection.cxx b/connectivity/source/drivers/jdbc/JConnection.cxx
index 3ef5f0c60361..4eb02fc13cf5 100644
--- a/connectivity/source/drivers/jdbc/JConnection.cxx
+++ b/connectivity/source/drivers/jdbc/JConnection.cxx
@@ -257,8 +257,9 @@ IMPLEMENT_SERVICE_INFO(java_sql_Connection,"com.sun.star.sdbcx.JConnection","com
jclass java_sql_Connection::theClass = 0;
java_sql_Connection::java_sql_Connection( const java_sql_Driver& _rDriver )
- :java_lang_Object( _rDriver.getContext().getLegacyServiceFactory() )
+ :java_lang_Object()
,OSubComponent<java_sql_Connection, java_sql_Connection_BASE>((::cppu::OWeakObject*)(&_rDriver), this)
+ ,m_xContext( _rDriver.getContext().getUNOContext() )
,m_pDriver( &_rDriver )
,m_pDriverobject(NULL)
,m_pDriverClassLoader()
@@ -772,7 +773,7 @@ sal_Bool java_sql_Connection::construct(const ::rtl::OUString& url,
const Sequence< PropertyValue >& info)
{
{ // initialize the java vm
- ::rtl::Reference< jvmaccess::VirtualMachine > xTest = java_lang_Object::getVM(getORB());
+ ::rtl::Reference< jvmaccess::VirtualMachine > xTest = java_lang_Object::getVM(m_xContext);
if ( !xTest.is() )
throwGenericSQLException(STR_NO_JAVA,*this);
}
diff --git a/connectivity/source/drivers/jdbc/Object.cxx b/connectivity/source/drivers/jdbc/Object.cxx
index 5f1093a3691f..9395a11771ac 100644
--- a/connectivity/source/drivers/jdbc/Object.cxx
+++ b/connectivity/source/drivers/jdbc/Object.cxx
@@ -50,11 +50,11 @@ using namespace ::com::sun::star::lang;
return s_VM;
}
// -----------------------------------------------------------------------------
-::rtl::Reference< jvmaccess::VirtualMachine > java_lang_Object::getVM(const Reference<XMultiServiceFactory >& _rxFactory)
+::rtl::Reference< jvmaccess::VirtualMachine > java_lang_Object::getVM(const Reference<XComponentContext >& _rxContext)
{
::rtl::Reference< jvmaccess::VirtualMachine > xVM = getJavaVM2();
- if ( !xVM.is() && _rxFactory.is() )
- xVM = getJavaVM2(::connectivity::getJavaVM(_rxFactory));
+ if ( !xVM.is() && _rxContext.is() )
+ xVM = getJavaVM2(::connectivity::getJavaVM(_rxContext));
return xVM;
}
@@ -101,8 +101,8 @@ jclass java_lang_Object::getMyClass() const
return theClass;
}
// the actual constructor
-java_lang_Object::java_lang_Object(const Reference<XMultiServiceFactory >& _rxFactory)
- : m_xFactory(_rxFactory),object( 0 )
+java_lang_Object::java_lang_Object()
+ : object( 0 )
{
SDBThreadAttach::addRef();
}
diff --git a/connectivity/source/inc/java/lang/Object.hxx b/connectivity/source/inc/java/lang/Object.hxx
index add7609eb82a..147567db3488 100644
--- a/connectivity/source/inc/java/lang/Object.hxx
+++ b/connectivity/source/inc/java/lang/Object.hxx
@@ -23,6 +23,7 @@
#include <osl/thread.h>
#include <com/sun/star/sdbc/SQLException.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/uno/XComponentContext.hpp>
#include <osl/diagnose.h>
#include <jvmaccess/virtualmachine.hxx>
#include <memory>
@@ -72,9 +73,6 @@ namespace connectivity
java_lang_Object& operator= (java_lang_Object&);
java_lang_Object(java_lang_Object&);
- // Only to destroy the C++ pointer of Java objects derived from JSbxObject
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xFactory;
-
protected:
// The Java handle to this class
jobject object;
@@ -90,7 +88,7 @@ namespace connectivity
java_lang_Object( JNIEnv * pEnv, jobject myObj );
// The actual ctor
- java_lang_Object(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory=NULL);
+ java_lang_Object();
virtual ~java_lang_Object();
@@ -101,7 +99,6 @@ namespace connectivity
void clearObject();
virtual ::rtl::OUString toString() const;
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > getORB() { return m_xFactory; }
static void ThrowSQLException(JNIEnv * pEnv,const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface> & _rContext);
static void ThrowLoggedSQLException(
@@ -110,7 +107,7 @@ namespace connectivity
const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxContext
);
- static ::rtl::Reference< jvmaccess::VirtualMachine > getVM(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory=NULL);
+ static ::rtl::Reference< jvmaccess::VirtualMachine > getVM(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& _rxContext=NULL);
static jclass findMyClass(const char* _pClassName);
void obtainMethodId(JNIEnv* _pEnv, const char* _pMethodName, const char* _pSignature, jmethodID& _inout_MethodID) const;
diff --git a/connectivity/source/inc/java/sql/Connection.hxx b/connectivity/source/inc/java/sql/Connection.hxx
index 9b6559923196..3af3d3c5e849 100644
--- a/connectivity/source/inc/java/sql/Connection.hxx
+++ b/connectivity/source/inc/java/sql/Connection.hxx
@@ -43,6 +43,7 @@ namespace connectivity
public OAutoRetrievingBase
{
friend class OSubComponent<java_sql_Connection, java_sql_Connection_BASE>;
+ ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > m_xContext;
const java_sql_Driver* m_pDriver;
jobject m_pDriverobject;
jdbc::GlobalRef< jobject >