sb122: merged in DEV300_m76 via cws/sb121
This commit is contained in:
@@ -494,12 +494,10 @@ void Components::parseFileList(
|
||||
try {
|
||||
(*parseFile)(url, layer, data_, 0, 0);
|
||||
} catch (css::container::NoSuchElementException & e) {
|
||||
throw css::uno::RuntimeException(
|
||||
(rtl::OUString(
|
||||
RTL_CONSTASCII_USTRINGPARAM(
|
||||
"stat'ed file does not exist: ")) +
|
||||
e.Message),
|
||||
css::uno::Reference< css::uno::XInterface >());
|
||||
OSL_TRACE(
|
||||
"configmgr file does not exist: %s",
|
||||
rtl::OUStringToOString(
|
||||
e.Message, RTL_TEXTENCODING_UTF8).getStr());
|
||||
}
|
||||
}
|
||||
if (i == -1) {
|
||||
|
@@ -79,6 +79,9 @@
|
||||
#define RID_DEPLYOMENT_DEPENDENCIES_UNKNOWN RID_DEPLOYMENT_DEPENDENCIES_START
|
||||
#define RID_DEPLYOMENT_DEPENDENCIES_MIN (RID_DEPLOYMENT_DEPENDENCIES_START+1)
|
||||
#define RID_DEPLYOMENT_DEPENDENCIES_MAX (RID_DEPLOYMENT_DEPENDENCIES_START+2)
|
||||
#define RID_DEPLOYMENT_DEPENDENCIES_REPO_POS (RID_DEPLOYMENT_DEPENDENCIES_START + 3)
|
||||
#define RID_DEPLOYMENT_DEPENDENCIES_REPO_NEG (RID_DEPLOYMENT_DEPENDENCIES_START + 4)
|
||||
#define RID_DEPLOYMENT_DEPENDENCIES_REPO_BOTH (RID_DEPLOYMENT_DEPENDENCIES_START + 5)
|
||||
|
||||
#define RID_DEPLOYMENT_LICENSE_START (RID_DEPLOYMENT_START+4500)
|
||||
|
||||
|
@@ -521,7 +521,7 @@ bool UpdateDialog::Thread::update(
|
||||
dp_misc::DescriptionInfoset infoset(m_context, updateInfo);
|
||||
OSL_ASSERT(infoset.getVersion().getLength() != 0);
|
||||
css::uno::Sequence< css::uno::Reference< css::xml::dom::XElement > > ds(
|
||||
dp_misc::Dependencies::check(infoset));
|
||||
dp_misc::Dependencies::check(infoset, packageManager->getContext()));
|
||||
|
||||
UpdateDialog::DisabledUpdate du;
|
||||
du.aUpdateInfo = updateInfo;
|
||||
|
@@ -53,6 +53,9 @@ namespace Dependencies {
|
||||
@param infoset
|
||||
the infoset containing the dependencies to check
|
||||
|
||||
@param repository
|
||||
the repository into which to deploy
|
||||
|
||||
@return
|
||||
a list of the unsatisfied dependencies from <code>infoset</code> (in no
|
||||
specific order)
|
||||
@@ -60,7 +63,9 @@ namespace Dependencies {
|
||||
DESKTOP_DEPLOYMENTMISC_DLLPUBLIC
|
||||
::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference<
|
||||
::com::sun::star::xml::dom::XElement > >
|
||||
check(::dp_misc::DescriptionInfoset const & infoset);
|
||||
check(
|
||||
::dp_misc::DescriptionInfoset const & infoset,
|
||||
::rtl::OUString const & repository);
|
||||
|
||||
/**
|
||||
Obtain the (human-readable) error message of a failed dependency.
|
||||
|
@@ -387,7 +387,7 @@ uno::Sequence< uno::Sequence< rtl::OUString > >
|
||||
if (*id2 == id)
|
||||
{
|
||||
// check, if there are unsatisfied dependencies and ignore those updates
|
||||
uno::Sequence< uno::Reference< xml::dom::XElement > > ds( dp_misc::Dependencies::check( infoset ) );
|
||||
uno::Sequence< uno::Reference< xml::dom::XElement > > ds( dp_misc::Dependencies::check( infoset, _xManager->getContext() ) );
|
||||
if ( ds.getLength() )
|
||||
continue;
|
||||
|
||||
|
@@ -56,17 +56,44 @@ namespace css = ::com::sun::star;
|
||||
static char const xmlNamespace[] =
|
||||
"http://openoffice.org/extensions/description/2006";
|
||||
|
||||
::dp_misc::Order compareWithVersion(::rtl::OUString const & version) {
|
||||
bool satisfiesMinimalVersion(::rtl::OUString const & version) {
|
||||
::rtl::OUString v(
|
||||
RTL_CONSTASCII_USTRINGPARAM(
|
||||
"${$OOO_BASE_DIR/program/" SAL_CONFIGFILE("version")
|
||||
":Version:OOOPackageVersion}"));
|
||||
::rtl::Bootstrap::expandMacros(v);
|
||||
return ::dp_misc::compareVersions(v, version);
|
||||
return ::dp_misc::compareVersions(v, version) != ::dp_misc::LESS;
|
||||
}
|
||||
|
||||
bool satisfiesMinimalVersion(::rtl::OUString const & version) {
|
||||
return compareWithVersion(version) != ::dp_misc::LESS;
|
||||
bool contains(::rtl::OUString const & list, ::rtl::OUString const & element) {
|
||||
for (::sal_Int32 i = 0;;) {
|
||||
::sal_Int32 n = i;
|
||||
i = list.indexOf(',', i);
|
||||
if (i == -1) {
|
||||
i = list.getLength();
|
||||
}
|
||||
if (list.copy(n, i) == element) {
|
||||
return true;
|
||||
}
|
||||
if (i == list.getLength()) {
|
||||
return false;
|
||||
}
|
||||
++i;
|
||||
}
|
||||
}
|
||||
|
||||
bool checkDeploymentRepositories(
|
||||
css::uno::Reference< css::xml::dom::XElement > const & dependency,
|
||||
::rtl::OUString const & repository)
|
||||
{
|
||||
css::uno::Reference< css::xml::dom::XAttr > sup(
|
||||
dependency->getAttributeNode(
|
||||
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("supported"))));
|
||||
css::uno::Reference< css::xml::dom::XAttr > notSup(
|
||||
dependency->getAttributeNode(
|
||||
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("not-supported"))));
|
||||
return (!sup.is() || contains(sup->getValue(), repository)) &&
|
||||
!(notSup.is() && contains(notSup->getValue(), repository));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -76,7 +103,10 @@ namespace dp_misc {
|
||||
namespace Dependencies {
|
||||
|
||||
css::uno::Sequence< css::uno::Reference< css::xml::dom::XElement > >
|
||||
check(::dp_misc::DescriptionInfoset const & infoset) {
|
||||
check(
|
||||
::dp_misc::DescriptionInfoset const & infoset,
|
||||
::rtl::OUString const & repository)
|
||||
{
|
||||
css::uno::Reference< css::xml::dom::XNodeList > deps(
|
||||
infoset.getDependencies());
|
||||
::sal_Int32 n = deps->getLength();
|
||||
@@ -102,11 +132,23 @@ check(::dp_misc::DescriptionInfoset const & infoset) {
|
||||
RTL_CONSTASCII_STRINGPARAM(
|
||||
"OpenOffice.org-maximal-version")))
|
||||
{
|
||||
::rtl::OUString v(
|
||||
RTL_CONSTASCII_USTRINGPARAM(
|
||||
"${$OOO_BASE_DIR/program/" SAL_CONFIGFILE("version")
|
||||
":Version:OOOBaseVersion}"));
|
||||
::rtl::Bootstrap::expandMacros(v);
|
||||
sat =
|
||||
compareWithVersion(
|
||||
::dp_misc::compareVersions(
|
||||
v,
|
||||
e->getAttribute(
|
||||
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("value"))))
|
||||
!= ::dp_misc::GREATER;
|
||||
} else if (e->getNamespaceURI().equalsAsciiL(
|
||||
RTL_CONSTASCII_STRINGPARAM(xmlNamespace))
|
||||
&& e->getTagName().equalsAsciiL(
|
||||
RTL_CONSTASCII_STRINGPARAM("deployment-repositories")))
|
||||
{
|
||||
sat = checkDeploymentRepositories(e, repository);
|
||||
} else if (e->hasAttributeNS(
|
||||
::rtl::OUString(
|
||||
RTL_CONSTASCII_USTRINGPARAM(xmlNamespace)),
|
||||
@@ -145,6 +187,52 @@ check(::dp_misc::DescriptionInfoset const & infoset) {
|
||||
sValue = dependency->getAttribute( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("value") ) );
|
||||
sReason = ::rtl::OUString( ::String(::dp_misc::getResId(RID_DEPLYOMENT_DEPENDENCIES_MAX)) );
|
||||
}
|
||||
else if (dependency->getNamespaceURI().equalsAsciiL(
|
||||
RTL_CONSTASCII_STRINGPARAM(xmlNamespace)) &&
|
||||
dependency->getTagName().equalsAsciiL(
|
||||
RTL_CONSTASCII_STRINGPARAM("deployment-repositories")))
|
||||
{
|
||||
css::uno::Reference< css::xml::dom::XAttr > sup(
|
||||
dependency->getAttributeNode(
|
||||
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("supported"))));
|
||||
css::uno::Reference< css::xml::dom::XAttr > notSup(
|
||||
dependency->getAttributeNode(
|
||||
::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("not-supported"))));
|
||||
sValue = ::String(
|
||||
::dp_misc::getResId(
|
||||
sup.is()
|
||||
? (notSup.is()
|
||||
? RID_DEPLOYMENT_DEPENDENCIES_REPO_BOTH
|
||||
: RID_DEPLOYMENT_DEPENDENCIES_REPO_POS)
|
||||
: (notSup.is()
|
||||
? RID_DEPLOYMENT_DEPENDENCIES_REPO_NEG
|
||||
: RID_DEPLYOMENT_DEPENDENCIES_UNKNOWN)));
|
||||
::rtl::OUStringBuffer buf;
|
||||
for (::sal_Int32 i = 0;;) {
|
||||
::sal_Int32 j = sValue.indexOf('%', i);
|
||||
if (j == -1) {
|
||||
buf.append(sValue.copy(i));
|
||||
break;
|
||||
}
|
||||
if (sup.is() &&
|
||||
sValue.matchAsciiL(RTL_CONSTASCII_STRINGPARAM("POS"), j + 1))
|
||||
{
|
||||
buf.append(sValue.copy(i, j - i));
|
||||
buf.append(sup->getValue());
|
||||
i = j + RTL_CONSTASCII_LENGTH("%POS");
|
||||
} else if (notSup.is() &&
|
||||
sValue.matchAsciiL(
|
||||
RTL_CONSTASCII_STRINGPARAM("NEG"), j + 1))
|
||||
{
|
||||
buf.append(sValue.copy(i, j - i));
|
||||
buf.append(notSup->getValue());
|
||||
i = j + RTL_CONSTASCII_LENGTH("%NEG");
|
||||
} else {
|
||||
i = j + 1;
|
||||
}
|
||||
}
|
||||
return buf.makeStringAndClear();
|
||||
}
|
||||
else if ( dependency->hasAttributeNS( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( xmlNamespace ) ),
|
||||
::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "OpenOffice.org-minimal-version" ))))
|
||||
{
|
||||
|
@@ -38,3 +38,15 @@ String RID_DEPLYOMENT_DEPENDENCIES_MIN {
|
||||
String RID_DEPLYOMENT_DEPENDENCIES_MAX {
|
||||
Text[en-US] = "Extension doesn't support versions greater than: OpenOffice.org %VERSION";
|
||||
};
|
||||
|
||||
String RID_DEPLOYMENT_DEPENDENCIES_REPO_POS {
|
||||
Text[en-US] = "Extension can only be deployed to repositories \"%POS\"";
|
||||
};
|
||||
|
||||
String RID_DEPLOYMENT_DEPENDENCIES_REPO_NEG {
|
||||
Text[en-US] = "Extension can not be deployed to repositories \"%NEG\"";
|
||||
};
|
||||
|
||||
String RID_DEPLOYMENT_DEPENDENCIES_REPO_BOTH {
|
||||
Text[en-US] = "Extension can be deployed to repositories \"%POS\" but not to \"%NEG\"";
|
||||
};
|
||||
|
@@ -299,6 +299,8 @@ public:
|
||||
inline ::rtl::OUString const & getCachePath() const { return m_cachePath; }
|
||||
inline bool transientMode() const { return m_cachePath.getLength() == 0; }
|
||||
|
||||
inline ::rtl::OUString getContext() const {return m_context; }
|
||||
|
||||
// XEventListener
|
||||
virtual void SAL_CALL disposing( css::lang::EventObject const & evt )
|
||||
throw (css::uno::RuntimeException);
|
||||
|
@@ -553,7 +553,8 @@ bool BackendImpl::PackageImpl::checkDependencies(
|
||||
dp_misc::Dependencies::check(
|
||||
DescriptionInfoset(
|
||||
getMyBackend()->getComponentContext(),
|
||||
description.getRootElement())));
|
||||
description.getRootElement()),
|
||||
getMyBackend()->getContext()));
|
||||
if (unsatisfied.getLength() == 0) {
|
||||
return true;
|
||||
} else {
|
||||
|
50
desktop/test/deployment/boxt/Addons.xcu
Normal file
50
desktop/test/deployment/boxt/Addons.xcu
Normal file
@@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--**********************************************************************
|
||||
*
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* Copyright 2000, 2010 Oracle and/or its affiliates.
|
||||
*
|
||||
* OpenOffice.org - a multi-platform office productivity suite
|
||||
*
|
||||
* This file is part of OpenOffice.org.
|
||||
*
|
||||
* OpenOffice.org is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License version 3
|
||||
* only, as published by the Free Software Foundation.
|
||||
*
|
||||
* OpenOffice.org is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License version 3 for more details
|
||||
* (a copy is included in the LICENSE file that accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* version 3 along with OpenOffice.org. If not, see
|
||||
* <http://www.openoffice.org/license.html>
|
||||
* for a copy of the LGPLv3 License.
|
||||
*
|
||||
**********************************************************************-->
|
||||
|
||||
<o:component-data xmlns:o="http://openoffice.org/2001/registry"
|
||||
o:package="org.openoffice.Office" o:name="Addons">
|
||||
<node o:name="AddonUI">
|
||||
<node o:name="OfficeMenuBar">
|
||||
<node o:name="org.openoffice.test.desktop.deployment.boxt" o:op="replace">
|
||||
<prop o:name="Title" xml:lang="en-US">
|
||||
<value>boxt</value>
|
||||
</prop>
|
||||
<node o:name="Submenu">
|
||||
<node o:name="1" o:op="replace">
|
||||
<prop o:name="URL">
|
||||
<value>vnd.org.openoffice.test.desktop.deployment.boxt:</value>
|
||||
</prop>
|
||||
<prop o:name="Title" xml:lang="en-US">
|
||||
<value>boxt</value>
|
||||
</prop>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</o:component-data>
|
38
desktop/test/deployment/boxt/ProtocolHandler.xcu
Normal file
38
desktop/test/deployment/boxt/ProtocolHandler.xcu
Normal file
@@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--**********************************************************************
|
||||
*
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* Copyright 2000, 2010 Oracle and/or its affiliates.
|
||||
*
|
||||
* OpenOffice.org - a multi-platform office productivity suite
|
||||
*
|
||||
* This file is part of OpenOffice.org.
|
||||
*
|
||||
* OpenOffice.org is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License version 3
|
||||
* only, as published by the Free Software Foundation.
|
||||
*
|
||||
* OpenOffice.org is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License version 3 for more details
|
||||
* (a copy is included in the LICENSE file that accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* version 3 along with OpenOffice.org. If not, see
|
||||
* <http://www.openoffice.org/license.html>
|
||||
* for a copy of the LGPLv3 License.
|
||||
*
|
||||
**********************************************************************-->
|
||||
|
||||
<o:component-data xmlns:o="http://openoffice.org/2001/registry"
|
||||
o:package="org.openoffice.Office" o:name="ProtocolHandler">
|
||||
<node o:name="HandlerSet">
|
||||
<node o:name="com.sun.star.test.deployment.boxt" o:op="replace">
|
||||
<prop o:name="Protocols">
|
||||
<value>vnd.org.openoffice.test.desktop.deployment.boxt:*</value>
|
||||
</prop>
|
||||
</node>
|
||||
</node>
|
||||
</o:component-data>
|
235
desktop/test/deployment/boxt/boxt.cxx
Normal file
235
desktop/test/deployment/boxt/boxt.cxx
Normal file
@@ -0,0 +1,235 @@
|
||||
/*************************************************************************
|
||||
*
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* Copyright 2000, 2010 Oracle and/or its affiliates.
|
||||
*
|
||||
* OpenOffice.org - a multi-platform office productivity suite
|
||||
*
|
||||
* This file is part of OpenOffice.org.
|
||||
*
|
||||
* OpenOffice.org is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License version 3
|
||||
* only, as published by the Free Software Foundation.
|
||||
*
|
||||
* OpenOffice.org is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License version 3 for more details
|
||||
* (a copy is included in the LICENSE file that accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* version 3 along with OpenOffice.org. If not, see
|
||||
* <http://www.openoffice.org/license.html>
|
||||
* for a copy of the LGPLv3 License.
|
||||
*
|
||||
************************************************************************/
|
||||
|
||||
#include "precompiled_desktop.hxx"
|
||||
#include "sal/config.h"
|
||||
|
||||
#include "boost/noncopyable.hpp"
|
||||
#include "com/sun/star/beans/PropertyValue.hpp"
|
||||
#include "com/sun/star/frame/DispatchDescriptor.hpp"
|
||||
#include "com/sun/star/frame/XDispatch.hpp"
|
||||
#include "com/sun/star/frame/XDispatchProvider.hpp"
|
||||
#include "com/sun/star/frame/XStatusListener.hpp"
|
||||
#include "com/sun/star/lang/XServiceInfo.hpp"
|
||||
#include "com/sun/star/lang/XSingleComponentFactory.hpp"
|
||||
#include "com/sun/star/uno/Any.hxx"
|
||||
#include "com/sun/star/uno/Exception.hpp"
|
||||
#include "com/sun/star/uno/Reference.hxx"
|
||||
#include "com/sun/star/uno/RuntimeException.hpp"
|
||||
#include "com/sun/star/uno/Sequence.hxx"
|
||||
#include "com/sun/star/uno/XComponentContext.hpp"
|
||||
#include "com/sun/star/uno/XInterface.hpp"
|
||||
#include "com/sun/star/util/URL.hpp"
|
||||
#include "cppuhelper/factory.hxx"
|
||||
#include "cppuhelper/implbase1.hxx"
|
||||
#include "cppuhelper/implbase3.hxx"
|
||||
#include "cppuhelper/implementationentry.hxx"
|
||||
#include "cppuhelper/weak.hxx"
|
||||
#include "filter/msfilter/countryid.hxx"
|
||||
#include "osl/diagnose.h"
|
||||
#include "rtl/ustring.h"
|
||||
#include "rtl/ustring.hxx"
|
||||
#include "sal/types.h"
|
||||
#include "uno/lbnames.h"
|
||||
#include "vcl/svapp.hxx"
|
||||
|
||||
namespace {
|
||||
|
||||
namespace css = com::sun::star;
|
||||
|
||||
namespace service {
|
||||
|
||||
rtl::OUString getImplementationName() {
|
||||
return rtl::OUString(
|
||||
RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.test.deployment.boxt"));
|
||||
}
|
||||
|
||||
css::uno::Sequence< rtl::OUString > getSupportedServiceNames() {
|
||||
rtl::OUString name(
|
||||
RTL_CONSTASCII_USTRINGPARAM("com.sun.star.test.deployment.boxt"));
|
||||
return css::uno::Sequence< rtl::OUString >(&name, 1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class Service:
|
||||
public cppu::WeakImplHelper3<
|
||||
css::lang::XServiceInfo, css::frame::XDispatchProvider,
|
||||
css::frame::XDispatch >,
|
||||
private boost::noncopyable
|
||||
{
|
||||
public:
|
||||
Service() {}
|
||||
|
||||
private:
|
||||
virtual ~Service() {}
|
||||
|
||||
virtual rtl::OUString SAL_CALL getImplementationName()
|
||||
throw (css::uno::RuntimeException)
|
||||
{ return service::getImplementationName(); }
|
||||
|
||||
virtual sal_Bool SAL_CALL supportsService(rtl::OUString const & ServiceName)
|
||||
throw (css::uno::RuntimeException)
|
||||
{ return ServiceName == getSupportedServiceNames()[0]; } //TODO
|
||||
|
||||
virtual css::uno::Sequence< rtl::OUString > SAL_CALL
|
||||
getSupportedServiceNames() throw (css::uno::RuntimeException)
|
||||
{ return service::getSupportedServiceNames(); }
|
||||
|
||||
virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL queryDispatch(
|
||||
css::util::URL const &, rtl::OUString const &, sal_Int32)
|
||||
throw (css::uno::RuntimeException)
|
||||
{ return this; }
|
||||
|
||||
virtual css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > >
|
||||
SAL_CALL queryDispatches(
|
||||
css::uno::Sequence< css::frame::DispatchDescriptor > const & Requests)
|
||||
throw (css::uno::RuntimeException);
|
||||
|
||||
virtual void SAL_CALL dispatch(
|
||||
css::util::URL const &,
|
||||
css::uno::Sequence< css::beans::PropertyValue > const &)
|
||||
throw (css::uno::RuntimeException);
|
||||
|
||||
virtual void SAL_CALL addStatusListener(
|
||||
css::uno::Reference< css::frame::XStatusListener > const &,
|
||||
css::util::URL const &)
|
||||
throw (css::uno::RuntimeException)
|
||||
{}
|
||||
|
||||
virtual void SAL_CALL removeStatusListener(
|
||||
css::uno::Reference< css::frame::XStatusListener > const &,
|
||||
css::util::URL const &)
|
||||
throw (css::uno::RuntimeException)
|
||||
{}
|
||||
};
|
||||
|
||||
css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > >
|
||||
Service::queryDispatches(
|
||||
css::uno::Sequence< css::frame::DispatchDescriptor > const & Requests)
|
||||
throw (css::uno::RuntimeException)
|
||||
{
|
||||
css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > s(
|
||||
Requests.getLength());
|
||||
for (sal_Int32 i = 0; i < s.getLength(); ++i) {
|
||||
s[i] = queryDispatch(
|
||||
Requests[i].FeatureURL, Requests[i].FrameName,
|
||||
Requests[i].SearchFlags);
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
void Service::dispatch(
|
||||
css::util::URL const &,
|
||||
css::uno::Sequence< css::beans::PropertyValue > const &)
|
||||
throw (css::uno::RuntimeException)
|
||||
{
|
||||
msfilter::ConvertCountryToLanguage(msfilter::COUNTRY_DONTKNOW);
|
||||
// link against some obscure library that is unlikely already loaded
|
||||
Application::ShowNativeErrorBox(
|
||||
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("boxt")),
|
||||
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("test")));
|
||||
}
|
||||
|
||||
class Factory:
|
||||
public cppu::WeakImplHelper1< css::lang::XSingleComponentFactory >,
|
||||
private boost::noncopyable
|
||||
{
|
||||
public:
|
||||
Factory() {}
|
||||
|
||||
private:
|
||||
virtual ~Factory() {}
|
||||
|
||||
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
|
||||
createInstanceWithContext(
|
||||
css::uno::Reference< css::uno::XComponentContext > const &)
|
||||
throw (css::uno::Exception, css::uno::RuntimeException)
|
||||
{ return static_cast< cppu::OWeakObject * >(new Service); }
|
||||
|
||||
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
|
||||
createInstanceWithArgumentsAndContext(
|
||||
css::uno::Sequence< css::uno::Any > const &,
|
||||
css::uno::Reference< css::uno::XComponentContext > const & Context)
|
||||
throw (css::uno::Exception, css::uno::RuntimeException)
|
||||
{ return createInstanceWithContext(Context); }
|
||||
};
|
||||
|
||||
css::uno::Reference< css::uno::XInterface > SAL_CALL dummy(
|
||||
css::uno::Reference< css::uno::XComponentContext > const &)
|
||||
SAL_THROW((css::uno::Exception))
|
||||
{
|
||||
OSL_ASSERT(false);
|
||||
return css::uno::Reference< css::uno::XInterface >();
|
||||
}
|
||||
|
||||
rtl::OUString SAL_CALL getImplementationName() {
|
||||
return rtl::OUString(
|
||||
RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.test.deployment.boxt"));
|
||||
}
|
||||
|
||||
css::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames() {
|
||||
rtl::OUString name(
|
||||
RTL_CONSTASCII_USTRINGPARAM("com.sun.star.test.deployment.boxt"));
|
||||
return css::uno::Sequence< rtl::OUString >(&name, 1);
|
||||
}
|
||||
|
||||
css::uno::Reference< css::lang::XSingleComponentFactory > SAL_CALL
|
||||
createFactory(
|
||||
cppu::ComponentFactoryFunc, rtl::OUString const &,
|
||||
css::uno::Sequence< rtl::OUString > const &, rtl_ModuleCount *)
|
||||
SAL_THROW(())
|
||||
{
|
||||
return new Factory;
|
||||
}
|
||||
|
||||
static cppu::ImplementationEntry const services[] = {
|
||||
{ &dummy, &service::getImplementationName,
|
||||
&service::getSupportedServiceNames, &createFactory, 0, 0 },
|
||||
{ 0, 0, 0, 0, 0, 0 }
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
extern "C" void * SAL_CALL component_getFactory(
|
||||
char const * pImplName, void * pServiceManager, void * pRegistryKey)
|
||||
{
|
||||
return cppu::component_getFactoryHelper(
|
||||
pImplName, pServiceManager, pRegistryKey, services);
|
||||
}
|
||||
|
||||
extern "C" void SAL_CALL component_getImplementationEnvironment(
|
||||
char const ** ppEnvTypeName, uno_Environment **)
|
||||
{
|
||||
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
|
||||
}
|
||||
|
||||
extern "C" sal_Bool SAL_CALL component_writeInfo(
|
||||
void * pServiceManager, void * pRegistryKey)
|
||||
{
|
||||
return component_writeInfoHelper(pServiceManager, pRegistryKey, services);
|
||||
}
|
40
desktop/test/deployment/boxt/description.xml
Normal file
40
desktop/test/deployment/boxt/description.xml
Normal file
@@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--**********************************************************************
|
||||
*
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* Copyright 2000, 2010 Oracle and/or its affiliates.
|
||||
*
|
||||
* OpenOffice.org - a multi-platform office productivity suite
|
||||
*
|
||||
* This file is part of OpenOffice.org.
|
||||
*
|
||||
* OpenOffice.org is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License version 3
|
||||
* only, as published by the Free Software Foundation.
|
||||
*
|
||||
* OpenOffice.org is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License version 3 for more details
|
||||
* (a copy is included in the LICENSE file that accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* version 3 along with OpenOffice.org. If not, see
|
||||
* <http://www.openoffice.org/license.html>
|
||||
* for a copy of the LGPLv3 License.
|
||||
*
|
||||
**********************************************************************-->
|
||||
|
||||
<d:description xmlns:d="http://openoffice.org/extensions/description/2006">
|
||||
<d:identifier value="org.openoffice/framework/desktop/test/deployment/boxt"/>
|
||||
<d:version value="@VERSION@"/>
|
||||
<d:platform value="@PLATFORM@"/>
|
||||
<d:dependencies>
|
||||
<d:OpenOffice.org-minimal-version d:name="OpenOffice.org @VERSION@"
|
||||
value="@VERSION@"/>
|
||||
<d:OpenOffice.org-maximal-version d:name="OpenOffice.org @VERSION@ or older"
|
||||
d:OpenOffice.org-minimal-version="2.3" value="@VERSION@"/>
|
||||
@DEPENDENCY@
|
||||
</d:dependencies>
|
||||
</d:description>
|
78
desktop/test/deployment/boxt/makefile.mk
Normal file
78
desktop/test/deployment/boxt/makefile.mk
Normal file
@@ -0,0 +1,78 @@
|
||||
#*************************************************************************
|
||||
#
|
||||
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
#
|
||||
# Copyright 2000, 2010 Oracle and/or its affiliates.
|
||||
#
|
||||
# OpenOffice.org - a multi-platform office productivity suite
|
||||
#
|
||||
# This file is part of OpenOffice.org.
|
||||
#
|
||||
# OpenOffice.org is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Lesser General Public License version 3
|
||||
# only, as published by the Free Software Foundation.
|
||||
#
|
||||
# OpenOffice.org is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Lesser General Public License version 3 for more details
|
||||
# (a copy is included in the LICENSE file that accompanied this code).
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public License
|
||||
# version 3 along with OpenOffice.org. If not, see
|
||||
# <http://www.openoffice.org/license.html>
|
||||
# for a copy of the LGPLv3 License.
|
||||
#
|
||||
#***********************************************************************/
|
||||
|
||||
PRJ = ../../..
|
||||
PRJNAME = desktop
|
||||
TARGET = test_deployment_boxt
|
||||
|
||||
ENABLE_EXCEPTIONS = TRUE
|
||||
|
||||
.INCLUDE: settings.mk
|
||||
.INCLUDE: rtlbootstrap.mk
|
||||
|
||||
#TODO: The underlying OOo base version needed here is currently only available
|
||||
# as instsetoo_native/util/openoffice.lst OOOBASEVERSION, so hard-coding it here
|
||||
# for now (see issue 110653):
|
||||
my_version = 3.3
|
||||
|
||||
.IF "$(OS)" == "LINUX" || "$(OS)" == "MACOSX" || "$(OS)" == "SOLARIS"
|
||||
my_dependency = <d:deployment-repositories \
|
||||
d:name="cannot be deployed to repository 'user'" not-supported="user"/>
|
||||
.ELSE
|
||||
my_dependency =
|
||||
.END
|
||||
|
||||
DLLPRE =
|
||||
|
||||
SLOFILES = $(SHL1OBJS)
|
||||
|
||||
SHL1TARGET = boxt.uno
|
||||
SHL1OBJS = $(SLO)/boxt.obj
|
||||
SHL1RPATH = BOXT
|
||||
SHL1STDLIBS = \
|
||||
$(CPPUHELPERLIB) $(CPPULIB) $(MSFILTERLIB) $(SALLIB) $(TOOLSLIB) $(VCLLIB)
|
||||
SHL1VERSIONMAP = $(SOLARENV)/src/component.map
|
||||
DEF1NAME = $(SHL1TARGET)
|
||||
|
||||
.INCLUDE: target.mk
|
||||
|
||||
ALLTAR : $(MISC)/boxt.oxt
|
||||
|
||||
$(MISC)/boxt.oxt .ERRREMOVE : manifest.xml description.xml Addons.xcu \
|
||||
ProtocolHandler.xcu $(SHL1TARGETN)
|
||||
$(RM) -r $@ $(MISC)/$(TARGET).zip
|
||||
$(MKDIR) $(MISC)/$(TARGET).zip
|
||||
$(MKDIR) $(MISC)/$(TARGET).zip/META-INF
|
||||
$(SED) -e 's|@PATH@|$(SHL1TARGETN:f)|g' < manifest.xml \
|
||||
> $(MISC)/$(TARGET).zip/META-INF/manifest.xml
|
||||
$(SED) -e 's|@PLATFORM@|$(RTL_OS:l)_$(RTL_ARCH:l)|g' \
|
||||
-e 's|@VERSION@|$(my_version)|g' \
|
||||
-e 's|@DEPENDENCY@|$(my_dependency)|g' < description.xml \
|
||||
> $(MISC)/$(TARGET).zip/description.xml
|
||||
$(COPY) Addons.xcu ProtocolHandler.xcu $(SHL1TARGETN) $(MISC)/$(TARGET).zip
|
||||
cd $(MISC)/$(TARGET).zip && zip ../boxt.oxt META-INF/manifest.xml \
|
||||
description.xml Addons.xcu ProtocolHandler.xcu $(SHL1TARGETN:f)
|
37
desktop/test/deployment/boxt/manifest.xml
Normal file
37
desktop/test/deployment/boxt/manifest.xml
Normal file
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--**********************************************************************
|
||||
*
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* Copyright 2000, 2010 Oracle and/or its affiliates.
|
||||
*
|
||||
* OpenOffice.org - a multi-platform office productivity suite
|
||||
*
|
||||
* This file is part of OpenOffice.org.
|
||||
*
|
||||
* OpenOffice.org is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License version 3
|
||||
* only, as published by the Free Software Foundation.
|
||||
*
|
||||
* OpenOffice.org is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License version 3 for more details
|
||||
* (a copy is included in the LICENSE file that accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* version 3 along with OpenOffice.org. If not, see
|
||||
* <http://www.openoffice.org/license.html>
|
||||
* for a copy of the LGPLv3 License.
|
||||
*
|
||||
**********************************************************************-->
|
||||
|
||||
<m:manifest xmlns:m="http://openoffice.org/2001/manifest">
|
||||
<m:file-entry m:media-type="application/vnd.sun.star.configuration-data"
|
||||
m:full-path="Addons.xcu"/>
|
||||
<m:file-entry m:media-type="application/vnd.sun.star.configuration-data"
|
||||
m:full-path="ProtocolHandler.xcu"/>
|
||||
<m:file-entry
|
||||
m:media-type="application/vnd.sun.star.uno-component;type=native"
|
||||
m:full-path="@PATH@"/>
|
||||
</m:manifest>
|
@@ -81,41 +81,7 @@ APP1TARGET=so$/$(TARGET)
|
||||
APP1NOSAL=TRUE
|
||||
APP1RPATH=BRAND
|
||||
APP1OBJS=$(OBJ)$/copyright_ascii_sun.obj $(OBJ)$/main.obj
|
||||
APP1STDLIBS = \
|
||||
$(SALLIB) \
|
||||
$(SOFFICELIB) \
|
||||
$(COMPHELPERLIB) \
|
||||
$(CPPUHELPERLIB) \
|
||||
$(CPPULIB) \
|
||||
$(I18NISOLANGLIB) \
|
||||
$(SALLIB) \
|
||||
$(SFXLIB) \
|
||||
$(SVLLIB) \
|
||||
$(SVTOOLLIB) \
|
||||
$(TKLIB) \
|
||||
$(TOOLSLIB) \
|
||||
$(UCBHELPERLIB) \
|
||||
$(UNOTOOLSLIB) \
|
||||
$(VCLLIB) \
|
||||
$(FWELIB) \
|
||||
$(BASICLIB) \
|
||||
$(XMLSCRIPTLIB) \
|
||||
$(SALHELPERLIB) \
|
||||
$(SOTLIB) \
|
||||
$(SAXLIB) \
|
||||
$(FWILIB) \
|
||||
$(ICUUCLIB) \
|
||||
$(I18NUTILLIB) \
|
||||
$(ICULIB) \
|
||||
$(JVMFWKLIB) \
|
||||
$(BASEGFXLIB) \
|
||||
$(ICUDATALIB) \
|
||||
$(ICULELIB) \
|
||||
$(JVMACCESSLIB) \
|
||||
$(SALHELPERLIB) \
|
||||
$(VOSLIB)
|
||||
|
||||
|
||||
APP1STDLIBS = $(SALLIB) $(SOFFICELIB)
|
||||
APP1DEPN= $(APP1RES) verinfo.rc
|
||||
|
||||
.IF "$(GUI)" == "WNT"
|
||||
@@ -140,40 +106,7 @@ APP5TARGET=soffice
|
||||
APP5NOSAL=TRUE
|
||||
APP5RPATH=BRAND
|
||||
APP5OBJS=$(OBJ)$/copyright_ascii_ooo.obj $(OBJ)$/main.obj
|
||||
APP5STDLIBS = \
|
||||
$(SALLIB) \
|
||||
$(SOFFICELIB) \
|
||||
$(COMPHELPERLIB) \
|
||||
$(CPPUHELPERLIB) \
|
||||
$(CPPULIB) \
|
||||
$(I18NISOLANGLIB) \
|
||||
$(SALLIB) \
|
||||
$(SFXLIB) \
|
||||
$(SVLLIB) \
|
||||
$(SVTOOLLIB) \
|
||||
$(TKLIB) \
|
||||
$(TOOLSLIB) \
|
||||
$(UCBHELPERLIB) \
|
||||
$(UNOTOOLSLIB) \
|
||||
$(VCLLIB) \
|
||||
$(FWELIB) \
|
||||
$(BASICLIB) \
|
||||
$(XMLSCRIPTLIB) \
|
||||
$(SALHELPERLIB) \
|
||||
$(SOTLIB) \
|
||||
$(SAXLIB) \
|
||||
$(FWILIB) \
|
||||
$(ICUUCLIB) \
|
||||
$(I18NUTILLIB) \
|
||||
$(ICULIB) \
|
||||
$(JVMFWKLIB) \
|
||||
$(BASEGFXLIB) \
|
||||
$(ICUDATALIB) \
|
||||
$(ICULELIB) \
|
||||
$(JVMACCESSLIB) \
|
||||
$(SALHELPERLIB) \
|
||||
$(VOSLIB)
|
||||
|
||||
APP5STDLIBS = $(SALLIB) $(SOFFICELIB)
|
||||
.IF "$(OS)" == "LINUX"
|
||||
APP5STDLIBS+= -lXext
|
||||
#APP5STDLIBS+= -lXext -lSM -lICE
|
||||
|
Reference in New Issue
Block a user