diff options
author | Noel Grandin <noel@peralex.com> | 2013-01-16 15:16:05 +0200 |
---|---|---|
committer | Noel Grandin <noel@peralex.com> | 2013-02-11 08:02:10 +0200 |
commit | 9a36294079a13d713490ed754be441d9dbc214ce (patch) | |
tree | 6bd7c23e2cdfba1d03dedf689646e67bae0cca54 /connectivity | |
parent | use static/reinterpret_cast and minor rewrite (diff) | |
download | core-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.hxx | 6 | ||||
-rw-r--r-- | connectivity/source/commontools/CommonTools.cxx | 17 | ||||
-rw-r--r-- | connectivity/source/drivers/jdbc/JConnection.cxx | 5 | ||||
-rw-r--r-- | connectivity/source/drivers/jdbc/Object.cxx | 10 | ||||
-rw-r--r-- | connectivity/source/inc/java/lang/Object.hxx | 9 | ||||
-rw-r--r-- | connectivity/source/inc/java/sql/Connection.hxx | 1 |
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 > |