extensions/source/bibliography/bibload.cxx | 26 ++++++++++- offapi/UnoApi_offapi.mk | 2 offapi/com/sun/star/sdbc/DriverManager.idl | 41 +----------------- offapi/com/sun/star/sdbc/XDriverManager2.idl | 60 +++++++++++++++++++++++++++ offapi/type_reference/types.rdb |binary 5 files changed, 88 insertions(+), 41 deletions(-)
New commits: commit a6c1e4186a4f7e246103f541beccbc7d8a027ef0 Author: Bjoern Michaelsen <bjoern.michael...@canonical.com> Date: Sat Nov 24 20:06:26 2012 +0100 lp#527938: use new-style service and session installer in bibliography Change-Id: Id06e64ffb6c63cfba2f9948579dc03a4f54b6d45 diff --git a/extensions/source/bibliography/bibload.cxx b/extensions/source/bibliography/bibload.cxx index 94e35cf..58c1b01 100644 --- a/extensions/source/bibliography/bibload.cxx +++ b/extensions/source/bibliography/bibload.cxx @@ -32,6 +32,7 @@ #include <com/sun/star/util/XURLTransformer.hpp> #include <com/sun/star/sdbcx/XColumnsSupplier.hpp> #include <com/sun/star/sdbc/XRowSet.hpp> +#include <com/sun/star/sdbc/DriverManager.hpp> #include <com/sun/star/sdb/CommandType.hpp> #include <com/sun/star/frame/XFrameLoader.hpp> #include <com/sun/star/lang/XServiceInfo.hpp> @@ -43,6 +44,7 @@ #include <com/sun/star/form/XLoadListener.hpp> #include <com/sun/star/frame/XLayoutManager.hpp> #include <com/sun/star/uno/XAggregation.hpp> +#include <org/freedesktop/PackageKit/SyncDbusSessionHelper.hpp> #include <toolkit/awt/vclxwindow.hxx> #include <vcl/window.hxx> #include <vcl/edit.hxx> @@ -239,9 +241,9 @@ namespace { try { - Reference< XMultiServiceFactory > xMgr = comphelper::getProcessServiceFactory(); - Reference< XAggregation > xAggregate = Reference< XAggregation >( xMgr->createInstance(C2U("com.sun.star.sdb.RowSet")), UNO_QUERY); - return xAggregate.is(); + // if we get com::sun::star::sdbc::DriverManager, libsdbc2 is there + // and the bibliography is assumed to work + return com::sun::star::sdbc::DriverManager::create(comphelper::getProcessComponentContext()).is(); } catch(...) { @@ -256,7 +258,25 @@ void BibliographyLoader::load(const Reference< XFrame > & rFrame, const rtl::OUS // lp#527938, debian#602953, fdo#33266, i#105408 // make sure we actually can instanciate services from base first if(!lcl_isBaseAvailable()) + { + try + { + using namespace org::freedesktop::PackageKit; + Reference< XSyncDbusSessionHelper > xSyncDbusSessionHelper(SyncDbusSessionHelper::create(comphelper::getProcessComponentContext()), UNO_QUERY); + Sequence< ::rtl::OUString > vPackages(1); + vPackages[0] = "libreoffice-base"; + ::rtl::OUString sInteraction(""); + xSyncDbusSessionHelper->InstallPackageNames(0, vPackages, sInteraction); + // FIXME: notify user to restart here + } + catch (Exception & e) + { + SAL_INFO( + "extensions.bibliography", + "trying to install LibreOffice Base, caught " << e.Message); + } return; + } SolarMutexGuard aGuard; commit db160a3cd5aa8d42ac90efd91b4c1825a9fe3156 Author: Bjoern Michaelsen <bjoern.michael...@canonical.com> Date: Sat Nov 24 20:08:12 2012 +0100 fdo#46808: move com::sun::star:sdbc::DriverManager to new UNO-style Change-Id: I9807fbe8bce95e7e801ac584d89b3b1da97d8662 diff --git a/offapi/UnoApi_offapi.mk b/offapi/UnoApi_offapi.mk index f1e53a2..6e85574 100644 --- a/offapi/UnoApi_offapi.mk +++ b/offapi/UnoApi_offapi.mk @@ -247,6 +247,7 @@ $(eval $(call gb_UnoApi_add_idlfiles_nohdl,offapi,offapi/com/sun/star/sdb/applic )) $(eval $(call gb_UnoApi_add_idlfiles_nohdl,offapi,offapi/com/sun/star/sdbc,\ ConnectionPool \ + DriverManager \ )) $(eval $(call gb_UnoApi_add_idlfiles_nohdl,offapi,offapi/com/sun/star/security,\ CertificateContainer \ @@ -3194,6 +3195,7 @@ $(eval $(call gb_UnoApi_add_idlfiles,offapi,offapi/com/sun/star/sdbc,\ XDriver \ XDriverAccess \ XDriverManager \ + XDriverManager2 \ XGeneratedResultSet \ XIsolatedConnection \ XMultipleResults \ diff --git a/offapi/com/sun/star/sdbc/DriverManager.idl b/offapi/com/sun/star/sdbc/DriverManager.idl index 7d04d9c..e9166ef 100644 --- a/offapi/com/sun/star/sdbc/DriverManager.idl +++ b/offapi/com/sun/star/sdbc/DriverManager.idl @@ -19,49 +19,14 @@ #ifndef __com_sun_star_sdbc_DriverManager_idl__ #define __com_sun_star_sdbc_DriverManager_idl__ -#include <com/sun/star/container/XEnumerationAccess.idl> +#include <com/sun/star/sdbc/XDriverManager2.idl> - module com { module sun { module star { module sdbc { - - published interface XConnection; - published interface XDriver; - published interface XDriverManager; - - -/** is the basic service for managing a set of SDBC drivers. - - - <p> - As part of its initialization, the DriverManager service will - attempt to load the registered drivers. - - </p> - <p> - When the method <code>getConnection</code> is called, - the DriverManager will attempt to - locate a suitable driver. - - </p> - @see com::sun::star::sdbc::XDriver - @see com::sun::star::sdbc::XConnection - */ -published service DriverManager -{ - - /** is the basic interface for establishing database connections. - */ - interface XDriverManager; - - /** creates an enumeration on all installed / registered drivers. - */ - interface com::sun::star::container::XEnumerationAccess; -}; +module com { module sun { module star { module sdbc { +published service DriverManager : XDriverManager2; }; }; }; }; -/*=========================================================================== -===========================================================================*/ #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/com/sun/star/sdbc/XDriverManager2.idl b/offapi/com/sun/star/sdbc/XDriverManager2.idl new file mode 100644 index 0000000..6512eb3 --- /dev/null +++ b/offapi/com/sun/star/sdbc/XDriverManager2.idl @@ -0,0 +1,60 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * This file incorporates work covered by the following license notice: + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.apache.org/licenses/LICENSE-2.0 . + */ +#ifndef __com_sun_star_sdbc_XDriverManager2_idl__ +#define __com_sun_star_sdbc_XDriverManager2_idl__ + +#include <com/sun/star/container/XEnumerationAccess.idl> +#include <com/sun/star/sdbc/XDriverManager.idl> + +module com { module sun { module star { module sdbc { + +/** is the basic interface for managing a set of SDBC drivers. + + <p> + As part of its initialization, the DriverManager service will + attempt to load the registered drivers. + + </p> + <p> + When the method <code>getConnection</code> is called, + the DriverManager will attempt to + locate a suitable driver. + + </p> + @see com::sun::star::sdbc::XDriver + @see com::sun::star::sdbc::XConnection + */ +published interface XDriverManager2 +{ + + /** is the basic interface for establishing database connections. + */ + interface XDriverManager; + + /** creates an enumeration on all installed / registered drivers. + */ + interface com::sun::star::container::XEnumerationAccess; +}; + + +}; }; }; }; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/offapi/type_reference/types.rdb b/offapi/type_reference/types.rdb index 05eb70a..4478c94 100644 Binary files a/offapi/type_reference/types.rdb and b/offapi/type_reference/types.rdb differ _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits