Commits

Anonymous committed 9f4b513 Merge

rt38: Merge do DEV300 m80

Comments (0)

Files changed (584)

+#*************************************************************************
+#
+# 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.
+#
+#***********************************************************************/
+
 syntax: regexp
 
 # source additions:
 ^external/unowinreg/unowinreg.dll$
-^moz/download/seamonkey-1\.1\.14\.source\.tar\.bz2$
 
 # configure output:
 ^Makefile$
 # bootstrap output:
 ^dmake/(.+/)?Makefile$
 ^dmake/(.+/)?\.deps$
+^dmake/(.+/)?\.dirstamp$
 ^dmake/.+\.o$
 ^dmake/config\.h$
 ^dmake/config\.log$
 ^dmake/dmakeroot\.h$
 ^dmake/stamp-h1$
 ^dmake/startup/config\.mk$
-^dmake/[^/]+/\.dirstamp$
 
 # build output:
 ^[^/]+/common(\.pro)?$
 # VIM swap files (.XXX.swp):
 ^(.*/)?(\.[^/]+)?\.swp$
 
-^.*\.DS_Store
+^(.*/)?\.DS_Store$
 bdd775934f7fe5ac1e523bad46d4e4da02f2c7ab DEV300_m77
 e4a9ffc6a905e83572d34b47ffb9d1253c149af6 DEV300_m78
 4c02d2669043bd6f16d57ecbd21061d15745a613 DEV300_m79
+9f08556668b1565f293d735949e3b16d96e78651 DEV300_m80

basic/prj/build.lst

 sb	basic\source\basmgr						nmake	-	all	sb_mgr sb_inc NULL
 sb	basic\source\classes					nmake	-	all	sb_class sb_inc NULL
 sb	basic\source\comp						nmake	-	all	sb_comp sb_inc NULL
-sb	basic\source\runtime					nmake	-	all	sb_rt sb_inc NULL
+sb	basic\source\runtime					nmake	-	all	sb_rt sb_inc sb_class NULL
 sb	basic\source\sample						nmake	-	all	sb_samp sb_inc NULL
 sb	basic\source\sbx						nmake	-	all	sb_sbx sb_inc NULL
 sb	basic\source\uno                        nmake	-	all	sb_uno sb_inc NULL

basic/source/classes/sbxmod.cxx

             triggerInitializeEvent();
         } 
     }
-    catch( uno::Exception& e )
+    catch( uno::Exception& )
     {
     }
 

boost/boost_1_39_0.patch

---- misc/boost_1_39_0/boost/function/function_template.hpp	2008-10-16 15:21:50.000000000 +0200
-+++ misc/build/boost_1_39_0/boost/function/function_template.hpp	2009-07-09 12:58:51.141224220 +0200
-@@ -950,10 +950,10 @@
+diff --git boost_1_39_0/boost/config/compiler/visualc.hpp boost_1_39_0/boost/config/compiler/visualc.hpp
+index 552e5bb..d9f90b2 100644
+--- misc/build/boost_1_39_0/boost/config/compiler/visualc.hpp
++++ misc/build/boost_1_39_0/boost/config/compiler/visualc.hpp
+@@ -138,6 +138,9 @@
+ #  define BOOST_NO_RTTI
+ #endif
+ 
++// disable WORKAROUND macro - gives warning for undefined macros
++#define BOOST_STRICT_CONFIG 1
++
+ //
+ // all versions support __declspec:
+ //
+diff --git boost_1_39_0/boost/function/function_base.hpp boost_1_39_0/boost/function/function_base.hpp
+index 6612fb8..35afa16 100644
+--- misc/build/boost_1_39_0/boost/function/function_base.hpp
++++ misc/build/boost_1_39_0/boost/function/function_base.hpp
+@@ -42,7 +42,7 @@
+ #endif       
+ 
+ // Define BOOST_FUNCTION_STD_NS to the namespace that contains type_info.
+-#ifdef BOOST_NO_EXCEPTION_STD_NAMESPACE
++#ifdef BOOST_NO_STD_TYPEINFO
+ // Embedded VC++ does not have type_info in namespace std
+ #  define BOOST_FUNCTION_STD_NS
+ #else
+diff --git boost_1_39_0/boost/function/function_template.hpp boost_1_39_0/boost/function/function_template.hpp
+index 584abe9..36b619b 100644
+--- misc/build/boost_1_39_0/boost/function/function_template.hpp
++++ misc/build/boost_1_39_0/boost/function/function_template.hpp
+@@ -950,10 +950,10 @@ namespace boost {
            f.vtable->manager(f.functor, this->functor,
                              boost::detail::function::move_functor_tag);
  		  f.vtable = 0;
        } catch (...) {
          vtable = 0;
          throw;
---- misc/boost_1_39_0/boost/function/function_base.hpp	2008-10-16 15:21:50.000000000 +0200
-+++ misc/build/boost_1_39_0/boost/function/function_base.hpp	2009-07-12 21:42:22.779873909 +0200
-@@ -42,7 +42,7 @@
- #endif       
- 
- // Define BOOST_FUNCTION_STD_NS to the namespace that contains type_info.
--#ifdef BOOST_NO_EXCEPTION_STD_NAMESPACE
-+#ifdef BOOST_NO_STD_TYPEINFO
- // Embedded VC++ does not have type_info in namespace std
- #  define BOOST_FUNCTION_STD_NS
- #else
---- misc/boost_1_39_0/boost/config/compiler/visualc.hpp	2009-03-26 20:00:00.000000000 +0100
-+++ misc/build/boost_1_39_0/boost/config/compiler/visualc.hpp	2009-06-10 21:53:42.484375000 +0200
-@@ -138,6 +138,9 @@
- #  define BOOST_NO_RTTI
- #endif
- 
-+// disable WORKAROUND macro - gives warning for undefined macros
-+#define BOOST_STRICT_CONFIG 1
-+
- //
- // all versions support __declspec:
- //
---- misc/boost_1_39_0/boost/mpl/apply_wrap.hpp	2008-10-11 08:50:46.000000000 +0200
-+++ misc/build/boost_1_39_0/boost/mpl/apply_wrap.hpp	2009-06-10 21:53:42.500000000 +0200
-@@ -173,8 +173,8 @@
+diff --git boost_1_39_0/boost/mpl/apply_wrap.hpp boost_1_39_0/boost/mpl/apply_wrap.hpp
+index b3cb12b..0bf8e73 100644
+--- misc/build/boost_1_39_0/boost/mpl/apply_wrap.hpp
++++ misc/build/boost_1_39_0/boost/mpl/apply_wrap.hpp
+@@ -173,8 +173,8 @@ struct BOOST_PP_CAT(apply_wrap,i_)<AUX778076_APPLY_WRAP_SPEC_PARAMS(i_, int)>
  #   undef i_
  
  ///// iteration, depth == 2
  
  #   define j_ BOOST_PP_FRAME_ITERATION(2)
  
-@@ -230,4 +231,5 @@
+@@ -231,4 +231,5 @@ struct BOOST_PP_CAT(apply_wrap_impl,i_)<
  #   undef j_
  
  #endif // BOOST_PP_ITERATION_DEPTH()
 +#endif
  #endif // BOOST_PP_IS_ITERATING
---- misc/boost_1_39_0/boost/mpl/bind.hpp	2008-10-11 08:19:02.000000000 +0200
-+++ misc/build/boost_1_39_0/boost/mpl/bind.hpp	2009-06-10 21:53:42.515625000 +0200
-@@ -531,7 +531,8 @@
+diff --git boost_1_39_0/boost/mpl/bind.hpp boost_1_39_0/boost/mpl/bind.hpp
+index 5d851ef..780e260 100644
+--- misc/build/boost_1_39_0/boost/mpl/bind.hpp
++++ misc/build/boost_1_39_0/boost/mpl/bind.hpp
+@@ -531,7 +531,8 @@ struct bind_chooser<i_>
  
  ///// iteration, depth == 2
  
  
  #   define j_ BOOST_PP_FRAME_ITERATION(2)
  #   if !defined(BOOST_MPL_CFG_NO_UNNAMED_PLACEHOLDER_SUPPORT)
-@@ -548,4 +549,5 @@
+@@ -548,4 +549,5 @@ struct bind_chooser<i_>
  #   undef j_
  
  #endif // BOOST_PP_ITERATION_DEPTH()
 +#endif
  #endif // BOOST_PP_IS_ITERATING
---- misc/boost_1_39_0/boost/spirit/home/classic/core/impl/match.ipp	2008-06-22 17:05:38.000000000 +0200
-+++ misc/build/boost_1_39_0/boost/spirit/home/classic/core/impl/match.ipp	2009-06-10 21:53:42.531250000 +0200
-@@ -19,12 +19,12 @@
+diff --git boost_1_39_0/boost/ptr_container/detail/move.hpp boost_1_39_0/boost/ptr_container/detail/move.hpp
+index bf07d5f..6b082a7 100644
+--- misc/build/boost_1_39_0/boost/ptr_container/detail/move.hpp
++++ misc/build/boost_1_39_0/boost/ptr_container/detail/move.hpp
+@@ -20,7 +20,7 @@ namespace move_ptrs {
+ template<typename Ptr>
+ class move_source {
+ public:
+-    move_source(Ptr& ptr) : ptr_(ptr) {}
++    move_source(Ptr& _ptr) : ptr_(_ptr) {}
+     Ptr& ptr() const { return ptr_; }
+ private:
+     Ptr& ptr_;
+diff --git boost_1_39_0/boost/ptr_container/detail/reversible_ptr_container.hpp boost_1_39_0/boost/ptr_container/detail/reversible_ptr_container.hpp
+index 47c3903..3ad2c5c 100644
+--- misc/build/boost_1_39_0/boost/ptr_container/detail/reversible_ptr_container.hpp
++++ misc/build/boost_1_39_0/boost/ptr_container/detail/reversible_ptr_container.hpp
+@@ -278,9 +278,9 @@ namespace ptr_container_detail
+ 
+     private:
+         template< class ForwardIterator >
+-        ForwardIterator advance( ForwardIterator begin, size_type n ) 
++        ForwardIterator advance( ForwardIterator _begin, size_type n ) 
+         {
+-            ForwardIterator iter = begin;
++            ForwardIterator iter = _begin;
+             std::advance( iter, n );
+             return iter;
+         }        
+diff --git boost_1_39_0/boost/ptr_container/detail/static_move_ptr.hpp boost_1_39_0/boost/ptr_container/detail/static_move_ptr.hpp
+index ba2b9af..9e0d682 100644
+--- misc/build/boost_1_39_0/boost/ptr_container/detail/static_move_ptr.hpp
++++ misc/build/boost_1_39_0/boost/ptr_container/detail/static_move_ptr.hpp
+@@ -151,7 +151,7 @@ public:
+     deleter_const_reference get_deleter() const { return impl_.second(); }
+ private:
+     template<typename TT, typename DD>
+-    void check(const static_move_ptr<TT, DD>& ptr)
++    void check(const static_move_ptr<TT, DD>& _ptr)
+         {
+             typedef move_ptrs::is_smart_ptr_convertible<TT, T> convertible;
+             BOOST_STATIC_ASSERT(convertible::value);
+diff --git boost_1_39_0/boost/ptr_container/exception.hpp boost_1_39_0/boost/ptr_container/exception.hpp
+index d9a5ffe..7837fbb 100644
+--- misc/build/boost_1_39_0/boost/ptr_container/exception.hpp
++++ misc/build/boost_1_39_0/boost/ptr_container/exception.hpp
+@@ -24,7 +24,7 @@ namespace boost
+     {
+         const char* what_;
+     public:
+-        bad_ptr_container_operation( const char* what ) : what_( what )
++        bad_ptr_container_operation( const char* text ) : what_( text )
+         { }
+         
+         virtual const char* what() const throw()
+@@ -38,7 +38,7 @@ namespace boost
+     class bad_index : public bad_ptr_container_operation
+     {
+     public:
+-        bad_index( const char* what ) : bad_ptr_container_operation( what )
++        bad_index( const char* text ) : bad_ptr_container_operation( text )
+         { }
+     };
+ 
+diff --git boost_1_39_0/boost/spirit/home/classic/core/impl/match.ipp boost_1_39_0/boost/spirit/home/classic/core/impl/match.ipp
+index 492bf4b..565fdec 100644
+--- misc/build/boost_1_39_0/boost/spirit/home/classic/core/impl/match.ipp
++++ misc/build/boost_1_39_0/boost/spirit/home/classic/core/impl/match.ipp
+@@ -19,12 +19,12 @@ BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
      : len(-1), val() {}
  
      template <typename T>
  
      template <typename T>
      inline bool
-@@ -66,11 +66,11 @@
+@@ -66,11 +66,11 @@ BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
      inline match<nil_t>::match()
      : len(-1) {}
  
  
      inline bool
      match<nil_t>::operator!() const
---- misc/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/impl/rule.ipp	2008-06-22 17:05:38.000000000 +0200
-+++ misc/build/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/impl/rule.ipp	2009-06-10 21:53:42.546875000 +0200
-@@ -226,7 +226,7 @@
+diff --git boost_1_39_0/boost/spirit/home/classic/core/non_terminal/impl/rule.ipp boost_1_39_0/boost/spirit/home/classic/core/non_terminal/impl/rule.ipp
+index ca51bd2..b2282fa 100644
+--- misc/build/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/impl/rule.ipp
++++ misc/build/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/impl/rule.ipp
+@@ -226,7 +226,7 @@ BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
          template <typename ParserT, typename ScannerT, typename AttrT>
          struct concrete_parser : abstract_parser<ScannerT, AttrT>
          {
              virtual ~concrete_parser() {}
  
              virtual typename match_result<ScannerT, AttrT>::type
---- misc/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/parser_id.hpp	2008-06-22 17:05:38.000000000 +0200
-+++ misc/build/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/parser_id.hpp	2009-06-10 21:53:42.562500000 +0200
-@@ -106,7 +106,7 @@
+diff --git boost_1_39_0/boost/spirit/home/classic/core/non_terminal/parser_id.hpp boost_1_39_0/boost/spirit/home/classic/core/non_terminal/parser_id.hpp
+index 2f4b986..b3809da 100644
+--- misc/build/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/parser_id.hpp
++++ misc/build/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/parser_id.hpp
+@@ -106,7 +106,7 @@ BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
                  : parser_id(reinterpret_cast<std::size_t>(this)); 
          }
  
          
      private:
      
---- misc/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/rule.hpp	2008-06-22 17:05:38.000000000 +0200
-+++ misc/build/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/rule.hpp	2009-07-08 22:23:45.899895415 +0200
-@@ -159,11 +159,11 @@
+diff --git boost_1_39_0/boost/spirit/home/classic/core/non_terminal/rule.hpp boost_1_39_0/boost/spirit/home/classic/core/non_terminal/rule.hpp
+index 73389b4..18d26cc 100644
+--- misc/build/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/rule.hpp
++++ misc/build/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/rule.hpp
+@@ -159,11 +159,11 @@ BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
              return ptr.get();
          }
  
  
          scoped_ptr<abstract_parser_t> ptr;
      };
---- misc/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/subrule.hpp	2008-06-22 17:05:38.000000000 +0200
-+++ misc/build/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/subrule.hpp	2009-06-10 21:53:42.593750000 +0200
-@@ -210,7 +210,7 @@
+diff --git boost_1_39_0/boost/spirit/home/classic/core/non_terminal/subrule.hpp boost_1_39_0/boost/spirit/home/classic/core/non_terminal/subrule.hpp
+index 5d6761f..b93118a 100644
+--- misc/build/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/subrule.hpp
++++ misc/build/boost_1_39_0/boost/spirit/home/classic/core/non_terminal/subrule.hpp
+@@ -210,7 +210,7 @@ BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
              subrule_list<
                  subrule_parser<ID2, DefT2, ContextT2>,
                  nil_t> >
          {
              return subrule_list<
                  self_t,
-@@ -220,7 +220,7 @@
+@@ -220,7 +220,7 @@ BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
                          *this,
                          subrule_list<
                              subrule_parser<ID2, DefT2, ContextT2>, nil_t>(
          }
  
          typename DefT::embed_t rhs;
-@@ -258,10 +258,10 @@
+@@ -258,10 +258,10 @@ BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
          parse_main(ScannerT const& scan) const
          {
              typedef typename parser_result<self_t, ScannerT>::type result_t;
          }
  
          template <typename ScannerT>
---- misc/boost_1_39_0/boost/spirit/home/classic/debug/impl/parser_names.ipp	2008-06-22 17:05:38.000000000 +0200
-+++ misc/build/boost_1_39_0/boost/spirit/home/classic/debug/impl/parser_names.ipp	2009-10-11 22:34:54.867381817 +0200
-@@ -395,13 +395,13 @@
+diff --git boost_1_39_0/boost/spirit/home/classic/debug/impl/parser_names.ipp boost_1_39_0/boost/spirit/home/classic/debug/impl/parser_names.ipp
+index 5d75be2..730cf0c 100644
+--- misc/build/boost_1_39_0/boost/spirit/home/classic/debug/impl/parser_names.ipp
++++ misc/build/boost_1_39_0/boost/spirit/home/classic/debug/impl/parser_names.ipp
+@@ -395,13 +395,13 @@ BOOST_SPIRIT_CLASSIC_NAMESPACE_BEGIN
              }
  
              bool register_node(void const *r, char const *name_to_register,

boost/makefile.mk

     @$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/pending $(INCCOM)$/$(PRJNAME)
     @$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/pool $(INCCOM)$/$(PRJNAME)
     @$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/preprocessor $(INCCOM)$/$(PRJNAME)
+    @$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/ptr_container $(INCCOM)$/$(PRJNAME)
+    @$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/range $(INCCOM)$/$(PRJNAME)
     @$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/spirit $(INCCOM)$/$(PRJNAME)
     @$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/smart_ptr $(INCCOM)$/$(PRJNAME)
     @$(GNUCOPY) -r $(PACKAGE_DIR)$/$(TARFILE_NAME)$/boost$/tuple $(INCCOM)$/$(PRJNAME)
 mkdir: %_DEST%\inc%_EXT%\boost\preprocessor\slot
 mkdir: %_DEST%\inc%_EXT%\boost\preprocessor\slot\detail
 mkdir: %_DEST%\inc%_EXT%\boost\preprocessor\tuple
+mkdir: %_DEST%\inc%_EXT%\boost\ptr_container
+mkdir: %_DEST%\inc%_EXT%\boost\ptr_container\detail
+mkdir: %_DEST%\inc%_EXT%\boost\range
+mkdir: %_DEST%\inc%_EXT%\boost\range\detail
 mkdir: %_DEST%\inc%_EXT%\boost\spirit
 mkdir: %_DEST%\inc%_EXT%\boost\spirit\actor
 mkdir: %_DEST%\inc%_EXT%\boost\spirit\attribute
 mkdir: %_DEST%\inc%_EXT%\boost\type_traits
 mkdir: %_DEST%\inc%_EXT%\boost\type_traits\detail
 mkdir: %_DEST%\inc%_EXT%\boost\utility
+mkdir: %_DEST%\inc%_EXT%\boost\utility\detail
 mkdir: %_DEST%\inc%_EXT%\boost\variant
 mkdir: %_DEST%\inc%_EXT%\boost\variant\detail
 
 ..\%__SRC%\inc\boost\preprocessor\slot\* %_DEST%\inc%_EXT%\boost\preprocessor\slot
 ..\%__SRC%\inc\boost\preprocessor\slot\detail\* %_DEST%\inc%_EXT%\boost\preprocessor\slot\detail
 ..\%__SRC%\inc\boost\preprocessor\tuple\* %_DEST%\inc%_EXT%\boost\preprocessor\tuple
+..\%__SRC%\inc\boost\ptr_container\* %_DEST%\inc%_EXT%\boost\ptr_container
+..\%__SRC%\inc\boost\ptr_container\detail\* %_DEST%\inc%_EXT%\boost\ptr_container\detail
+..\%__SRC%\inc\boost\range\* %_DEST%\inc%_EXT%\boost\range
+..\%__SRC%\inc\boost\range\detail\* %_DEST%\inc%_EXT%\boost\range\detail
 ..\%__SRC%\inc\boost\spirit\* %_DEST%\inc%_EXT%\boost\spirit
 ..\%__SRC%\inc\boost\spirit\actor\* %_DEST%\inc%_EXT%\boost\spirit\actor
 ..\%__SRC%\inc\boost\spirit\attribute\* %_DEST%\inc%_EXT%\boost\spirit\attribute
 ..\%__SRC%\inc\boost\type_traits\* %_DEST%\inc%_EXT%\boost\type_traits
 ..\%__SRC%\inc\boost\type_traits\detail\* %_DEST%\inc%_EXT%\boost\type_traits\detail
 ..\%__SRC%\inc\boost\utility\* %_DEST%\inc%_EXT%\boost\utility
+..\%__SRC%\inc\boost\utility\detail\* %_DEST%\inc%_EXT%\boost\utility\detail
 ..\%__SRC%\inc\boost\variant\* %_DEST%\inc%_EXT%\boost\variant
 ..\%__SRC%\inc\boost\variant\detail\* %_DEST%\inc%_EXT%\boost\variant\detail

bridges/source/jni_uno/jni_uno2java.cxx

 #if OSL_DEBUG_LEVEL > 0
         OString cstr_msg2(
             OUStringToOString( exc.Message, RTL_TEXTENCODING_ASCII_US ) );
-        OSL_ENSURE( 0, cstr_msg2.getStr() );
+        OSL_TRACE( "%s", cstr_msg2.getStr() );
 #endif
     }
     catch (::jvmaccess::VirtualMachine::AttachGuard::CreationException &)

chart2/prj/build.lst

 ch	chart2\source\controller\main				nmake	-	all	ch_source_controller_main ch_inc NULL
 ch	chart2\source\controller\menus				nmake	-	all	ch_source_controller_menus ch_inc NULL
 ch	chart2\prj									get		-	all	ch_prj NULL
-ch chart2\qa\unoapi nmake - all ch_qa_unoapi NULL

comphelper/inc/comphelper/storagehelper.hxx

 			const ::rtl::OUString& aURL,
 			sal_Int32 nStorageMode,
 			const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory
-							= ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >() )
+							= ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >(),
+            sal_Bool bRepairStorage = sal_False )
 		throw ( ::com::sun::star::uno::Exception );
 
 	static ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >
 			const ::rtl::OUString& aFormat,
             const ::com::sun::star::uno::Reference < ::com::sun::star::io::XInputStream >& xStream,
 			const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory
-							= ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >() )
+							= ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >(),
+            sal_Bool bRepairStorage = sal_False )
 		throw ( ::com::sun::star::uno::Exception );
 
 	static ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage >
             const ::com::sun::star::uno::Reference < ::com::sun::star::io::XStream >& xStream,
 			sal_Int32 nStorageMode = ::com::sun::star::embed::ElementModes::READWRITE,
 			const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory
-							= ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >() )
+							= ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >(),
+            sal_Bool bRepairStorage = sal_False )
 		throw ( ::com::sun::star::uno::Exception );
 
     static sal_Bool IsValidZipEntryFileName( const ::rtl::OUString& aName, sal_Bool bSlashAllowed );

comphelper/qa/complex/makefile.mk

 # --- Settings -----------------------------------------------------
 .INCLUDE: settings.mk
 
-
-.IF "$(BUILD_QADEVOOO)" == "YES"
-
 #----- compile .java files -----------------------------------------
 
 JARFILES        := ridl.jar unoil.jar jurt.jar juh.jar java_uno.jar OOoRunner.jar
 
 RUNNER_ARGS = org.openoffice.Runner -TestBase java_complex $(RUNNER_APPEXECCOMMAND)
 
-.END    # "$(BUILD_QADEVOOO)" == "YES"
-
 # --- Targets ------------------------------------------------------
 
 .IF "$(depend)" == ""
 
 .INCLUDE :  target.mk
 
-.IF "$(BUILD_QADEVOOO)" == "YES"
 show_targets:
     +@java $(RUNNER_CLASSPATH) complexlib.ShowTargets $(foreach,i,$(JAVAFILES) $(i:s#.java##:s#./#complex.#))
 
 
 run_%:
     +java $(RUNNER_CLASSPATH) $(RUNNER_ARGS) -o complex.$(PRJNAME).$(@:s/run_//)
-
-.ELSE
-run: show_targets
-
-show_targets:
-	+@echo "Built without qadevOOo, no QA tests"
-
-.ENDIF

comphelper/source/misc/storagehelper.cxx

 			const ::rtl::OUString& aFormat,
 			const ::rtl::OUString& aURL,
 			sal_Int32 nStorageMode,
-			const uno::Reference< lang::XMultiServiceFactory >& xFactory )
+			const uno::Reference< lang::XMultiServiceFactory >& xFactory,
+            sal_Bool bRepairStorage )
 	throw ( uno::Exception )
 {
 	uno::Sequence< beans::PropertyValue > aProps( 1 );
 	aProps[0].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "StorageFormat" ) );
 	aProps[0].Value <<= aFormat;
+    if ( bRepairStorage )
+    {
+        aProps.realloc( 2 );
+        aProps[1].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RepairPackage" ) );
+        aProps[1].Value <<= bRepairStorage;
+    }
 
 	uno::Sequence< uno::Any > aArgs( 3 );
 	aArgs[0] <<= aURL;
 uno::Reference< embed::XStorage > OStorageHelper::GetStorageOfFormatFromInputStream(
 			const ::rtl::OUString& aFormat,
             const uno::Reference < io::XInputStream >& xStream,
-			const uno::Reference< lang::XMultiServiceFactory >& xFactory )
+			const uno::Reference< lang::XMultiServiceFactory >& xFactory,
+            sal_Bool bRepairStorage )
 		throw ( uno::Exception )
 {
 	uno::Sequence< beans::PropertyValue > aProps( 1 );
 	aProps[0].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "StorageFormat" ) );
 	aProps[0].Value <<= aFormat;
+    if ( bRepairStorage )
+    {
+        aProps.realloc( 2 );
+        aProps[1].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RepairPackage" ) );
+        aProps[1].Value <<= bRepairStorage;
+    }
 
 	uno::Sequence< uno::Any > aArgs( 3 );
 	aArgs[0] <<= xStream;
 			const ::rtl::OUString& aFormat,
             const uno::Reference < io::XStream >& xStream,
 			sal_Int32 nStorageMode,
-			const uno::Reference< lang::XMultiServiceFactory >& xFactory )
+			const uno::Reference< lang::XMultiServiceFactory >& xFactory,
+            sal_Bool bRepairStorage )
 		throw ( uno::Exception )
 {
 	uno::Sequence< beans::PropertyValue > aProps( 1 );
 	aProps[0].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "StorageFormat" ) );
 	aProps[0].Value <<= aFormat;
+    if ( bRepairStorage )
+    {
+        aProps.realloc( 2 );
+        aProps[1].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "RepairPackage" ) );
+        aProps[1].Value <<= bRepairStorage;
+    }
 
 	uno::Sequence< uno::Any > aArgs( 3 );
 	aArgs[0] <<= xStream;

configmgr/inc/configmgr/detail/configmgrdllapi.hxx

-/*************************************************************************
-*
-* 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.
-*
-************************************************************************/
-
-#ifndef INCLUDED_CONFIGMGR_DETAIL_CONFIGMGRDLLAPI_HXX
-#define INCLUDED_CONFIGMGR_DETAIL_CONFIGMGRDLLAPI_HXX
-
-#include "sal/config.h"
-
-#include "sal/types.h"
-
-#if defined OOO_DLLIMPLEMENTATION_CONFIGMGR
-#define OOO_DLLPUBLIC_CONFIGMGR SAL_DLLPUBLIC_EXPORT
-#else
-#define OOO_DLLPUBLIC_CONFIGMGR SAL_DLLPUBLIC_IMPORT
-#endif
-
-#endif

configmgr/inc/configmgr/update.hxx

-/*************************************************************************
-*
-* 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.
-*
-************************************************************************/
-
-#ifndef INCLUDED_CONFIGMGR_UPDATE_HXX
-#define INCLUDED_CONFIGMGR_UPDATE_HXX
-
-#include "sal/config.h"
-
-#include <set>
-
-#include "configmgr/detail/configmgrdllapi.hxx"
-
-namespace rtl { class OUString; }
-
-namespace configmgr {
-
-namespace update {
-
-OOO_DLLPUBLIC_CONFIGMGR void insertExtensionXcsFile(
-    bool shared, rtl::OUString const & fileUri);
-
-OOO_DLLPUBLIC_CONFIGMGR void insertExtensionXcuFile(
-    bool shared, rtl::OUString const & fileUri);
-
-OOO_DLLPUBLIC_CONFIGMGR void insertModificationXcuFile(
-    rtl::OUString const & fileUri,
-    std::set< rtl::OUString > const & includedPaths,
-    std::set< rtl::OUString > const & excludedPaths);
-
-}
-
-}
-
-#endif

configmgr/prj/d.lst

-mkdir: %_DEST%\inc%_EXT%\configmgr
-mkdir: %_DEST%\inc%_EXT%\configmgr\detail
-..\%__SRC%\bin\configmgr.dll %_DEST%\bin%_EXT%\configmgr.dll
-..\%__SRC%\lib\iconfigmgr.lib %_DEST%\lib%_EXT%\iconfigmgr.lib
-..\%__SRC%\lib\libconfigmgr.dylib %_DEST%\lib%_EXT%\libconfigmgr.dylib
-..\%__SRC%\lib\libconfigmgr.so %_DEST%\lib%_EXT%\libconfigmgr.so
-..\inc\configmgr\detail\configmgrdllapi.hxx %_DEST%\inc%_EXT%\configmgr\detail\configmgrdllapi.hxx
-..\inc\configmgr\update.hxx %_DEST%\inc%_EXT%\configmgr\update.hxx
+..\%__SRC%\bin\configmgr.uno.dll %_DEST%\bin%_EXT%\configmgr.uno.dll
+..\%__SRC%\lib\configmgr.uno.dylib %_DEST%\lib%_EXT%\configmgr.uno.dylib
+..\%__SRC%\lib\configmgr.uno.so %_DEST%\lib%_EXT%\configmgr.uno.so

configmgr/source/access.cxx

              tmplName),
             static_cast< cppu::OWeakObject * >(this));
     }
-    rtl::Reference< Node > node(tmpl->clone());
+    rtl::Reference< Node > node(tmpl->clone(true));
     node->setLayer(Data::NO_LAYER);
     return static_cast< cppu::OWeakObject * >(
         new ChildAccess(components_, getRootAccess(), node));

configmgr/source/components.cxx

             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) {

configmgr/source/groupnode.cxx

     mandatory_(Data::NO_LAYER)
 {}
 
-rtl::Reference< Node > GroupNode::clone() const {
-    return new GroupNode(*this);
+rtl::Reference< Node > GroupNode::clone(bool keepTemplateName) const {
+    return new GroupNode(*this, keepTemplateName);
 }
 
 NodeMap & GroupNode::getMembers() {
     return extensible_;
 }
 
-GroupNode::GroupNode(GroupNode const & other):
-    Node(other), extensible_(other.extensible_),
-    templateName_(other.templateName_), mandatory_(other.mandatory_)
+GroupNode::GroupNode(GroupNode const & other, bool keepTemplateName):
+    Node(other), extensible_(other.extensible_), mandatory_(other.mandatory_)
 {
     cloneNodeMap(other.members_, &members_);
+    if (keepTemplateName) {
+        templateName_ = other.templateName_;
+    }
 }
 
 GroupNode::~GroupNode() {}

configmgr/source/groupnode.hxx

 public:
     GroupNode(int layer, bool extensible, rtl::OUString const & templateName);
 
-    virtual rtl::Reference< Node > clone() const;
+    virtual rtl::Reference< Node > clone(bool keepTemplateName) const;
 
     virtual NodeMap & getMembers();
 
     bool isExtensible() const;
 
 private:
-    GroupNode(GroupNode const & other);
+    GroupNode(GroupNode const & other, bool keepTemplateName);
 
     virtual ~GroupNode();
 

configmgr/source/localizedpropertynode.cxx

     Node(layer), staticType_(staticType), nillable_(nillable)
 {}
 
-rtl::Reference< Node > LocalizedPropertyNode::clone() const {
+rtl::Reference< Node > LocalizedPropertyNode::clone(bool) const {
     return new LocalizedPropertyNode(*this);
 }
 

configmgr/source/localizedpropertynode.hxx

 public:
     LocalizedPropertyNode(int layer, Type staticType, bool nillable);
 
-    virtual rtl::Reference< Node > clone() const;
+    virtual rtl::Reference< Node > clone(bool keepTemplateName) const;
 
     virtual NodeMap & getMembers();
 

configmgr/source/localizedvaluenode.cxx

     Node(layer), value_(value)
 {}
 
-rtl::Reference< Node > LocalizedValueNode::clone() const {
+rtl::Reference< Node > LocalizedValueNode::clone(bool) const {
     return new LocalizedValueNode(*this);
 }
 

configmgr/source/localizedvaluenode.hxx

 public:
     LocalizedValueNode(int layer, com::sun::star::uno::Any const & value);
 
-    virtual rtl::Reference< Node > clone() const;
+    virtual rtl::Reference< Node > clone(bool keepTemplateName) const;
 
     virtual rtl::OUString getTemplateName() const;
 

configmgr/source/makefile.mk

 
 .INCLUDE: settings.mk
 
-CDEFS += -DOOO_DLLIMPLEMENTATION_CONFIGMGR
+DLLPRE =
 
 SLOFILES = \
     $(SLO)/access.obj \
     $(CPPULIB) \
     $(SALHELPERLIB) \
     $(SALLIB)
-SHL1TARGET = configmgr
+SHL1TARGET = configmgr.uno
 SHL1USE_EXPORTS = name
 DEF1NAME = $(SHL1TARGET)
 

configmgr/source/node.hxx

 
     virtual Kind kind() const = 0;
 
-    virtual rtl::Reference< Node > clone() const = 0;
+    virtual rtl::Reference< Node > clone(bool keepTemplateName) const = 0;
 
     virtual NodeMap & getMembers();
 

configmgr/source/nodemap.cxx

     OSL_ASSERT(target != 0 && target->empty());
     NodeMap clone(source);
     for (NodeMap::iterator i(clone.begin()); i != clone.end(); ++i) {
-        i->second = i->second->clone();
+        i->second = i->second->clone(true);
     }
     std::swap(clone, *target);
 }

configmgr/source/propertynode.cxx

     extension_(extension)
 {}
 
-rtl::Reference< Node > PropertyNode::clone() const {
+rtl::Reference< Node > PropertyNode::clone(bool) const {
     return new PropertyNode(*this);
 }
 

configmgr/source/propertynode.hxx

         int layer, Type staticType, bool nillable,
         com::sun::star::uno::Any const & value, bool extension);
 
-    virtual rtl::Reference< Node > clone() const;
+    virtual rtl::Reference< Node > clone(bool keepTemplateName) const;
 
     Type getStaticType() const;
 

configmgr/source/services.cxx

 #include "configurationprovider.hxx"
 #include "configurationregistry.hxx"
 #include "defaultprovider.hxx"
+#include "update.hxx"
 
 namespace {
 
     { &dummy, &configmgr::configuration_registry::getImplementationName,
       &configmgr::configuration_registry::getSupportedServiceNames,
       &configmgr::configuration_registry::createFactory, 0, 0 },
+    { &dummy, &configmgr::update::getImplementationName,
+      &configmgr::update::getSupportedServiceNames,
+      &configmgr::update::createFactory, 0, 0 },
     { 0, 0, 0, 0, 0, 0 }
 };
 
                 rtl::OUString(
                     RTL_CONSTASCII_USTRINGPARAM(
                         "com.sun.star.configuration.DefaultProvider")));
+        css::uno::Reference< css::registry::XRegistryKey >(
+            (css::uno::Reference< css::registry::XRegistryKey >(
+                static_cast< css::registry::XRegistryKey * >(pRegistryKey))->
+             createKey(
+                 rtl::OUString(
+                     RTL_CONSTASCII_USTRINGPARAM(
+                         "/com.sun.star.comp.configuration.Update/UNO/"
+                         "SINGLETONS/com.sun.star.configuration.Update")))),
+            css::uno::UNO_SET_THROW)->
+            setStringValue(
+                rtl::OUString(
+                    RTL_CONSTASCII_USTRINGPARAM(
+                        "com.sun.star.configuration.Update_Service")));
     } catch (css::uno::Exception & e) {
         (void) e;
         OSL_TRACE(

configmgr/source/setnode.cxx

     templateName_(templateName), mandatory_(Data::NO_LAYER)
 {}
 
-rtl::Reference< Node > SetNode::clone() const {
-    return new SetNode(*this);
+rtl::Reference< Node > SetNode::clone(bool keepTemplateName) const {
+    return new SetNode(*this, keepTemplateName);
 }
 
 NodeMap & SetNode::getMembers() {
          additionalTemplateNames_.end());
 }
 
-SetNode::SetNode(SetNode const & other):
+SetNode::SetNode(SetNode const & other, bool keepTemplateName):
     Node(other), defaultTemplateName_(other.defaultTemplateName_),
     additionalTemplateNames_(other.additionalTemplateNames_),
-    templateName_(other.templateName_), mandatory_(other.mandatory_)
+    mandatory_(other.mandatory_)
 {
     cloneNodeMap(other.members_, &members_);
+    if (keepTemplateName) {
+        templateName_ = other.templateName_;
+    }
 }
 
 SetNode::~SetNode() {}

configmgr/source/setnode.hxx

         int layer, rtl::OUString const & defaultTemplateName,
         rtl::OUString const & templateName);
 
-    virtual rtl::Reference< Node > clone() const;
+    virtual rtl::Reference< Node > clone(bool keepTemplateName) const;
 
     virtual NodeMap & getMembers();
 
     bool isValidTemplate(rtl::OUString const & templateName) const;
 
 private:
-    SetNode(SetNode const & other);
+    SetNode(SetNode const & other, bool keepTemplateName);
 
     virtual ~SetNode();
 

configmgr/source/update.cxx

 
 #include <set>
 
-#include "configmgr/update.hxx"
+#include "boost/noncopyable.hpp"
+#include "com/sun/star/configuration/XUpdate.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 "cppuhelper/factory.hxx"
+#include "cppuhelper/implbase1.hxx"
+#include "cppuhelper/weak.hxx"
 #include "osl/mutex.hxx"
 #include "rtl/ref.hxx"
+#include "rtl/unload.h"
+#include "rtl/ustring.h"
 #include "rtl/ustring.hxx"
+#include "sal/types.h"
 
 #include "broadcaster.hxx"
 #include "components.hxx"
 #include "lock.hxx"
 #include "modifications.hxx"
 #include "rootaccess.hxx"
+#include "update.hxx"
 
-namespace configmgr {
+namespace configmgr { namespace update {
 
-namespace update {
+namespace {
 
-void insertExtensionXcsFile(bool shared, rtl::OUString const & fileUri) {
+namespace css = com::sun::star;
+
+std::set< rtl::OUString > seqToSet(
+    css::uno::Sequence< rtl::OUString > const & sequence)
+{
+    return std::set< rtl::OUString >(
+        sequence.getConstArray(),
+        sequence.getConstArray() + sequence.getLength());
+}
+
+class Service:
+    public cppu::WeakImplHelper1< css::configuration::XUpdate >,
+    private boost::noncopyable
+{
+public:
+    Service() {}
+
+private:
+    virtual ~Service() {}
+
+    virtual void SAL_CALL insertExtensionXcsFile(
+        sal_Bool shared, rtl::OUString const & fileUri)
+        throw (css::uno::RuntimeException);
+
+    virtual void SAL_CALL insertExtensionXcuFile(
+        sal_Bool shared, rtl::OUString const & fileUri)
+        throw (css::uno::RuntimeException);
+
+    virtual void SAL_CALL insertModificationXcuFile(
+        rtl::OUString const & fileUri,
+        css::uno::Sequence< rtl::OUString > const & includedPaths,
+        css::uno::Sequence< rtl::OUString > const & excludedPaths)
+        throw (css::uno::RuntimeException);
+};
+
+void Service::insertExtensionXcsFile(
+    sal_Bool shared, rtl::OUString const & fileUri)
+    throw (css::uno::RuntimeException)
+{
     osl::MutexGuard g(lock);
     Components::getSingleton().insertExtensionXcsFile(shared, fileUri);
 }
 
-void insertExtensionXcuFile(bool shared, rtl::OUString const & fileUri) {
+void Service::insertExtensionXcuFile(
+    sal_Bool shared, rtl::OUString const & fileUri)
+    throw (css::uno::RuntimeException)
+{
     Broadcaster bc;
     {
         osl::MutexGuard g(lock);
     bc.send();
 }
 
-void insertModificationXcuFile(
+void Service::insertModificationXcuFile(
     rtl::OUString const & fileUri,
-    std::set< rtl::OUString > const & includedPaths,
-    std::set< rtl::OUString > const & excludedPaths)
+    css::uno::Sequence< rtl::OUString > const & includedPaths,
+    css::uno::Sequence< rtl::OUString > const & excludedPaths)
+    throw (css::uno::RuntimeException)
 {
     Broadcaster bc;
     {
         osl::MutexGuard g(lock);
         Modifications mods;
         Components::getSingleton().insertModificationXcuFile(
-            fileUri, includedPaths, excludedPaths, &mods);
+            fileUri, seqToSet(includedPaths), seqToSet(excludedPaths), &mods);
         Components::getSingleton().initGlobalBroadcaster(
             mods, rtl::Reference< RootAccess >(), &bc);
     }
     bc.send();
 }
 
+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 & Context)
+        throw (css::uno::Exception, css::uno::RuntimeException);
+
+    virtual css::uno::Reference< css::uno::XInterface > SAL_CALL
+    createInstanceWithArgumentsAndContext(
+        css::uno::Sequence< css::uno::Any > const & Arguments,
+        css::uno::Reference< css::uno::XComponentContext > const & Context)
+        throw (css::uno::Exception, css::uno::RuntimeException);
+};
+
+css::uno::Reference< css::uno::XInterface > Factory::createInstanceWithContext(
+    css::uno::Reference< css::uno::XComponentContext > const & Context)
+    throw (css::uno::Exception, css::uno::RuntimeException)
+{
+    return createInstanceWithArgumentsAndContext(
+        css::uno::Sequence< css::uno::Any >(), Context);
+}
+
+css::uno::Reference< css::uno::XInterface >
+Factory::createInstanceWithArgumentsAndContext(
+    css::uno::Sequence< css::uno::Any > const & Arguments,
+    css::uno::Reference< css::uno::XComponentContext > const &)
+    throw (css::uno::Exception, css::uno::RuntimeException)
+{
+    if (Arguments.getLength() != 0) {
+        throw css::uno::Exception(
+            rtl::OUString(
+                RTL_CONSTASCII_USTRINGPARAM(
+                    "com.sun.star.comp.configuration.Update must be"
+                    " instantiated without arguments")),
+            static_cast< cppu::OWeakObject * >(this));
+    }
+    return static_cast< cppu::OWeakObject * >(new Service);
 }
 
 }
+
+rtl::OUString getImplementationName() {
+    return rtl::OUString(
+        RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.configuration.Update"));
+}
+
+css::uno::Sequence< rtl::OUString > getSupportedServiceNames() {
+    rtl::OUString name(
+        RTL_CONSTASCII_USTRINGPARAM(
+            "com.sun.star.configuration.Update_Service"));
+    return css::uno::Sequence< rtl::OUString >(&name, 1);
+}
+
+css::uno::Reference< css::lang::XSingleComponentFactory > createFactory(
+    cppu::ComponentFactoryFunc, rtl::OUString const &,
+    css::uno::Sequence< rtl::OUString > const &, rtl_ModuleCount *)
+    SAL_THROW(())
+{
+    return new Factory;
+}
+
+} }

configmgr/source/update.hxx

+/*************************************************************************
+*
+* 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.
+*
+************************************************************************/
+
+#ifndef INCLUDED_CONFIGMGR_SOURCE_UPDATE_HXX
+#define INCLUDED_CONFIGMGR_SOURCE_UPDATE_HXX
+
+#include "sal/config.h"
+
+#include "com/sun/star/uno/Reference.hxx"
+#include "com/sun/star/uno/Sequence.hxx"
+#include "cppuhelper/factory.hxx"
+#include "rtl/unload.h"
+#include "sal/types.h"
+
+namespace com { namespace sun { namespace star { namespace lang {
+    class XSingleComponentFactory;
+} } } }
+namespace rtl { class OUString; }
+
+namespace configmgr { namespace update {
+
+rtl::OUString SAL_CALL getImplementationName();
+
+com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL
+getSupportedServiceNames();
+
+com::sun::star::uno::Reference< com::sun::star::lang::XSingleComponentFactory >
+SAL_CALL createFactory(
+    cppu::ComponentFactoryFunc, rtl::OUString const &,
+    com::sun::star::uno::Sequence< rtl::OUString > const &, rtl_ModuleCount *)
+    SAL_THROW(());
+
+} }
+
+#endif

configmgr/source/xcsparser.cxx

         case Node::KIND_LOCALIZED_VALUE:
             break; //TODO: merge certain parts?
         case Node::KIND_GROUP:
-            if (dynamic_cast< GroupNode * >(original.get())->isExtensible()) {
-                for (NodeMap::iterator i2(update->getMembers().begin());
-                     i2 != update->getMembers().end(); ++i2)
-                {
-                    NodeMap::iterator i1(
-                        original->getMembers().find(i2->first));
-                    if (i1 == original->getMembers().end()) {
-                        if (i2->second->kind() == Node::KIND_PROPERTY) {
-                            original->getMembers().insert(*i2);
-                        }
-                    } else if (i2->second->kind() == i1->second->kind()) {
-                        merge(i1->second, i2->second);
+            for (NodeMap::iterator i2(update->getMembers().begin());
+                 i2 != update->getMembers().end(); ++i2)
+            {
+                NodeMap::iterator i1(original->getMembers().find(i2->first));
+                if (i1 == original->getMembers().end()) {
+                    if (i2->second->kind() == Node::KIND_PROPERTY &&
+                        dynamic_cast< GroupNode * >(
+                            original.get())->isExtensible())
+                    {
+                        original->getMembers().insert(*i2);
                     }
+                } else if (i2->second->kind() == i1->second->kind()) {
+                    merge(i1->second, i2->second);
                 }
             }
             break;
              reader.getUrl()),
             css::uno::Reference< css::uno::XInterface >());
     }
-    rtl::Reference< Node > node(tmpl->clone());
+    rtl::Reference< Node > node(tmpl->clone(false));
     node->setLayer(valueParser_.getLayer());
     elements_.push(Element(node, name));
 }

configmgr/source/xcuparser.cxx

         if (state_.top().locked || finalizedLayer < valueParser_.getLayer()) {
             state_.push(State(true)); // ignored
         } else {
-            rtl::Reference< Node > member(tmpl->clone());
+            rtl::Reference< Node > member(tmpl->clone(true));
             member->setLayer(valueParser_.getLayer());
             member->setFinalized(finalizedLayer);
             member->setMandatory(mandatoryLayer);
             {
                 state_.push(State(true)); // ignored
             } else {
-                rtl::Reference< Node > member(tmpl->clone());
+                rtl::Reference< Node > member(tmpl->clone(true));
                 member->setLayer(valueParser_.getLayer());
                 member->setFinalized(finalizedLayer);
                 member->setMandatory(mandatoryLayer);