summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--UnoControls/prj/d.lst1
-rw-r--r--UnoControls/source/base/registercontrols.cxx100
-rw-r--r--UnoControls/util/ctl.component43
-rw-r--r--UnoControls/util/makefile.mk8
-rwxr-xr-xaccessibility/bridge/org/openoffice/accessibility/AccessBridge.java5
-rw-r--r--accessibility/bridge/org/openoffice/accessibility/java_uno_accessbridge.component34
-rwxr-xr-xaccessibility/bridge/org/openoffice/accessibility/makefile.mk7
-rw-r--r--accessibility/prj/d.lst2
-rw-r--r--animations/prj/d.lst1
-rw-r--r--animations/source/animcore/animcore.component67
-rw-r--r--animations/source/animcore/factreg.cxx6
-rw-r--r--animations/source/animcore/makefile.mk8
-rw-r--r--avmedia/prj/d.lst5
-rw-r--r--avmedia/source/framework/soundhandler.cxx38
-rw-r--r--avmedia/source/gstreamer/avmediagst.component34
-rw-r--r--avmedia/source/gstreamer/exports.dxp1
-rw-r--r--avmedia/source/gstreamer/gstuno.cxx29
-rw-r--r--avmedia/source/gstreamer/makefile.mk8
-rw-r--r--avmedia/source/java/MediaUno.java9
-rw-r--r--avmedia/source/java/avmedia.jar.component34
-rw-r--r--avmedia/source/java/makefile.mk8
-rw-r--r--avmedia/source/quicktime/avmediaQuickTime.component34
-rw-r--r--avmedia/source/quicktime/makefile.mk8
-rw-r--r--avmedia/source/quicktime/quicktimeuno.cxx29
-rw-r--r--avmedia/source/win/avmediawin.component34
-rw-r--r--avmedia/source/win/exports.dxp1
-rw-r--r--avmedia/source/win/makefile.mk8
-rw-r--r--avmedia/source/win/winuno.cxx27
-rw-r--r--avmedia/source/xine/exports.dxp1
-rw-r--r--avmedia/source/xine/xineuno.cxx29
-rw-r--r--avmedia/util/avmedia.component34
-rw-r--r--avmedia/util/makefile.mk8
-rw-r--r--basctl/prj/d.lst1
-rw-r--r--basctl/source/basicide/register.cxx22
-rw-r--r--basctl/util/basctl.component34
-rwxr-xr-xbasctl/util/basctl.map1
-rw-r--r--basctl/util/makefile.mk8
-rw-r--r--basic/prj/d.lst1
-rw-r--r--basic/util/makefile.mk6
-rw-r--r--basic/util/sb.component39
-rw-r--r--berkeleydb/makefile.mk2
-rw-r--r--bridges/source/remote/context/context.cxx45
-rw-r--r--cairo/cairo/makefile.mk2
-rw-r--r--cairo/pixman/makefile.mk2
-rw-r--r--canvas/prj/d.lst7
-rw-r--r--canvas/source/cairo/cairocanvas.component37
-rw-r--r--canvas/source/cairo/exports.dxp1
-rw-r--r--canvas/source/cairo/makefile.mk8
-rw-r--r--canvas/source/directx/directx5canvas.component34
-rw-r--r--canvas/source/directx/directx9canvas.component34
-rw-r--r--canvas/source/directx/exports.dxp1
-rw-r--r--canvas/source/directx/gdipluscanvas.component37
-rw-r--r--canvas/source/directx/makefile.mk22
-rw-r--r--canvas/source/factory/canvasfactory.component34
-rw-r--r--canvas/source/factory/cf_service.cxx8
-rw-r--r--canvas/source/factory/makefile.mk7
-rw-r--r--canvas/source/null/exports.dxp1
-rw-r--r--canvas/source/simplecanvas/exports.dxp1
-rw-r--r--canvas/source/simplecanvas/makefile.mk8
-rw-r--r--canvas/source/simplecanvas/simplecanvas.component34
-rw-r--r--canvas/source/vcl/exports.dxp1
-rw-r--r--canvas/source/vcl/makefile.mk8
-rw-r--r--canvas/source/vcl/vclcanvas.component37
-rw-r--r--chart2/prj/d.lst4
-rw-r--r--chart2/source/controller/chartcontroller.component56
-rw-r--r--chart2/source/controller/main/_serviceregistration_controller.cxx7
-rw-r--r--chart2/source/controller/makefile.mk8
-rw-r--r--chart2/source/inc/exports.dxp1
-rw-r--r--chart2/source/model/chartmodel.component150
-rw-r--r--chart2/source/model/main/_serviceregistration_model.cxx10
-rw-r--r--chart2/source/model/makefile.mk8
-rw-r--r--chart2/source/tools/_serviceregistration_tools.cxx7
-rw-r--r--chart2/source/tools/charttools.component92
-rw-r--r--chart2/source/tools/makefile.mk8
-rw-r--r--chart2/source/view/chartview.component34
-rw-r--r--chart2/source/view/main/_serviceregistration_view.cxx7
-rw-r--r--chart2/source/view/makefile.mk8
-rw-r--r--comphelper/inc/comphelper/componentmodule.hxx29
-rwxr-xr-xcomphelper/inc/comphelper/docpasswordrequest.hxx54
-rw-r--r--comphelper/inc/comphelper/servicedecl.hxx27
-rw-r--r--comphelper/prj/d.lst1
-rw-r--r--comphelper/source/misc/componentmodule.cxx58
-rwxr-xr-x[-rw-r--r--]comphelper/source/misc/docpasswordrequest.cxx67
-rw-r--r--comphelper/source/misc/servicedecl.cxx31
-rw-r--r--comphelper/util/comphelp4.component70
-rw-r--r--comphelper/util/exports.dxp1
-rw-r--r--comphelper/util/makefile.mk8
-rw-r--r--configmgr/prj/build.lst2
-rw-r--r--configmgr/prj/d.lst1
-rw-r--r--configmgr/source/README3
-rw-r--r--configmgr/source/components.cxx47
-rw-r--r--configmgr/source/components.hxx5
-rw-r--r--configmgr/source/configmgr.component45
-rw-r--r--configmgr/source/configurationprovider.cxx10
-rw-r--r--configmgr/source/makefile.mk15
-rw-r--r--configmgr/source/parsemanager.cxx31
-rw-r--r--configmgr/source/parsemanager.hxx13
-rw-r--r--configmgr/source/parser.hxx14
-rw-r--r--configmgr/source/services.cxx48
-rw-r--r--configmgr/source/valueparser.cxx68
-rw-r--r--configmgr/source/valueparser.hxx14
-rw-r--r--configmgr/source/writemodfile.cxx35
-rw-r--r--configmgr/source/xcdparser.cxx44
-rw-r--r--configmgr/source/xcdparser.hxx13
-rw-r--r--configmgr/source/xcsparser.cxx167
-rw-r--r--configmgr/source/xcsparser.hxx27
-rw-r--r--configmgr/source/xcuparser.cxx205
-rw-r--r--configmgr/source/xcuparser.hxx38
-rw-r--r--configmgr/source/xmldata.cxx112
-rw-r--r--configmgr/source/xmldata.hxx14
-rw-r--r--configure.in3
-rw-r--r--connectivity/prj/d.lst17
-rw-r--r--connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx5
-rw-r--r--connectivity/source/cpool/Zregistration.cxx29
-rw-r--r--connectivity/source/cpool/dbpool2.component34
-rw-r--r--connectivity/source/cpool/exports.dxp1
-rw-r--r--connectivity/source/cpool/makefile.mk6
-rw-r--r--connectivity/source/dbtools/dbtools.component37
-rw-r--r--connectivity/source/dbtools/exports.dxp1
-rw-r--r--connectivity/source/dbtools/makefile.mk8
-rw-r--r--connectivity/source/drivers/adabas/Bservices.cxx52
-rw-r--r--connectivity/source/drivers/adabas/adabas.component35
-rw-r--r--connectivity/source/drivers/adabas/adabas.mxp.map1
-rw-r--r--connectivity/source/drivers/adabas/exports.dxp1
-rw-r--r--connectivity/source/drivers/adabas/makefile.mk8
-rw-r--r--connectivity/source/drivers/ado/Aservices.cxx52
-rw-r--r--connectivity/source/drivers/ado/ado.component35
-rw-r--r--connectivity/source/drivers/ado/exports.dxp1
-rw-r--r--connectivity/source/drivers/ado/makefile.mk8
-rw-r--r--connectivity/source/drivers/calc/Cservices.cxx52
-rw-r--r--connectivity/source/drivers/calc/calc.component35
-rw-r--r--connectivity/source/drivers/calc/exports.dxp1
-rw-r--r--connectivity/source/drivers/calc/makefile.mk8
-rw-r--r--connectivity/source/drivers/dbase/Dservices.cxx52
-rw-r--r--connectivity/source/drivers/dbase/dbase.component35
-rw-r--r--connectivity/source/drivers/dbase/dbase.mxp.map1
-rw-r--r--connectivity/source/drivers/dbase/exports.dxp1
-rw-r--r--connectivity/source/drivers/dbase/makefile.mk8
-rw-r--r--connectivity/source/drivers/evoab/LServices.cxx52
-rw-r--r--connectivity/source/drivers/evoab/exports.dxp1
-rw-r--r--connectivity/source/drivers/evoab2/NServices.cxx51
-rw-r--r--connectivity/source/drivers/evoab2/evoab.component34
-rw-r--r--connectivity/source/drivers/evoab2/makefile.mk8
-rw-r--r--connectivity/source/drivers/flat/Eservices.cxx52
-rw-r--r--connectivity/source/drivers/flat/exports.dxp1
-rw-r--r--connectivity/source/drivers/flat/flat.component35
-rw-r--r--connectivity/source/drivers/flat/flat.mxp.map1
-rw-r--r--connectivity/source/drivers/flat/makefile.mk8
-rw-r--r--connectivity/source/drivers/hsqldb/Hservices.cxx52
-rw-r--r--connectivity/source/drivers/hsqldb/exports.dxp1
-rw-r--r--connectivity/source/drivers/hsqldb/hsqldb.component35
-rw-r--r--connectivity/source/drivers/hsqldb/hsqldb.map1
-rw-r--r--connectivity/source/drivers/hsqldb/makefile.mk8
-rw-r--r--connectivity/source/drivers/jdbc/exports.dxp1
-rw-r--r--connectivity/source/drivers/jdbc/jdbc.component34
-rw-r--r--connectivity/source/drivers/jdbc/jdbc.mxp.map1
-rw-r--r--connectivity/source/drivers/jdbc/jservices.cxx51
-rw-r--r--connectivity/source/drivers/jdbc/makefile.mk8
-rw-r--r--connectivity/source/drivers/kab/KServices.cxx52
-rw-r--r--connectivity/source/drivers/kab/exports.dxp1
-rw-r--r--connectivity/source/drivers/kab/kab1.component34
-rw-r--r--connectivity/source/drivers/kab/makefile.mk8
-rwxr-xr-xconnectivity/source/drivers/macab/MacabServices.cxx52
-rwxr-xr-xconnectivity/source/drivers/macab/exports.dxp1
-rw-r--r--connectivity/source/drivers/macab/macab1.component34
-rwxr-xr-xconnectivity/source/drivers/macab/makefile.mk8
-rw-r--r--connectivity/source/drivers/mozab/MServices.cxx57
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/MMozillaBootstrap.cxx45
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/makefile.mk9
-rw-r--r--connectivity/source/drivers/mozab/bootstrap/mozbootstrap.component34
-rw-r--r--connectivity/source/drivers/mozab/exports.dxp1
-rw-r--r--connectivity/source/drivers/mozab/makefile.mk8
-rw-r--r--connectivity/source/drivers/mozab/mozab.component37
-rw-r--r--connectivity/source/drivers/mysql/Yservices.cxx52
-rw-r--r--connectivity/source/drivers/mysql/exports.dxp1
-rw-r--r--connectivity/source/drivers/mysql/makefile.mk8
-rw-r--r--connectivity/source/drivers/mysql/mysql.component35
-rw-r--r--connectivity/source/drivers/odbc/makefile.mk8
-rw-r--r--connectivity/source/drivers/odbc/odbc.component34
-rw-r--r--connectivity/source/drivers/odbc/oservices.cxx52
-rw-r--r--connectivity/source/manager/exports.dxp1
-rw-r--r--connectivity/source/manager/makefile.mk6
-rw-r--r--connectivity/source/manager/mregistration.cxx33
-rw-r--r--connectivity/source/manager/sdbc.mxp.map1
-rw-r--r--connectivity/source/manager/sdbc2.component34
-rw-r--r--cppu/inc/uno/lbnames.h45
-rw-r--r--cppu/source/threadpool/current.cxx4
-rw-r--r--cppu/source/threadpool/jobqueue.cxx3
-rw-r--r--cppu/source/threadpool/jobqueue.hxx6
-rw-r--r--cppu/source/threadpool/thread.cxx32
-rw-r--r--cppu/source/threadpool/thread.hxx5
-rw-r--r--cppu/source/threadpool/threadpool.cxx58
-rw-r--r--cppu/source/threadpool/threadpool.hxx15
-rw-r--r--cppu/source/typelib/static_types.cxx48
-rw-r--r--cppu/source/typelib/typelib.cxx11
-rw-r--r--cppu/source/uno/lbenv.cxx15
-rw-r--r--cppu/util/target.pmk9
-rw-r--r--cppuhelper/inc/cppuhelper/factory.hxx3
-rw-r--r--cppuhelper/inc/cppuhelper/implementationentry.hxx6
-rw-r--r--cppuhelper/inc/cppuhelper/interfacecontainer.h23
-rw-r--r--cppuhelper/inc/cppuhelper/shlib.hxx2
-rw-r--r--cppuhelper/qa/propertysetmixin/JavaSupplier.java5
-rw-r--r--cppuhelper/qa/propertysetmixin/comp_propertysetmixin.cxx7
-rw-r--r--cppuhelper/qa/propertysetmixin/makefile.mk59
-rw-r--r--cppuhelper/qa/propertysetmixin/qa_propertysetmixin.cpp.component34
-rw-r--r--cppuhelper/qa/propertysetmixin/qa_propertysetmixin.java.component34
-rw-r--r--cppuhelper/qa/propertysetmixin/test_propertysetmixin.cxx40
-rw-r--r--cppuhelper/source/bootstrap.cxx10
-rw-r--r--cppuhelper/source/interfacecontainer.cxx108
-rw-r--r--cppuhelper/source/servicefactory.cxx73
-rw-r--r--cppunit/ldflags.patch13
-rw-r--r--cpputools/prj/build.lst1
-rw-r--r--cpputools/prj/d.lst2
-rwxr-xr-xcpputools/source/regcomplazy/regcomplazy.cxx282
-rwxr-xr-xcrashrep/source/unx/main.cxx4
-rwxr-xr-xcui/source/dialogs/SpellDialog.cxx103
-rwxr-xr-xcui/source/dialogs/thesdlg.cxx37
-rwxr-xr-x[-rw-r--r--]cui/source/options/webconninfo.cxx6
-rw-r--r--curl/makefile.mk4
-rw-r--r--dbaccess/prj/d.lst7
-rw-r--r--dbaccess/source/core/misc/services.cxx22
-rw-r--r--dbaccess/source/ext/adabas/Acomponentmodule.cxx48
-rw-r--r--dbaccess/source/ext/adabas/Acomponentmodule.hxx15
-rw-r--r--dbaccess/source/ext/adabas/Aservices.cxx21
-rw-r--r--dbaccess/source/ext/adabas/adabasui.component34
-rw-r--r--dbaccess/source/ext/adabas/adabasui.dxp1
-rw-r--r--dbaccess/source/ext/adabas/exports.dxp1
-rw-r--r--dbaccess/source/ext/adabas/makefile.mk7
-rw-r--r--dbaccess/source/ext/macromigration/dbmm.component34
-rw-r--r--dbaccess/source/ext/macromigration/makefile.mk8
-rw-r--r--dbaccess/source/filter/migration/cfgservices.cxx21
-rw-r--r--dbaccess/source/filter/migration/dbacfg.component34
-rw-r--r--dbaccess/source/filter/migration/makefile.mk8
-rw-r--r--dbaccess/source/filter/xml/dbaxml.component49
-rw-r--r--dbaccess/source/filter/xml/makefile.mk8
-rw-r--r--dbaccess/source/filter/xml/xmlservices.cxx22
-rw-r--r--dbaccess/source/inc/registrationhelper.hxx10
-rw-r--r--dbaccess/source/sdbtools/misc/sdbt_services.cxx21
-rw-r--r--dbaccess/source/shared/registrationhelper.cxx48
-rw-r--r--dbaccess/source/ui/misc/uiservices.cxx22
-rw-r--r--dbaccess/util/dba.component63
-rw-r--r--dbaccess/util/dbu.component116
-rw-r--r--dbaccess/util/makefile.mk20
-rw-r--r--dbaccess/util/sdbt.component34
-rw-r--r--desktop/prj/d.lst8
-rw-r--r--desktop/scripts/soffice.sh17
-rw-r--r--desktop/scripts/unoinfo.sh15
-rw-r--r--desktop/scripts/unopkg.sh17
-rw-r--r--desktop/source/app/exports.dxp1
-rw-r--r--desktop/source/deployment/deployment.component64
-rw-r--r--desktop/source/deployment/dp_services.cxx21
-rw-r--r--desktop/source/deployment/gui/deploymentgui.component40
-rw-r--r--desktop/source/deployment/gui/dp_gui_dialog2.cxx32
-rw-r--r--[-rwxr-xr-x]desktop/source/deployment/gui/dp_gui_service.cxx8
-rw-r--r--desktop/source/deployment/gui/makefile.mk8
-rw-r--r--desktop/source/deployment/makefile.mk8
-rw-r--r--[-rwxr-xr-x]desktop/source/deployment/misc/dp_update.cxx84
-rw-r--r--desktop/source/migration/services/cexports.cxx7
-rw-r--r--[-rwxr-xr-x]desktop/source/migration/services/cexportsoo3.cxx7
-rw-r--r--desktop/source/migration/services/makefile.mk17
-rw-r--r--desktop/source/migration/services/migrationoo2.component37
-rw-r--r--desktop/source/migration/services/migrationoo3.component34
-rw-r--r--desktop/source/offacc/acceptor.cxx17
-rw-r--r--desktop/source/offacc/makefile.mk8
-rw-r--r--desktop/source/offacc/offacc.component34
-rw-r--r--desktop/source/registration/com/sun/star/registration/Registration.java4
-rw-r--r--desktop/source/registration/com/sun/star/registration/makefile.mk7
-rw-r--r--desktop/source/registration/com/sun/star/registration/productregistration.jar.component34
-rw-r--r--desktop/source/so_comp/makefile.mk7
-rw-r--r--desktop/source/so_comp/services.cxx26
-rw-r--r--desktop/source/so_comp/socomp.component37
-rw-r--r--desktop/source/splash/makefile.mk8
-rwxr-xr-xdesktop/source/splash/services_spl.cxx26
-rw-r--r--desktop/source/splash/spl.component37
-rw-r--r--dtrans/prj/d.lst5
-rw-r--r--dtrans/source/cnttype/exports.dxp1
-rw-r--r--dtrans/source/cnttype/mctfentry.cxx29
-rw-r--r--dtrans/source/generic/dtrans.component37
-rw-r--r--dtrans/source/generic/dtrans.cxx37
-rw-r--r--dtrans/source/generic/exports.dxp1
-rw-r--r--dtrans/source/generic/makefile.mk8
-rw-r--r--dtrans/source/os2/clipb/Os2Service.cxx22
-rw-r--r--dtrans/source/os2/clipb/exports.dxp1
-rw-r--r--dtrans/source/win32/clipb/exports.dxp1
-rw-r--r--dtrans/source/win32/clipb/wcbentry.cxx29
-rw-r--r--dtrans/source/win32/dnd/dndentry.cxx33
-rw-r--r--dtrans/source/win32/dnd/exports.dxp1
-rw-r--r--dtrans/source/win32/ftransl/exports.dxp1
-rw-r--r--dtrans/source/win32/ftransl/ftranslentry.cxx29
-rw-r--r--dtrans/util/dnd.component37
-rw-r--r--dtrans/util/exports.dxp1
-rw-r--r--dtrans/util/ftransl.component34
-rw-r--r--dtrans/util/makefile.mk29
-rw-r--r--dtrans/util/mcnttype.component34
-rw-r--r--dtrans/util/sysdtrans.component34
-rw-r--r--editeng/util/editeng.dxp1
-rw-r--r--embeddedobj/prj/d.lst2
-rw-r--r--embeddedobj/source/commonembedding/register.cxx42
-rw-r--r--embeddedobj/source/msole/emboleobj.component35
-rw-r--r--embeddedobj/source/msole/emboleobj.windows.component39
-rw-r--r--embeddedobj/source/msole/exports.dxp1
-rw-r--r--embeddedobj/source/msole/makefile.mk11
-rw-r--r--embeddedobj/util/embobj.component43
-rw-r--r--embeddedobj/util/exports.dxp1
-rw-r--r--embeddedobj/util/makefile.mk8
-rwxr-xr-xembedserv/prj/d.lst1
-rwxr-xr-xembedserv/source/embed/register.cxx30
-rw-r--r--embedserv/util/emser.component34
-rwxr-xr-xembedserv/util/exports.dxp1
-rwxr-xr-xembedserv/util/makefile.mk8
-rw-r--r--eventattacher/prj/d.lst1
-rw-r--r--eventattacher/source/eventattacher.cxx28
-rw-r--r--eventattacher/source/evtatt.component34
-rw-r--r--eventattacher/source/makefile.mk8
-rw-r--r--extensions/prj/d.lst17
-rw-r--r--extensions/source/abpilot/abp.component34
-rw-r--r--extensions/source/abpilot/abpservices.cxx21
-rw-r--r--extensions/source/abpilot/exports.dxp1
-rw-r--r--extensions/source/abpilot/makefile.mk8
-rw-r--r--extensions/source/bibliography/bib.component35
-rw-r--r--extensions/source/bibliography/bibload.cxx30
-rw-r--r--extensions/source/bibliography/makefile.mk8
-rw-r--r--extensions/source/config/ldap/componentdef.cxx7
-rw-r--r--extensions/source/config/ldap/exports.dxp1
-rw-r--r--extensions/source/config/ldap/ldapbe2.component34
-rw-r--r--extensions/source/config/ldap/makefile.mk8
-rw-r--r--extensions/source/dbpilots/dbp.component40
-rw-r--r--extensions/source/dbpilots/dbpservices.cxx21
-rw-r--r--extensions/source/dbpilots/makefile.mk8
-rw-r--r--extensions/source/inc/componentmodule.cxx48
-rw-r--r--extensions/source/inc/componentmodule.hxx15
-rw-r--r--extensions/source/logging/log.component47
-rw-r--r--extensions/source/logging/makefile.mk8
-rw-r--r--extensions/source/ole/makefile.mk7
-rw-r--r--extensions/source/ole/oleautobridge.component46
-rw-r--r--extensions/source/ole/oleautobridge.uno.dxp1
-rw-r--r--extensions/source/ole/servreg.cxx41
-rw-r--r--extensions/source/oooimprovecore/makefile.mk8
-rw-r--r--extensions/source/oooimprovecore/oooimprovecore.component34
-rw-r--r--extensions/source/oooimprovement/invite_job.cxx2
-rw-r--r--extensions/source/oooimprovement/makefile.mk8
-rw-r--r--extensions/source/oooimprovement/onlogrotate_job.cxx2
-rw-r--r--extensions/source/oooimprovement/oooimprovement.component38
-rw-r--r--extensions/source/oooimprovement/oooimprovement_exports.cxx22
-rw-r--r--extensions/source/plugin/base/service.cxx27
-rw-r--r--extensions/source/plugin/util/makefile.mk8
-rw-r--r--extensions/source/plugin/util/pl.component37
-rw-r--r--extensions/source/preload/makefile.mk8
-rw-r--r--extensions/source/preload/preload.component34
-rw-r--r--extensions/source/preload/services.cxx21
-rw-r--r--extensions/source/propctrlr/makefile.mk8
-rw-r--r--extensions/source/propctrlr/pcr.component91
-rw-r--r--extensions/source/propctrlr/pcrservices.cxx21
-rw-r--r--extensions/source/resource/exports.dxp1
-rw-r--r--extensions/source/resource/makefile.mk8
-rw-r--r--extensions/source/resource/res.component38
-rw-r--r--extensions/source/resource/res_services.cxx42
-rw-r--r--extensions/source/scanner/exports.dxp1
-rw-r--r--extensions/source/scanner/makefile.mk8
-rw-r--r--extensions/source/scanner/scn.component34
-rw-r--r--extensions/source/scanner/scnserv.cxx31
-rw-r--r--extensions/source/svg/svguno.cxx30
-rw-r--r--extensions/source/update/check/makefile.mk8
-rwxr-xr-xextensions/source/update/check/updatecheckjob.cxx12
-rw-r--r--extensions/source/update/check/updchk.uno.component37
-rw-r--r--extensions/source/update/feed/makefile.mk8
-rw-r--r--extensions/source/update/feed/updatefeed.component34
-rw-r--r--extensions/source/update/feed/updatefeed.cxx12
-rw-r--r--extensions/source/update/ui/makefile.mk8
-rw-r--r--extensions/source/update/ui/updatecheckui.cxx12
-rw-r--r--extensions/source/update/ui/updchk.component34
-rw-r--r--extensions/source/xmlextract/makefile.mk8
-rw-r--r--extensions/source/xmlextract/xmx.component34
-rw-r--r--extensions/source/xmlextract/xmxuno.cxx21
-rw-r--r--fileaccess/prj/d.lst1
-rw-r--r--fileaccess/source/FileAccess.cxx26
-rw-r--r--fileaccess/source/fileacc.component34
-rw-r--r--fileaccess/source/makefile.mk8
-rw-r--r--filter/prj/d.lst12
-rw-r--r--filter/source/config/cache/filterconfig1.component46
-rw-r--r--filter/source/config/cache/makefile.mk8
-rw-r--r--filter/source/config/cache/registration.cxx24
-rw-r--r--filter/source/config/cache/registration.hxx93
-rw-r--r--filter/source/filtertracer/exports.dxp1
-rw-r--r--filter/source/filtertracer/filtertraceruno.cxx31
-rw-r--r--filter/source/flash/flash.component37
-rw-r--r--filter/source/flash/makefile.mk8
-rw-r--r--filter/source/flash/swfuno.cxx35
-rw-r--r--filter/source/graphicfilter/ipict/ipict.cxx303
-rw-r--r--filter/source/msfilter/powerpoint/pptimporteruno.cxx31
-rw-r--r--filter/source/pdf/makefile.mk8
-rw-r--r--filter/source/pdf/pdffilter.component37
-rw-r--r--filter/source/pdf/pdfuno.cxx35
-rw-r--r--filter/source/placeware/exports.dxp1
-rw-r--r--filter/source/placeware/makefile.mk8
-rw-r--r--filter/source/placeware/placeware.component34
-rw-r--r--filter/source/placeware/uno.cxx26
-rw-r--r--filter/source/svg/makefile.mk8
-rw-r--r--filter/source/svg/svgfilter.component34
-rw-r--r--filter/source/svg/svguno.cxx26
-rw-r--r--filter/source/t602/filterenv.cxx35
-rw-r--r--filter/source/t602/makefile.mk8
-rw-r--r--filter/source/t602/t602filter.component38
-rw-r--r--filter/source/xmlfilteradaptor/genericfilter.cxx52
-rw-r--r--filter/source/xmlfilteradaptor/makefile.mk8
-rw-r--r--filter/source/xmlfilteradaptor/xmlfa.component35
-rw-r--r--filter/source/xmlfilterdetect/fdcomp.cxx52
-rw-r--r--filter/source/xmlfilterdetect/makefile.mk8
-rw-r--r--filter/source/xmlfilterdetect/xmlfd.component34
-rw-r--r--filter/source/xsltdialog/exports.dxp1
-rw-r--r--filter/source/xsltdialog/makefile.mk8
-rw-r--r--filter/source/xsltdialog/xmlfilterdialogcomponent.cxx30
-rw-r--r--filter/source/xsltdialog/xsltdlg.component34
-rw-r--r--filter/source/xsltfilter/XSLTFilter.cxx25
-rw-r--r--filter/source/xsltfilter/XSLTFilter.jar.component34
-rw-r--r--filter/source/xsltfilter/XSLTransformer.java10
-rw-r--r--filter/source/xsltfilter/makefile.mk14
-rw-r--r--filter/source/xsltfilter/xsltfilter.component34
-rw-r--r--filter/source/xsltvalidate/XSLTValidate.component34
-rw-r--r--filter/source/xsltvalidate/XSLTValidate.java19
-rw-r--r--filter/source/xsltvalidate/makefile.mk8
-rw-r--r--forms/prj/d.lst1
-rw-r--r--forms/source/inc/forms_module.hxx15
-rw-r--r--forms/source/inc/forms_module_impl.hxx48
-rw-r--r--forms/source/misc/services.cxx67
-rw-r--r--forms/util/frm.component255
-rw-r--r--forms/util/frm.dxp1
-rw-r--r--forms/util/makefile.mk8
-rw-r--r--formula/prj/d.lst1
-rw-r--r--formula/source/core/api/services.cxx6
-rw-r--r--formula/util/for.component34
-rw-r--r--formula/util/makefile.mk8
-rw-r--r--fpicker/prj/d.lst10
-rw-r--r--fpicker/source/aqua/FPentry.cxx26
-rw-r--r--fpicker/source/aqua/fps-aqua-ucd.txt13
-rw-r--r--fpicker/source/aqua/fps_aqua.component37
-rw-r--r--fpicker/source/aqua/makefile.mk8
-rw-r--r--fpicker/source/generic/fpicker.component37
-rw-r--r--fpicker/source/generic/fpicker.cxx7
-rw-r--r--fpicker/source/generic/makefile.mk8
-rw-r--r--fpicker/source/office/fps_office.component37
-rw-r--r--fpicker/source/office/fps_office.cxx7
-rw-r--r--fpicker/source/office/makefile.mk8
-rw-r--r--fpicker/source/unx/gnome/FPentry.cxx26
-rw-r--r--fpicker/source/unx/gnome/fps-gnome-ucd.txt13
-rw-r--r--fpicker/source/unx/gnome/fps_gnome.component37
-rw-r--r--fpicker/source/unx/gnome/makefile.mk8
-rw-r--r--fpicker/source/unx/kde4/KDE4FPEntry.cxx21
-rw-r--r--fpicker/source/unx/kde4/fps-kde4-ucd.txt6
-rw-r--r--fpicker/source/unx/kde4/fps_kde4.component34
-rw-r--r--fpicker/source/unx/kde4/makefile.mk8
-rw-r--r--fpicker/source/win32/filepicker/FPentry.cxx25
-rw-r--r--fpicker/source/win32/folderpicker/Fopentry.cxx25
-rw-r--r--fpicker/util/exports.dxp1
-rw-r--r--fpicker/util/fop.component34
-rw-r--r--fpicker/util/fps.component34
-rw-r--r--fpicker/util/makefile.mk13
-rw-r--r--framework/inc/macros/debug/registration.hxx21
-rw-r--r--framework/inc/macros/registration.hxx96
-rw-r--r--framework/prj/d.lst3
-rw-r--r--framework/source/register/register3rdcomponents.cxx10
-rw-r--r--framework/source/register/registerlogindialog.cxx7
-rw-r--r--framework/source/register/registerservices.cxx64
-rw-r--r--framework/source/register/registertemp.cxx29
-rw-r--r--framework/util/fwk.component142
-rw-r--r--framework/util/fwl.component100
-rw-r--r--framework/util/fwm.component43
-rw-r--r--framework/util/makefile.mk20
-rw-r--r--hwpfilter/prj/d.lst2
-rw-r--r--hwpfilter/source/hwp.component34
-rw-r--r--hwpfilter/source/hwpreader.hxx24
-rw-r--r--hwpfilter/source/makefile.mk12
-rw-r--r--i18npool/prj/d.lst2
-rw-r--r--i18npool/source/breakiterator/breakiteratorImpl.cxx4
-rwxr-xr-x[-rw-r--r--]i18npool/source/localedata/data/makefile.mk211
-rw-r--r--i18npool/source/localedata/saxparser.cxx35
-rw-r--r--i18npool/source/registerservices/registerservices.cxx23
-rw-r--r--i18npool/source/search/i18nsearch.component34
-rw-r--r--i18npool/source/search/makefile.mk8
-rw-r--r--i18npool/source/search/textsearch.cxx19
-rw-r--r--i18npool/util/i18npool.component484
-rw-r--r--i18npool/util/makefile.mk8
-rw-r--r--icu/makefile.mk5
-rw-r--r--instsetoo_native/util/openoffice.lst10
-rw-r--r--io/prj/d.lst5
-rw-r--r--io/source/TextInputStream/TextInputStream.cxx6
-rw-r--r--io/source/TextInputStream/makefile.mk8
-rw-r--r--io/source/TextInputStream/textinstream.component34
-rw-r--r--io/source/TextOutputStream/TextOutputStream.cxx6
-rw-r--r--io/source/TextOutputStream/makefile.mk8
-rw-r--r--io/source/TextOutputStream/textoutstream.component34
-rw-r--r--io/source/acceptor/acceptor.component34
-rw-r--r--io/source/acceptor/acceptor.cxx6
-rw-r--r--io/source/acceptor/makefile.mk8
-rw-r--r--io/source/connector/connector.component34
-rw-r--r--io/source/connector/connector.cxx6
-rw-r--r--io/source/connector/makefile.mk8
-rw-r--r--io/source/stm/factreg.cxx6
-rw-r--r--io/source/stm/makefile.mk7
-rw-r--r--io/source/stm/streams.component55
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/InstallData.java9
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java259
-rwxr-xr-xjavainstaller2/src/JavaSetup/org/openoffice/setup/InstallerHelper/LinuxHelper.java36
-rw-r--r--javaunohelper/com/sun/star/comp/JavaUNOHelperServices.java17
-rw-r--r--javaunohelper/prj/d.lst1
-rw-r--r--javaunohelper/util/juh.component34
-rw-r--r--javaunohelper/util/makefile.mk5
-rw-r--r--jurt/com/sun/star/comp/bridgefactory/BridgeFactory.java12
-rw-r--r--jurt/com/sun/star/comp/connections/Acceptor.java15
-rw-r--r--jurt/com/sun/star/comp/connections/Connector.java15
-rw-r--r--jurt/com/sun/star/comp/connections/ConstantInstanceProvider.java14
-rw-r--r--jurt/com/sun/star/comp/connections/PipedConnection.java13
-rw-r--r--jurt/com/sun/star/comp/urlresolver/UrlResolver.java14
-rw-r--r--jurt/com/sun/star/lib/connections/pipe/pipeAcceptor.java15
-rw-r--r--jurt/com/sun/star/lib/connections/pipe/pipeConnector.java15
-rw-r--r--jurt/com/sun/star/lib/connections/socket/socketAcceptor.java15
-rw-r--r--jurt/com/sun/star/lib/connections/socket/socketConnector.java15
-rw-r--r--libegg/source/makefile.mk3
-rw-r--r--libxml2/makefile.mk4
-rw-r--r--libxmlsec/makefile.mk4
-rw-r--r--libxslt/makefile.mk2
-rw-r--r--lingucomponent/prj/d.lst5
-rw-r--r--lingucomponent/source/hyphenator/altlinuxhyph/hyphen/exports.dxp1
-rw-r--r--lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hreg.cxx9
-rw-r--r--lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphen.component34
-rwxr-xr-xlingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx866
-rwxr-xr-x[-rw-r--r--]lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.hxx94
-rw-r--r--lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk8
-rw-r--r--lingucomponent/source/languageguessing/guesslang.component34
-rw-r--r--lingucomponent/source/languageguessing/guesslang.cxx7
-rw-r--r--lingucomponent/source/languageguessing/makefile.mk8
-rwxr-xr-x[-rw-r--r--]lingucomponent/source/lingutil/lingutil.cxx21
-rw-r--r--lingucomponent/source/lingutil/lingutil.hxx8
-rw-r--r--lingucomponent/source/spellcheck/macosxspell/MacOSXSpell.component34
-rw-r--r--lingucomponent/source/spellcheck/macosxspell/macreg.cxx9
-rw-r--r--lingucomponent/source/spellcheck/macosxspell/macspellimp.cxx26
-rwxr-xr-x[-rw-r--r--]lingucomponent/source/spellcheck/macosxspell/macspellimp.hxx93
-rw-r--r--lingucomponent/source/spellcheck/macosxspell/makefile.mk8
-rw-r--r--lingucomponent/source/spellcheck/spell/exports.dxp1
-rw-r--r--lingucomponent/source/spellcheck/spell/makefile.mk8
-rw-r--r--lingucomponent/source/spellcheck/spell/spell.component34
-rw-r--r--lingucomponent/source/spellcheck/spell/sreg.cxx9
-rwxr-xr-x[-rw-r--r--]lingucomponent/source/spellcheck/spell/sspellimp.cxx320
-rwxr-xr-x[-rw-r--r--]lingucomponent/source/spellcheck/spell/sspellimp.hxx90
-rw-r--r--lingucomponent/source/thesaurus/libnth/exports.dxp1
-rw-r--r--lingucomponent/source/thesaurus/libnth/lnth.component34
-rw-r--r--lingucomponent/source/thesaurus/libnth/makefile.mk8
-rwxr-xr-x[-rw-r--r--]lingucomponent/source/thesaurus/libnth/nthesdta.hxx22
-rwxr-xr-x[-rw-r--r--]lingucomponent/source/thesaurus/libnth/nthesimp.cxx483
-rwxr-xr-x[-rw-r--r--]lingucomponent/source/thesaurus/libnth/nthesimp.hxx53
-rw-r--r--lingucomponent/source/thesaurus/libnth/ntreg.cxx9
-rw-r--r--linguistic/prj/d.lst1
-rw-r--r--linguistic/source/convdiclist.cxx25
-rwxr-xr-xlinguistic/source/dicimp.cxx115
-rw-r--r--linguistic/source/dlistimp.cxx25
-rw-r--r--linguistic/source/gciterator.cxx24
-rw-r--r--linguistic/source/grammarchecker.cxx21
-rw-r--r--linguistic/source/lng.component46
-rw-r--r--linguistic/source/lngopt.cxx23
-rw-r--r--linguistic/source/lngreg.cxx58
-rw-r--r--linguistic/source/lngsvcmgr.cxx59
-rw-r--r--linguistic/source/lngsvcmgr.hxx2
-rw-r--r--linguistic/source/makefile.mk13
-rw-r--r--np_sdk/prj/build.lst2
-rw-r--r--odk/examples/DevelopersGuide/Config/ConfigExamples.java117
-rw-r--r--odk/pack/copying/idl_chapter_refs.txt35
-rwxr-xr-x[-rw-r--r--]offapi/com/sun/star/text/PrintPreviewSettings.idl2
-rwxr-xr-x[-rw-r--r--]officecfg/registry/data/org/openoffice/Office/UI/MathCommands.xcu2
-rw-r--r--oox/prj/d.lst1
-rw-r--r--oox/source/core/facreg.cxx39
-rw-r--r--oox/util/makefile.mk8
-rw-r--r--oox/util/oox.component58
-rw-r--r--openssl/openssllnx.patch11
-rw-r--r--package/prj/d.lst2
-rw-r--r--package/source/manifest/UnoRegister.cxx63
-rw-r--r--package/source/xstor/makefile.mk8
-rw-r--r--package/source/xstor/register.cxx28
-rw-r--r--package/source/xstor/xstor.component35
-rw-r--r--package/source/xstor/xstor.dxp1
-rw-r--r--package/util/exports.dxp1
-rw-r--r--package/util/makefile.mk8
-rw-r--r--package/util/package2.component44
-rw-r--r--postprocess/packcomponents/makefile.mk382
-rw-r--r--postprocess/prj/build.lst1
-rw-r--r--postprocess/prj/d.lst4
-rw-r--r--python/makefile.mk4
-rw-r--r--pyuno/prj/d.lst3
-rw-r--r--pyuno/source/loader/makefile.mk34
-rw-r--r--pyuno/source/loader/pythonloader.component34
-rw-r--r--pyuno/source/loader/pyuno_loader.cxx6
-rw-r--r--qadevOOo/runner/graphical/EnhancedComplexTestCase.java23
-rw-r--r--qadevOOo/runner/graphical/JPEGCreator.java3
-rw-r--r--qadevOOo/runner/graphical/JPEGEvaluator.java2
-rw-r--r--qadevOOo/runner/graphical/Office.java1
-rw-r--r--qadevOOo/runner/graphical/OpenOfficePostscriptCreator.java3
-rw-r--r--qadevOOo/runner/graphical/ParameterHelper.java3
-rw-r--r--qadevOOo/runner/graphical/PostscriptCreator.java3
-rw-r--r--qadevOOo/runner/helper/OfficeProvider.java6
-rw-r--r--qadevOOo/runner/helper/ProcessHandler.java210
-rw-r--r--qadevOOo/runner/org/openoffice/Runner.java2
-rw-r--r--redland/raptor/makefile.mk2
-rw-r--r--redland/rasqal/makefile.mk2
-rw-r--r--redland/redland/makefile.mk2
-rw-r--r--remotebridges/prj/d.lst3
-rw-r--r--remotebridges/source/bridge/makefile.mk8
-rw-r--r--remotebridges/source/bridge/remote_bridge.cxx6
-rw-r--r--remotebridges/source/bridge/remotebridge.component36
-rw-r--r--remotebridges/source/dynamicloader/dynamicloader.cxx28
-rw-r--r--remotebridges/source/factory/bridgefac.component34
-rw-r--r--remotebridges/source/factory/bridgefactory.cxx6
-rw-r--r--remotebridges/source/factory/makefile.mk7
-rw-r--r--remotebridges/source/unourl_resolver/makefile.mk8
-rw-r--r--remotebridges/source/unourl_resolver/unourl_resolver.cxx6
-rw-r--r--remotebridges/source/unourl_resolver/uuresolver.component34
-rw-r--r--reportdesign/prj/d.lst3
-rw-r--r--reportdesign/source/core/api/services.cxx6
-rw-r--r--reportdesign/source/filter/xml/xmlservices.cxx7
-rw-r--r--reportdesign/source/ui/misc/rptuiservices.cxx7
-rw-r--r--reportdesign/util/makefile.mk20
-rw-r--r--reportdesign/util/rpt.component58
-rw-r--r--reportdesign/util/rptui.component52
-rw-r--r--reportdesign/util/rptxml.component73
-rw-r--r--sal/prj/build.lst1
-rw-r--r--sal/qa/osl/pipe/makefile.mk2
-rw-r--r--sal/qa/osl/pipe/osl_Pipe.cxx87
-rw-r--r--sax/prj/d.lst3
-rw-r--r--sax/source/expatwrap/makefile.mk11
-rw-r--r--sax/source/expatwrap/sax.component37
-rw-r--r--sax/source/expatwrap/sax_expat.cxx31
-rw-r--r--sax/source/fastparser/facreg.cxx28
-rw-r--r--sax/source/fastparser/fastsax.component37
-rw-r--r--sax/source/fastparser/makefile.mk7
-rw-r--r--sc/prj/d.lst3
-rw-r--r--sc/source/ui/unoobj/appluno.cxx120
-rw-r--r--sc/source/ui/unoobj/detreg.cxx21
-rw-r--r--sc/source/ui/vba/service.cxx35
-rw-r--r--sc/util/makefile.mk20
-rw-r--r--sc/util/sc.component97
-rw-r--r--sc/util/scd.component34
-rw-r--r--sc/util/vbaobj.component58
-rw-r--r--scaddins/prj/d.lst2
-rw-r--r--scaddins/source/analysis/analysis.component35
-rw-r--r--scaddins/source/analysis/analysis.cxx31
-rw-r--r--scaddins/source/analysis/makefile.mk8
-rw-r--r--scaddins/source/datefunc/date.component35
-rw-r--r--scaddins/source/datefunc/datefunc.cxx29
-rw-r--r--scaddins/source/datefunc/datefunc.def1
-rw-r--r--scaddins/source/datefunc/makefile.mk8
-rw-r--r--sccomp/prj/d.lst1
-rw-r--r--sccomp/source/solver/makefile.mk8
-rw-r--r--sccomp/source/solver/solver.component34
-rw-r--r--sccomp/source/solver/solver.cxx28
-rwxr-xr-xscp2/inc/macros.inc71
-rw-r--r--scp2/source/base/file_base.scp14
-rw-r--r--scp2/source/binfilter/file_binfilter.scp6
-rw-r--r--scp2/source/calc/file_calc.scp12
-rw-r--r--scp2/source/canvas/cairocanvas.scp3
-rw-r--r--scp2/source/canvas/canvascommons.scp4
-rw-r--r--scp2/source/canvas/directxcanvas.scp6
-rw-r--r--scp2/source/canvas/vclcanvas.scp2
-rw-r--r--scp2/source/gnome/file_gnome.scp6
-rw-r--r--scp2/source/graphicfilter/file_graphicfilter.scp4
-rw-r--r--scp2/source/impress/file_impress.scp4
-rw-r--r--scp2/source/impress/module_ogltrans.scp3
-rw-r--r--scp2/source/javafilter/file_javafilter.scp2
-rw-r--r--scp2/source/kde/file_kde.scp4
-rw-r--r--scp2/source/math/file_math.scp4
-rw-r--r--scp2/source/onlineupdate/file_onlineupdate.scp2
-rw-r--r--scp2/source/ooo/common_brand.scp3
-rw-r--r--scp2/source/ooo/file_improvement.scp2
-rwxr-xr-x[-rw-r--r--]scp2/source/ooo/file_library_ooo.scp365
-rw-r--r--scp2/source/ooo/file_ooo.scp42
-rw-r--r--scp2/source/ooo/makefile.mk3
-rw-r--r--scp2/source/ooo/ooo_brand.scp7
-rwxr-xr-xscp2/source/ooo/ure.scp88
-rw-r--r--scp2/source/python/file_python.scp7
-rw-r--r--scp2/source/python/module_python_mailmerge.scp3
-rw-r--r--scp2/source/writer/file_writer.scp14
-rw-r--r--scripting/java/Framework/com/sun/star/script/framework/security/SecurityDialog.java5
-rw-r--r--scripting/java/ScriptFramework.component34
-rw-r--r--scripting/java/ScriptProviderForBeanShell.component37
-rw-r--r--scripting/java/ScriptProviderForJava.component37
-rw-r--r--scripting/java/ScriptProviderForJavaScript.component37
-rwxr-xr-xscripting/java/com/sun/star/script/framework/provider/beanshell/ScriptProviderForBeanShell.java35
-rwxr-xr-xscripting/java/com/sun/star/script/framework/provider/java/ScriptProviderForJava.java35
-rwxr-xr-xscripting/java/com/sun/star/script/framework/provider/javascript/ScriptProviderForJavaScript.java34
-rwxr-xr-xscripting/java/makefile.mk34
-rw-r--r--scripting/prj/d.lst12
-rw-r--r--scripting/source/basprov/basprov.component37
-rw-r--r--scripting/source/basprov/basprov.cxx7
-rw-r--r--scripting/source/basprov/makefile.mk8
-rw-r--r--scripting/source/dlgprov/dlgprov.component36
-rw-r--r--scripting/source/dlgprov/dlgprov.cxx7
-rw-r--r--scripting/source/dlgprov/makefile.mk8
-rw-r--r--scripting/source/protocolhandler/exports.dxp1
-rw-r--r--scripting/source/protocolhandler/makefile.mk8
-rw-r--r--scripting/source/protocolhandler/protocolhandler.component34
-rw-r--r--scripting/source/protocolhandler/scripthandler.cxx21
-rwxr-xr-xscripting/source/provider/MasterScriptProvider.cxx36
-rw-r--r--scripting/source/provider/exports.dxp1
-rw-r--r--scripting/source/pyprov/mailmerge.component37
-rw-r--r--scripting/source/pyprov/makefile.mk14
-rw-r--r--scripting/source/pyprov/pythonscript.component35
-rwxr-xr-xscripting/source/runtimemgr/ScriptRuntimeManager.cxx62
-rw-r--r--scripting/source/runtimemgr/exports.dxp1
-rw-r--r--scripting/source/storage/exports.dxp1
-rw-r--r--scripting/source/stringresource/makefile.mk8
-rw-r--r--scripting/source/stringresource/stringresource.component40
-rw-r--r--scripting/source/stringresource/stringresource.cxx7
-rwxr-xr-x[-rw-r--r--]scripting/source/vbaevents/makefile.mk8
-rwxr-xr-xscripting/source/vbaevents/service.cxx10
-rw-r--r--scripting/source/vbaevents/vbaevents.component37
-rw-r--r--scripting/util/exports.dxp1
-rw-r--r--scripting/util/makefile.mk8
-rw-r--r--scripting/util/scriptframe.component49
-rw-r--r--sd/prj/build.lst2
-rwxr-xr-xsd/prj/d.lst2
-rwxr-xr-x[-rw-r--r--]sd/source/filter/eppt/eppt.cxx5
-rwxr-xr-xsd/source/filter/eppt/eppt.hxx6
-rwxr-xr-x[-rw-r--r--]sd/source/filter/ppt/propread.hxx2
-rwxr-xr-x[-rw-r--r--]sd/source/ui/unoidl/detreg.cxx24
-rwxr-xr-xsd/source/ui/unoidl/facreg.cxx109
-rwxr-xr-x[-rw-r--r--]sd/util/exports.dxp1
-rwxr-xr-xsd/util/makefile.mk13
-rw-r--r--sd/util/sd.component102
-rw-r--r--sd/util/sdd.component34
-rw-r--r--sdext/source/minimizer/makefile.mk2
-rw-r--r--[-rwxr-xr-x]sdext/source/pdfimport/makefile.mk2
-rw-r--r--sdext/source/presenter/makefile.mk2
-rw-r--r--setup_native/scripts/admin.pl1
-rw-r--r--sfx2/inc/sfx2/sfxuno.hxx47
-rw-r--r--sfx2/prj/d.lst1
-rw-r--r--[-rwxr-xr-x]sfx2/source/appl/appuno.cxx160
-rw-r--r--sfx2/source/doc/SfxDocumentMetaData.cxx7
-rwxr-xr-xsfx2/source/menu/mnumgr.cxx3
-rwxr-xr-xsfx2/source/menu/thessubmenu.cxx33
-rwxr-xr-x[-rw-r--r--]sfx2/source/menu/thessubmenu.hxx4
-rw-r--r--sfx2/util/makefile.mk8
-rw-r--r--sfx2/util/sfx.component75
-rw-r--r--shell/prj/d.lst11
-rw-r--r--shell/source/backends/desktopbe/desktopbackend.cxx6
-rw-r--r--shell/source/backends/desktopbe/desktopbe1-ucd.txt6
-rw-r--r--shell/source/backends/desktopbe/desktopbe1.component34
-rw-r--r--shell/source/backends/desktopbe/makefile.mk10
-rw-r--r--shell/source/backends/gconfbe/gconfbackend.cxx6
-rw-r--r--shell/source/backends/gconfbe/gconfbe1-ucd.txt6
-rw-r--r--shell/source/backends/gconfbe/gconfbe1.component34
-rw-r--r--shell/source/backends/gconfbe/makefile.mk11
-rw-r--r--shell/source/backends/kde4be/kde4backend.cxx6
-rw-r--r--shell/source/backends/kde4be/kde4be1-ucd.txt6
-rw-r--r--shell/source/backends/kde4be/kde4be1.component34
-rw-r--r--shell/source/backends/kde4be/makefile.mk10
-rw-r--r--shell/source/backends/kdebe/kdebackend.cxx6
-rw-r--r--shell/source/backends/kdebe/kdebe1-ucd.txt6
-rw-r--r--shell/source/backends/kdebe/kdebe1.component34
-rw-r--r--shell/source/backends/kdebe/makefile.mk10
-rw-r--r--shell/source/backends/localebe/localebe1.component34
-rw-r--r--shell/source/backends/localebe/localebecdef.cxx7
-rw-r--r--shell/source/backends/localebe/makefile.mk8
-rw-r--r--shell/source/backends/macbe/macbe1.component34
-rw-r--r--shell/source/backends/macbe/macbecdef.cxx7
-rw-r--r--shell/source/backends/macbe/makefile.mk8
-rw-r--r--shell/source/backends/wininetbe/makefile.mk8
-rw-r--r--shell/source/backends/wininetbe/wininetbe1.component34
-rw-r--r--shell/source/backends/wininetbe/wininetbecdef.cxx7
-rw-r--r--shell/source/cmdmail/cmdmail.component34
-rwxr-xr-xshell/source/cmdmail/cmdmailentry.cxx24
-rw-r--r--shell/source/cmdmail/exports.dxp1
-rw-r--r--shell/source/cmdmail/makefile.mk7
-rw-r--r--shell/source/unix/exec/makefile.mk8
-rw-r--r--shell/source/unix/exec/shellexecentry.cxx23
-rw-r--r--shell/source/unix/exec/syssh.component34
-rw-r--r--shell/source/win32/SysShentry.cxx26
-rw-r--r--shell/source/win32/exports.dxp1
-rw-r--r--shell/source/win32/makefile.mk8
-rw-r--r--shell/source/win32/simplemail/exports.dxp1
-rw-r--r--shell/source/win32/simplemail/makefile.mk8
-rw-r--r--shell/source/win32/simplemail/smplmail.component34
-rw-r--r--shell/source/win32/simplemail/smplmailentry.cxx26
-rw-r--r--shell/source/win32/syssh.component34
-rw-r--r--slideshow/prj/d.lst2
-rw-r--r--slideshow/source/engine/OGLTrans/exports.dxp1
-rw-r--r--slideshow/source/engine/OGLTrans/makefile.mk8
-rw-r--r--slideshow/source/engine/OGLTrans/ogltrans.component34
-rw-r--r--slideshow/util/exports.dxp1
-rw-r--r--slideshow/util/makefile.mk8
-rw-r--r--slideshow/util/slideshow.component34
-rw-r--r--soldep/source/makefile.mk10
-rw-r--r--solenv/bin/createcomponent.xslt51
-rw-r--r--solenv/bin/make_installer.pl39
-rw-r--r--solenv/bin/mhids.pl6
-rw-r--r--solenv/bin/modules/SourceConfigHelper.pm422
-rw-r--r--solenv/bin/modules/installer/environment.pm3
-rw-r--r--solenv/bin/modules/installer/globals.pm12
-rw-r--r--solenv/bin/modules/installer/parameter.pm15
-rw-r--r--solenv/bin/modules/installer/regmerge.pm340
-rw-r--r--solenv/bin/modules/installer/scriptitems.pm42
-rw-r--r--solenv/bin/modules/installer/servicesfile.pm1073
-rw-r--r--solenv/bin/modules/par2script/check.pm49
-rw-r--r--solenv/bin/packcomponents.xslt52
-rw-r--r--solenv/bin/par2script.pl2
-rwxr-xr-xsolenv/bin/subsequenttests39
-rw-r--r--solenv/config/sdev300.ini26
-rw-r--r--solenv/inc/installationtest.mk10
-rw-r--r--solenv/inc/libs.mk2
-rw-r--r--solenv/inc/minor.mk6
-rw-r--r--solenv/inc/settings.mk23
-rw-r--r--solenv/inc/unxlng.mk5
-rwxr-xr-xsolenv/src/component.map1
-rwxr-xr-xsolenv/src/reg-component.map (renamed from desktop/source/migration/services/migrationoo3.map)0
-rwxr-xr-xsolenv/src/unloadablecomponent.map1
-rw-r--r--sot/prj/d.lst1
-rw-r--r--sot/source/unoolestorage/register.cxx28
-rw-r--r--sot/util/makefile.mk8
-rw-r--r--sot/util/sot.component34
-rw-r--r--starmath/inc/dialog.hxx6
-rwxr-xr-x[-rw-r--r--]starmath/inc/starmath.hrc20
-rw-r--r--starmath/inc/symbol.hxx8
-rwxr-xr-x[-rw-r--r--]starmath/inc/toolbox.hxx6
-rw-r--r--starmath/inc/utility.hxx4
-rw-r--r--starmath/prj/d.lst2
-rwxr-xr-x[-rw-r--r--]starmath/sdi/smath.sdi4
-rwxr-xr-x[-rw-r--r--]starmath/sdi/smslots.sdi12
-rw-r--r--starmath/source/cfgitem.cxx6
-rw-r--r--starmath/source/detreg.cxx23
-rwxr-xr-x[-rw-r--r--]starmath/source/dialog.cxx121
-rwxr-xr-x[-rw-r--r--]starmath/source/makefile.mk1
-rwxr-xr-xstarmath/source/node.cxx17
-rw-r--r--starmath/source/register.cxx86
-rwxr-xr-xstarmath/source/smres.src1809
-rw-r--r--starmath/source/symbol.cxx2
-rw-r--r--starmath/source/toolbox.cxx103
-rwxr-xr-x[-rw-r--r--]starmath/source/toolbox.hrc14
-rwxr-xr-xstarmath/source/toolbox.src1837
-rwxr-xr-x[-rw-r--r--]starmath/source/unomodel.cxx4
-rw-r--r--starmath/source/utility.cxx2
-rwxr-xr-xstarmath/source/view.cxx2
-rwxr-xr-x[-rw-r--r--]starmath/uiconfig/smath/menubar/menubar.xml2
-rw-r--r--starmath/util/makefile.mk14
-rw-r--r--starmath/util/sm.component61
-rw-r--r--starmath/util/smd.component34
-rw-r--r--stoc/prj/build.lst2
-rw-r--r--stoc/prj/d.lst10
-rw-r--r--stoc/source/bootstrap/services.cxx6
-rw-r--r--stoc/source/corereflection/base.hxx3
-rw-r--r--stoc/source/corereflection/crefl.cxx30
-rw-r--r--stoc/source/corereflection/makefile.mk7
-rw-r--r--stoc/source/corereflection/reflection.component35
-rw-r--r--stoc/source/implementationregistration/implreg.cxx25
-rw-r--r--stoc/source/inspect/introspection.component34
-rw-r--r--stoc/source/inspect/introspection.cxx27
-rw-r--r--stoc/source/inspect/makefile.mk7
-rw-r--r--stoc/source/invocation/invocation.component34
-rw-r--r--stoc/source/invocation/invocation.cxx6
-rw-r--r--stoc/source/invocation/makefile.mk6
-rw-r--r--stoc/source/invocation_adapterfactory/iafactory.cxx8
-rw-r--r--stoc/source/invocation_adapterfactory/invocadapt.component34
-rw-r--r--stoc/source/invocation_adapterfactory/makefile.mk8
-rw-r--r--stoc/source/javaloader/javaloader.component35
-rw-r--r--stoc/source/javaloader/javaloader.cxx6
-rw-r--r--stoc/source/javaloader/makefile.mk7
-rw-r--r--stoc/source/javavm/javavm.component35
-rw-r--r--stoc/source/javavm/javavm.cxx37
-rw-r--r--stoc/source/javavm/makefile.mk7
-rw-r--r--stoc/source/namingservice/makefile.mk7
-rw-r--r--stoc/source/namingservice/namingservice.component34
-rw-r--r--stoc/source/namingservice/namingservice.cxx6
-rw-r--r--stoc/source/proxy_factory/makefile.mk8
-rw-r--r--stoc/source/proxy_factory/proxyfac.component34
-rw-r--r--stoc/source/proxy_factory/proxyfac.cxx7
-rw-r--r--stoc/source/simpleregistry/makefile.mk3
-rwxr-xr-x[-rw-r--r--]stoc/source/simpleregistry/simpleregistry.cxx2284
-rwxr-xr-xstoc/source/simpleregistry/textualservices.cxx1216
-rw-r--r--stoc/source/simpleregistry/textualservices.hxx67
-rw-r--r--stoc/source/stocservices/stocservices.cxx6
-rw-r--r--stoc/test/uriproc/makefile.mk20
-rw-r--r--stoc/util/bootstrap.component62
-rw-r--r--stoc/util/makefile.mk16
-rw-r--r--stoc/util/stocservices.component51
-rwxr-xr-x[-rw-r--r--]svl/inc/lngmisc.hxx3
-rw-r--r--svl/prj/d.lst3
-rw-r--r--svl/source/fsstor/fsfactory.cxx24
-rw-r--r--svl/source/fsstor/fsstorage.component35
-rw-r--r--svl/source/fsstor/makefile.mk8
-rwxr-xr-x[-rw-r--r--]svl/source/misc/lngmisc.cxx33
-rw-r--r--svl/source/passwordcontainer/makefile.mk8
-rw-r--r--svl/source/passwordcontainer/passwordcontainer.component34
-rw-r--r--svl/source/passwordcontainer/passwordcontainer.cxx18
-rw-r--r--svl/source/uno/registerservices.cxx31
-rw-r--r--svl/util/makefile.mk8
-rw-r--r--svl/util/svl.component40
-rw-r--r--svtools/prj/d.lst3
-rw-r--r--svtools/source/hatchwindow/hatchwindowfactory.component38
-rw-r--r--svtools/source/hatchwindow/hatchwindowfactory.cxx39
-rw-r--r--svtools/source/hatchwindow/makefile.mk8
-rw-r--r--svtools/source/productregistration/makefile.mk8
-rw-r--r--svtools/source/productregistration/productregistration.cxx19
-rw-r--r--svtools/source/productregistration/productregistration.uno.component34
-rw-r--r--svtools/source/uno/miscservices.cxx49
-rw-r--r--svtools/util/makefile.mk8
-rw-r--r--svtools/util/svt.component49
-rw-r--r--svx/prj/d.lst3
-rw-r--r--svx/source/core/coreservices.cxx38
-rw-r--r--svx/source/items/svxitems.src2
-rw-r--r--svx/source/unodialogs/textconversiondlgs/makefile.mk8
-rw-r--r--svx/source/unodialogs/textconversiondlgs/services.cxx7
-rw-r--r--svx/source/unodialogs/textconversiondlgs/textconversiondlgs.component34
-rw-r--r--svx/source/unodraw/unoctabl.cxx54
-rw-r--r--svx/util/gal.dxp1
-rw-r--r--svx/util/makefile.mk14
-rw-r--r--svx/util/svx.component76
-rw-r--r--svx/util/svx.dxp1
-rw-r--r--svx/util/svxcore.component49
-rw-r--r--sw/prj/d.lst3
-rw-r--r--[-rwxr-xr-x]sw/source/core/doc/doc.cxx12
-rw-r--r--sw/source/core/draw/dcontact.cxx33
-rw-r--r--sw/source/core/frmedt/feshview.cxx12
-rw-r--r--sw/source/core/layout/fly.cxx27
-rw-r--r--sw/source/filter/ww8/docxexportfilter.cxx24
-rw-r--r--sw/source/filter/xml/xmlexpit.cxx12
-rwxr-xr-x[-rw-r--r--]sw/source/ui/lingu/olmenu.cxx1
-rwxr-xr-x[-rw-r--r--]sw/source/ui/uiview/pview.cxx488
-rwxr-xr-x[-rw-r--r--]sw/source/ui/uiview/pview.src293
-rwxr-xr-x[-rw-r--r--]sw/source/ui/uiview/view.hrc1
-rwxr-xr-x[-rw-r--r--]sw/source/ui/uno/SwXDocumentSettings.cxx2
-rw-r--r--sw/source/ui/uno/SwXPrintPreviewSettings.cxx375
-rw-r--r--sw/source/ui/uno/SwXPrintPreviewSettings.hxx89
-rw-r--r--sw/source/ui/uno/detreg.cxx24
-rwxr-xr-x[-rw-r--r--]sw/source/ui/uno/makefile.mk1
-rw-r--r--sw/source/ui/uno/unofreg.cxx93
-rw-r--r--sw/source/ui/uno/unotxdoc.cxx22
-rw-r--r--sw/source/ui/vba/service.cxx10
-rw-r--r--sw/util/makefile.mk20
-rw-r--r--sw/util/sw.component104
-rw-r--r--sw/util/swd.component36
-rw-r--r--sw/util/vbaswobj.component43
-rw-r--r--sysui/util/exports.dxp1
-rw-r--r--test/inc/test/uniquepipename.hxx44
-rw-r--r--test/prj/d.lst1
-rw-r--r--test/source/cpp/makefile.mk3
-rw-r--r--test/source/cpp/officeconnection.cxx11
-rw-r--r--test/source/cpp/uniquepipename.cxx48
-rw-r--r--testautomation/dbaccess/required/input/oracle-report-builder.oxtbin0 -> 3449930 bytes
-rwxr-xr-xtestautomation/dbaccess/required/input/sun-report-builder.oxtbin2184747 -> 0 bytes
-rw-r--r--[-rwxr-xr-x]testautomation/dbaccess/tools/reporttools.inc2
-rwxr-xr-x[-rw-r--r--]testautomation/global/sid/all.sid2
-rwxr-xr-x[-rw-r--r--]testautomation/global/sid/e_all.sid2
-rwxr-xr-xtestautomation/global/win/dial_d_h.win13
-rw-r--r--testautomation/graphics/optional/includes/global/g_demoguide.inc3
-rw-r--r--testautomation/graphics/optional/includes/global/g_spellcheck.inc205
-rw-r--r--testautomation/graphics/optional/includes/global/g_tables.inc8
-rw-r--r--testautomation/graphics/optional/includes/global/g_tools.inc13
-rw-r--r--testautomation/graphics/optional/includes/impress/i_us_present.inc30
-rw-r--r--testautomation/graphics/required/includes/global/id_002.inc1
-rw-r--r--testautomation/math/optional/includes/m_105.inc2
-rw-r--r--[-rwxr-xr-x]testautomation/math/required/includes/m_005_.inc11
-rw-r--r--testautomation/spreadsheet/required/includes/c_upd_filemenu.inc1
-rw-r--r--[-rwxr-xr-x]testautomation/spreadsheet/required/includes/c_upd_toolsmenu.inc4
-rw-r--r--[-rwxr-xr-x]testautomation/writer/optional/input/import/dostext.txt158
-rwxr-xr-xtestautomation/writer/optional/input/import/swdos.txt6626
-rw-r--r--[-rwxr-xr-x]testautomation/writer/required/includes/w_004_.inc1
-rw-r--r--testtools/com/sun/star/comp/bridge/TestComponent.java19
-rw-r--r--testtools/prj/build.lst4
-rw-r--r--testtools/source/bridgetest/bridgetest.component34
-rw-r--r--testtools/source/bridgetest/bridgetest.cxx22
-rw-r--r--testtools/source/bridgetest/constructors.component37
-rw-r--r--testtools/source/bridgetest/constructors.cxx7
-rw-r--r--testtools/source/bridgetest/cppobj.component34
-rw-r--r--testtools/source/bridgetest/cppobj.cxx22
-rw-r--r--testtools/source/bridgetest/makefile.mk89
-rw-r--r--testtools/source/bridgetest/pyuno/makefile.mk25
-rw-r--r--testtools/source/bridgetest/testComponent.component38
-rw-r--r--toolkit/prj/d.lst1
-rw-r--r--toolkit/source/awt/asynccallback.cxx6
-rw-r--r--toolkit/source/helper/registerservices.cxx87
-rw-r--r--toolkit/source/layout/core/factory.cxx27
-rw-r--r--toolkit/util/makefile.mk8
-rw-r--r--toolkit/util/tk.component298
-rw-r--r--ucb/prj/d.lst15
-rw-r--r--ucb/source/cacher/cached1.component43
-rw-r--r--ucb/source/cacher/cacheserv.cxx77
-rw-r--r--ucb/source/cacher/makefile.mk8
-rw-r--r--ucb/source/core/exports2.dxp1
-rw-r--r--ucb/source/core/makefile.mk8
-rw-r--r--ucb/source/core/ucb1.component46
-rw-r--r--ucb/source/core/ucbserv.cxx87
-rw-r--r--ucb/source/core/ucbstore.cxx39
-rw-r--r--ucb/source/core/ucbstore.hxx6
-rw-r--r--ucb/source/sorter/makefile.mk8
-rw-r--r--ucb/source/sorter/sortmain.cxx55
-rw-r--r--ucb/source/sorter/srtrs1.component34
-rw-r--r--ucb/source/ucp/expand/makefile.mk8
-rw-r--r--ucb/source/ucp/expand/ucpexpand.cxx8
-rw-r--r--ucb/source/ucp/expand/ucpexpand1.component34
-rw-r--r--ucb/source/ucp/ext/makefile.mk8
-rw-r--r--ucb/source/ucp/ext/ucpext.component34
-rw-r--r--ucb/source/ucp/ext/ucpext_services.cxx6
-rw-r--r--ucb/source/ucp/file/exports2.dxp1
-rw-r--r--ucb/source/ucp/file/makefile.mk8
-rw-r--r--ucb/source/ucp/file/prov.cxx54
-rw-r--r--ucb/source/ucp/file/ucpfile1.component34
-rw-r--r--ucb/source/ucp/ftp/ftpservices.cxx54
-rw-r--r--ucb/source/ucp/ftp/makefile.mk8
-rw-r--r--ucb/source/ucp/ftp/ucpftp1.component34
-rw-r--r--ucb/source/ucp/gio/gio_provider.cxx35
-rw-r--r--ucb/source/ucp/gio/makefile.mk10
-rw-r--r--ucb/source/ucp/gio/ucpgio-ucd.txt6
-rw-r--r--ucb/source/ucp/gio/ucpgio.component34
-rw-r--r--ucb/source/ucp/gvfs/gvfs_provider.cxx45
-rw-r--r--ucb/source/ucp/gvfs/makefile.mk9
-rw-r--r--ucb/source/ucp/gvfs/ucpgvfs-ucd.txt6
-rw-r--r--ucb/source/ucp/gvfs/ucpgvfs.component34
-rw-r--r--ucb/source/ucp/hierarchy/hierarchyservices.cxx63
-rw-r--r--ucb/source/ucp/hierarchy/makefile.mk8
-rw-r--r--ucb/source/ucp/hierarchy/ucphier1.component38
-rw-r--r--ucb/source/ucp/odma/odma_services.cxx39
-rw-r--r--ucb/source/ucp/package/makefile.mk8
-rw-r--r--ucb/source/ucp/package/pkgservices.cxx59
-rw-r--r--ucb/source/ucp/package/ucppkg1.component34
-rw-r--r--ucb/source/ucp/tdoc/makefile.mk8
-rw-r--r--ucb/source/ucp/tdoc/tdoc_services.cxx62
-rw-r--r--ucb/source/ucp/tdoc/ucptdoc1.component37
-rw-r--r--ucb/source/ucp/webdav/makefile.mk8
-rw-r--r--ucb/source/ucp/webdav/ucpdav1.component34
-rw-r--r--ucb/source/ucp/webdav/webdavservices.cxx54
-rw-r--r--unotools/prj/d.lst1
-rw-r--r--unotools/source/ucbhelper/xtempfile.cxx58
-rw-r--r--unotools/util/makefile.mk8
-rw-r--r--unotools/util/utl.component34
-rw-r--r--unoxml/prj/d.lst2
-rw-r--r--unoxml/source/rdf/librdf_services.cxx7
-rw-r--r--unoxml/source/rdf/makefile.mk8
-rw-r--r--unoxml/source/rdf/unordf.component43
-rw-r--r--unoxml/source/service/makefile.mk8
-rw-r--r--unoxml/source/service/services.cxx38
-rw-r--r--unoxml/source/service/unoxml.component43
-rw-r--r--ure/prj/build.lst2
-rw-r--r--ure/prj/d.lst16
-rw-r--r--ure/source/README2
-rw-r--r--ure/source/makefile.mk76
-rw-r--r--uui/prj/d.lst1
-rw-r--r--uui/source/iahndl-authentication.cxx46
-rwxr-xr-x[-rw-r--r--]uui/source/ids.hrc3
-rwxr-xr-xuui/source/logindlg.src8
-rwxr-xr-x[-rw-r--r--]uui/source/masterpasscrtdlg.cxx2
-rwxr-xr-x[-rw-r--r--]uui/source/masterpasscrtdlg.src2
-rwxr-xr-xuui/source/passworddlg.cxx126
-rwxr-xr-x[-rw-r--r--]uui/source/passworddlg.hrc18
-rwxr-xr-xuui/source/passworddlg.hxx10
-rwxr-xr-xuui/source/passworddlg.src76
-rwxr-xr-xuui/source/passworderrs.src7
-rw-r--r--uui/source/services.cxx80
-rw-r--r--uui/util/makefile.mk8
-rw-r--r--uui/util/uui.component44
-rw-r--r--vbahelper/prj/d.lst1
-rw-r--r--vbahelper/source/msforms/service.cxx10
-rw-r--r--vbahelper/util/makefile.mk8
-rw-r--r--vbahelper/util/msforms.component37
-rw-r--r--vcl/aqua/inc/salgdi.h6
-rw-r--r--vcl/aqua/source/dtrans/aqua_service.cxx22
-rw-r--r--vcl/aqua/source/gdi/salgdi.cxx22
-rw-r--r--vcl/inc/vcl/glyphcache.hxx3
-rw-r--r--vcl/inc/vcl/impfont.hxx8
-rw-r--r--vcl/inc/vcl/metric.hxx4
-rw-r--r--vcl/inc/vcl/salgdi.hxx2
-rw-r--r--vcl/os2/inc/salgdi.h4
-rw-r--r--vcl/os2/source/gdi/salgdi3.cxx10
-rw-r--r--vcl/prj/d.lst1
-rw-r--r--vcl/source/components/factory.cxx56
-rw-r--r--vcl/source/gdi/metric.cxx38
-rw-r--r--vcl/source/gdi/outdev3.cxx7
-rw-r--r--vcl/source/gdi/pdfwriter_impl.cxx6
-rw-r--r--vcl/source/glyphs/gcach_ftyp.cxx57
-rw-r--r--vcl/source/glyphs/gcach_ftyp.hxx7
-rw-r--r--vcl/source/glyphs/glyphcache.cxx18
-rw-r--r--vcl/source/window/dlgctrl.cxx101
-rw-r--r--vcl/unx/headless/svpgdi.hxx2
-rw-r--r--vcl/unx/headless/svppspgraphics.cxx9
-rw-r--r--vcl/unx/headless/svppspgraphics.hxx2
-rw-r--r--vcl/unx/headless/svptext.cxx8
-rw-r--r--vcl/unx/inc/pspgraphics.h2
-rw-r--r--vcl/unx/inc/salgdi.h2
-rw-r--r--vcl/unx/source/gdi/pspgraphics.cxx20
-rw-r--r--vcl/unx/source/gdi/salgdi3.cxx13
-rw-r--r--vcl/util/makefile.mk16
-rw-r--r--vcl/util/vcl.component49
-rw-r--r--vcl/util/vcl.macosx.component49
-rw-r--r--vcl/util/vcl.windows.component40
-rwxr-xr-xvcl/win/inc/salgdi.h25
-rw-r--r--vcl/win/source/gdi/salbmp.cxx4
-rw-r--r--vcl/win/source/gdi/salgdi3.cxx25
-rw-r--r--vcl/workben/makefile.mk24
-rw-r--r--vcl/workben/svdem.cxx2
-rw-r--r--vcl/workben/svptest.cxx2
-rw-r--r--vcl/workben/vcldemo.cxx2
-rw-r--r--wizards/com/sun/star/wizards/agenda/CallWizard.java18
-rw-r--r--wizards/com/sun/star/wizards/agenda/agenda.component35
-rw-r--r--wizards/com/sun/star/wizards/agenda/makefile.mk8
-rw-r--r--wizards/com/sun/star/wizards/fax/CallWizard.java19
-rw-r--r--wizards/com/sun/star/wizards/fax/fax.component35
-rw-r--r--wizards/com/sun/star/wizards/fax/makefile.mk8
-rw-r--r--wizards/com/sun/star/wizards/form/CallFormWizard.java17
-rw-r--r--wizards/com/sun/star/wizards/form/form.component35
-rw-r--r--wizards/com/sun/star/wizards/form/makefile.mk8
-rw-r--r--wizards/com/sun/star/wizards/letter/CallWizard.java19
-rw-r--r--wizards/com/sun/star/wizards/letter/letter.component35
-rw-r--r--wizards/com/sun/star/wizards/letter/makefile.mk8
-rw-r--r--wizards/com/sun/star/wizards/query/CallQueryWizard.java17
-rw-r--r--wizards/com/sun/star/wizards/query/makefile.mk8
-rw-r--r--wizards/com/sun/star/wizards/query/query.component35
-rw-r--r--wizards/com/sun/star/wizards/report/CallReportWizard.java20
-rw-r--r--wizards/com/sun/star/wizards/report/makefile.mk8
-rw-r--r--wizards/com/sun/star/wizards/report/report.component35
-rw-r--r--wizards/com/sun/star/wizards/table/CallTableWizard.java17
-rw-r--r--wizards/com/sun/star/wizards/table/makefile.mk8
-rw-r--r--wizards/com/sun/star/wizards/table/table.component35
-rw-r--r--wizards/com/sun/star/wizards/web/CallWizard.java19
-rw-r--r--wizards/com/sun/star/wizards/web/makefile.mk8
-rw-r--r--wizards/com/sun/star/wizards/web/web.component35
-rw-r--r--wizards/prj/d.lst8
-rw-r--r--writerfilter/prj/d.lst1
-rw-r--r--writerfilter/source/filter/WriterFilter.cxx5
-rw-r--r--writerfilter/unocomponent/component.cxx6
-rw-r--r--writerfilter/unocomponent/exports.dxp1
-rw-r--r--writerfilter/util/makefile.mk6
-rw-r--r--writerfilter/util/writerfilter.component38
-rw-r--r--writerperfect/prj/d.lst1
-rw-r--r--writerperfect/source/wpdimp/wpft_genericfilter.cxx27
-rw-r--r--writerperfect/util/makefile.mk8
-rw-r--r--writerperfect/util/wpft.component35
-rw-r--r--xmerge/prj/d.lst1
-rw-r--r--xmerge/source/bridge/XMergeBridge.component34
-rw-r--r--xmerge/source/bridge/java/XMergeBridge.java22
-rw-r--r--xmerge/source/bridge/makefile.mk8
-rw-r--r--xmlhelp/prj/d.lst4
-rwxr-xr-xxmlhelp/source/com/sun/star/help/HelpComponent.java25
-rw-r--r--xmlhelp/source/com/sun/star/help/HelpSearch.java19
-rw-r--r--xmlhelp/source/com/sun/star/help/LuceneHelpWrapper.component37
-rw-r--r--xmlhelp/source/com/sun/star/help/makefile.mk8
-rw-r--r--xmlhelp/source/cxxhelp/provider/services.cxx55
-rw-r--r--xmlhelp/source/treeview/makefile.mk8
-rw-r--r--xmlhelp/source/treeview/tvfactory.cxx57
-rw-r--r--xmlhelp/source/treeview/tvhlp1.component35
-rw-r--r--xmlhelp/util/makefile.mk8
-rw-r--r--xmlhelp/util/ucpchelp1.component35
-rw-r--r--xmloff/prj/d.lst2
-rw-r--r--xmloff/source/core/facreg.cxx111
-rw-r--r--xmloff/source/draw/ximpcustomshape.cxx3
-rw-r--r--xmloff/source/transform/XMLFilterRegistration.cxx33
-rw-r--r--xmloff/source/transform/makefile.mk8
-rw-r--r--xmloff/source/transform/xof.component118
-rw-r--r--xmloff/util/makefile.mk8
-rw-r--r--xmloff/util/xo.component178
-rw-r--r--xmlreader/inc/makefile.mk40
-rw-r--r--xmlreader/inc/pch/precompiled_xmlreader.cxx28
-rw-r--r--xmlreader/inc/pch/precompiled_xmlreader.hxx32
-rw-r--r--xmlreader/inc/xmlreader/detail/xmlreaderdllapi.hxx41
-rw-r--r--xmlreader/inc/xmlreader/pad.hxx (renamed from configmgr/source/pad.hxx)16
-rw-r--r--xmlreader/inc/xmlreader/span.hxx (renamed from configmgr/source/span.hxx)13
-rw-r--r--xmlreader/inc/xmlreader/xmlreader.hxx (renamed from configmgr/source/xmlreader.hxx)121
-rw-r--r--xmlreader/prj/build.lst3
-rwxr-xr-xxmlreader/prj/d.lst10
-rw-r--r--[-rwxr-xr-x]xmlreader/source/makefile.mk (renamed from cpputools/source/regcomplazy/makefile.mk)45
-rw-r--r--xmlreader/source/pad.cxx (renamed from configmgr/source/pad.cxx)14
-rw-r--r--xmlreader/source/span.cxx66
-rw-r--r--xmlreader/source/xmlreader.cxx (renamed from configmgr/source/xmlreader.cxx)118
-rw-r--r--xmlscript/prj/d.lst1
-rw-r--r--xmlscript/source/misc/unoservices.cxx9
-rw-r--r--xmlscript/util/makefile.mk8
-rw-r--r--xmlscript/util/xcr.component46
-rw-r--r--xmlsecurity/prj/d.lst3
-rw-r--r--xmlsecurity/source/component/registerservices.cxx42
-rw-r--r--xmlsecurity/source/framework/xsec_framework.cxx77
-rw-r--r--xmlsecurity/source/xmlsec/xsec_xmlsec.cxx71
-rw-r--r--xmlsecurity/util/exports_xsmscrypt.dxp1
-rw-r--r--xmlsecurity/util/exports_xsnss.dxp1
-rw-r--r--xmlsecurity/util/makefile.mk27
-rw-r--r--xmlsecurity/util/xmlsecurity.component37
-rw-r--r--xmlsecurity/util/xsec_fw.component56
-rw-r--r--xmlsecurity/util/xsec_fw.dxp1
-rw-r--r--xmlsecurity/util/xsec_xmlsec.component55
-rw-r--r--xmlsecurity/util/xsec_xmlsec.windows.component55
1182 files changed, 26442 insertions, 21687 deletions
diff --git a/UnoControls/prj/d.lst b/UnoControls/prj/d.lst
index 5f65d3c80717..370fc0c9fc46 100644
--- a/UnoControls/prj/d.lst
+++ b/UnoControls/prj/d.lst
@@ -3,3 +3,4 @@
..\%__SRC%\lib\*.sl %_DEST%\lib%_EXT%\*.sl
..\%__SRC%\bin\*.res %_DEST%\bin%_EXT%\*.res
..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
+..\%__SRC%\misc\ctl.component %_DEST%\xml%_EXT%\ctl.component
diff --git a/UnoControls/source/base/registercontrols.cxx b/UnoControls/source/base/registercontrols.cxx
index 686c7578b88d..6a10f42b8fb8 100644
--- a/UnoControls/source/base/registercontrols.cxx
+++ b/UnoControls/source/base/registercontrols.cxx
@@ -93,59 +93,6 @@ using namespace ::com::sun::star::registry ;
}
//******************************************************************************************************************************
-#define COMPONENT_INFO(CLASS) \
- \
- AS_DBG_OUT ( "\tCOMPONENT_INFO():\t[start]\n" ) \
- try \
- { \
- /* Set default result of follow operations !!! */ \
- bReturn = sal_False ; \
- \
- /* Do the follow only, if given key is valid ! */ \
- if ( xKey.is () ) \
- { \
- AS_DBG_OUT ( "\tCOMPONENT_INFO():\t\txkey is valid ...\n" ) \
- /* Build new keyname */ \
- sKeyName = OUString::createFromAscii( "/" ) ; \
- sKeyName += CLASS::impl_getStaticImplementationName() ; \
- sKeyName += OUString::createFromAscii( "/UNO/SERVICES" ); \
- \
- /* Create new key with new name. */ \
- xNewKey = xKey->createKey( sKeyName ); \
- \
- /* If this new key valid ... */ \
- if ( xNewKey.is () ) \
- { \
- AS_DBG_OUT ( "\tCOMPONENT_INFO():\t\txNewkey is valid ...\n" ) \
- /* Get information about supported services. */ \
- seqServiceNames = CLASS::impl_getStaticSupportedServiceNames() ; \
- pArray = seqServiceNames.getArray() ; \
- nLength = seqServiceNames.getLength() ; \
- nCounter = 0 ; \
- \
- AS_DBG_OUT ( "\tCOMPONENT_INFO():\t\tloop ..." ) \
- /* Then set this information on this key. */ \
- for ( nCounter = 0; nCounter < nLength; ++nCounter ) \
- { \
- xNewKey->createKey( pArray [nCounter] ); \
- } \
- AS_DBG_OUT ( " OK\n" ) \
- \
- /* Result of this operations = OK. */ \
- bReturn = sal_True ; \
- } \
- AS_DBG_OUT ( "\tCOMPONENT_INFO():\t\t... leave xNewKey\n" ) \
- } \
- AS_DBG_OUT ( "\tCOMPONENT_INFO():\t\t... leave xKey\n" ) \
- } \
- catch( InvalidRegistryException& ) \
- { \
- AS_DBG_OUT ( "\tCOMPONENT_INFO():\t\tInvalidRegistryException detected!!!\n" ) \
- bReturn = sal_False ; \
- } \
- AS_DBG_OUT ( "\tCOMPONENT_INFO():\t[end]\n" )
-
-//******************************************************************************************************************************
#define CREATEFACTORY_ONEINSTANCE(CLASS) \
\
AS_DBG_OUT ( "\tCREATEFACTORY_ONEINSTANCE():\t[start]\n" ) \
@@ -218,53 +165,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment( const sal_
}
//______________________________________________________________________________________________________________
-// write component info to registry
-//______________________________________________________________________________________________________________
-
-extern "C" sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/ ,
- void* pRegistryKey )
-{
- AS_DBG_OUT ( "component_writeInfo():\t[start]\n" )
-
- // Set default return value for this operation - if it failed.
- sal_Bool bReturn = sal_False ;
-
- if ( pRegistryKey != NULL )
- {
- AS_DBG_OUT ( "component_writeInfo():\t\tpRegistryKey is valid ... enter scope\n" )
-
- // Define variables for following macros!
- // bReturn is set automaticly.
- Reference< XRegistryKey > xKey( reinterpret_cast< XRegistryKey* >( pRegistryKey ) ) ;
- Reference< XRegistryKey > xNewKey ;
- Sequence< OUString > seqServiceNames ;
- const OUString* pArray ;
- sal_Int32 nLength ;
- sal_Int32 nCounter ;
- OUString sKeyName ;
-
- //=============================================================================
- // Add new macro line to register new services.
- //
- // !!! ATTENTION !!!
- // Write no ";" at end of line! (see macro)
- //=============================================================================
- COMPONENT_INFO ( FrameControl )
- COMPONENT_INFO ( ProgressBar )
- COMPONENT_INFO ( ProgressMonitor )
- COMPONENT_INFO ( StatusIndicator )
- //=============================================================================
-
- AS_DBG_OUT ( "component_writeInfo():\t\t... leave pRegistryKey scope\n" )
- }
-
- AS_DBG_OUT ( "component_writeInfo():\t[end]\n" )
-
- // Return with result of this operation.
- return bReturn ;
-}
-
-//______________________________________________________________________________________________________________
// create right component factory
//______________________________________________________________________________________________________________
diff --git a/UnoControls/util/ctl.component b/UnoControls/util/ctl.component
new file mode 100644
index 000000000000..32901f529c8b
--- /dev/null
+++ b/UnoControls/util/ctl.component
@@ -0,0 +1,43 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="stardiv.UnoControls.FrameControl">
+ <service name="com.sun.star.frame.FrameControl"/>
+ </implementation>
+ <implementation name="stardiv.UnoControls.ProgressBar">
+ <service name="com.sun.star.awt.XProgressBar"/>
+ </implementation>
+ <implementation name="stardiv.UnoControls.ProgressMonitor">
+ <service name="com.sun.star.awt.XProgressMonitor"/>
+ </implementation>
+ <implementation name="stardiv.UnoControls.StatusIndicator">
+ <service name="com.sun.star.task.XStatusIndicator"/>
+ </implementation>
+</component>
diff --git a/UnoControls/util/makefile.mk b/UnoControls/util/makefile.mk
index aacddb23c0ad..73617d24452c 100644
--- a/UnoControls/util/makefile.mk
+++ b/UnoControls/util/makefile.mk
@@ -59,3 +59,11 @@ SHL1LIBS= $(LIB1TARGET)
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/ctl.component
+
+$(MISC)/ctl.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ ctl.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt ctl.component
diff --git a/accessibility/bridge/org/openoffice/accessibility/AccessBridge.java b/accessibility/bridge/org/openoffice/accessibility/AccessBridge.java
index 454cd15154d4..ec479fb3949d 100755
--- a/accessibility/bridge/org/openoffice/accessibility/AccessBridge.java
+++ b/accessibility/bridge/org/openoffice/accessibility/AccessBridge.java
@@ -142,11 +142,6 @@ public class AccessBridge {
return xSingleServiceFactory;
}
- public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
- return FactoryHelper.writeRegistryServiceInfo(AccessBridge.class.getName(),
- _AccessBridge._serviceName, regKey);
- }
-
static public class _AccessBridge implements XTopWindowListener,
XInitialization, XComponent {
static final String _serviceName = "com.sun.star.accessibility.AccessBridge";
diff --git a/accessibility/bridge/org/openoffice/accessibility/java_uno_accessbridge.component b/accessibility/bridge/org/openoffice/accessibility/java_uno_accessbridge.component
new file mode 100644
index 000000000000..5fc897f2d5aa
--- /dev/null
+++ b/accessibility/bridge/org/openoffice/accessibility/java_uno_accessbridge.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Java2"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="org.openoffice.accessibility.AccessBridge">
+ <service name="com.sun.star.accessibility.AccessBridge"/>
+ </implementation>
+</component>
diff --git a/accessibility/bridge/org/openoffice/accessibility/makefile.mk b/accessibility/bridge/org/openoffice/accessibility/makefile.mk
index 9510a3156a59..1fa29f5bfcb1 100755
--- a/accessibility/bridge/org/openoffice/accessibility/makefile.mk
+++ b/accessibility/bridge/org/openoffice/accessibility/makefile.mk
@@ -53,3 +53,10 @@ CUSTOMMANIFESTFILE = manifest
.INCLUDE : target.mk
+ALLTAR : $(MISC)/java_uno_accessbridge.component
+
+$(MISC)/java_uno_accessbridge.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt java_uno_accessbridge.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_JAVA)$(JARTARGET)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt java_uno_accessbridge.component
diff --git a/accessibility/prj/d.lst b/accessibility/prj/d.lst
index f61319551e41..662373c7c487 100644
--- a/accessibility/prj/d.lst
+++ b/accessibility/prj/d.lst
@@ -5,4 +5,4 @@
..\%__SRC%\bin\*.res %_DEST%\bin%_EXT%\*.res
..\%__SRC%\lib\lib*.so %_DEST%\lib%_EXT%
..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
-
+..\%__SRC%\misc\java_uno_accessbridge.component %_DEST%\xml\java_uno_accessbridge.component
diff --git a/animations/prj/d.lst b/animations/prj/d.lst
index bdab238656c3..9a91b35b2f50 100644
--- a/animations/prj/d.lst
+++ b/animations/prj/d.lst
@@ -7,3 +7,4 @@
mkdir: %_DEST%\inc%_EXT%\animations
..\inc\animations\animationnodehelper.hxx %_DEST%\inc%_EXT%\animations\animationnodehelper.hxx
+..\%__SRC%\misc\animcore.component %_DEST%\xml%_EXT%\animcore.component
diff --git a/animations/source/animcore/animcore.component b/animations/source/animcore/animcore.component
new file mode 100644
index 000000000000..1a9a390fb64b
--- /dev/null
+++ b/animations/source/animcore/animcore.component
@@ -0,0 +1,67 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="animcore::Animate">
+ <service name="com.sun.star.animations.Animate"/>
+ </implementation>
+ <implementation name="animcore::AnimateColor">
+ <service name="com.sun.star.animations.AnimateColor"/>
+ </implementation>
+ <implementation name="animcore::AnimateMotion">
+ <service name="com.sun.star.animations.AnimateMotion"/>
+ </implementation>
+ <implementation name="animcore::AnimateSet">
+ <service name="com.sun.star.animations.AnimateSet"/>
+ </implementation>
+ <implementation name="animcore::AnimateTransform">
+ <service name="com.sun.star.animations.AnimateTransform"/>
+ </implementation>
+ <implementation name="animcore::Audio">
+ <service name="com.sun.star.animations.Audio"/>
+ </implementation>
+ <implementation name="animcore::Command">
+ <service name="com.sun.star.animations.Command"/>
+ </implementation>
+ <implementation name="animcore::IterateContainer">
+ <service name="com.sun.star.animations.IterateContainer"/>
+ </implementation>
+ <implementation name="animcore::ParallelTimeContainer">
+ <service name="com.sun.star.animations.ParallelTimeContainer"/>
+ </implementation>
+ <implementation name="animcore::SequenceTimeContainer">
+ <service name="com.sun.star.animations.SequenceTimeContainer"/>
+ </implementation>
+ <implementation name="animcore::TargetPropertiesCreator">
+ <service name="com.sun.star.animations.TargetPropertiesCreator"/>
+ </implementation>
+ <implementation name="animcore::TransitionFilter">
+ <service name="com.sun.star.animations.TransitionFilter"/>
+ </implementation>
+</component>
diff --git a/animations/source/animcore/factreg.cxx b/animations/source/animcore/factreg.cxx
index 3cfc350d405d..ce12955f4125 100644
--- a/animations/source/animcore/factreg.cxx
+++ b/animations/source/animcore/factreg.cxx
@@ -85,12 +85,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- return component_writeInfoHelper( pServiceManager, pRegistryKey, g_entries );
-}
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/animations/source/animcore/makefile.mk b/animations/source/animcore/makefile.mk
index b78460ada157..674858cd50d0 100644
--- a/animations/source/animcore/makefile.mk
+++ b/animations/source/animcore/makefile.mk
@@ -68,3 +68,11 @@ DEF1NAME= $(SHL1TARGET)
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/animcore.component
+
+$(MISC)/animcore.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ animcore.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt animcore.component
diff --git a/avmedia/prj/d.lst b/avmedia/prj/d.lst
index c82db252aab8..eb140ed45770 100644
--- a/avmedia/prj/d.lst
+++ b/avmedia/prj/d.lst
@@ -16,3 +16,8 @@ mkdir: %_DEST%\inc%_EXT%\avmedia
..\inc\avmedia\mediatoolbox.hxx %_DEST%\inc%_EXT%\avmedia\mediatoolbox.hxx
..\%__SRC%\class\avmedia.jar %_DEST%\bin%_EXT%\avmedia.jar
+..\%__SRC%\misc\avmedia.component %_DEST%\xml%_EXT%\avmedia.component
+..\%__SRC%\misc\avmedia.jar.component %_DEST%\xml%_EXT%\avmedia.jar.component
+..\%__SRC%\misc\avmediaQuickTime.component %_DEST%\xml%_EXT%\avmediaQuickTime.component
+..\%__SRC%\misc\avmediagst.component %_DEST%\xml%_EXT%\avmediagst.component
+..\%__SRC%\misc\avmediawin.component %_DEST%\xml%_EXT%\avmediawin.component
diff --git a/avmedia/source/framework/soundhandler.cxx b/avmedia/source/framework/soundhandler.cxx
index d24ae795fd76..a1fed18a0f68 100644
--- a/avmedia/source/framework/soundhandler.cxx
+++ b/avmedia/source/framework/soundhandler.cxx
@@ -497,44 +497,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment( const sal_Char
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-// -----------------------
-// - component_writeInfo -
-// -----------------------
-
-extern "C" sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey )
-{
- sal_Bool bRet = sal_False;
-
- if( pRegistryKey )
- {
- try
- {
- rtl::OUString sKeyName = DECLARE_ASCII( "/" );
- sKeyName += avmedia::SoundHandler::impl_getStaticImplementationName();
- sKeyName += DECLARE_ASCII( "/UNO/SERVICES" );
- css::uno::Reference< css::registry::XRegistryKey > xNewKey(
- static_cast< css::registry::XRegistryKey* >( pRegistryKey )->createKey(sKeyName));
-
- if ( xNewKey.is() == sal_True )
- {
- css::uno::Sequence< ::rtl::OUString > seqServiceNames = avmedia::SoundHandler::impl_getStaticSupportedServiceNames();
- const ::rtl::OUString* pArray = seqServiceNames.getArray();
- sal_Int32 nLength = seqServiceNames.getLength();
- for ( sal_Int32 nCounter = 0; nCounter < nLength; ++nCounter )
- xNewKey->createKey( pArray[nCounter] );
- }
-
- bRet = sal_True;
- }
- catch( css::registry::InvalidRegistryException& )
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
-
- return bRet;
-}
-
// ------------------------
// - component_getFactory -
// ------------------------
diff --git a/avmedia/source/gstreamer/avmediagst.component b/avmedia/source/gstreamer/avmediagst.component
new file mode 100644
index 000000000000..75d39d275f5c
--- /dev/null
+++ b/avmedia/source/gstreamer/avmediagst.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.avmedia.Manager_GStreamer">
+ <service name="com.sun.star.media.Manager_GStreamer"/>
+ </implementation>
+</component>
diff --git a/avmedia/source/gstreamer/exports.dxp b/avmedia/source/gstreamer/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/avmedia/source/gstreamer/exports.dxp
+++ b/avmedia/source/gstreamer/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/avmedia/source/gstreamer/gstuno.cxx b/avmedia/source/gstreamer/gstuno.cxx
index adcda63fcd9c..26d13ffc938b 100644
--- a/avmedia/source/gstreamer/gstuno.cxx
+++ b/avmedia/source/gstreamer/gstuno.cxx
@@ -48,35 +48,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment( const sal_Char
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-// -----------------------
-// - component_writeInfo -
-// -----------------------
-
-extern "C" sal_Bool SAL_CALL component_writeInfo( void* /* pServiceManager */, void* pRegistryKey )
-{
- sal_Bool bRet = sal_False;
-
- if( pRegistryKey )
- {
- try
- {
- uno::Reference< registry::XRegistryKey > xNewKey1(
- static_cast< registry::XRegistryKey* >( pRegistryKey )->createKey(
- ::rtl::OUString::createFromAscii(
- "/" AVMEDIA_GSTREAMER_MANAGER_IMPLEMENTATIONNAME "/UNO/SERVICES/"
- AVMEDIA_GSTREAMER_MANAGER_SERVICENAME ) ) );
-
- bRet = sal_True;
- }
- catch( registry::InvalidRegistryException& )
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
-
- return bRet;
-}
-
// ------------------------
// - component_getFactory -
// ------------------------
diff --git a/avmedia/source/gstreamer/makefile.mk b/avmedia/source/gstreamer/makefile.mk
index 2f22c7333778..c648fcc77f89 100644
--- a/avmedia/source/gstreamer/makefile.mk
+++ b/avmedia/source/gstreamer/makefile.mk
@@ -69,3 +69,11 @@ DEF1EXPORTFILE=exports.dxp
.ENDIF
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/avmediagst.component
+
+$(MISC)/avmediagst.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ avmediagst.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt avmediagst.component
diff --git a/avmedia/source/java/MediaUno.java b/avmedia/source/java/MediaUno.java
index ca7a164586d8..3e4387840741 100644
--- a/avmedia/source/java/MediaUno.java
+++ b/avmedia/source/java/MediaUno.java
@@ -64,13 +64,4 @@ public class MediaUno
return null;
}
-
- // -------------------------------------------------------------------------
-
- public static boolean __writeRegistryServiceInfo(
- com.sun.star.registry.XRegistryKey regKey )
- {
- return com.sun.star.comp.loader.FactoryHelper.writeRegistryServiceInfo(
- s_implName, s_serviceName, regKey );
- }
}
diff --git a/avmedia/source/java/avmedia.jar.component b/avmedia/source/java/avmedia.jar.component
new file mode 100644
index 000000000000..d7cc160bd7d0
--- /dev/null
+++ b/avmedia/source/java/avmedia.jar.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Java2"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.media.Manager_Java">
+ <service name="com.sun.star.media.Manager_Java"/>
+ </implementation>
+</component>
diff --git a/avmedia/source/java/makefile.mk b/avmedia/source/java/makefile.mk
index 37c53a721164..1fe771c117f2 100644
--- a/avmedia/source/java/makefile.mk
+++ b/avmedia/source/java/makefile.mk
@@ -59,3 +59,11 @@ CUSTOMMANIFESTFILE = manifest
# --- Targets ------------------------------------------------------
.INCLUDE: target.mk
+
+ALLTAR : $(MISC)/avmedia.jar.component
+
+$(MISC)/avmedia.jar.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt avmedia.jar.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_JAVA)avmedia.jar' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt avmedia.jar.component
diff --git a/avmedia/source/quicktime/avmediaQuickTime.component b/avmedia/source/quicktime/avmediaQuickTime.component
new file mode 100644
index 000000000000..aa0251d74c9d
--- /dev/null
+++ b/avmedia/source/quicktime/avmediaQuickTime.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.avmedia.Manager_QuickTime">
+ <service name="com.sun.star.media.Manager_QuickTime"/>
+ </implementation>
+</component>
diff --git a/avmedia/source/quicktime/makefile.mk b/avmedia/source/quicktime/makefile.mk
index f3c9f244f357..358fce491847 100644
--- a/avmedia/source/quicktime/makefile.mk
+++ b/avmedia/source/quicktime/makefile.mk
@@ -83,3 +83,11 @@ SHL1VERSIONMAP=$(SOLARENV)/src/component.map
dummy:
@echo " Nothing to build for GUIBASE=$(GUIBASE)"
.ENDIF
+
+ALLTAR : $(MISC)/avmediaQuickTime.component
+
+$(MISC)/avmediaQuickTime.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt avmediaQuickTime.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt avmediaQuickTime.component
diff --git a/avmedia/source/quicktime/quicktimeuno.cxx b/avmedia/source/quicktime/quicktimeuno.cxx
index b2dee4d77838..9ecd77f4b9e0 100644
--- a/avmedia/source/quicktime/quicktimeuno.cxx
+++ b/avmedia/source/quicktime/quicktimeuno.cxx
@@ -48,35 +48,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment( const sal_Char
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-// -----------------------
-// - component_writeInfo -
-// -----------------------
-
-extern "C" sal_Bool SAL_CALL component_writeInfo( void* /* pServiceManager */, void* pRegistryKey )
-{
- sal_Bool bRet = sal_False;
-
- if( pRegistryKey )
- {
- try
- {
- uno::Reference< registry::XRegistryKey > xNewKey1(
- static_cast< registry::XRegistryKey* >( pRegistryKey )->createKey(
- ::rtl::OUString::createFromAscii(
- "/" AVMEDIA_QUICKTIME_MANAGER_IMPLEMENTATIONNAME "/UNO/SERVICES/"
- AVMEDIA_QUICKTIME_MANAGER_SERVICENAME ) ) );
-
- bRet = sal_True;
- }
- catch( registry::InvalidRegistryException& )
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
-
- return bRet;
-}
-
// ------------------------
// - component_getFactory -
// ------------------------
diff --git a/avmedia/source/win/avmediawin.component b/avmedia/source/win/avmediawin.component
new file mode 100644
index 000000000000..c80c19bff0d9
--- /dev/null
+++ b/avmedia/source/win/avmediawin.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.avmedia.Manager_DirectX">
+ <service name="com.sun.star.media.Manager_DirectX"/>
+ </implementation>
+</component>
diff --git a/avmedia/source/win/exports.dxp b/avmedia/source/win/exports.dxp
index db9c0a52f288..926e49f5f1a5 100644
--- a/avmedia/source/win/exports.dxp
+++ b/avmedia/source/win/exports.dxp
@@ -1,4 +1,3 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/avmedia/source/win/makefile.mk b/avmedia/source/win/makefile.mk
index b70841e8bdf7..37db25b6a8b7 100644
--- a/avmedia/source/win/makefile.mk
+++ b/avmedia/source/win/makefile.mk
@@ -80,3 +80,11 @@ SHL1STDLIBS += dxguid.lib
.ENDIF
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/avmediawin.component
+
+$(MISC)/avmediawin.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ avmediawin.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt avmediawin.component
diff --git a/avmedia/source/win/winuno.cxx b/avmedia/source/win/winuno.cxx
index 645871290413..8b71f10b3f29 100644
--- a/avmedia/source/win/winuno.cxx
+++ b/avmedia/source/win/winuno.cxx
@@ -48,33 +48,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment( const sal_Char
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-// -----------------------
-// - component_writeInfo -
-// -----------------------
-
-extern "C" sal_Bool SAL_CALL component_writeInfo( void*, void* pRegistryKey )
-{
- sal_Bool bRet = sal_False;
-
- if( pRegistryKey )
- {
- try
- {
- uno::Reference< registry::XRegistryKey > xNewKey1(
- static_cast< registry::XRegistryKey* >( pRegistryKey )->createKey(
- ::rtl::OUString::createFromAscii( "/com.sun.star.comp.avmedia.Manager_DirectX/UNO/SERVICES/com.sun.star.media.Manager_DirectX" ) ) );
-
- bRet = sal_True;
- }
- catch( registry::InvalidRegistryException& )
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
-
- return bRet;
-}
-
// ------------------------
// - component_getFactory -
// ------------------------
diff --git a/avmedia/source/xine/exports.dxp b/avmedia/source/xine/exports.dxp
index db9c0a52f288..926e49f5f1a5 100644
--- a/avmedia/source/xine/exports.dxp
+++ b/avmedia/source/xine/exports.dxp
@@ -1,4 +1,3 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/avmedia/source/xine/xineuno.cxx b/avmedia/source/xine/xineuno.cxx
index 4dc4f3f7e1dd..2efe57b2472c 100644
--- a/avmedia/source/xine/xineuno.cxx
+++ b/avmedia/source/xine/xineuno.cxx
@@ -48,35 +48,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment( const sal_Char
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-// -----------------------
-// - component_writeInfo -
-// -----------------------
-
-extern "C" sal_Bool SAL_CALL component_writeInfo( void* /* pServiceManager */, void* pRegistryKey )
-{
- sal_Bool bRet = sal_False;
-
- if( pRegistryKey )
- {
- try
- {
- uno::Reference< registry::XRegistryKey > xNewKey1(
- static_cast< registry::XRegistryKey* >( pRegistryKey )->createKey(
- ::rtl::OUString::createFromAscii(
- "/" AVMEDIA_XINE_MANAGER_IMPLEMENTATIONNAME "/UNO/SERVICES/"
- AVMEDIA_XINE_MANAGER_SERVICENAME ) ) );
-
- bRet = sal_True;
- }
- catch( registry::InvalidRegistryException& )
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
-
- return bRet;
-}
-
// ------------------------
// - component_getFactory -
// ------------------------
diff --git a/avmedia/util/avmedia.component b/avmedia/util/avmedia.component
new file mode 100644
index 000000000000..fa01dc03eb9c
--- /dev/null
+++ b/avmedia/util/avmedia.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.framework.SoundHandler">
+ <service name="com.sun.star.frame.ContentHandler"/>
+ </implementation>
+</component>
diff --git a/avmedia/util/makefile.mk b/avmedia/util/makefile.mk
index b0d0a6816cf8..a0712204bec1 100644
--- a/avmedia/util/makefile.mk
+++ b/avmedia/util/makefile.mk
@@ -77,3 +77,11 @@ $(MISC)$/$(SHL1TARGET).flt: makefile.mk
@echo LibMain>>$@
@echo CT>>$@
.ENDIF
+
+ALLTAR : $(MISC)/avmedia.component
+
+$(MISC)/avmedia.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ avmedia.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt avmedia.component
diff --git a/basctl/prj/d.lst b/basctl/prj/d.lst
index d05ff35bdabc..b3ded50b6bbe 100644
--- a/basctl/prj/d.lst
+++ b/basctl/prj/d.lst
@@ -21,3 +21,4 @@ mkdir: %_DEST%\inc%_EXT%\basctl
..\uiconfig\basicide\menubar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\BasicIDE\menubar\*.xml
..\uiconfig\basicide\toolbar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\BasicIDE\toolbar\*.xml
..\uiconfig\basicide\statusbar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\BasicIDE\statusbar\*.xml
+..\%__SRC%\misc\basctl.component %_DEST%\xml%_EXT%\basctl.component
diff --git a/basctl/source/basicide/register.cxx b/basctl/source/basicide/register.cxx
index 0ee179dc1aa6..724ee765c254 100644
--- a/basctl/source/basicide/register.cxx
+++ b/basctl/source/basicide/register.cxx
@@ -53,28 +53,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
}
SAL_DLLPUBLIC_EXPORT
-sal_Bool SAL_CALL component_writeInfo( void* pServiceManager ,
- void* pRegistryKey )
-{
- (void)pServiceManager;
-
- Reference< ::registry::XRegistryKey >
- xKey( reinterpret_cast< ::registry::XRegistryKey* >( pRegistryKey ) ) ;
-
- OUString aDelimiter( RTL_CONSTASCII_USTRINGPARAM("/") );
- OUString aUnoServices( RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") );
-
- sal_Int32 i;
- Reference< ::registry::XRegistryKey > xNewKey;
- xNewKey = xKey->createKey( aDelimiter + SIDEModel::getImplementationName_Static() + aUnoServices );
- Sequence< OUString > aServices = SIDEModel::getSupportedServiceNames_Static();
- for(i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- return sal_True;
-}
-
-SAL_DLLPUBLIC_EXPORT
void* SAL_CALL component_getFactory( const sal_Char* pImplementationName,
void* pServiceManager,
void* pRegistryKey )
diff --git a/basctl/util/basctl.component b/basctl/util/basctl.component
new file mode 100644
index 000000000000..f101deaf28be
--- /dev/null
+++ b/basctl/util/basctl.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.basic.BasicIDE">
+ <service name="com.sun.star.script.BasicIDE"/>
+ </implementation>
+</component>
diff --git a/basctl/util/basctl.map b/basctl/util/basctl.map
index 80359606ccc8..83193fe176fa 100755
--- a/basctl/util/basctl.map
+++ b/basctl/util/basctl.map
@@ -4,7 +4,6 @@ UDK_3_0_0 {
basicide_macro_organizer;
basicide_handle_basic_error;
component_getImplementationEnvironment;
- component_writeInfo;
component_getFactory;
local:
*;
diff --git a/basctl/util/makefile.mk b/basctl/util/makefile.mk
index 47de65cc58c0..b33fa3f1d721 100644
--- a/basctl/util/makefile.mk
+++ b/basctl/util/makefile.mk
@@ -103,3 +103,11 @@ RESLIB1SRSFILES= $(SRSFILELIST)
.ENDIF # "$(header)" == ""
+
+ALLTAR : $(MISC)/basctl.component
+
+$(MISC)/basctl.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ basctl.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt basctl.component
diff --git a/basic/prj/d.lst b/basic/prj/d.lst
index d2a083ebcb1e..d8d0fce41994 100644
--- a/basic/prj/d.lst
+++ b/basic/prj/d.lst
@@ -57,3 +57,4 @@ mkdir: %_DEST%\inc%_EXT%\basic
..\inc\basic\basicmanagerrepository.hxx %_DEST%\inc%_EXT%\basic\basicmanagerrepository.hxx
..\inc\modsizeexceeded.hxx %_DEST%\inc%_EXT%\basic\modsizeexceeded.hxx
+..\%__SRC%\misc\sb.component %_DEST%\xml%_EXT%\sb.component
diff --git a/basic/util/makefile.mk b/basic/util/makefile.mk
index 629586f0441c..31a4dcca8f8b 100644
--- a/basic/util/makefile.mk
+++ b/basic/util/makefile.mk
@@ -143,4 +143,10 @@ $(MISC)$/$(SHL1TARGET).flt: makefile.mk
$(SRS)$/basic.srs:
$(TYPE) $(SRS)$/classes.srs + $(SRS)$/runtime.srs + $(SRS)$/sbx.srs > $@
+ALLTAR : $(MISC)/sb.component
+$(MISC)/sb.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ sb.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt sb.component
diff --git a/basic/util/sb.component b/basic/util/sb.component
new file mode 100644
index 000000000000..4687bd1e7d0b
--- /dev/null
+++ b/basic/util/sb.component
@@ -0,0 +1,39 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.sfx2.DialogLibraryContainer">
+ <service name="com.sun.star.script.DialogLibraryContainer"/>
+ <service name="com.sun.star.script.DocumentDialogLibraryContainer"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.sfx2.ScriptLibraryContainer">
+ <service name="com.sun.star.script.DocumentScriptLibraryContainer"/>
+ <service name="com.sun.star.script.ScriptLibraryContainer"/>
+ </implementation>
+</component>
diff --git a/berkeleydb/makefile.mk b/berkeleydb/makefile.mk
index 0b6bbde381cb..751af3ca687c 100644
--- a/berkeleydb/makefile.mk
+++ b/berkeleydb/makefile.mk
@@ -76,7 +76,7 @@ CXXFLAGS:=-fno-strict-aliasing $(EXTRA_CFLAGS)
.IF "$(GUI)"=="UNX"
.IF "$(OS)$(COM)"=="LINUXGCC"
-LDFLAGS:=-Wl,-rpath,'$$$$ORIGIN' -Wl,-z,noexecstack
+LDFLAGS:=-Wl,-rpath,'$$$$ORIGIN'
.EXPORT: LDFLAGS
#The current dir when linking is unxlngi6.pro/misc/build/db-4.2.52.NC/out
# the map file is in unxlngi6.pro/misc/build/db-4.2.52.NC
diff --git a/bridges/source/remote/context/context.cxx b/bridges/source/remote/context/context.cxx
index 770725f9d23f..7a2f3e6e6f66 100644
--- a/bridges/source/remote/context/context.cxx
+++ b/bridges/source/remote/context/context.cxx
@@ -38,6 +38,7 @@
#include <osl/mutex.hxx>
#include "rtl/ustring.hxx"
+#include "rtl/instance.hxx"
#include <bridges/remote/context.h>
#include <bridges/remote/remote.h>
@@ -109,17 +110,9 @@ ContextMap;
static MyCounter thisCounter( "DEBUG : Context" );
#endif
-class ContextAdmin;
-
-ContextAdmin *g_pTheContext = 0;
-
-
-
class ContextAdmin
{
public:
- static ContextAdmin *getInstance();
-
// listener administration
void addContextListener( remote_contextListenerFunc listener , void *pObject );
void removeContextListener( remote_contextListenerFunc listener , void *pObject );
@@ -138,7 +131,7 @@ public:
void revokeContext( uno_Context *pRemoteContext );
- uno_Context *get( rtl_uString *pHost );
+ uno_Context *getContext( rtl_uString *pHost );
rtl_uString ** getConnectionList(
sal_Int32 *pnStringCount, MemAlloc memAlloc );
@@ -152,19 +145,6 @@ private:
List m_lstListener;
};
-ContextAdmin *ContextAdmin::getInstance()
-{
- if( ! g_pTheContext ) {
- ::osl::MutexGuard guard( ::osl::Mutex::getGlobalMutex() );
- if( ! g_pTheContext ) {
- //TODO This memory is leaked; see #i63473# for when this should be
- // changed again:
- g_pTheContext = new ContextAdmin;
- }
- }
- return g_pTheContext;
-}
-
void ContextAdmin::addContextListener( remote_contextListenerFunc listener , void *pObject )
{
::osl::MutexGuard guard( m_mutex );
@@ -209,7 +189,7 @@ uno_Context *ContextAdmin::createAndRegisterContext( remote_Connection *pConnect
{
::osl::MutexGuard guard( m_mutex );
- uno_Context *pContext = get( pIdStr );
+ uno_Context *pContext = getContext( pIdStr );
if( pContext )
{
pContext->release( pContext );
@@ -245,7 +225,7 @@ void ContextAdmin::revokeContext( uno_Context *pRemoteContext )
}
-uno_Context *ContextAdmin::get( rtl_uString *pHost )
+uno_Context *ContextAdmin::getContext( rtl_uString *pHost )
{
::osl::MutexGuard guard( m_mutex );
@@ -267,6 +247,10 @@ rtl_uString ** ContextAdmin::getConnectionList(
::osl::MutexGuard guard( m_mutex );
*pnStringCount = m_mapContext.size();
+
+ if (*pnStringCount == 0)
+ return NULL;
+
rtl_uString **ppReturn = ( rtl_uString ** )
memAlloc( sizeof( rtl_uString * ) * m_mapContext.size() );
memset( ppReturn , 0 , sizeof( rtl_uString * ) * m_mapContext.size() );
@@ -283,6 +267,7 @@ rtl_uString ** ContextAdmin::getConnectionList(
}
+struct theContextAdmin : public rtl::Static<ContextAdmin, theContextAdmin> {};
/*****************************
* remote_ContextImpl implementation
@@ -379,7 +364,7 @@ void remote_ContextImpl::thisDispose( remote_Context *pRemoteC )
if( ! pImpl->m_bDisposed )
{
pImpl->m_bDisposed = sal_True;
- ContextAdmin::getInstance()->revokeContext( (uno_Context * ) pRemoteC );
+ theContextAdmin::get().revokeContext( (uno_Context * ) pRemoteC );
if( pImpl->m_pInstanceProvider )
{
@@ -456,7 +441,7 @@ using namespace remote_context;
extern "C" remote_Context * SAL_CALL
remote_getContext( rtl_uString *pIdString )
{
- return (remote_Context *) ContextAdmin::getInstance()->get( pIdString );
+ return (remote_Context *) theContextAdmin::get().getContext(pIdString);
}
@@ -469,7 +454,7 @@ remote_createContext( remote_Connection *pConnection,
remote_InstanceProvider *pProvider )
{
remote_ContextImpl *p = (remote_ContextImpl * )
- ContextAdmin::getInstance()->createAndRegisterContext(
+ theContextAdmin::get().createAndRegisterContext(
pConnection ,
pIdStr ,
pDescription,
@@ -483,17 +468,17 @@ remote_createContext( remote_Connection *pConnection,
extern "C" void SAL_CALL
remote_addContextListener( remote_contextListenerFunc listener, void *pObject )
{
- ContextAdmin::getInstance()->addContextListener( listener , pObject );
+ theContextAdmin::get().addContextListener( listener , pObject );
}
extern "C" void SAL_CALL
remote_removeContextListener( remote_contextListenerFunc listener , void *pObject )
{
- ContextAdmin::getInstance()->removeContextListener( listener , pObject );
+ theContextAdmin::get().removeContextListener( listener , pObject );
}
extern "C" rtl_uString ** SAL_CALL
remote_getContextList( sal_Int32 *pnStringCount, MemAlloc memAlloc )
{
- return ContextAdmin::getInstance()->getConnectionList( pnStringCount , memAlloc );
+ return theContextAdmin::get().getConnectionList( pnStringCount , memAlloc );
}
diff --git a/cairo/cairo/makefile.mk b/cairo/cairo/makefile.mk
index a29012892576..a5ddbc6af935 100644
--- a/cairo/cairo/makefile.mk
+++ b/cairo/cairo/makefile.mk
@@ -120,7 +120,7 @@ OUT2INC+=src$/cairo-quartz.h
.ELSE
# ----------- Unix ---------------------------------------------------------
.IF "$(OS)$(COM)"=="LINUXGCC" || "$(OS)$(COM)"=="FREEBSDGCC"
-cairo_LDFLAGS+=-Wl,-rpath,'$$$$ORIGIN:$$$$ORIGIN/../ure-link/lib' -Wl,-noinhibit-exec -Wl,-z,noexecstack
+cairo_LDFLAGS+=-Wl,-rpath,'$$$$ORIGIN:$$$$ORIGIN/../ure-link/lib' -Wl,-noinhibit-exec
.ELIF "$(OS)$(COM)"=="SOLARISC52"
cairo_LDFLAGS+=-Wl,-R'$$$$ORIGIN:$$$$ORIGIN/../ure-link/lib'
.ENDIF # "$(OS)$(COM)"=="LINUXGCC" || "$(OS)$(COM)"=="FREEBSDGCC"
diff --git a/cairo/pixman/makefile.mk b/cairo/pixman/makefile.mk
index f3c1c091639c..b94e7673d996 100644
--- a/cairo/pixman/makefile.mk
+++ b/cairo/pixman/makefile.mk
@@ -92,7 +92,7 @@ BUILD_DIR=$(CONFIGURE_DIR)
.ELSE
# ----------- Unix ---------------------------------------------------------
.IF "$(OS)$(COM)"=="LINUXGCC" || "$(OS)$(COM)"=="FREEBSDGCC"
-LDFLAGS:=-Wl,-rpath,'$$$$ORIGIN:$$$$ORIGIN/../ure-link/lib' -Wl,-noinhibit-exec -Wl,-z,noexecstack
+LDFLAGS:=-Wl,-rpath,'$$$$ORIGIN:$$$$ORIGIN/../ure-link/lib' -Wl,-noinhibit-exec
.ENDIF # "$(OS)$(COM)"=="LINUXGCC"
.IF "$(OS)$(COM)"=="SOLARISC52"
diff --git a/canvas/prj/d.lst b/canvas/prj/d.lst
index 986253a3b3e5..701b9967f92a 100644
--- a/canvas/prj/d.lst
+++ b/canvas/prj/d.lst
@@ -15,6 +15,7 @@
..\%__SRC%\lib\canvasfactory.uno.so %_DEST%\lib%_EXT%\canvasfactory.uno.so
..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
..\%__SRC%\class\javacanvas.uno.jar %_DEST%\bin%_EXT%\javacanvas.uno.jar
+..\%__SRC%\misc\cairocanvas.component %_DEST%\xml%_EXT%\cairocanvas.component
mkdir: %_DEST%\inc%_EXT%\canvas\base
..\inc\canvas\base\*.hxx %_DEST%\inc%_EXT%\canvas\base\*.hxx
@@ -24,3 +25,9 @@ mkdir: %_DEST%\inc%_EXT%\canvas\rendering
mkdir: %_DEST%\inc%_EXT%\canvas
..\inc\canvas\*.hxx %_DEST%\inc%_EXT%\canvas\*.hxx
+..\%__SRC%\misc\canvasfactory.component %_DEST%\xml%_EXT%\canvasfactory.component
+..\%__SRC%\misc\directx5canvas.component %_DEST%\xml%_EXT%\directx5canvas.component
+..\%__SRC%\misc\directx9canvas.component %_DEST%\xml%_EXT%\directx9canvas.component
+..\%__SRC%\misc\gdipluscanvas.component %_DEST%\xml%_EXT%\gdipluscanvas.component
+..\%__SRC%\misc\simplecanvas.component %_DEST%\xml%_EXT%\simplecanvas.component
+..\%__SRC%\misc\vclcanvas.component %_DEST%\xml%_EXT%\vclcanvas.component
diff --git a/canvas/source/cairo/cairocanvas.component b/canvas/source/cairo/cairocanvas.component
new file mode 100644
index 000000000000..126ad2b44ee1
--- /dev/null
+++ b/canvas/source/cairo/cairocanvas.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.rendering.Canvas.Cairo">
+ <service name="com.sun.star.rendering.Canvas.Cairo"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.rendering.SpriteCanvas.Cairo">
+ <service name="com.sun.star.rendering.SpriteCanvas.Cairo"/>
+ </implementation>
+</component>
diff --git a/canvas/source/cairo/exports.dxp b/canvas/source/cairo/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/canvas/source/cairo/exports.dxp
+++ b/canvas/source/cairo/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/canvas/source/cairo/makefile.mk b/canvas/source/cairo/makefile.mk
index b0ff10fe96b0..040acd9ade8f 100644
--- a/canvas/source/cairo/makefile.mk
+++ b/canvas/source/cairo/makefile.mk
@@ -130,3 +130,11 @@ DEF1EXPORTFILE=exports.dxp
# ==========================================================================
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/cairocanvas.component
+
+$(MISC)/cairocanvas.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt cairocanvas.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt cairocanvas.component
diff --git a/canvas/source/directx/directx5canvas.component b/canvas/source/directx/directx5canvas.component
new file mode 100644
index 000000000000..80133e724df6
--- /dev/null
+++ b/canvas/source/directx/directx5canvas.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.rendering.SpriteCanvas.DX5">
+ <service name="com.sun.star.rendering.SpriteCanvas.DX5"/>
+ </implementation>
+</component>
diff --git a/canvas/source/directx/directx9canvas.component b/canvas/source/directx/directx9canvas.component
new file mode 100644
index 000000000000..0d395892d4cb
--- /dev/null
+++ b/canvas/source/directx/directx9canvas.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.rendering.SpriteCanvas.DX9">
+ <service name="com.sun.star.rendering.SpriteCanvas.DX9"/>
+ </implementation>
+</component>
diff --git a/canvas/source/directx/exports.dxp b/canvas/source/directx/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/canvas/source/directx/exports.dxp
+++ b/canvas/source/directx/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/canvas/source/directx/gdipluscanvas.component b/canvas/source/directx/gdipluscanvas.component
new file mode 100644
index 000000000000..e39e77444d59
--- /dev/null
+++ b/canvas/source/directx/gdipluscanvas.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.rendering.BitmapCanvas.GDI+">
+ <service name="com.sun.star.rendering.BitmapCanvas.GDI+"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.rendering.Canvas.GDI+">
+ <service name="com.sun.star.rendering.Canvas.GDI+"/>
+ </implementation>
+</component>
diff --git a/canvas/source/directx/makefile.mk b/canvas/source/directx/makefile.mk
index 4ccd5a8448b2..9547fef40cc7 100644
--- a/canvas/source/directx/makefile.mk
+++ b/canvas/source/directx/makefile.mk
@@ -217,3 +217,25 @@ SHL3STDLIBS += imdebug.lib
.INCLUDE : target.mk
+ALLTAR : \
+ $(MISC)/directx5canvas.component \
+ $(MISC)/directx9canvas.component \
+ $(MISC)/gdipluscanvas.component
+
+$(MISC)/directx5canvas.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt directx5canvas.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL2TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt directx5canvas.component
+
+$(MISC)/directx9canvas.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt directx9canvas.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt directx9canvas.component
+
+$(MISC)/gdipluscanvas.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt gdipluscanvas.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL3TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt gdipluscanvas.component
diff --git a/canvas/source/factory/canvasfactory.component b/canvas/source/factory/canvasfactory.component
new file mode 100644
index 000000000000..3896f4197d2f
--- /dev/null
+++ b/canvas/source/factory/canvasfactory.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.rendering.CanvasFactory">
+ <service name="com.sun.star.rendering.CanvasFactory"/>
+ </implementation>
+</component>
diff --git a/canvas/source/factory/cf_service.cxx b/canvas/source/factory/cf_service.cxx
index f949016d9f83..f4bbb57e0e7d 100644
--- a/canvas/source/factory/cf_service.cxx
+++ b/canvas/source/factory/cf_service.cxx
@@ -532,14 +532,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-sal_Bool SAL_CALL component_writeInfo(
- lang::XMultiServiceFactory * pServiceManager,
- registry::XRegistryKey * pRegistryKey )
-{
- return ::cppu::component_writeInfoHelper(
- pServiceManager, pRegistryKey, s_entries );
-}
-
void * SAL_CALL component_getFactory(
sal_Char const * pImplName,
lang::XMultiServiceFactory * pServiceManager,
diff --git a/canvas/source/factory/makefile.mk b/canvas/source/factory/makefile.mk
index fc6d423192d6..eee24ea8ba85 100644
--- a/canvas/source/factory/makefile.mk
+++ b/canvas/source/factory/makefile.mk
@@ -54,3 +54,10 @@ DEF1NAME = $(SHL1TARGET)
.ENDIF
.INCLUDE : target.mk
+ALLTAR : $(MISC)/canvasfactory.component
+
+$(MISC)/canvasfactory.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt canvasfactory.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt canvasfactory.component
diff --git a/canvas/source/null/exports.dxp b/canvas/source/null/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/canvas/source/null/exports.dxp
+++ b/canvas/source/null/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/canvas/source/simplecanvas/exports.dxp b/canvas/source/simplecanvas/exports.dxp
index 0c2e3e7cddd7..0cb5620a1603 100644
--- a/canvas/source/simplecanvas/exports.dxp
+++ b/canvas/source/simplecanvas/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory \ No newline at end of file
diff --git a/canvas/source/simplecanvas/makefile.mk b/canvas/source/simplecanvas/makefile.mk
index 4d5a7e7bb3a1..8c3a9deede72 100644
--- a/canvas/source/simplecanvas/makefile.mk
+++ b/canvas/source/simplecanvas/makefile.mk
@@ -61,3 +61,11 @@ DEF1EXPORTFILE=exports.dxp
# ==========================================================================
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/simplecanvas.component
+
+$(MISC)/simplecanvas.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt simplecanvas.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt simplecanvas.component
diff --git a/canvas/source/simplecanvas/simplecanvas.component b/canvas/source/simplecanvas/simplecanvas.component
new file mode 100644
index 000000000000..3a00b407375e
--- /dev/null
+++ b/canvas/source/simplecanvas/simplecanvas.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.rendering.SimpleCanvas">
+ <service name="com.sun.star.rendering.SimpleCanvas"/>
+ </implementation>
+</component>
diff --git a/canvas/source/vcl/exports.dxp b/canvas/source/vcl/exports.dxp
index 0c2e3e7cddd7..0cb5620a1603 100644
--- a/canvas/source/vcl/exports.dxp
+++ b/canvas/source/vcl/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory \ No newline at end of file
diff --git a/canvas/source/vcl/makefile.mk b/canvas/source/vcl/makefile.mk
index be2fc69894a4..7d5f9658c829 100644
--- a/canvas/source/vcl/makefile.mk
+++ b/canvas/source/vcl/makefile.mk
@@ -83,3 +83,11 @@ DEF1EXPORTFILE=exports.dxp
# ==========================================================================
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/vclcanvas.component
+
+$(MISC)/vclcanvas.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ vclcanvas.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt vclcanvas.component
diff --git a/canvas/source/vcl/vclcanvas.component b/canvas/source/vcl/vclcanvas.component
new file mode 100644
index 000000000000..f7e0bb8c0266
--- /dev/null
+++ b/canvas/source/vcl/vclcanvas.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.rendering.Canvas.VCL">
+ <service name="com.sun.star.rendering.Canvas.VCL"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.rendering.SpriteCanvas.VCL">
+ <service name="com.sun.star.rendering.SpriteCanvas.VCL"/>
+ </implementation>
+</component>
diff --git a/chart2/prj/d.lst b/chart2/prj/d.lst
index 440e2efbe8c5..bf1085336c05 100644
--- a/chart2/prj/d.lst
+++ b/chart2/prj/d.lst
@@ -21,3 +21,7 @@ mkdir: %_DEST%\xml%_EXT%\uiconfig\modules\schart\statusbar
..\uiconfig\statusbar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\schart\statusbar\*.xml
mkdir: %_DEST%\inc%_EXT%\chart2
+..\%__SRC%\misc\chartcontroller.component %_DEST%\xml%_EXT%\chartcontroller.component
+..\%__SRC%\misc\chartmodel.component %_DEST%\xml%_EXT%\chartmodel.component
+..\%__SRC%\misc\charttools.component %_DEST%\xml%_EXT%\charttools.component
+..\%__SRC%\misc\chartview.component %_DEST%\xml%_EXT%\chartview.component
diff --git a/chart2/source/controller/chartcontroller.component b/chart2/source/controller/chartcontroller.component
new file mode 100644
index 000000000000..fc99913b5a74
--- /dev/null
+++ b/chart2/source/controller/chartcontroller.component
@@ -0,0 +1,56 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.chart.ElementSelectorToolbarController">
+ <service name="com.sun.star.frame.ToolbarController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.ChartController">
+ <service name="com.sun.star.chart2.ChartController"/>
+ <service name="com.sun.star.frame.Controller"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.ChartDocumentWrapper">
+ <service name="com.sun.star.beans.PropertySet"/>
+ <service name="com.sun.star.chart.ChartDocument"/>
+ <service name="com.sun.star.chart2.ChartDocumentWrapper"/>
+ <service name="com.sun.star.xml.UserDefinedAttributeSupplier"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.ChartFrameLoader">
+ <service name="com.sun.star.frame.SynchronousFrameLoader"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.ChartTypeDialog">
+ <service name="com.sun.star.chart2.ChartTypeDialog"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.ShapeToolbarController">
+ <service name="com.sun.star.chart2.ShapeToolbarController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.WizardDialog">
+ <service name="com.sun.star.chart2.WizardDialog"/>
+ </implementation>
+</component>
diff --git a/chart2/source/controller/main/_serviceregistration_controller.cxx b/chart2/source/controller/main/_serviceregistration_controller.cxx
index cf8f5525e624..0371f50f9996 100644
--- a/chart2/source/controller/main/_serviceregistration_controller.cxx
+++ b/chart2/source/controller/main/_serviceregistration_controller.cxx
@@ -108,13 +108,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- return ::cppu::component_writeInfoHelper(
- pServiceManager, pRegistryKey, g_entries_chart2_controller );
-}
-//==================================================================================================
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/chart2/source/controller/makefile.mk b/chart2/source/controller/makefile.mk
index b8a256181045..fbc888f38c3f 100644
--- a/chart2/source/controller/makefile.mk
+++ b/chart2/source/controller/makefile.mk
@@ -126,3 +126,11 @@ RESLIB1DEPN=$(RESLIB1LIST)
# --- Targets -----------------------------------------------------------------
.INCLUDE: target.mk
+
+ALLTAR : $(MISC)/chartcontroller.component
+
+$(MISC)/chartcontroller.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt chartcontroller.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt chartcontroller.component
diff --git a/chart2/source/inc/exports.dxp b/chart2/source/inc/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/chart2/source/inc/exports.dxp
+++ b/chart2/source/inc/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/chart2/source/model/chartmodel.component b/chart2/source/model/chartmodel.component
new file mode 100644
index 000000000000..fa26e51ac401
--- /dev/null
+++ b/chart2/source/model/chartmodel.component
@@ -0,0 +1,150 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.chart.AreaChartType">
+ <service name="com.sun.star.chart2.AreaChartType"/>
+ <service name="com.sun.star.chart2.ChartType"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart.BarChartType">
+ <service name="com.sun.star.chart2.BarChartType"/>
+ <service name="com.sun.star.chart2.ChartType"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart.BubbleChartType">
+ <service name="com.sun.star.beans.PropertySet"/>
+ <service name="com.sun.star.chart2.BubbleChartType"/>
+ <service name="com.sun.star.chart2.ChartType"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart.CandleStickChartType">
+ <service name="com.sun.star.beans.PropertySet"/>
+ <service name="com.sun.star.chart2.CandleStickChartType"/>
+ <service name="com.sun.star.chart2.ChartType"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart.ChartTypeManager">
+ <service name="com.sun.star.chart2.ChartTypeManager"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart.ColumnChartType">
+ <service name="com.sun.star.chart2.ChartType"/>
+ <service name="com.sun.star.chart2.ColumnChartType"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart.DataSeries">
+ <service name="com.sun.star.beans.PropertySet"/>
+ <service name="com.sun.star.chart2.DataPointProperties"/>
+ <service name="com.sun.star.chart2.DataSeries"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart.FilledNetChartType">
+ <service name="com.sun.star.beans.PropertySet"/>
+ <service name="com.sun.star.chart2.ChartType"/>
+ <service name="com.sun.star.chart2.FilledNetChartType"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart.FormattedString">
+ <service name="com.sun.star.beans.PropertySet"/>
+ <service name="com.sun.star.chart2.FormattedString"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart.LineChartType">
+ <service name="com.sun.star.beans.PropertySet"/>
+ <service name="com.sun.star.chart2.ChartType"/>
+ <service name="com.sun.star.chart2.LineChartType"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart.NetChartType">
+ <service name="com.sun.star.beans.PropertySet"/>
+ <service name="com.sun.star.chart2.ChartType"/>
+ <service name="com.sun.star.chart2.NetChartType"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart.PieChartType">
+ <service name="com.sun.star.beans.PropertySet"/>
+ <service name="com.sun.star.chart2.ChartType"/>
+ <service name="com.sun.star.chart2.PieChartType"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart.ScatterChartType">
+ <service name="com.sun.star.beans.PropertySet"/>
+ <service name="com.sun.star.chart2.ChartType"/>
+ <service name="com.sun.star.chart2.ScatterChartType"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.Axis">
+ <service name="com.sun.star.beans.PropertySet"/>
+ <service name="com.sun.star.chart2.Axis"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.CartesianCoordinateSystem2d">
+ <service name="com.sun.star.chart2.CartesianCoordinateSystem2d"/>
+ <service name="com.sun.star.chart2.CoordinateSystems.Cartesian"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.CartesianCoordinateSystem3d">
+ <service name="com.sun.star.chart2.CartesianCoordinateSystem3d"/>
+ <service name="com.sun.star.chart2.CoordinateSystems.Cartesian"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.ChartModel">
+ <service name="com.sun.star.chart.ChartDocument"/>
+ <service name="com.sun.star.chart2.ChartDocument"/>
+ <service name="com.sun.star.document.OfficeDocument"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.Diagram">
+ <service name="com.sun.star.beans.PropertySet"/>
+ <service name="com.sun.star.chart2.Diagram"/>
+ <service name="com.sun.star.layout.LayoutElement"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.GridProperties">
+ <service name="com.sun.star.beans.PropertySet"/>
+ <service name="com.sun.star.chart2.GridProperties"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.Legend">
+ <service name="com.sun.star.beans.PropertySet"/>
+ <service name="com.sun.star.chart2.Legend"/>
+ <service name="com.sun.star.drawing.FillProperties"/>
+ <service name="com.sun.star.drawing.LineProperties"/>
+ <service name="com.sun.star.layout.LayoutElement"/>
+ <service name="com.sun.star.style.CharacterProperties"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.PageBackground">
+ <service name="com.sun.star.beans.PropertySet"/>
+ <service name="com.sun.star.chart2.PageBackground"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.PolarCoordinateSystem2d">
+ <service name="com.sun.star.chart2.CoordinateSystems.Polar"/>
+ <service name="com.sun.star.chart2.PolarCoordinateSystem2d"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.PolarCoordinateSystem3d">
+ <service name="com.sun.star.chart2.CoordinateSystems.Polar"/>
+ <service name="com.sun.star.chart2.PolarCoordinateSystem3d"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.Title">
+ <service name="com.sun.star.beans.PropertySet"/>
+ <service name="com.sun.star.chart2.Title"/>
+ <service name="com.sun.star.layout.LayoutElement"/>
+ <service name="com.sun.star.style.ParagraphProperties"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.XMLFilter">
+ <service name="com.sun.star.document.ExportFilter"/>
+ <service name="com.sun.star.document.ImportFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.report.XMLFilter">
+ <service name="com.sun.star.document.ExportFilter"/>
+ <service name="com.sun.star.document.ImportFilter"/>
+ </implementation>
+</component>
diff --git a/chart2/source/model/main/_serviceregistration_model.cxx b/chart2/source/model/main/_serviceregistration_model.cxx
index b0a7739008ad..a8b214aaf124 100644
--- a/chart2/source/model/main/_serviceregistration_model.cxx
+++ b/chart2/source/model/main/_serviceregistration_model.cxx
@@ -193,16 +193,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- return (::cppu::component_writeInfoHelper(
- pServiceManager, pRegistryKey, g_entries_chart2_model ) &&
- ::cppu::component_writeInfoHelper(
- pServiceManager, pRegistryKey,
- ChartTypeEntriesForServiceRegistration::getImplementationEntries() ));
-}
-//==================================================================================================
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/chart2/source/model/makefile.mk b/chart2/source/model/makefile.mk
index dfb5522a7879..52cc85c10904 100644
--- a/chart2/source/model/makefile.mk
+++ b/chart2/source/model/makefile.mk
@@ -98,3 +98,11 @@ DEF1NAME= $(SHL1TARGET)
# --- Targets -----------------------------------------------------------------
.INCLUDE: target.mk
+
+ALLTAR : $(MISC)/chartmodel.component
+
+$(MISC)/chartmodel.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ chartmodel.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt chartmodel.component
diff --git a/chart2/source/tools/_serviceregistration_tools.cxx b/chart2/source/tools/_serviceregistration_tools.cxx
index 387b87dfab5a..3b1271921ede 100644
--- a/chart2/source/tools/_serviceregistration_tools.cxx
+++ b/chart2/source/tools/_serviceregistration_tools.cxx
@@ -183,13 +183,6 @@ OOO_DLLPUBLIC_CHARTTOOLS void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-OOO_DLLPUBLIC_CHARTTOOLS sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- return ::cppu::component_writeInfoHelper(
- pServiceManager, pRegistryKey, g_entries_chart2_tools );
-}
-//==================================================================================================
OOO_DLLPUBLIC_CHARTTOOLS void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/chart2/source/tools/charttools.component b/chart2/source/tools/charttools.component
new file mode 100644
index 000000000000..7ca499a7ba80
--- /dev/null
+++ b/chart2/source/tools/charttools.component
@@ -0,0 +1,92 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.chart2.ExponentialScaling">
+ <service name="com.sun.star.chart2.ExponentialScaling"/>
+ </implementation>
+ <implementation name="com.sun.star.chart2.LinearScaling">
+ <service name="com.sun.star.chart2.LinearScaling"/>
+ </implementation>
+ <implementation name="com.sun.star.chart2.LogarithmicScaling">
+ <service name="com.sun.star.chart2.LogarithmicScaling"/>
+ </implementation>
+ <implementation name="com.sun.star.chart2.PowerScaling">
+ <service name="com.sun.star.chart2.PowerScaling"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart.CachedDataSequence">
+ <service name="com.sun.star.chart2.data.DataSequence"/>
+ <service name="com.sun.star.chart2.data.NumericalDataSequence"/>
+ <service name="com.sun.star.chart2.data.TextualDataSequence"/>
+ <service name="com.sun.star.comp.chart.CachedDataSequence"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart.DataSource">
+ <service name="com.sun.star.chart2.data.DataSource"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart.InternalDataProvider">
+ <service name="com.sun.star.chart2.data.DataProvider"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.ConfigDefaultColorScheme">
+ <service name="com.sun.star.chart2.ColorScheme"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.ErrorBar">
+ <service name="com.sun.star.chart2.ErrorBar"/>
+ <service name="com.sun.star.comp.chart2.ErrorBar"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.ExponentialRegressionCurve">
+ <service name="com.sun.star.chart2.ExponentialRegressionCurve"/>
+ <service name="com.sun.star.chart2.RegressionCurve"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.LabeledDataSequence">
+ <service name="com.sun.star.chart2.data.LabeledDataSequence"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.LinearRegressionCurve">
+ <service name="com.sun.star.chart2.LinearRegressionCurve"/>
+ <service name="com.sun.star.chart2.RegressionCurve"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.LogarithmicRegressionCurve">
+ <service name="com.sun.star.chart2.LogarithmicRegressionCurve"/>
+ <service name="com.sun.star.chart2.RegressionCurve"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.MeanValueRegressionCurve">
+ <service name="com.sun.star.chart2.MeanValueRegressionCurve"/>
+ <service name="com.sun.star.chart2.RegressionCurve"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.PotentialRegressionCurve">
+ <service name="com.sun.star.chart2.PotentialRegressionCurve"/>
+ <service name="com.sun.star.chart2.RegressionCurve"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.chart2.RegressionEquation">
+ <service name="com.sun.star.beans.PropertySet"/>
+ <service name="com.sun.star.chart2.RegressionEquation"/>
+ <service name="com.sun.star.drawing.FillProperties"/>
+ <service name="com.sun.star.drawing.LineProperties"/>
+ <service name="com.sun.star.style.CharacterProperties"/>
+ </implementation>
+</component>
diff --git a/chart2/source/tools/makefile.mk b/chart2/source/tools/makefile.mk
index 2f990af7adb0..fd92b894bfab 100644
--- a/chart2/source/tools/makefile.mk
+++ b/chart2/source/tools/makefile.mk
@@ -187,3 +187,11 @@ $(MISC)$/$(SHL1TARGET).flt: makefile.mk \
exports.flt
$(TYPE) exports.flt > $@
+
+ALLTAR : $(MISC)/charttools.component
+
+$(MISC)/charttools.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ charttools.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt charttools.component
diff --git a/chart2/source/view/chartview.component b/chart2/source/view/chartview.component
new file mode 100644
index 000000000000..773666150651
--- /dev/null
+++ b/chart2/source/view/chartview.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.chart2.ChartView">
+ <service name="com.sun.star.chart2.ChartView"/>
+ </implementation>
+</component>
diff --git a/chart2/source/view/main/_serviceregistration_view.cxx b/chart2/source/view/main/_serviceregistration_view.cxx
index 26f8b9d7cf7e..2f7e3db441e1 100644
--- a/chart2/source/view/main/_serviceregistration_view.cxx
+++ b/chart2/source/view/main/_serviceregistration_view.cxx
@@ -54,13 +54,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- return ::cppu::component_writeInfoHelper(
- pServiceManager, pRegistryKey, g_entries_chart2_view );
-}
-//==================================================================================================
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/chart2/source/view/makefile.mk b/chart2/source/view/makefile.mk
index aa3c149a768f..0b54ac976ad2 100644
--- a/chart2/source/view/makefile.mk
+++ b/chart2/source/view/makefile.mk
@@ -118,3 +118,11 @@ DEF1DES= Viewable Component Chart View
$(MISC)$/$(SHL1TARGET).flt: makefile.mk \
exports.flt
$(TYPE) exports.flt > $@
+
+ALLTAR : $(MISC)/chartview.component
+
+$(MISC)/chartview.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ chartview.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt chartview.component
diff --git a/comphelper/inc/comphelper/componentmodule.hxx b/comphelper/inc/comphelper/componentmodule.hxx
index 660a685d0fd3..61ddddebadbf 100644
--- a/comphelper/inc/comphelper/componentmodule.hxx
+++ b/comphelper/inc/comphelper/componentmodule.hxx
@@ -34,7 +34,6 @@
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/lang/XSingleServiceFactory.hpp>
#include <com/sun/star/uno/Sequence.hxx>
-#include <com/sun/star/registry/XRegistryKey.hpp>
/** === end UNO includes === **/
#include <cppuhelper/factory.hxx>
@@ -140,28 +139,6 @@ namespace comphelper
*/
void registerImplementation( const ComponentDescription& _rComp );
- /** write the registration information of all known components
-
- Writes the registration information of all components which are currently registered into the
- specified registry.
-
- Usually used from within component_writeInfo.
-
- @param_rxServiceManager
- the service manager
- @param _rRootKey
- the registry key under which the information will be stored
- @return
- <TRUE/> if the registration of all implementations was successfull, <FALSE/> otherwise
- */
- sal_Bool writeComponentInfos(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxServiceManager,
- const ::com::sun::star::uno::Reference< ::com::sun::star::registry::XRegistryKey >& _rRootKey);
-
- /** version of writeComponentInfos which directly takes the arguments you got in your component_writeInfo call
- */
- sal_Bool writeComponentInfos( void* pServiceManager, void* pRegistryKey );
-
/** creates a Factory for the component with the given implementation name.
<p>Usually used from within component_getFactory.<p/>
@param _rxServiceManager
@@ -420,12 +397,6 @@ namespace comphelper
{ \
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; \
} \
- extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( \
- void* pServiceManager, void* pRegistryKey ) \
- { \
- initializer_function(); \
- return module_class::getInstance().writeComponentInfos( pServiceManager, pRegistryKey ); \
- } \
extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( \
const sal_Char* pImplementationName, void* pServiceManager, void* pRegistryKey ) \
{ \
diff --git a/comphelper/inc/comphelper/docpasswordrequest.hxx b/comphelper/inc/comphelper/docpasswordrequest.hxx
index cf04d22c7a6d..effc47392078 100755
--- a/comphelper/inc/comphelper/docpasswordrequest.hxx
+++ b/comphelper/inc/comphelper/docpasswordrequest.hxx
@@ -34,8 +34,12 @@
#include <cppuhelper/implbase1.hxx>
#include <cppuhelper/weak.hxx>
+
namespace comphelper {
+class AbortContinuation;
+class PasswordContinuation;
+
// ============================================================================
/** Selects which UNO document password request type to use. */
@@ -47,8 +51,37 @@ enum DocPasswordRequestType
// ============================================================================
-class AbortContinuation;
-class PasswordContinuation;
+class COMPHELPER_DLLPUBLIC SimplePasswordRequest :
+ public ::com::sun::star::task::XInteractionRequest,
+ public ::cppu::OWeakObject
+{
+public:
+ explicit SimplePasswordRequest( com::sun::star::task::PasswordRequestMode eMode );
+ virtual ~SimplePasswordRequest();
+
+ // XInterface / OWeakObject
+ virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType ) throw (::com::sun::star::uno::RuntimeException);
+ virtual void SAL_CALL acquire( ) throw ();
+ virtual void SAL_CALL release( ) throw ();
+
+ sal_Bool isAbort() const;
+ sal_Bool isPassword() const;
+
+ ::rtl::OUString getPassword() const;
+
+private:
+ // XInteractionRequest
+ virtual ::com::sun::star::uno::Any SAL_CALL getRequest() throw( ::com::sun::star::uno::RuntimeException );
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > SAL_CALL getContinuations() throw( ::com::sun::star::uno::RuntimeException );
+
+private:
+ ::com::sun::star::uno::Any maRequest;
+ ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > maContinuations;
+ AbortContinuation * mpAbort;
+ PasswordContinuation * mpPassword;
+};
+
+// ============================================================================
/** Implements the task.XInteractionRequest interface for requesting a password
string for a document.
@@ -79,20 +112,15 @@ public:
sal_Bool getRecommendReadOnly() const;
private:
- virtual ::com::sun::star::uno::Any SAL_CALL
- getRequest() throw( ::com::sun::star::uno::RuntimeException );
-
- virtual ::com::sun::star::uno::Sequence<
- ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > SAL_CALL
- getContinuations() throw( ::com::sun::star::uno::RuntimeException );
+ // XInteractionRequest
+ virtual ::com::sun::star::uno::Any SAL_CALL getRequest() throw( ::com::sun::star::uno::RuntimeException );
+ virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > SAL_CALL getContinuations() throw( ::com::sun::star::uno::RuntimeException );
private:
- ::com::sun::star::uno::Any maRequest;
+ ::com::sun::star::uno::Any maRequest;
::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionContinuation > > maContinuations;
- AbortContinuation* mpAbort;
- PasswordContinuation* mpPassword;
-
- sal_Bool mbPasswordToModify;
+ AbortContinuation * mpAbort;
+ PasswordContinuation * mpPassword;
};
// ============================================================================
diff --git a/comphelper/inc/comphelper/servicedecl.hxx b/comphelper/inc/comphelper/servicedecl.hxx
index 5d11d41831f5..adf120b3bae2 100644
--- a/comphelper/inc/comphelper/servicedecl.hxx
+++ b/comphelper/inc/comphelper/servicedecl.hxx
@@ -134,8 +134,6 @@ public:
m_pServiceNames(pSupportedServiceNames),
m_cDelim(cDelim) {}
- /// @internal gets called by component_writeInfoHelper()
- bool writeInfo( ::com::sun::star::registry::XRegistryKey * xKey ) const;
/// @internal gets called by component_getFactoryHelper()
void * getFactory( sal_Char const* pImplName ) const;
@@ -323,9 +321,6 @@ struct class_ : public serviceimpl_base< detail::ServiceImpl<ImplT_>, WithArgsT
// component_... helpers with arbitrary service declarations:
//
-#define COMPHELPER_SERVICEDECL_writeInfo(z_, n_, unused_) \
- bRet &= BOOST_PP_CAT(s, n_).writeInfo( xRegistryKey );
-
#define COMPHELPER_SERVICEDECL_getFactory(z_, n_, unused_) \
if (pRet == 0) \
pRet = BOOST_PP_CAT(s, n_).getFactory(pImplName);
@@ -333,11 +328,6 @@ struct class_ : public serviceimpl_base< detail::ServiceImpl<ImplT_>, WithArgsT
/** The following preprocessor repetitions generate functions like
<pre>
- inline sal_Bool component_writeInfoHelper(
- ::com::sun::star::lang::XMultiServiceFactory *,
- ::com::sun::star::registry::XRegistryKey * xRegistryKey,
- ServiceDecl const& s0, ServiceDecl const& s1, ... );
-
inline void * component_getFactoryHelper(
sal_Char const* pImplName,
::com::sun::star::lang::XMultiServiceFactory *,
@@ -351,15 +341,6 @@ struct class_ : public serviceimpl_base< detail::ServiceImpl<ImplT_>, WithArgsT
COMPHELPER_SERVICEDECL_COMPONENT_HELPER_MAX_ARGS; its default is 8.
*/
#define COMPHELPER_SERVICEDECL_make(z_, n_, unused_) \
-inline sal_Bool component_writeInfoHelper( \
- ::com::sun::star::lang::XMultiServiceFactory *, \
- ::com::sun::star::registry::XRegistryKey * xRegistryKey, \
- BOOST_PP_ENUM_PARAMS(n_, ServiceDecl const& s) ) \
-{ \
- bool bRet = true; \
- BOOST_PP_REPEAT(n_, COMPHELPER_SERVICEDECL_writeInfo, ~) \
- return bRet; \
-} \
inline void * component_getFactoryHelper( \
sal_Char const* pImplName, \
::com::sun::star::lang::XMultiServiceFactory *, \
@@ -381,7 +362,6 @@ BOOST_PP_REPEAT_FROM_TO(1, COMPHELPER_SERVICEDECL_COMPONENT_HELPER_MAX_ARGS,
#undef COMPHELPER_SERVICEDECL_COMPONENT_HELPER_MAX_ARGS
#undef COMPHELPER_SERVICEDECL_make
#undef COMPHELPER_SERVICEDECL_getFactory
-#undef COMPHELPER_SERVICEDECL_writeInfo
} // namespace service_decl
} // namespace comphelper
@@ -421,13 +401,6 @@ extern "C" \
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; \
} \
\
- SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( ::com::sun::star::lang::XMultiServiceFactory* pServiceManager, \
- ::com::sun::star::registry::XRegistryKey* pRegistryKey ) \
- { \
- return component_writeInfoHelper( pServiceManager, pRegistryKey, \
- BOOST_PP_SEQ_ENUM(varargs_) ); \
- } \
- \
SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( sal_Char const* pImplName, \
::com::sun::star::lang::XMultiServiceFactory* pServiceManager, \
::com::sun::star::registry::XRegistryKey* pRegistryKey ) \
diff --git a/comphelper/prj/d.lst b/comphelper/prj/d.lst
index f4d09c54ba70..f05fcf0926dd 100644
--- a/comphelper/prj/d.lst
+++ b/comphelper/prj/d.lst
@@ -12,3 +12,4 @@ mkdir: %_DEST%\inc%_EXT%\comphelper
mkdir: %_DEST%\inc%_EXT%\cppuhelper
..\inc\comphelper\extract.hxx %_DEST%\inc%_EXT%\cppuhelper\extract.hxx
..\version.mk %_DEST%\inc%_EXT%\comphelper\version.mk
+..\%__SRC%\misc\comphelp4.component %_DEST%\xml%_EXT%\comphelp4.component
diff --git a/comphelper/source/misc/componentmodule.cxx b/comphelper/source/misc/componentmodule.cxx
index 63893d0f6d0d..1dfd99bfa07e 100644
--- a/comphelper/source/misc/componentmodule.cxx
+++ b/comphelper/source/misc/componentmodule.cxx
@@ -135,64 +135,6 @@ namespace comphelper
}
//--------------------------------------------------------------------------
- sal_Bool OModule::writeComponentInfos( void* pServiceManager, void* pRegistryKey )
- {
- Reference< XMultiServiceFactory > xFactory( static_cast< XMultiServiceFactory* >( pServiceManager ) );
- Reference< XRegistryKey > xRegistryKey( static_cast< XRegistryKey* >( pRegistryKey ) );
- return writeComponentInfos( xFactory, xRegistryKey );
- }
-
- //--------------------------------------------------------------------------
- sal_Bool OModule::writeComponentInfos(
- const Reference< XMultiServiceFactory >& /*_rxServiceManager*/,
- const Reference< XRegistryKey >& _rxRootKey )
- {
- OSL_ENSURE( _rxRootKey.is(), "OModule::writeComponentInfos: invalid argument!" );
-
- ::rtl::OUString sRootKey( "/", 1, RTL_TEXTENCODING_ASCII_US );
-
- for ( ComponentDescriptions::const_iterator component = m_pImpl->m_aRegisteredComponents.begin();
- component != m_pImpl->m_aRegisteredComponents.end();
- ++component
- )
- {
- ::rtl::OUString sMainKeyName( sRootKey );
- sMainKeyName += component->sImplementationName;
- sMainKeyName += ::rtl::OUString::createFromAscii( "/UNO/SERVICES" );
-
- try
- {
- Reference< XRegistryKey > xNewKey( _rxRootKey->createKey( sMainKeyName ) );
-
- const ::rtl::OUString* pService = component->aSupportedServices.getConstArray();
- const ::rtl::OUString* pServiceEnd = component->aSupportedServices.getConstArray() + component->aSupportedServices.getLength();
- for ( ; pService != pServiceEnd; ++pService )
- xNewKey->createKey( *pService );
-
- if ( component->sSingletonName.getLength() )
- {
- OSL_ENSURE( component->aSupportedServices.getLength() == 1, "OModule::writeComponentInfos: singletons should support exactly one service, shouldn't they?" );
-
- ::rtl::OUString sSingletonKeyName( sRootKey );
- sSingletonKeyName += component->sImplementationName;
- sSingletonKeyName += ::rtl::OUString::createFromAscii( "/UNO/SINGLETONS/" );
- sSingletonKeyName += component->sSingletonName;
-
- xNewKey = _rxRootKey->createKey( sSingletonKeyName );
- xNewKey->setStringValue( component->aSupportedServices[ 0 ] );
- }
- }
- catch( Exception& )
- {
- OSL_ASSERT( "OModule::writeComponentInfos: something went wrong while creating the keys!" );
- return sal_False;
- }
- }
-
- return sal_True;
- }
-
- //--------------------------------------------------------------------------
void* OModule::getComponentFactory( const sal_Char* _pImplementationName, void* _pServiceManager, void* /*_pRegistryKey*/ )
{
Reference< XInterface > xFactory( getComponentFactory(
diff --git a/comphelper/source/misc/docpasswordrequest.cxx b/comphelper/source/misc/docpasswordrequest.cxx
index 17cdb0ae2d92..15c2e09ba0f3 100644..100755
--- a/comphelper/source/misc/docpasswordrequest.cxx
+++ b/comphelper/source/misc/docpasswordrequest.cxx
@@ -31,6 +31,7 @@
#include "comphelper/docpasswordrequest.hxx"
#include <com/sun/star/task/DocumentMSPasswordRequest2.hpp>
#include <com/sun/star/task/DocumentPasswordRequest2.hpp>
+#include <com/sun/star/task/PasswordRequest.hpp>
#include <com/sun/star/task/XInteractionAbort.hpp>
#include <com/sun/star/task/XInteractionPassword2.hpp>
@@ -44,6 +45,7 @@ using ::com::sun::star::uno::XInterface;
using ::com::sun::star::task::InteractionClassification_QUERY;
using ::com::sun::star::task::DocumentMSPasswordRequest2;
using ::com::sun::star::task::DocumentPasswordRequest2;
+using ::com::sun::star::task::PasswordRequest;
using ::com::sun::star::task::PasswordRequestMode;
using ::com::sun::star::task::XInteractionAbort;
using ::com::sun::star::task::XInteractionContinuation;
@@ -98,11 +100,74 @@ private:
// ============================================================================
+SimplePasswordRequest::SimplePasswordRequest( PasswordRequestMode eMode )
+: mpAbort( NULL )
+, mpPassword( NULL )
+{
+ PasswordRequest aRequest( OUString(), Reference< XInterface >(),
+ InteractionClassification_QUERY, eMode );
+ maRequest <<= aRequest;
+
+ maContinuations.realloc( 2 );
+ maContinuations[ 0 ].set( mpAbort = new AbortContinuation );
+ maContinuations[ 1 ].set( mpPassword = new PasswordContinuation );
+}
+
+SimplePasswordRequest::~SimplePasswordRequest()
+{
+}
+
+/*uno::*/Any SAL_CALL SimplePasswordRequest::queryInterface( const /*uno::*/Type& rType ) throw (RuntimeException)
+{
+ return ::cppu::queryInterface ( rType,
+ // OWeakObject interfaces
+ dynamic_cast< XInterface* > ( (XInteractionRequest *) this ),
+ static_cast< XWeak* > ( this ),
+ // my own interfaces
+ static_cast< XInteractionRequest* > ( this ) );
+}
+
+void SAL_CALL SimplePasswordRequest::acquire( ) throw ()
+{
+ OWeakObject::acquire();
+}
+
+void SAL_CALL SimplePasswordRequest::release( ) throw ()
+{
+ OWeakObject::release();
+}
+
+sal_Bool SimplePasswordRequest::isAbort() const
+{
+ return mpAbort->isSelected();
+}
+
+sal_Bool SimplePasswordRequest::isPassword() const
+{
+ return mpPassword->isSelected();
+}
+
+OUString SimplePasswordRequest::getPassword() const
+{
+ return mpPassword->getPassword();
+}
+
+Any SAL_CALL SimplePasswordRequest::getRequest() throw( RuntimeException )
+{
+ return maRequest;
+}
+
+Sequence< Reference< XInteractionContinuation > > SAL_CALL SimplePasswordRequest::getContinuations() throw( RuntimeException )
+{
+ return maContinuations;
+}
+
+// ============================================================================
+
DocPasswordRequest::DocPasswordRequest( DocPasswordRequestType eType,
PasswordRequestMode eMode, const OUString& rDocumentName, sal_Bool bPasswordToModify )
: mpAbort( NULL )
, mpPassword( NULL )
-, mbPasswordToModify( bPasswordToModify )
{
switch( eType )
{
diff --git a/comphelper/source/misc/servicedecl.cxx b/comphelper/source/misc/servicedecl.cxx
index 7c3dd169485d..7986407b0bd5 100644
--- a/comphelper/source/misc/servicedecl.cxx
+++ b/comphelper/source/misc/servicedecl.cxx
@@ -116,37 +116,6 @@ ServiceDecl::Factory::createInstanceWithArgumentsAndContext(
m_rServiceDecl, args, xContext );
}
-bool ServiceDecl::writeInfo( registry::XRegistryKey * xKey ) const
-{
- bool bRet = false;
- if (xKey != 0) {
- rtl::OUStringBuffer buf;
- buf.append( static_cast<sal_Unicode>('/') );
- buf.appendAscii( m_pImplName );
- buf.appendAscii( RTL_CONSTASCII_STRINGPARAM("/UNO/SERVICES") );
- try {
- uno::Reference<registry::XRegistryKey> const xNewKey(
- xKey->createKey( buf.makeStringAndClear() ) );
-
- rtl::OString const str(m_pServiceNames);
- sal_Int32 nIndex = 0;
- do {
- rtl::OString const token( str.getToken( 0, m_cDelim, nIndex ) );
- xNewKey->createKey(
- rtl::OUString( token.getStr(), token.getLength(),
- RTL_TEXTENCODING_ASCII_US ) );
- }
- while (nIndex >= 0);
-
- bRet = true;
- }
- catch (registry::InvalidRegistryException const&) {
- OSL_ENSURE( false, "### InvalidRegistryException!" );
- }
- }
- return bRet;
-}
-
void * ServiceDecl::getFactory( sal_Char const* pImplName ) const
{
if (rtl_str_compare(m_pImplName, pImplName) == 0) {
diff --git a/comphelper/util/comphelp4.component b/comphelper/util/comphelp4.component
new file mode 100644
index 000000000000..10d23d48bcea
--- /dev/null
+++ b/comphelper/util/comphelp4.component
@@ -0,0 +1,70 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="AnyCompareFactory">
+ <service name="com.sun.star.ucb.AnyCompareFactory"/>
+ </implementation>
+ <implementation name="IndexedPropertyValuesContainer">
+ <service name="com.sun.star.document.IndexedPropertyValues"/>
+ </implementation>
+ <implementation name="NamedPropertyValuesContainer">
+ <service name="com.sun.star.document.NamedPropertyValues"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.MemoryStream">
+ <service name="com.sun.star.comp.MemoryStream"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.SequenceInputStreamService">
+ <service name="com.sun.star.io.SequenceInputStream"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.SequenceOutputStreamService">
+ <service name="com.sun.star.io.SequenceOutputStream"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.comphelper.OPropertyBag">
+ <service name="com.sun.star.beans.PropertyBag"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.embed.InstanceLocker">
+ <service name="com.sun.star.embed.InstanceLocker"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.logging.SimpleLogRing">
+ <service name="com.sun.star.logging.SimpleLogRing"/>
+ <singleton name="com.sun.star.logging.DocumentIOLogRing"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.task.OfficeRestartManager">
+ <service name="com.sun.star.comp.task.OfficeRestartManager"/>
+ <singleton name="com.sun.star.task.OfficeRestartManager"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.util.OfficeInstallationDirectories">
+ <service name="com.sun.star.util.OfficeInstallationDirectories"/>
+ <singleton name="com.sun.star.util.theOfficeInstallationDirectories"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.comphelper.EnumerableMap">
+ <service name="com.sun.star.container.EnumerableMap"/>
+ </implementation>
+</component>
diff --git a/comphelper/util/exports.dxp b/comphelper/util/exports.dxp
index 0c2e3e7cddd7..0cb5620a1603 100644
--- a/comphelper/util/exports.dxp
+++ b/comphelper/util/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory \ No newline at end of file
diff --git a/comphelper/util/makefile.mk b/comphelper/util/makefile.mk
index ae391e92abf7..62e66672a1cb 100644
--- a/comphelper/util/makefile.mk
+++ b/comphelper/util/makefile.mk
@@ -68,3 +68,11 @@ DEFLIB1NAME=$(TARGET)
# --- Targets ----------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/comphelp4.component
+
+$(MISC)/comphelp4.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ comphelp4.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt comphelp4.component
diff --git a/configmgr/prj/build.lst b/configmgr/prj/build.lst
index 9fcccbc73b4c..bbd0d7f34a9a 100644
--- a/configmgr/prj/build.lst
+++ b/configmgr/prj/build.lst
@@ -1,4 +1,4 @@
-cg configmgr : BOOST:boost comphelper cppu cppuhelper offuh sal salhelper stlport NULL
+cg configmgr : BOOST:boost comphelper cppu cppuhelper offuh sal salhelper stlport xmlreader NULL
cg configmgr\inc nmake - all cg_inc NULL
cg configmgr\source nmake - all cg_source cg_inc NULL
cg configmgr\qa\unoapi nmake - all cg_qa_unoapi NULL
diff --git a/configmgr/prj/d.lst b/configmgr/prj/d.lst
index 17ccdbe86a08..34b6cf3e0010 100644
--- a/configmgr/prj/d.lst
+++ b/configmgr/prj/d.lst
@@ -1,3 +1,4 @@
..\%__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
+..\%__SRC%\misc\configmgr.component %_DEST%\xml%_EXT%\configmgr.component
diff --git a/configmgr/source/README b/configmgr/source/README
index b00990d1eeb2..f26c68ecf7c0 100644
--- a/configmgr/source/README
+++ b/configmgr/source/README
@@ -51,16 +51,13 @@ propertynode.cxx
setnode.cxx
Internal representations of data nodes.
-pad.cxx
parsemanager.cxx
parser.hxx
-span.hxx
valueparser.cxx
xcdparser.cxx
xcsparser.cxx
xcuparser.cxx
xmldata.cxx
-xmlreader.cxx
XML file reading.
modifications.cxx
diff --git a/configmgr/source/components.cxx b/configmgr/source/components.cxx
index 33b0eca3f65f..14102f56281f 100644
--- a/configmgr/source/components.cxx
+++ b/configmgr/source/components.cxx
@@ -334,12 +334,14 @@ void Components::insertModificationXcuFile(
Modifications * modifications)
{
OSL_ASSERT(modifications != 0);
+ Partial part(includedPaths, excludedPaths);
try {
- Partial part(includedPaths, excludedPaths);
- parseXcuFile(fileUri, Data::NO_LAYER, data_, &part, modifications, 0);
- } catch (css::uno::Exception & e) { //TODO: more specific exception catching
+ parseFileLeniently(
+ &parseXcuFile, fileUri, Data::NO_LAYER, data_, &part, modifications,
+ 0);
+ } catch (css::container::NoSuchElementException & e) {
OSL_TRACE(
- "configmgr error inserting %s: %s",
+ "configmgr error inserting non-existing %s: %s",
rtl::OUStringToOString(fileUri, RTL_TEXTENCODING_UTF8).getStr(),
rtl::OUStringToOString(e.Message, RTL_TEXTENCODING_UTF8).getStr());
}
@@ -492,20 +494,32 @@ Components::Components(
"com.sun.star.comp.deployment.configuration."
"PackageRegistryBackend/configmgr.ini"))),
true);
+ parseModificationLayer();
+ RTL_LOGFILE_TRACE_AUTHOR("configmgr", "sb", "end parsing");
+}
+
+Components::~Components() {}
+
+void Components::parseFileLeniently(
+ FileParser * parseFile, rtl::OUString const & url, int layer, Data & data,
+ Partial const * partial, Modifications * modifications,
+ Additions * additions)
+{
+ OSL_ASSERT(parseFile != 0);
try {
- parseModificationLayer();
+ (*parseFile)(url, layer, data, partial, modifications, additions);
+ } catch (css::container::NoSuchElementException &) {
+ throw;
} catch (css::uno::Exception & e) { //TODO: more specific exception catching
- // Silently ignore unreadable parts of a corrupted user modification
- // layer, instead of completely preventing OOo from starting:
+ // Silently ignore invalid XML files, instead of completely preventing
+ // OOo from starting:
OSL_TRACE(
- "configmgr error reading user modification layer: %s",
+ "configmgr error reading %s: %s",
+ rtl::OUStringToOString(url, RTL_TEXTENCODING_UTF8).getStr(),
rtl::OUStringToOString(e.Message, RTL_TEXTENCODING_UTF8).getStr());
}
- RTL_LOGFILE_TRACE_AUTHOR("configmgr", "sb", "end parsing");
}
-Components::~Components() {}
-
void Components::parseFiles(
int layer, rtl::OUString const & extension, FileParser * parseFile,
rtl::OUString const & url, bool recursive)
@@ -557,7 +571,8 @@ void Components::parseFiles(
file.match(extension, file.getLength() - extension.getLength()))
{
try {
- (*parseFile)(stat.getFileURL(), layer, data_, 0, 0, 0);
+ parseFileLeniently(
+ parseFile, stat.getFileURL(), layer, data_, 0, 0, 0);
} catch (css::container::NoSuchElementException & e) {
throw css::uno::RuntimeException(
(rtl::OUString(
@@ -584,7 +599,7 @@ void Components::parseFileList(
adds = data_.addExtensionXcuAdditions(url, layer);
}
try {
- (*parseFile)(url, layer, data_, 0, 0, adds);
+ parseFileLeniently(parseFile, url, layer, data_, 0, 0, adds);
} catch (css::container::NoSuchElementException & e) {
OSL_TRACE(
"configmgr file does not exist: %s",
@@ -746,13 +761,15 @@ rtl::OUString Components::getModificationFileUrl() const {
void Components::parseModificationLayer() {
try {
- parseXcuFile(getModificationFileUrl(), Data::NO_LAYER, data_, 0, 0, 0);
+ parseFileLeniently(
+ &parseXcuFile, getModificationFileUrl(), Data::NO_LAYER, data_, 0,
+ 0, 0);
} catch (css::container::NoSuchElementException &) {
OSL_TRACE(
"configmgr user registrymodifications.xcu does not (yet) exist");
// Migrate old user layer data (can be removed once migration is no
// longer relevant, probably OOo 4; also see hack for xsi namespace in
- // XmlReader constructor):
+ // xmlreader::XmlReader::registerNamespaceIri):
parseFiles(
Data::NO_LAYER, rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(".xcu")),
&parseXcuFile,
diff --git a/configmgr/source/components.hxx b/configmgr/source/components.hxx
index 880ac95d34a8..4fc47f791821 100644
--- a/configmgr/source/components.hxx
+++ b/configmgr/source/components.hxx
@@ -123,6 +123,11 @@ private:
~Components();
+ void parseFileLeniently(
+ FileParser * parseFile, rtl::OUString const & url, int layer,
+ Data & data, Partial const * partial, Modifications * modifications,
+ Additions * additions);
+
void parseFiles(
int layer, rtl::OUString const & extension, FileParser * parseFile,
rtl::OUString const & url, bool recursive);
diff --git a/configmgr/source/configmgr.component b/configmgr/source/configmgr.component
new file mode 100644
index 000000000000..6ed51257005d
--- /dev/null
+++ b/configmgr/source/configmgr.component
@@ -0,0 +1,45 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.configuration.ConfigurationProvider">
+ <service name="com.sun.star.configuration.ConfigurationProvider"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.configuration.ConfigurationRegistry">
+ <service name="com.sun.star.configuration.ConfigurationRegistry"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.configuration.DefaultProvider">
+ <service name="com.sun.star.configuration.DefaultProvider"/>
+ <singleton name="com.sun.star.configuration.theDefaultProvider"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.configuration.Update">
+ <service name="com.sun.star.configuration.Update_Service"/>
+ <singleton name="com.sun.star.configuration.Update"/>
+ </implementation>
+</component>
diff --git a/configmgr/source/configurationprovider.cxx b/configmgr/source/configurationprovider.cxx
index a89540a88158..78d71e73e7d5 100644
--- a/configmgr/source/configurationprovider.cxx
+++ b/configmgr/source/configurationprovider.cxx
@@ -241,7 +241,7 @@ Service::createInstanceWithArguments(
if (nodepath.getLength() == 0) {
badNodePath();
}
- // For backwards compatibility, allow a notepath that misses the leading
+ // For backwards compatibility, allow a nodepath that misses the leading
// slash:
if (nodepath[0] != '/') {
nodepath = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/")) + nodepath;
@@ -456,7 +456,8 @@ Factory::createInstanceWithArgumentsAndContext(
" arguments")),
0);
}
- // For backwards compatibility, allow "Locale" in any case:
+ // For backwards compatibility, allow "Locale" and (ignored)
+ // "EnableAsync" in any case:
if (name.equalsIgnoreAsciiCaseAsciiL(
RTL_CONSTASCII_STRINGPARAM("locale")))
{
@@ -471,8 +472,9 @@ Factory::createInstanceWithArgumentsAndContext(
" one, non-empty, string Locale argument")),
0);
}
- } else {
- //TODO
+ } else if (!name.equalsIgnoreAsciiCaseAsciiL(
+ RTL_CONSTASCII_STRINGPARAM("enableasync")))
+ {
throw css::uno::Exception(
rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM(
diff --git a/configmgr/source/makefile.mk b/configmgr/source/makefile.mk
index 777fed3323d8..94747d9dd803 100644
--- a/configmgr/source/makefile.mk
+++ b/configmgr/source/makefile.mk
@@ -52,7 +52,6 @@ SLOFILES = \
$(SLO)/modifications.obj \
$(SLO)/node.obj \
$(SLO)/nodemap.obj \
- $(SLO)/pad.obj \
$(SLO)/parsemanager.obj \
$(SLO)/partial.obj \
$(SLO)/propertynode.obj \
@@ -66,8 +65,7 @@ SLOFILES = \
$(SLO)/xcdparser.obj \
$(SLO)/xcsparser.obj \
$(SLO)/xcuparser.obj \
- $(SLO)/xmldata.obj \
- $(SLO)/xmlreader.obj
+ $(SLO)/xmldata.obj
SHL1IMPLIB = i$(SHL1TARGET)
SHL1OBJS = $(SLOFILES)
@@ -76,9 +74,18 @@ SHL1STDLIBS = \
$(CPPUHELPERLIB) \
$(CPPULIB) \
$(SALHELPERLIB) \
- $(SALLIB)
+ $(SALLIB) \
+ $(XMLREADERLIB)
SHL1TARGET = configmgr.uno
SHL1USE_EXPORTS = name
DEF1NAME = $(SHL1TARGET)
.INCLUDE: target.mk
+
+ALLTAR : $(MISC)/configmgr.component
+
+$(MISC)/configmgr.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ configmgr.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt configmgr.component
diff --git a/configmgr/source/parsemanager.cxx b/configmgr/source/parsemanager.cxx
index 69a5515b977c..c17eddd2976f 100644
--- a/configmgr/source/parsemanager.cxx
+++ b/configmgr/source/parsemanager.cxx
@@ -32,10 +32,11 @@
#include "com/sun/star/uno/RuntimeException.hpp"
#include "osl/diagnose.h"
#include "sal/types.h"
+#include "xmlreader/span.hxx"
+#include "xmlreader/xmlreader.hxx"
#include "parsemanager.hxx"
#include "parser.hxx"
-#include "xmlreader.hxx"
namespace configmgr {
@@ -52,28 +53,42 @@ ParseManager::ParseManager(
reader_(url), parser_(parser)
{
OSL_ASSERT(parser.is());
+ int id;
+ id = reader_.registerNamespaceIri(
+ xmlreader::Span(
+ RTL_CONSTASCII_STRINGPARAM("http://openoffice.org/2001/registry")));
+ OSL_ASSERT(id == NAMESPACE_OOR);
+ id = reader_.registerNamespaceIri(
+ xmlreader::Span(
+ RTL_CONSTASCII_STRINGPARAM("http://www.w3.org/2001/XMLSchema")));
+ OSL_ASSERT(id == NAMESPACE_XS);
+ id = reader_.registerNamespaceIri(
+ xmlreader::Span(
+ RTL_CONSTASCII_STRINGPARAM(
+ "http://www.w3.org/2001/XMLSchema-instance")));
+ OSL_ASSERT(id == NAMESPACE_XSI);
}
bool ParseManager::parse() {
for (;;) {
switch (itemData_.is()
- ? XmlReader::RESULT_BEGIN
+ ? xmlreader::XmlReader::RESULT_BEGIN
: reader_.nextItem(
- parser_->getTextMode(), &itemData_, &itemNamespace_))
+ parser_->getTextMode(), &itemData_, &itemNamespaceId_))
{
- case XmlReader::RESULT_BEGIN:
- if (!parser_->startElement(reader_, itemNamespace_, itemData_))
+ case xmlreader::XmlReader::RESULT_BEGIN:
+ if (!parser_->startElement(reader_, itemNamespaceId_, itemData_))
{
return false;
}
break;
- case XmlReader::RESULT_END:
+ case xmlreader::XmlReader::RESULT_END:
parser_->endElement(reader_);
break;
- case XmlReader::RESULT_TEXT:
+ case xmlreader::XmlReader::RESULT_TEXT:
parser_->characters(itemData_);
break;
- case XmlReader::RESULT_DONE:
+ case xmlreader::XmlReader::RESULT_DONE:
return true;
}
itemData_.clear();
diff --git a/configmgr/source/parsemanager.hxx b/configmgr/source/parsemanager.hxx
index 18292859ab98..19d16c74621a 100644
--- a/configmgr/source/parsemanager.hxx
+++ b/configmgr/source/parsemanager.hxx
@@ -35,9 +35,8 @@
#include "rtl/ref.hxx"
#include "sal/types.h"
#include "salhelper/simplereferenceobject.hxx"
-
-#include "span.hxx"
-#include "xmlreader.hxx"
+#include "xmlreader/span.hxx"
+#include "xmlreader/xmlreader.hxx"
namespace rtl { class OUString; }
@@ -55,13 +54,15 @@ public:
bool parse();
+ enum { NAMESPACE_OOR = 1, NAMESPACE_XS = 2, NAMESPACE_XSI = 3 };
+
private:
virtual ~ParseManager();
- XmlReader reader_;
+ xmlreader::XmlReader reader_;
rtl::Reference< Parser > parser_;
- Span itemData_;
- XmlReader::Namespace itemNamespace_;
+ xmlreader::Span itemData_;
+ int itemNamespaceId_;
};
}
diff --git a/configmgr/source/parser.hxx b/configmgr/source/parser.hxx
index da29941953b5..f782e0dbc151 100644
--- a/configmgr/source/parser.hxx
+++ b/configmgr/source/parser.hxx
@@ -33,23 +33,23 @@
#include <memory>
#include "salhelper/simplereferenceobject.hxx"
+#include "xmlreader/xmlreader.hxx"
-#include "xmlreader.hxx"
+namespace xmlreader { struct Span; }
namespace configmgr {
-struct Span;
-
class Parser: public salhelper::SimpleReferenceObject {
public:
- virtual XmlReader::Text getTextMode() = 0;
+ virtual xmlreader::XmlReader::Text getTextMode() = 0;
virtual bool startElement(
- XmlReader & reader, XmlReader::Namespace ns, Span const & name) = 0;
+ xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name)
+ = 0;
- virtual void endElement(XmlReader const & reader) = 0;
+ virtual void endElement(xmlreader::XmlReader const & reader) = 0;
- virtual void characters(Span const & text) = 0;
+ virtual void characters(xmlreader::Span const & text) = 0;
protected:
Parser() {}
diff --git a/configmgr/source/services.cxx b/configmgr/source/services.cxx
index f8c3289664ef..b1ef8d2169bb 100644
--- a/configmgr/source/services.cxx
+++ b/configmgr/source/services.cxx
@@ -28,7 +28,6 @@
#include "precompiled_configmgr.hxx"
#include "sal/config.h"
-#include "com/sun/star/registry/XRegistryKey.hpp"
#include "com/sun/star/uno/Exception.hpp"
#include "com/sun/star/uno/Reference.hxx"
#include "com/sun/star/uno/XComponentContext.hpp"
@@ -36,9 +35,6 @@
#include "cppuhelper/implementationentry.hxx"
#include "osl/diagnose.h"
#include "uno/lbnames.h"
-#include "rtl/textenc.h"
-#include "rtl/ustring.h"
-#include "rtl/ustring.hxx"
#include "sal/types.h"
#include "configurationprovider.hxx"
@@ -89,47 +85,3 @@ component_getImplementationEnvironment(
{
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey)
-{
- if (!component_writeInfoHelper(pServiceManager, pRegistryKey, services)) {
- return false;
- }
- try {
- 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.DefaultProvider/UNO/"
- "SINGLETONS/"
- "com.sun.star.configuration.theDefaultProvider")))),
- css::uno::UNO_SET_THROW)->
- setStringValue(
- 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 component_writeInfo exception: %s",
- rtl::OUStringToOString(e.Message, RTL_TEXTENCODING_UTF8).getStr());
- return false;
- }
- return true;
-}
diff --git a/configmgr/source/valueparser.cxx b/configmgr/source/valueparser.cxx
index 4adf452c409b..0be173f74919 100644
--- a/configmgr/source/valueparser.cxx
+++ b/configmgr/source/valueparser.cxx
@@ -40,16 +40,17 @@
#include "rtl/ustring.h"
#include "rtl/ustring.hxx"
#include "sal/types.h"
+#include "xmlreader/span.hxx"
+#include "xmlreader/xmlreader.hxx"
#include "localizedvaluenode.hxx"
#include "node.hxx"
#include "nodemap.hxx"
+#include "parsemanager.hxx"
#include "propertynode.hxx"
-#include "span.hxx"
#include "type.hxx"
#include "valueparser.hxx"
#include "xmldata.hxx"
-#include "xmlreader.hxx"
namespace configmgr {
@@ -74,7 +75,7 @@ bool parseHexDigit(char c, int * value) {
return false;
}
-bool parseValue(Span const & text, sal_Bool * value) {
+bool parseValue(xmlreader::Span const & text, sal_Bool * value) {
OSL_ASSERT(text.is() && value != 0);
if (text.equals(RTL_CONSTASCII_STRINGPARAM("true")) ||
text.equals(RTL_CONSTASCII_STRINGPARAM("1")))
@@ -91,7 +92,7 @@ bool parseValue(Span const & text, sal_Bool * value) {
return false;
}
-bool parseValue(Span const & text, sal_Int16 * value) {
+bool parseValue(xmlreader::Span const & text, sal_Int16 * value) {
OSL_ASSERT(text.is() && value != 0);
// For backwards compatibility, support hexadecimal values:
sal_Int32 n =
@@ -110,7 +111,7 @@ bool parseValue(Span const & text, sal_Int16 * value) {
return false;
}
-bool parseValue(Span const & text, sal_Int32 * value) {
+bool parseValue(xmlreader::Span const & text, sal_Int32 * value) {
OSL_ASSERT(text.is() && value != 0);
// For backwards compatibility, support hexadecimal values:
*value =
@@ -125,7 +126,7 @@ bool parseValue(Span const & text, sal_Int32 * value) {
return true;
}
-bool parseValue(Span const & text, sal_Int64 * value) {
+bool parseValue(xmlreader::Span const & text, sal_Int64 * value) {
OSL_ASSERT(text.is() && value != 0);
// For backwards compatibility, support hexadecimal values:
*value =
@@ -140,20 +141,22 @@ bool parseValue(Span const & text, sal_Int64 * value) {
return true;
}
-bool parseValue(Span const & text, double * value) {
+bool parseValue(xmlreader::Span const & text, double * value) {
OSL_ASSERT(text.is() && value != 0);
*value = rtl::OString(text.begin, text.length).toDouble();
//TODO: check valid lexical representation
return true;
}
-bool parseValue(Span const & text, rtl::OUString * value) {
+bool parseValue(xmlreader::Span const & text, rtl::OUString * value) {
OSL_ASSERT(text.is() && value != 0);
- *value = xmldata::convertFromUtf8(text);
+ *value = text.convertFromUtf8();
return true;
}
-bool parseValue(Span const & text, css::uno::Sequence< sal_Int8 > * value) {
+bool parseValue(
+ xmlreader::Span const & text, css::uno::Sequence< sal_Int8 > * value)
+{
OSL_ASSERT(text.is() && value != 0);
if ((text.length & 1) != 0) {
return false;
@@ -173,7 +176,9 @@ bool parseValue(Span const & text, css::uno::Sequence< sal_Int8 > * value) {
return true;
}
-template< typename T > css::uno::Any parseSingleValue(Span const & text) {
+template< typename T > css::uno::Any parseSingleValue(
+ xmlreader::Span const & text)
+{
T val;
if (!parseValue(text, &val)) {
throw css::uno::RuntimeException(
@@ -184,21 +189,23 @@ template< typename T > css::uno::Any parseSingleValue(Span const & text) {
}
template< typename T > css::uno::Any parseListValue(
- rtl::OString const & separator, Span const & text)
+ rtl::OString const & separator, xmlreader::Span const & text)
{
comphelper::SequenceAsVector< T > seq;
- Span sep;
+ xmlreader::Span sep;
if (separator.getLength() == 0) {
- sep = Span(RTL_CONSTASCII_STRINGPARAM(" "));
+ sep = xmlreader::Span(RTL_CONSTASCII_STRINGPARAM(" "));
} else {
- sep = Span(separator.getStr(), separator.getLength());
+ sep = xmlreader::Span(separator.getStr(), separator.getLength());
}
if (text.length != 0) {
- for (Span t(text);;) {
+ for (xmlreader::Span t(text);;) {
sal_Int32 i = rtl_str_indexOfStr_WithLength(
t.begin, t.length, sep.begin, sep.length);
T val;
- if (!parseValue(Span(t.begin, i == -1 ? t.length : i), &val)) {
+ if (!parseValue(
+ xmlreader::Span(t.begin, i == -1 ? t.length : i), &val))
+ {
throw css::uno::RuntimeException(
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("invalid value")),
css::uno::Reference< css::uno::XInterface >());
@@ -215,7 +222,7 @@ template< typename T > css::uno::Any parseListValue(
}
css::uno::Any parseValue(
- rtl::OString const & separator, Span const & text, Type type)
+ rtl::OString const & separator, xmlreader::Span const & text, Type type)
{
switch (type) {
case TYPE_ANY:
@@ -266,7 +273,7 @@ ValueParser::ValueParser(int layer): layer_(layer) {}
ValueParser::~ValueParser() {}
-XmlReader::Text ValueParser::getTextMode() const {
+xmlreader::XmlReader::Text ValueParser::getTextMode() const {
if (node_.is()) {
switch (state_) {
case STATE_TEXT:
@@ -278,23 +285,24 @@ XmlReader::Text ValueParser::getTextMode() const {
return
(type_ == TYPE_STRING || type_ == TYPE_STRING_LIST ||
separator_.getLength() != 0)
- ? XmlReader::TEXT_RAW : XmlReader::TEXT_NORMALIZED;
+ ? xmlreader::XmlReader::TEXT_RAW
+ : xmlreader::XmlReader::TEXT_NORMALIZED;
default:
break;
}
}
- return XmlReader::TEXT_NONE;
+ return xmlreader::XmlReader::TEXT_NONE;
}
bool ValueParser::startElement(
- XmlReader & reader, XmlReader::Namespace ns, Span const & name)
+ xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name)
{
if (!node_.is()) {
return false;
}
switch (state_) {
case STATE_TEXT:
- if (ns == XmlReader::NAMESPACE_NONE &&
+ if (nsId == xmlreader::XmlReader::NAMESPACE_NONE &&
name.equals(RTL_CONSTASCII_STRINGPARAM("it")) &&
isListType(type_) && separator_.getLength() == 0)
{
@@ -306,18 +314,18 @@ bool ValueParser::startElement(
}
// fall through
case STATE_IT:
- if (ns == XmlReader::NAMESPACE_NONE &&
+ if (nsId == xmlreader::XmlReader::NAMESPACE_NONE &&
name.equals(RTL_CONSTASCII_STRINGPARAM("unicode")) &&
(type_ == TYPE_STRING || type_ == TYPE_STRING_LIST))
{
sal_Int32 scalar = -1;
for (;;) {
- XmlReader::Namespace attrNs;
- Span attrLn;
- if (!reader.nextAttribute(&attrNs, &attrLn)) {
+ int attrNsId;
+ xmlreader::Span attrLn;
+ if (!reader.nextAttribute(&attrNsId, &attrLn)) {
break;
}
- if (attrNs == XmlReader::NAMESPACE_OOR &&
+ if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("scalar")))
{
if (!parseValue(reader.getAttributeValue(true), &scalar)) {
@@ -352,7 +360,7 @@ bool ValueParser::startElement(
}
throw css::uno::RuntimeException(
(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("bad member <")) +
- xmldata::convertFromUtf8(name) +
+ name.convertFromUtf8() +
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("> in ")) + reader.getUrl()),
css::uno::Reference< css::uno::XInterface >());
}
@@ -439,7 +447,7 @@ bool ValueParser::endElement() {
return true;
}
-void ValueParser::characters(Span const & text) {
+void ValueParser::characters(xmlreader::Span const & text) {
if (node_.is()) {
OSL_ASSERT(state_ == STATE_TEXT || state_ == STATE_IT);
pad_.add(text.begin, text.length);
diff --git a/configmgr/source/valueparser.hxx b/configmgr/source/valueparser.hxx
index 4e899f4632dd..c5e1d0a0a45f 100644
--- a/configmgr/source/valueparser.hxx
+++ b/configmgr/source/valueparser.hxx
@@ -36,19 +36,19 @@
#include "rtl/ref.hxx"
#include "rtl/string.hxx"
#include "rtl/ustring.hxx"
+#include "xmlreader/pad.hxx"
+#include "xmlreader/xmlreader.hxx"
-#include "pad.hxx"
#include "type.hxx"
-#include "xmlreader.hxx"
namespace com { namespace sun { namespace star { namespace uno {
class Any;
} } } }
+namespace xmlreader { struct Span; }
namespace configmgr {
class Node;
-struct Span;
class ValueParser: private boost::noncopyable {
public:
@@ -56,14 +56,14 @@ public:
~ValueParser();
- XmlReader::Text getTextMode() const;
+ xmlreader::XmlReader::Text getTextMode() const;
bool startElement(
- XmlReader & reader, XmlReader::Namespace ns, Span const & name);
+ xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name);
bool endElement();
- void characters(Span const & text);
+ void characters(xmlreader::Span const & text);
void start(
rtl::Reference< Node > const & property,
@@ -83,7 +83,7 @@ private:
rtl::Reference< Node > node_;
rtl::OUString localizedName_;
State state_;
- Pad pad_;
+ xmlreader::Pad pad_;
std::vector< com::sun::star::uno::Any > items_;
};
diff --git a/configmgr/source/writemodfile.cxx b/configmgr/source/writemodfile.cxx
index c2573ab67439..5616833abf3d 100644
--- a/configmgr/source/writemodfile.cxx
+++ b/configmgr/source/writemodfile.cxx
@@ -45,6 +45,7 @@
#include "rtl/ustring.h"
#include "rtl/ustring.hxx"
#include "sal/types.h"
+#include "xmlreader/span.hxx"
#include "data.hxx"
#include "groupnode.hxx"
@@ -54,7 +55,6 @@
#include "node.hxx"
#include "nodemap.hxx"
#include "propertynode.hxx"
-#include "span.hxx"
#include "type.hxx"
#include "writemodfile.hxx"
@@ -341,22 +341,23 @@ void writeNode(
rtl::Reference< Node > const & parent, rtl::OUString const & name,
rtl::Reference< Node > const & node)
{
- static Span const typeNames[] = {
- Span(), Span(), Span(), // TYPE_ERROR, TYPE_NIL, TYPE_ANY
- Span(RTL_CONSTASCII_STRINGPARAM("xs:boolean")),
- Span(RTL_CONSTASCII_STRINGPARAM("xs:short")),
- Span(RTL_CONSTASCII_STRINGPARAM("xs:int")),
- Span(RTL_CONSTASCII_STRINGPARAM("xs:long")),
- Span(RTL_CONSTASCII_STRINGPARAM("xs:double")),
- Span(RTL_CONSTASCII_STRINGPARAM("xs:string")),
- Span(RTL_CONSTASCII_STRINGPARAM("xs:hexBinary")),
- Span(RTL_CONSTASCII_STRINGPARAM("oor:boolean-list")),
- Span(RTL_CONSTASCII_STRINGPARAM("oor:short-list")),
- Span(RTL_CONSTASCII_STRINGPARAM("oor:int-list")),
- Span(RTL_CONSTASCII_STRINGPARAM("oor:long-list")),
- Span(RTL_CONSTASCII_STRINGPARAM("oor:double-list")),
- Span(RTL_CONSTASCII_STRINGPARAM("oor:string-list")),
- Span(RTL_CONSTASCII_STRINGPARAM("oor:hexBinary-list")) };
+ static xmlreader::Span const typeNames[] = {
+ xmlreader::Span(), xmlreader::Span(), xmlreader::Span(),
+ // TYPE_ERROR, TYPE_NIL, TYPE_ANY
+ xmlreader::Span(RTL_CONSTASCII_STRINGPARAM("xs:boolean")),
+ xmlreader::Span(RTL_CONSTASCII_STRINGPARAM("xs:short")),
+ xmlreader::Span(RTL_CONSTASCII_STRINGPARAM("xs:int")),
+ xmlreader::Span(RTL_CONSTASCII_STRINGPARAM("xs:long")),
+ xmlreader::Span(RTL_CONSTASCII_STRINGPARAM("xs:double")),
+ xmlreader::Span(RTL_CONSTASCII_STRINGPARAM("xs:string")),
+ xmlreader::Span(RTL_CONSTASCII_STRINGPARAM("xs:hexBinary")),
+ xmlreader::Span(RTL_CONSTASCII_STRINGPARAM("oor:boolean-list")),
+ xmlreader::Span(RTL_CONSTASCII_STRINGPARAM("oor:short-list")),
+ xmlreader::Span(RTL_CONSTASCII_STRINGPARAM("oor:int-list")),
+ xmlreader::Span(RTL_CONSTASCII_STRINGPARAM("oor:long-list")),
+ xmlreader::Span(RTL_CONSTASCII_STRINGPARAM("oor:double-list")),
+ xmlreader::Span(RTL_CONSTASCII_STRINGPARAM("oor:string-list")),
+ xmlreader::Span(RTL_CONSTASCII_STRINGPARAM("oor:hexBinary-list")) };
switch (node->kind()) {
case Node::KIND_PROPERTY:
{
diff --git a/configmgr/source/xcdparser.cxx b/configmgr/source/xcdparser.cxx
index ad774d5ca3e3..a7b66fe60157 100644
--- a/configmgr/source/xcdparser.cxx
+++ b/configmgr/source/xcdparser.cxx
@@ -37,13 +37,14 @@
#include "rtl/string.h"
#include "rtl/ustring.h"
#include "rtl/ustring.hxx"
+#include "xmlreader/span.hxx"
+#include "xmlreader/xmlreader.hxx"
-#include "span.hxx"
+#include "parsemanager.hxx"
#include "xcdparser.hxx"
#include "xcsparser.hxx"
#include "xcuparser.hxx"
#include "xmldata.hxx"
-#include "xmlreader.hxx"
namespace configmgr {
@@ -59,22 +60,22 @@ XcdParser::XcdParser(int layer, Dependencies const & dependencies, Data & data):
XcdParser::~XcdParser() {}
-XmlReader::Text XcdParser::getTextMode() {
+xmlreader::XmlReader::Text XcdParser::getTextMode() {
return nestedParser_.is()
- ? nestedParser_->getTextMode() : XmlReader::TEXT_NONE;
+ ? nestedParser_->getTextMode() : xmlreader::XmlReader::TEXT_NONE;
}
bool XcdParser::startElement(
- XmlReader & reader, XmlReader::Namespace ns, Span const & name)
+ xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name)
{
if (nestedParser_.is()) {
OSL_ASSERT(nesting_ != LONG_MAX);
++nesting_;
- return nestedParser_->startElement(reader, ns, name);
+ return nestedParser_->startElement(reader, nsId, name);
}
switch (state_) {
case STATE_START:
- if (ns == XmlReader::NAMESPACE_OOR &&
+ if (nsId == ParseManager::NAMESPACE_OOR &&
name.equals(RTL_CONSTASCII_STRINGPARAM("data")))
{
state_ = STATE_DEPENDENCIES;
@@ -82,18 +83,19 @@ bool XcdParser::startElement(
}
break;
case STATE_DEPENDENCIES:
- if (ns == XmlReader::NAMESPACE_NONE &&
+ if (nsId == xmlreader::XmlReader::NAMESPACE_NONE &&
name.equals(RTL_CONSTASCII_STRINGPARAM("dependency")))
{
if (dependency_.getLength() == 0) {
- Span attrFile;
+ xmlreader::Span attrFile;
for (;;) {
- XmlReader::Namespace attrNs;
- Span attrLn;
- if (!reader.nextAttribute(&attrNs, &attrLn)) {
+ int attrNsId;
+ xmlreader::Span attrLn;
+ if (!reader.nextAttribute(&attrNsId, &attrLn)) {
break;
}
- if (attrNs == XmlReader::NAMESPACE_NONE && //TODO: _OOR
+ if (attrNsId == xmlreader::XmlReader::NAMESPACE_NONE &&
+ //TODO: _OOR
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("file")))
{
attrFile = reader.getAttributeValue(false);
@@ -107,7 +109,7 @@ bool XcdParser::startElement(
reader.getUrl()),
css::uno::Reference< css::uno::XInterface >());
}
- dependency_ = xmldata::convertFromUtf8(attrFile);
+ dependency_ = attrFile.convertFromUtf8();
if (dependency_.getLength() == 0) {
throw css::uno::RuntimeException(
(rtl::OUString(
@@ -127,19 +129,19 @@ bool XcdParser::startElement(
state_ = STATE_COMPONENTS;
// fall through
case STATE_COMPONENTS:
- if (ns == XmlReader::NAMESPACE_OOR &&
+ if (nsId == ParseManager::NAMESPACE_OOR &&
name.equals(RTL_CONSTASCII_STRINGPARAM("component-schema")))
{
nestedParser_ = new XcsParser(layer_, data_);
nesting_ = 1;
- return nestedParser_->startElement(reader, ns, name);
+ return nestedParser_->startElement(reader, nsId, name);
}
- if (ns == XmlReader::NAMESPACE_OOR &&
+ if (nsId == ParseManager::NAMESPACE_OOR &&
name.equals(RTL_CONSTASCII_STRINGPARAM("component-data")))
{
nestedParser_ = new XcuParser(layer_ + 1, data_, 0, 0, 0);
nesting_ = 1;
- return nestedParser_->startElement(reader, ns, name);
+ return nestedParser_->startElement(reader, nsId, name);
}
break;
default: // STATE_DEPENDENCY
@@ -148,12 +150,12 @@ bool XcdParser::startElement(
}
throw css::uno::RuntimeException(
(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("bad member <")) +
- xmldata::convertFromUtf8(name) +
+ name.convertFromUtf8() +
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("> in ")) + reader.getUrl()),
css::uno::Reference< css::uno::XInterface >());
}
-void XcdParser::endElement(XmlReader const & reader) {
+void XcdParser::endElement(xmlreader::XmlReader const & reader) {
if (nestedParser_.is()) {
nestedParser_->endElement(reader);
if (--nesting_ == 0) {
@@ -174,7 +176,7 @@ void XcdParser::endElement(XmlReader const & reader) {
}
}
-void XcdParser::characters(Span const & text) {
+void XcdParser::characters(xmlreader::Span const & text) {
if (nestedParser_.is()) {
nestedParser_->characters(text);
}
diff --git a/configmgr/source/xcdparser.hxx b/configmgr/source/xcdparser.hxx
index 2ad8ecea7f93..a807e011b244 100644
--- a/configmgr/source/xcdparser.hxx
+++ b/configmgr/source/xcdparser.hxx
@@ -34,14 +34,15 @@
#include "rtl/ref.hxx"
#include "rtl/ustring.hxx"
+#include "xmlreader/xmlreader.hxx"
#include "parser.hxx"
-#include "xmlreader.hxx"
+
+namespace xmlreader { struct Span; }
namespace configmgr {
struct Data;
-struct Span;
class XcdParser: public Parser {
public:
@@ -52,14 +53,14 @@ public:
private:
virtual ~XcdParser();
- virtual XmlReader::Text getTextMode();
+ virtual xmlreader::XmlReader::Text getTextMode();
virtual bool startElement(
- XmlReader & reader, XmlReader::Namespace ns, Span const & name);
+ xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name);
- virtual void endElement(XmlReader const & reader);
+ virtual void endElement(xmlreader::XmlReader const & reader);
- virtual void characters(Span const & text);
+ virtual void characters(xmlreader::Span const & text);
enum State {
STATE_START, STATE_DEPENDENCIES, STATE_DEPENDENCY, STATE_COMPONENTS };
diff --git a/configmgr/source/xcsparser.cxx b/configmgr/source/xcsparser.cxx
index 37b46494c6a7..1deb8e9f3029 100644
--- a/configmgr/source/xcsparser.cxx
+++ b/configmgr/source/xcsparser.cxx
@@ -41,18 +41,19 @@
#include "rtl/string.hxx"
#include "rtl/ustring.h"
#include "rtl/ustring.hxx"
+#include "xmlreader/span.hxx"
+#include "xmlreader/xmlreader.hxx"
#include "data.hxx"
#include "localizedpropertynode.hxx"
#include "groupnode.hxx"
#include "node.hxx"
#include "nodemap.hxx"
+#include "parsemanager.hxx"
#include "propertynode.hxx"
#include "setnode.hxx"
-#include "span.hxx"
#include "xcsparser.hxx"
#include "xmldata.hxx"
-#include "xmlreader.hxx"
namespace configmgr {
@@ -125,18 +126,18 @@ XcsParser::XcsParser(int layer, Data & data):
XcsParser::~XcsParser() {}
-XmlReader::Text XcsParser::getTextMode() {
+xmlreader::XmlReader::Text XcsParser::getTextMode() {
return valueParser_.getTextMode();
}
bool XcsParser::startElement(
- XmlReader & reader, XmlReader::Namespace ns, Span const & name)
+ xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name)
{
- if (valueParser_.startElement(reader, ns, name)) {
+ if (valueParser_.startElement(reader, nsId, name)) {
return true;
}
if (state_ == STATE_START) {
- if (ns == XmlReader::NAMESPACE_OOR &&
+ if (nsId == ParseManager::NAMESPACE_OOR &&
name.equals(RTL_CONSTASCII_STRINGPARAM("component-schema"))) {
handleComponentSchema(reader);
state_ = STATE_COMPONENT_SCHEMA;
@@ -148,7 +149,7 @@ bool XcsParser::startElement(
// prop constraints; accepting all four at illegal places (and with
// illegal content):
if (ignoring_ > 0 ||
- (ns == XmlReader::NAMESPACE_NONE &&
+ (nsId == xmlreader::XmlReader::NAMESPACE_NONE &&
(name.equals(RTL_CONSTASCII_STRINGPARAM("info")) ||
name.equals(RTL_CONSTASCII_STRINGPARAM("import")) ||
name.equals(RTL_CONSTASCII_STRINGPARAM("uses")) ||
@@ -160,7 +161,7 @@ bool XcsParser::startElement(
}
switch (state_) {
case STATE_COMPONENT_SCHEMA:
- if (ns == XmlReader::NAMESPACE_NONE &&
+ if (nsId == xmlreader::XmlReader::NAMESPACE_NONE &&
name.equals(RTL_CONSTASCII_STRINGPARAM("templates")))
{
state_ = STATE_TEMPLATES;
@@ -168,7 +169,7 @@ bool XcsParser::startElement(
}
// fall through
case STATE_TEMPLATES_DONE:
- if (ns == XmlReader::NAMESPACE_NONE &&
+ if (nsId == xmlreader::XmlReader::NAMESPACE_NONE &&
name.equals(RTL_CONSTASCII_STRINGPARAM("component")))
{
state_ = STATE_COMPONENT;
@@ -183,13 +184,13 @@ bool XcsParser::startElement(
break;
case STATE_TEMPLATES:
if (elements_.empty()) {
- if (ns == XmlReader::NAMESPACE_NONE &&
+ if (nsId == xmlreader::XmlReader::NAMESPACE_NONE &&
name.equals(RTL_CONSTASCII_STRINGPARAM("group")))
{
handleGroup(reader, true);
return true;
}
- if (ns == XmlReader::NAMESPACE_NONE &&
+ if (nsId == xmlreader::XmlReader::NAMESPACE_NONE &&
name.equals(RTL_CONSTASCII_STRINGPARAM("set")))
{
handleSet(reader, true);
@@ -203,7 +204,7 @@ bool XcsParser::startElement(
switch (elements_.top().node->kind()) {
case Node::KIND_PROPERTY:
case Node::KIND_LOCALIZED_PROPERTY:
- if (ns == XmlReader::NAMESPACE_NONE &&
+ if (nsId == xmlreader::XmlReader::NAMESPACE_NONE &&
name.equals(RTL_CONSTASCII_STRINGPARAM("value")))
{
handlePropValue(reader, elements_.top().node);
@@ -211,25 +212,25 @@ bool XcsParser::startElement(
}
break;
case Node::KIND_GROUP:
- if (ns == XmlReader::NAMESPACE_NONE &&
+ if (nsId == xmlreader::XmlReader::NAMESPACE_NONE &&
name.equals(RTL_CONSTASCII_STRINGPARAM("prop")))
{
handleProp(reader);
return true;
}
- if (ns == XmlReader::NAMESPACE_NONE &&
+ if (nsId == xmlreader::XmlReader::NAMESPACE_NONE &&
name.equals(RTL_CONSTASCII_STRINGPARAM("node-ref")))
{
handleNodeRef(reader);
return true;
}
- if (ns == XmlReader::NAMESPACE_NONE &&
+ if (nsId == xmlreader::XmlReader::NAMESPACE_NONE &&
name.equals(RTL_CONSTASCII_STRINGPARAM("group")))
{
handleGroup(reader, false);
return true;
}
- if (ns == XmlReader::NAMESPACE_NONE &&
+ if (nsId == xmlreader::XmlReader::NAMESPACE_NONE &&
name.equals(RTL_CONSTASCII_STRINGPARAM("set")))
{
handleSet(reader, false);
@@ -237,7 +238,7 @@ bool XcsParser::startElement(
}
break;
case Node::KIND_SET:
- if (ns == XmlReader::NAMESPACE_NONE &&
+ if (nsId == xmlreader::XmlReader::NAMESPACE_NONE &&
name.equals(RTL_CONSTASCII_STRINGPARAM("item")))
{
handleSetItem(
@@ -260,12 +261,12 @@ bool XcsParser::startElement(
}
throw css::uno::RuntimeException(
(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("bad member <")) +
- xmldata::convertFromUtf8(name) +
+ name.convertFromUtf8() +
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("> in ")) + reader.getUrl()),
css::uno::Reference< css::uno::XInterface >());
}
-void XcsParser::endElement(XmlReader const & reader) {
+void XcsParser::endElement(xmlreader::XmlReader const & reader) {
if (valueParser_.endElement()) {
return;
}
@@ -342,23 +343,23 @@ void XcsParser::endElement(XmlReader const & reader) {
}
}
-void XcsParser::characters(Span const & text) {
+void XcsParser::characters(xmlreader::Span const & text) {
valueParser_.characters(text);
}
-void XcsParser::handleComponentSchema(XmlReader & reader) {
+void XcsParser::handleComponentSchema(xmlreader::XmlReader & reader) {
//TODO: oor:version, xml:lang attributes
rtl::OStringBuffer buf;
buf.append('.');
bool hasPackage = false;
bool hasName = false;
for (;;) {
- XmlReader::Namespace attrNs;
- Span attrLn;
- if (!reader.nextAttribute(&attrNs, &attrLn)) {
+ int attrNsId;
+ xmlreader::Span attrLn;
+ if (!reader.nextAttribute(&attrNsId, &attrLn)) {
break;
}
- if (attrNs == XmlReader::NAMESPACE_OOR &&
+ if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("package")))
{
if (hasPackage) {
@@ -371,9 +372,9 @@ void XcsParser::handleComponentSchema(XmlReader & reader) {
css::uno::Reference< css::uno::XInterface >());
}
hasPackage = true;
- Span s(reader.getAttributeValue(false));
+ xmlreader::Span s(reader.getAttributeValue(false));
buf.insert(0, s.begin, s.length);
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("name")))
{
if (hasName) {
@@ -385,7 +386,7 @@ void XcsParser::handleComponentSchema(XmlReader & reader) {
css::uno::Reference< css::uno::XInterface >());
}
hasName = true;
- Span s(reader.getAttributeValue(false));
+ xmlreader::Span s(reader.getAttributeValue(false));
buf.append(s.begin, s.length);
}
}
@@ -405,38 +406,36 @@ void XcsParser::handleComponentSchema(XmlReader & reader) {
reader.getUrl()),
css::uno::Reference< css::uno::XInterface >());
}
- componentName_ = xmldata::convertFromUtf8(
- Span(buf.getStr(), buf.getLength()));
+ componentName_ = xmlreader::Span(buf.getStr(), buf.getLength()).
+ convertFromUtf8();
}
-void XcsParser::handleNodeRef(XmlReader & reader) {
+void XcsParser::handleNodeRef(xmlreader::XmlReader & reader) {
bool hasName = false;
rtl::OUString name;
rtl::OUString component(componentName_);
bool hasNodeType = false;
rtl::OUString nodeType;
for (;;) {
- XmlReader::Namespace attrNs;
- Span attrLn;
- if (!reader.nextAttribute(&attrNs, &attrLn)) {
+ int attrNsId;
+ xmlreader::Span attrLn;
+ if (!reader.nextAttribute(&attrNsId, &attrLn)) {
break;
}
- if (attrNs == XmlReader::NAMESPACE_OOR &&
+ if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("name")))
{
hasName = true;
- name = xmldata::convertFromUtf8(reader.getAttributeValue(false));
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ name = reader.getAttributeValue(false).convertFromUtf8();
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("component")))
{
- component = xmldata::convertFromUtf8(
- reader.getAttributeValue(false));
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ component = reader.getAttributeValue(false).convertFromUtf8();
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("node-type")))
{
hasNodeType = true;
- nodeType = xmldata::convertFromUtf8(
- reader.getAttributeValue(false));
+ nodeType = reader.getAttributeValue(false).convertFromUtf8();
}
}
if (!hasName) {
@@ -465,33 +464,33 @@ void XcsParser::handleNodeRef(XmlReader & reader) {
elements_.push(Element(node, name));
}
-void XcsParser::handleProp(XmlReader & reader) {
+void XcsParser::handleProp(xmlreader::XmlReader & reader) {
bool hasName = false;
rtl::OUString name;
valueParser_.type_ = TYPE_ERROR;
bool localized = false;
bool nillable = true;
for (;;) {
- XmlReader::Namespace attrNs;
- Span attrLn;
- if (!reader.nextAttribute(&attrNs, &attrLn)) {
+ int attrNsId;
+ xmlreader::Span attrLn;
+ if (!reader.nextAttribute(&attrNsId, &attrLn)) {
break;
}
- if (attrNs == XmlReader::NAMESPACE_OOR &&
+ if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("name")))
{
hasName = true;
- name = xmldata::convertFromUtf8(reader.getAttributeValue(false));
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ name = reader.getAttributeValue(false).convertFromUtf8();
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("type")))
{
valueParser_.type_ = xmldata::parseType(
reader, reader.getAttributeValue(true));
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("localized")))
{
localized = xmldata::parseBoolean(reader.getAttributeValue(true));
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("nillable")))
{
nillable = xmldata::parseBoolean(reader.getAttributeValue(true));
@@ -525,16 +524,16 @@ void XcsParser::handleProp(XmlReader & reader) {
}
void XcsParser::handlePropValue(
- XmlReader & reader, rtl::Reference< Node > const & property)
+ xmlreader::XmlReader & reader, rtl::Reference< Node > const & property)
{
- Span attrSeparator;
+ xmlreader::Span attrSeparator;
for (;;) {
- XmlReader::Namespace attrNs;
- Span attrLn;
- if (!reader.nextAttribute(&attrNs, &attrLn)) {
+ int attrNsId;
+ xmlreader::Span attrLn;
+ if (!reader.nextAttribute(&attrNsId, &attrLn)) {
break;
}
- if (attrNs == XmlReader::NAMESPACE_OOR &&
+ if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("separator")))
{
attrSeparator = reader.getAttributeValue(false);
@@ -553,22 +552,22 @@ void XcsParser::handlePropValue(
valueParser_.start(property);
}
-void XcsParser::handleGroup(XmlReader & reader, bool isTemplate) {
+void XcsParser::handleGroup(xmlreader::XmlReader & reader, bool isTemplate) {
bool hasName = false;
rtl::OUString name;
bool extensible = false;
for (;;) {
- XmlReader::Namespace attrNs;
- Span attrLn;
- if (!reader.nextAttribute(&attrNs, &attrLn)) {
+ int attrNsId;
+ xmlreader::Span attrLn;
+ if (!reader.nextAttribute(&attrNsId, &attrLn)) {
break;
}
- if (attrNs == XmlReader::NAMESPACE_OOR &&
+ if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("name")))
{
hasName = true;
- name = xmldata::convertFromUtf8(reader.getAttributeValue(false));
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ name = reader.getAttributeValue(false).convertFromUtf8();
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("extensible")))
{
extensible = xmldata::parseBoolean(reader.getAttributeValue(true));
@@ -592,34 +591,32 @@ void XcsParser::handleGroup(XmlReader & reader, bool isTemplate) {
name));
}
-void XcsParser::handleSet(XmlReader & reader, bool isTemplate) {
+void XcsParser::handleSet(xmlreader::XmlReader & reader, bool isTemplate) {
bool hasName = false;
rtl::OUString name;
rtl::OUString component(componentName_);
bool hasNodeType = false;
rtl::OUString nodeType;
for (;;) {
- XmlReader::Namespace attrNs;
- Span attrLn;
- if (!reader.nextAttribute(&attrNs, &attrLn)) {
+ int attrNsId;
+ xmlreader::Span attrLn;
+ if (!reader.nextAttribute(&attrNsId, &attrLn)) {
break;
}
- if (attrNs == XmlReader::NAMESPACE_OOR &&
+ if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("name")))
{
hasName = true;
- name = xmldata::convertFromUtf8(reader.getAttributeValue(false));
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ name = reader.getAttributeValue(false).convertFromUtf8();
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("component")))
{
- component = xmldata::convertFromUtf8(
- reader.getAttributeValue(false));
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ component = reader.getAttributeValue(false).convertFromUtf8();
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("node-type")))
{
hasNodeType = true;
- nodeType = xmldata::convertFromUtf8(
- reader.getAttributeValue(false));
+ nodeType = reader.getAttributeValue(false).convertFromUtf8();
}
}
if (!hasName) {
@@ -642,27 +639,25 @@ void XcsParser::handleSet(XmlReader & reader, bool isTemplate) {
name));
}
-void XcsParser::handleSetItem(XmlReader & reader, SetNode * set) {
+void XcsParser::handleSetItem(xmlreader::XmlReader & reader, SetNode * set) {
rtl::OUString component(componentName_);
bool hasNodeType = false;
rtl::OUString nodeType;
for (;;) {
- XmlReader::Namespace attrNs;
- Span attrLn;
- if (!reader.nextAttribute(&attrNs, &attrLn)) {
+ int attrNsId;
+ xmlreader::Span attrLn;
+ if (!reader.nextAttribute(&attrNsId, &attrLn)) {
break;
}
- if (attrNs == XmlReader::NAMESPACE_OOR &&
+ if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("component")))
{
- component = xmldata::convertFromUtf8(
- reader.getAttributeValue(false));
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ component = reader.getAttributeValue(false).convertFromUtf8();
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("node-type")))
{
hasNodeType = true;
- nodeType = xmldata::convertFromUtf8(
- reader.getAttributeValue(false));
+ nodeType = reader.getAttributeValue(false).convertFromUtf8();
}
}
set->getAdditionalTemplateNames().push_back(
diff --git a/configmgr/source/xcsparser.hxx b/configmgr/source/xcsparser.hxx
index 196add9a826a..1fac315c0783 100644
--- a/configmgr/source/xcsparser.hxx
+++ b/configmgr/source/xcsparser.hxx
@@ -34,17 +34,18 @@
#include "rtl/ref.hxx"
#include "rtl/ustring.hxx"
+#include "xmlreader/xmlreader.hxx"
#include "node.hxx"
#include "parser.hxx"
#include "valueparser.hxx"
-#include "xmlreader.hxx"
+
+namespace xmlreader { struct Span; }
namespace configmgr {
class SetNode;
struct Data;
-struct Span;
class XcsParser: public Parser {
public:
@@ -53,29 +54,29 @@ public:
private:
virtual ~XcsParser();
- virtual XmlReader::Text getTextMode();
+ virtual xmlreader::XmlReader::Text getTextMode();
virtual bool startElement(
- XmlReader & reader, XmlReader::Namespace ns, Span const & name);
+ xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name);
- virtual void endElement(XmlReader const & reader);
+ virtual void endElement(xmlreader::XmlReader const & reader);
- virtual void characters(Span const & text);
+ virtual void characters(xmlreader::Span const & text);
- void handleComponentSchema(XmlReader & reader);
+ void handleComponentSchema(xmlreader::XmlReader & reader);
- void handleNodeRef(XmlReader & reader);
+ void handleNodeRef(xmlreader::XmlReader & reader);
- void handleProp(XmlReader & reader);
+ void handleProp(xmlreader::XmlReader & reader);
void handlePropValue(
- XmlReader & reader, rtl::Reference< Node > const & property);
+ xmlreader::XmlReader & reader, rtl::Reference< Node > const & property);
- void handleGroup(XmlReader & reader, bool isTemplate);
+ void handleGroup(xmlreader::XmlReader & reader, bool isTemplate);
- void handleSet(XmlReader & reader, bool isTemplate);
+ void handleSet(xmlreader::XmlReader & reader, bool isTemplate);
- void handleSetItem(XmlReader & reader, SetNode * set);
+ void handleSetItem(xmlreader::XmlReader & reader, SetNode * set);
enum State {
STATE_START, STATE_COMPONENT_SCHEMA, STATE_TEMPLATES,
diff --git a/configmgr/source/xcuparser.cxx b/configmgr/source/xcuparser.cxx
index 91f3b244c5a8..1a9575bb6726 100644
--- a/configmgr/source/xcuparser.cxx
+++ b/configmgr/source/xcuparser.cxx
@@ -41,6 +41,8 @@
#include "rtl/string.hxx"
#include "rtl/ustring.h"
#include "rtl/ustring.hxx"
+#include "xmlreader/span.hxx"
+#include "xmlreader/xmlreader.hxx"
#include "data.hxx"
#include "localizedpropertynode.hxx"
@@ -49,14 +51,13 @@
#include "modifications.hxx"
#include "node.hxx"
#include "nodemap.hxx"
+#include "parsemanager.hxx"
#include "partial.hxx"
#include "path.hxx"
#include "propertynode.hxx"
#include "setnode.hxx"
-#include "span.hxx"
#include "xcuparser.hxx"
#include "xmldata.hxx"
-#include "xmlreader.hxx"
namespace configmgr {
@@ -79,22 +80,22 @@ XcuParser::XcuParser(
XcuParser::~XcuParser() {}
-XmlReader::Text XcuParser::getTextMode() {
+xmlreader::XmlReader::Text XcuParser::getTextMode() {
return valueParser_.getTextMode();
}
bool XcuParser::startElement(
- XmlReader & reader, XmlReader::Namespace ns, Span const & name)
+ xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name)
{
- if (valueParser_.startElement(reader, ns, name)) {
+ if (valueParser_.startElement(reader, nsId, name)) {
return true;
}
if (state_.empty()) {
- if (ns == XmlReader::NAMESPACE_OOR &&
+ if (nsId == ParseManager::NAMESPACE_OOR &&
name.equals(RTL_CONSTASCII_STRINGPARAM("component-data")))
{
handleComponentData(reader);
- } else if (ns == XmlReader::NAMESPACE_OOR &&
+ } else if (nsId == ParseManager::NAMESPACE_OOR &&
name.equals(RTL_CONSTASCII_STRINGPARAM("items")))
{
state_.push(State(rtl::Reference< Node >(), false));
@@ -102,7 +103,7 @@ bool XcuParser::startElement(
throw css::uno::RuntimeException(
(rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM("bad root element <")) +
- xmldata::convertFromUtf8(name) +
+ name.convertFromUtf8() +
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("> in ")) +
reader.getUrl()),
css::uno::Reference< css::uno::XInterface >());
@@ -110,7 +111,7 @@ bool XcuParser::startElement(
} else if (state_.top().ignore) {
state_.push(State(false));
} else if (!state_.top().node.is()) {
- if (ns == XmlReader::NAMESPACE_NONE &&
+ if (nsId == xmlreader::XmlReader::NAMESPACE_NONE &&
name.equals(RTL_CONSTASCII_STRINGPARAM("item")))
{
handleItem(reader);
@@ -118,7 +119,7 @@ bool XcuParser::startElement(
throw css::uno::RuntimeException(
(rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM("bad items node member <")) +
- xmldata::convertFromUtf8(name) +
+ name.convertFromUtf8() +
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("> in ")) +
reader.getUrl()),
css::uno::Reference< css::uno::XInterface >());
@@ -126,7 +127,7 @@ bool XcuParser::startElement(
} else {
switch (state_.top().node->kind()) {
case Node::KIND_PROPERTY:
- if (ns == XmlReader::NAMESPACE_NONE &&
+ if (nsId == xmlreader::XmlReader::NAMESPACE_NONE &&
name.equals(RTL_CONSTASCII_STRINGPARAM("value")))
{
handlePropValue(
@@ -137,14 +138,14 @@ bool XcuParser::startElement(
(rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM(
"bad property node member <")) +
- xmldata::convertFromUtf8(name) +
+ name.convertFromUtf8() +
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("> in ")) +
reader.getUrl()),
css::uno::Reference< css::uno::XInterface >());
}
break;
case Node::KIND_LOCALIZED_PROPERTY:
- if (ns == XmlReader::NAMESPACE_NONE &&
+ if (nsId == xmlreader::XmlReader::NAMESPACE_NONE &&
name.equals(RTL_CONSTASCII_STRINGPARAM("value")))
{
handleLocpropValue(
@@ -156,7 +157,7 @@ bool XcuParser::startElement(
(rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM(
"bad localized property node member <")) +
- xmldata::convertFromUtf8(name) +
+ name.convertFromUtf8() +
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("> in ")) +
reader.getUrl()),
css::uno::Reference< css::uno::XInterface >());
@@ -165,18 +166,18 @@ bool XcuParser::startElement(
case Node::KIND_LOCALIZED_VALUE:
throw css::uno::RuntimeException(
(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("bad member <")) +
- xmldata::convertFromUtf8(name) +
+ name.convertFromUtf8() +
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("> in ")) +
reader.getUrl()),
css::uno::Reference< css::uno::XInterface >());
case Node::KIND_GROUP:
- if (ns == XmlReader::NAMESPACE_NONE &&
+ if (nsId == xmlreader::XmlReader::NAMESPACE_NONE &&
name.equals(RTL_CONSTASCII_STRINGPARAM("prop")))
{
handleGroupProp(
reader,
dynamic_cast< GroupNode * >(state_.top().node.get()));
- } else if (ns == XmlReader::NAMESPACE_NONE &&
+ } else if (nsId == xmlreader::XmlReader::NAMESPACE_NONE &&
name.equals(RTL_CONSTASCII_STRINGPARAM("node")))
{
handleGroupNode(reader, state_.top().node);
@@ -185,19 +186,19 @@ bool XcuParser::startElement(
(rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM(
"bad group node member <")) +
- xmldata::convertFromUtf8(name) +
+ name.convertFromUtf8() +
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("> in ")) +
reader.getUrl()),
css::uno::Reference< css::uno::XInterface >());
}
break;
case Node::KIND_SET:
- if (ns == XmlReader::NAMESPACE_NONE &&
+ if (nsId == xmlreader::XmlReader::NAMESPACE_NONE &&
name.equals(RTL_CONSTASCII_STRINGPARAM("node")))
{
handleSetNode(
reader, dynamic_cast< SetNode * >(state_.top().node.get()));
- } else if (ns == XmlReader::NAMESPACE_NONE &&
+ } else if (nsId == xmlreader::XmlReader::NAMESPACE_NONE &&
name.equals(RTL_CONSTASCII_STRINGPARAM("prop")))
{
OSL_TRACE(
@@ -209,7 +210,7 @@ bool XcuParser::startElement(
throw css::uno::RuntimeException(
(rtl::OUString(
RTL_CONSTASCII_USTRINGPARAM("bad set node member <")) +
- xmldata::convertFromUtf8(name) +
+ name.convertFromUtf8() +
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("> in ")) +
reader.getUrl()),
css::uno::Reference< css::uno::XInterface >());
@@ -220,7 +221,7 @@ bool XcuParser::startElement(
return true;
}
-void XcuParser::endElement(XmlReader const &) {
+void XcuParser::endElement(xmlreader::XmlReader const &) {
if (valueParser_.endElement()) {
return;
}
@@ -245,11 +246,11 @@ void XcuParser::endElement(XmlReader const &) {
}
}
-void XcuParser::characters(Span const & text) {
+void XcuParser::characters(xmlreader::Span const & text) {
valueParser_.characters(text);
}
-XcuParser::Operation XcuParser::parseOperation(Span const & text) {
+XcuParser::Operation XcuParser::parseOperation(xmlreader::Span const & text) {
OSL_ASSERT(text.is());
if (text.equals(RTL_CONSTASCII_STRINGPARAM("modify"))) {
return OPERATION_MODIFY;
@@ -265,11 +266,11 @@ XcuParser::Operation XcuParser::parseOperation(Span const & text) {
}
throw css::uno::RuntimeException(
(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("invalid op ")) +
- xmldata::convertFromUtf8(text)),
+ text.convertFromUtf8()),
css::uno::Reference< css::uno::XInterface >());
}
-void XcuParser::handleComponentData(XmlReader & reader) {
+void XcuParser::handleComponentData(xmlreader::XmlReader & reader) {
rtl::OStringBuffer buf;
buf.append('.');
bool hasPackage = false;
@@ -277,12 +278,12 @@ void XcuParser::handleComponentData(XmlReader & reader) {
Operation op = OPERATION_MODIFY;
bool finalized = false;
for (;;) {
- XmlReader::Namespace attrNs;
- Span attrLn;
- if (!reader.nextAttribute(&attrNs, &attrLn)) {
+ int attrNsId;
+ xmlreader::Span attrLn;
+ if (!reader.nextAttribute(&attrNsId, &attrLn)) {
break;
}
- if (attrNs == XmlReader::NAMESPACE_OOR &&
+ if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("package")))
{
if (hasPackage) {
@@ -295,9 +296,9 @@ void XcuParser::handleComponentData(XmlReader & reader) {
css::uno::Reference< css::uno::XInterface >());
}
hasPackage = true;
- Span s(reader.getAttributeValue(false));
+ xmlreader::Span s(reader.getAttributeValue(false));
buf.insert(0, s.begin, s.length);
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("name")))
{
if (hasName) {
@@ -309,13 +310,13 @@ void XcuParser::handleComponentData(XmlReader & reader) {
css::uno::Reference< css::uno::XInterface >());
}
hasName = true;
- Span s(reader.getAttributeValue(false));
+ xmlreader::Span s(reader.getAttributeValue(false));
buf.append(s.begin, s.length);
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("op")))
{
op = parseOperation(reader.getAttributeValue(true));
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("finalized")))
{
finalized = xmldata::parseBoolean(reader.getAttributeValue(true));
@@ -337,8 +338,8 @@ void XcuParser::handleComponentData(XmlReader & reader) {
reader.getUrl()),
css::uno::Reference< css::uno::XInterface >());
}
- componentName_ = xmldata::convertFromUtf8(
- Span(buf.getStr(), buf.getLength()));
+ componentName_ = xmlreader::Span(buf.getStr(), buf.getLength()).
+ convertFromUtf8();
if (trackPath_) {
OSL_ASSERT(path_.empty());
path_.push_back(componentName_);
@@ -380,15 +381,15 @@ void XcuParser::handleComponentData(XmlReader & reader) {
state_.push(State(node, finalizedLayer < valueParser_.getLayer()));
}
-void XcuParser::handleItem(XmlReader & reader) {
- Span attrPath;
+void XcuParser::handleItem(xmlreader::XmlReader & reader) {
+ xmlreader::Span attrPath;
for (;;) {
- XmlReader::Namespace attrNs;
- Span attrLn;
- if (!reader.nextAttribute(&attrNs, &attrLn)) {
+ int attrNsId;
+ xmlreader::Span attrLn;
+ if (!reader.nextAttribute(&attrNsId, &attrLn)) {
break;
}
- if (attrNs == XmlReader::NAMESPACE_OOR &&
+ if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("path")))
{
attrPath = reader.getAttributeValue(false);
@@ -401,7 +402,7 @@ void XcuParser::handleItem(XmlReader & reader) {
reader.getUrl()),
css::uno::Reference< css::uno::XInterface >());
}
- rtl::OUString path(xmldata::convertFromUtf8(attrPath));
+ rtl::OUString path(attrPath.convertFromUtf8());
int finalizedLayer;
rtl::Reference< Node > node(
data_.resolvePathRepresentation(
@@ -446,21 +447,23 @@ void XcuParser::handleItem(XmlReader & reader) {
state_.push(State(node, finalizedLayer < valueParser_.getLayer()));
}
-void XcuParser::handlePropValue(XmlReader & reader, PropertyNode * prop) {
+void XcuParser::handlePropValue(
+ xmlreader::XmlReader & reader, PropertyNode * prop)
+ {
bool nil = false;
rtl::OString separator;
rtl::OUString external;
for (;;) {
- XmlReader::Namespace attrNs;
- Span attrLn;
- if (!reader.nextAttribute(&attrNs, &attrLn)) {
+ int attrNsId;
+ xmlreader::Span attrLn;
+ if (!reader.nextAttribute(&attrNsId, &attrLn)) {
break;
}
- if (attrNs == XmlReader::NAMESPACE_XSI &&
+ if (attrNsId == ParseManager::NAMESPACE_XSI &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("nil")))
{
nil = xmldata::parseBoolean(reader.getAttributeValue(true));
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("type")))
{
Type type = xmldata::parseType(
@@ -473,10 +476,10 @@ void XcuParser::handlePropValue(XmlReader & reader, PropertyNode * prop) {
css::uno::Reference< css::uno::XInterface >());
}
valueParser_.type_ = type;
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("separator")))
{
- Span s(reader.getAttributeValue(false));
+ xmlreader::Span s(reader.getAttributeValue(false));
if (s.length == 0) {
throw css::uno::RuntimeException(
(rtl::OUString(
@@ -486,10 +489,10 @@ void XcuParser::handlePropValue(XmlReader & reader, PropertyNode * prop) {
css::uno::Reference< css::uno::XInterface >());
}
separator = rtl::OString(s.begin, s.length);
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("external")))
{
- external = xmldata::convertFromUtf8(reader.getAttributeValue(true));
+ external = reader.getAttributeValue(true).convertFromUtf8();
if (external.getLength() == 0) {
throw css::uno::RuntimeException(
(rtl::OUString(
@@ -529,27 +532,27 @@ void XcuParser::handlePropValue(XmlReader & reader, PropertyNode * prop) {
}
void XcuParser::handleLocpropValue(
- XmlReader & reader, LocalizedPropertyNode * locprop)
+ xmlreader::XmlReader & reader, LocalizedPropertyNode * locprop)
{
rtl::OUString name;
bool nil = false;
rtl::OString separator;
Operation op = OPERATION_FUSE;
for (;;) {
- XmlReader::Namespace attrNs;
- Span attrLn;
- if (!reader.nextAttribute(&attrNs, &attrLn)) {
+ int attrNsId;
+ xmlreader::Span attrLn;
+ if (!reader.nextAttribute(&attrNsId, &attrLn)) {
break;
}
- if (attrNs == XmlReader::NAMESPACE_XML &&
+ if (attrNsId == xmlreader::XmlReader::NAMESPACE_XML &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("lang")))
{
- name = xmldata::convertFromUtf8(reader.getAttributeValue(false));
- } else if (attrNs == XmlReader::NAMESPACE_XSI &&
+ name = reader.getAttributeValue(false).convertFromUtf8();
+ } else if (attrNsId == ParseManager::NAMESPACE_XSI &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("nil")))
{
nil = xmldata::parseBoolean(reader.getAttributeValue(true));
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("type")))
{
Type type = xmldata::parseType(
@@ -562,10 +565,10 @@ void XcuParser::handleLocpropValue(
css::uno::Reference< css::uno::XInterface >());
}
valueParser_.type_ = type;
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("separator")))
{
- Span s(reader.getAttributeValue(false));
+ xmlreader::Span s(reader.getAttributeValue(false));
if (s.length == 0) {
throw css::uno::RuntimeException(
(rtl::OUString(
@@ -575,7 +578,7 @@ void XcuParser::handleLocpropValue(
css::uno::Reference< css::uno::XInterface >());
}
separator = rtl::OString(s.begin, s.length);
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("op")))
{
op = parseOperation(reader.getAttributeValue(true));
@@ -651,32 +654,34 @@ void XcuParser::handleLocpropValue(
}
}
-void XcuParser::handleGroupProp(XmlReader & reader, GroupNode * group) {
+void XcuParser::handleGroupProp(
+ xmlreader::XmlReader & reader, GroupNode * group)
+{
bool hasName = false;
rtl::OUString name;
Type type = TYPE_ERROR;
Operation op = OPERATION_MODIFY;
bool finalized = false;
for (;;) {
- XmlReader::Namespace attrNs;
- Span attrLn;
- if (!reader.nextAttribute(&attrNs, &attrLn)) {
+ int attrNsId;
+ xmlreader::Span attrLn;
+ if (!reader.nextAttribute(&attrNsId, &attrLn)) {
break;
}
- if (attrNs == XmlReader::NAMESPACE_OOR &&
+ if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("name")))
{
hasName = true;
- name = xmldata::convertFromUtf8(reader.getAttributeValue(false));
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ name = reader.getAttributeValue(false).convertFromUtf8();
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("type")))
{
type = xmldata::parseType(reader, reader.getAttributeValue(true));
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("op")))
{
op = parseOperation(reader.getAttributeValue(true));
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("finalized")))
{
finalized = xmldata::parseBoolean(reader.getAttributeValue(true));
@@ -726,8 +731,8 @@ void XcuParser::handleGroupProp(XmlReader & reader, GroupNode * group) {
}
void XcuParser::handleUnknownGroupProp(
- XmlReader const & reader, GroupNode * group, rtl::OUString const & name,
- Type type, Operation operation, bool finalized)
+ xmlreader::XmlReader const & reader, GroupNode * group,
+ rtl::OUString const & name, Type type, Operation operation, bool finalized)
{
switch (operation) {
case OPERATION_REPLACE:
@@ -767,7 +772,7 @@ void XcuParser::handleUnknownGroupProp(
}
void XcuParser::handlePlainGroupProp(
- XmlReader const & reader, GroupNode * group,
+ xmlreader::XmlReader const & reader, GroupNode * group,
NodeMap::iterator const & propertyIndex, rtl::OUString const & name,
Type type, Operation operation, bool finalized)
{
@@ -821,7 +826,7 @@ void XcuParser::handlePlainGroupProp(
}
void XcuParser::handleLocalizedGroupProp(
- XmlReader const & reader, LocalizedPropertyNode * property,
+ xmlreader::XmlReader const & reader, LocalizedPropertyNode * property,
rtl::OUString const & name, Type type, Operation operation, bool finalized)
{
if (property->getLayer() > valueParser_.getLayer()) {
@@ -879,28 +884,28 @@ void XcuParser::handleLocalizedGroupProp(
}
void XcuParser::handleGroupNode(
- XmlReader & reader, rtl::Reference< Node > const & group)
+ xmlreader::XmlReader & reader, rtl::Reference< Node > const & group)
{
bool hasName = false;
rtl::OUString name;
Operation op = OPERATION_MODIFY;
bool finalized = false;
for (;;) {
- XmlReader::Namespace attrNs;
- Span attrLn;
- if (!reader.nextAttribute(&attrNs, &attrLn)) {
+ int attrNsId;
+ xmlreader::Span attrLn;
+ if (!reader.nextAttribute(&attrNsId, &attrLn)) {
break;
}
- if (attrNs == XmlReader::NAMESPACE_OOR &&
+ if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("name")))
{
hasName = true;
- name = xmldata::convertFromUtf8(reader.getAttributeValue(false));
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ name = reader.getAttributeValue(false).convertFromUtf8();
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("op")))
{
op = parseOperation(reader.getAttributeValue(true));
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("finalized")))
{
finalized = xmldata::parseBoolean(reader.getAttributeValue(true));
@@ -950,7 +955,7 @@ void XcuParser::handleGroupNode(
state_.top().locked || finalizedLayer < valueParser_.getLayer()));
}
-void XcuParser::handleSetNode(XmlReader & reader, SetNode * set) {
+void XcuParser::handleSetNode(xmlreader::XmlReader & reader, SetNode * set) {
bool hasName = false;
rtl::OUString name;
rtl::OUString component(componentName_);
@@ -960,36 +965,34 @@ void XcuParser::handleSetNode(XmlReader & reader, SetNode * set) {
bool finalized = false;
bool mandatory = false;
for (;;) {
- XmlReader::Namespace attrNs;
- Span attrLn;
- if (!reader.nextAttribute(&attrNs, &attrLn)) {
+ int attrNsId;
+ xmlreader::Span attrLn;
+ if (!reader.nextAttribute(&attrNsId, &attrLn)) {
break;
}
- if (attrNs == XmlReader::NAMESPACE_OOR &&
+ if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("name")))
{
hasName = true;
- name = xmldata::convertFromUtf8(reader.getAttributeValue(false));
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ name = reader.getAttributeValue(false).convertFromUtf8();
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("component")))
{
- component = xmldata::convertFromUtf8(
- reader.getAttributeValue(false));
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ component = reader.getAttributeValue(false).convertFromUtf8();
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("node-type")))
{
hasNodeType = true;
- nodeType = xmldata::convertFromUtf8(
- reader.getAttributeValue(false));
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ nodeType = reader.getAttributeValue(false).convertFromUtf8();
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("op")))
{
op = parseOperation(reader.getAttributeValue(true));
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("finalized")))
{
finalized = xmldata::parseBoolean(reader.getAttributeValue(true));
- } else if (attrNs == XmlReader::NAMESPACE_OOR &&
+ } else if (attrNsId == ParseManager::NAMESPACE_OOR &&
attrLn.equals(RTL_CONSTASCII_STRINGPARAM("mandatory")))
{
mandatory = xmldata::parseBoolean(reader.getAttributeValue(true));
diff --git a/configmgr/source/xcuparser.hxx b/configmgr/source/xcuparser.hxx
index 02ef4e5ff117..6cd600c8aab1 100644
--- a/configmgr/source/xcuparser.hxx
+++ b/configmgr/source/xcuparser.hxx
@@ -34,6 +34,7 @@
#include "rtl/ref.hxx"
#include "rtl/ustring.hxx"
+#include "xmlreader/xmlreader.hxx"
#include "additions.hxx"
#include "node.hxx"
@@ -43,7 +44,8 @@
#include "type.hxx"
#include "valueparser.hxx"
#include "xmldata.hxx"
-#include "xmlreader.hxx"
+
+namespace xmlreader { struct Span; }
namespace configmgr {
@@ -54,7 +56,6 @@ class Partial;
class PropertyNode;
class SetNode;
struct Data;
-struct Span;
class XcuParser: public Parser {
public:
@@ -65,49 +66,50 @@ public:
private:
virtual ~XcuParser();
- virtual XmlReader::Text getTextMode();
+ virtual xmlreader::XmlReader::Text getTextMode();
virtual bool startElement(
- XmlReader & reader, XmlReader::Namespace ns, Span const & name);
+ xmlreader::XmlReader & reader, int nsId, xmlreader::Span const & name);
- virtual void endElement(XmlReader const & reader);
+ virtual void endElement(xmlreader::XmlReader const & reader);
- virtual void characters(Span const & span);
+ virtual void characters(xmlreader::Span const & span);
enum Operation {
OPERATION_MODIFY, OPERATION_REPLACE, OPERATION_FUSE, OPERATION_REMOVE };
- static Operation parseOperation(Span const & text);
+ static Operation parseOperation(xmlreader::Span const & text);
- void handleComponentData(XmlReader & reader);
+ void handleComponentData(xmlreader::XmlReader & reader);
- void handleItem(XmlReader & reader);
+ void handleItem(xmlreader::XmlReader & reader);
- void handlePropValue(XmlReader & reader, PropertyNode * prop);
+ void handlePropValue(xmlreader::XmlReader & reader, PropertyNode * prop);
void handleLocpropValue(
- XmlReader & reader, LocalizedPropertyNode * locprop);
+ xmlreader::XmlReader & reader, LocalizedPropertyNode * locprop);
- void handleGroupProp(XmlReader & reader, GroupNode * group);
+ void handleGroupProp(xmlreader::XmlReader & reader, GroupNode * group);
void handleUnknownGroupProp(
- XmlReader const & reader, GroupNode * group, rtl::OUString const & name,
- Type type, Operation operation, bool finalized);
+ xmlreader::XmlReader const & reader, GroupNode * group,
+ rtl::OUString const & name, Type type, Operation operation,
+ bool finalized);
void handlePlainGroupProp(
- XmlReader const & reader, GroupNode * group,
+ xmlreader::XmlReader const & reader, GroupNode * group,
NodeMap::iterator const & propertyIndex, rtl::OUString const & name,
Type type, Operation operation, bool finalized);
void handleLocalizedGroupProp(
- XmlReader const & reader, LocalizedPropertyNode * property,
+ xmlreader::XmlReader const & reader, LocalizedPropertyNode * property,
rtl::OUString const & name, Type type, Operation operation,
bool finalized);
void handleGroupNode(
- XmlReader & reader, rtl::Reference< Node > const & group);
+ xmlreader::XmlReader & reader, rtl::Reference< Node > const & group);
- void handleSetNode(XmlReader & reader, SetNode * set);
+ void handleSetNode(xmlreader::XmlReader & reader, SetNode * set);
void recordModification(bool addition);
diff --git a/configmgr/source/xmldata.cxx b/configmgr/source/xmldata.cxx
index 07ad4d17a345..7d3d9ead3d2c 100644
--- a/configmgr/source/xmldata.cxx
+++ b/configmgr/source/xmldata.cxx
@@ -40,12 +40,12 @@
#include "rtl/ref.hxx"
#include "rtl/strbuf.hxx"
#include "rtl/string.h"
-#include "rtl/textcvt.h"
-#include "rtl/textenc.h"
#include "rtl/ustrbuf.hxx"
#include "rtl/ustring.h"
#include "rtl/ustring.hxx"
#include "sal/types.h"
+#include "xmlreader/span.hxx"
+#include "xmlreader/xmlreader.hxx"
#include "data.hxx"
#include "groupnode.hxx"
@@ -57,9 +57,7 @@
#include "parser.hxx"
#include "propertynode.hxx"
#include "setnode.hxx"
-#include "span.hxx"
#include "type.hxx"
-#include "xmlreader.hxx"
namespace configmgr {
@@ -71,90 +69,88 @@ namespace css = com::sun::star;
}
-rtl::OUString convertFromUtf8(Span const & text) {
- OSL_ASSERT(text.is());
- rtl_uString * s = 0;
- if (!rtl_convertStringToUString(
- &s, text.begin, text.length, RTL_TEXTENCODING_UTF8,
- (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR |
- RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR |
- RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR)))
- {
- throw css::uno::RuntimeException(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("cannot convert from UTF-8")),
- css::uno::Reference< css::uno::XInterface >());
- }
- return rtl::OUString(s, SAL_NO_ACQUIRE);
-}
-
-Type parseType(XmlReader const & reader, Span const & text) {
+Type parseType(
+ xmlreader::XmlReader const & reader, xmlreader::Span const & text)
+{
OSL_ASSERT(text.is());
sal_Int32 i = rtl_str_indexOfChar_WithLength(text.begin, text.length, ':');
if (i >= 0) {
- switch (reader.getNamespace(Span(text.begin, i))) {
- case XmlReader::NAMESPACE_OOR:
- if (Span(text.begin + i + 1, text.length - (i + 1)).equals(
- RTL_CONSTASCII_STRINGPARAM("any")))
+ switch (reader.getNamespaceId(xmlreader::Span(text.begin, i))) {
+ case ParseManager::NAMESPACE_OOR:
+ if (xmlreader::Span(text.begin + i + 1, text.length - (i + 1)).
+ equals(RTL_CONSTASCII_STRINGPARAM("any")))
{
return TYPE_ANY;
- } else if (Span(text.begin + i + 1, text.length - (i + 1)).equals(
- RTL_CONSTASCII_STRINGPARAM("boolean-list")))
+ } else if (xmlreader::Span(
+ text.begin + i + 1, text.length - (i + 1)).
+ equals(RTL_CONSTASCII_STRINGPARAM("boolean-list")))
{
return TYPE_BOOLEAN_LIST;
- } else if (Span(text.begin + i + 1, text.length - (i + 1)).equals(
- RTL_CONSTASCII_STRINGPARAM("short-list")))
+ } else if (xmlreader::Span(
+ text.begin + i + 1, text.length - (i + 1)).
+ equals(RTL_CONSTASCII_STRINGPARAM("short-list")))
{
return TYPE_SHORT_LIST;
- } else if (Span(text.begin + i + 1, text.length - (i + 1)).equals(
- RTL_CONSTASCII_STRINGPARAM("int-list")))
+ } else if (xmlreader::Span(
+ text.begin + i + 1, text.length - (i + 1)).
+ equals(RTL_CONSTASCII_STRINGPARAM("int-list")))
{
return TYPE_INT_LIST;
- } else if (Span(text.begin + i + 1, text.length - (i + 1)).equals(
- RTL_CONSTASCII_STRINGPARAM("long-list")))
+ } else if (xmlreader::Span(
+ text.begin + i + 1, text.length - (i + 1)).
+ equals(RTL_CONSTASCII_STRINGPARAM("long-list")))
{
return TYPE_LONG_LIST;
- } else if (Span(text.begin + i + 1, text.length - (i + 1)).equals(
- RTL_CONSTASCII_STRINGPARAM("double-list")))
+ } else if (xmlreader::Span(
+ text.begin + i + 1, text.length - (i + 1)).
+ equals(RTL_CONSTASCII_STRINGPARAM("double-list")))
{
return TYPE_DOUBLE_LIST;
- } else if (Span(text.begin + i + 1, text.length - (i + 1)).equals(
- RTL_CONSTASCII_STRINGPARAM("string-list")))
+ } else if (xmlreader::Span(
+ text.begin + i + 1, text.length - (i + 1)).
+ equals(RTL_CONSTASCII_STRINGPARAM("string-list")))
{
return TYPE_STRING_LIST;
- } else if (Span(text.begin + i + 1, text.length - (i + 1)).equals(
- RTL_CONSTASCII_STRINGPARAM("hexBinary-list")))
+ } else if (xmlreader::Span(
+ text.begin + i + 1, text.length - (i + 1)).
+ equals(RTL_CONSTASCII_STRINGPARAM("hexBinary-list")))
{
return TYPE_HEXBINARY_LIST;
}
break;
- case XmlReader::NAMESPACE_XS:
- if (Span(text.begin + i + 1, text.length - (i + 1)).equals(
- RTL_CONSTASCII_STRINGPARAM("boolean")))
+ case ParseManager::NAMESPACE_XS:
+ if (xmlreader::Span(text.begin + i + 1, text.length - (i + 1)).
+ equals(RTL_CONSTASCII_STRINGPARAM("boolean")))
{
return TYPE_BOOLEAN;
- } else if (Span(text.begin + i + 1, text.length - (i + 1)).equals(
- RTL_CONSTASCII_STRINGPARAM("short")))
+ } else if (xmlreader::Span(
+ text.begin + i + 1, text.length - (i + 1)).
+ equals(RTL_CONSTASCII_STRINGPARAM("short")))
{
return TYPE_SHORT;
- } else if (Span(text.begin + i + 1, text.length - (i + 1)).equals(
- RTL_CONSTASCII_STRINGPARAM("int")))
+ } else if (xmlreader::Span(
+ text.begin + i + 1, text.length - (i + 1)).
+ equals(RTL_CONSTASCII_STRINGPARAM("int")))
{
return TYPE_INT;
- } else if (Span(text.begin + i + 1, text.length - (i + 1)).equals(
- RTL_CONSTASCII_STRINGPARAM("long")))
+ } else if (xmlreader::Span(
+ text.begin + i + 1, text.length - (i + 1)).
+ equals(RTL_CONSTASCII_STRINGPARAM("long")))
{
return TYPE_LONG;
- } else if (Span(text.begin + i + 1, text.length - (i + 1)).equals(
- RTL_CONSTASCII_STRINGPARAM("double")))
+ } else if (xmlreader::Span(
+ text.begin + i + 1, text.length - (i + 1)).
+ equals(RTL_CONSTASCII_STRINGPARAM("double")))
{
return TYPE_DOUBLE;
- } else if (Span(text.begin + i + 1, text.length - (i + 1)).equals(
- RTL_CONSTASCII_STRINGPARAM("string")))
+ } else if (xmlreader::Span(
+ text.begin + i + 1, text.length - (i + 1)).
+ equals(RTL_CONSTASCII_STRINGPARAM("string")))
{
return TYPE_STRING;
- } else if (Span(text.begin + i + 1, text.length - (i + 1)).equals(
- RTL_CONSTASCII_STRINGPARAM("hexBinary")))
+ } else if (xmlreader::Span(
+ text.begin + i + 1, text.length - (i + 1)).
+ equals(RTL_CONSTASCII_STRINGPARAM("hexBinary")))
{
return TYPE_HEXBINARY;
}
@@ -165,11 +161,11 @@ Type parseType(XmlReader const & reader, Span const & text) {
}
throw css::uno::RuntimeException(
(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("invalid type ")) +
- convertFromUtf8(text)),
+ text.convertFromUtf8()),
css::uno::Reference< css::uno::XInterface >());
}
-bool parseBoolean(Span const & text) {
+bool parseBoolean(xmlreader::Span const & text) {
OSL_ASSERT(text.is());
if (text.equals(RTL_CONSTASCII_STRINGPARAM("true"))) {
return true;
@@ -179,7 +175,7 @@ bool parseBoolean(Span const & text) {
}
throw css::uno::RuntimeException(
(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("invalid boolean ")) +
- convertFromUtf8(text)),
+ text.convertFromUtf8()),
css::uno::Reference< css::uno::XInterface >());
}
diff --git a/configmgr/source/xmldata.hxx b/configmgr/source/xmldata.hxx
index 15a0a36336ad..e60e1082cabb 100644
--- a/configmgr/source/xmldata.hxx
+++ b/configmgr/source/xmldata.hxx
@@ -33,19 +33,19 @@
#include "type.hxx"
namespace rtl { class OUString; }
+namespace xmlreader {
+ class XmlReader;
+ struct Span;
+}
namespace configmgr {
-class XmlReader;
-struct Span;
-
namespace xmldata {
-rtl::OUString convertFromUtf8(Span const & text);
-
-Type parseType(XmlReader const & reader, Span const & text);
+Type parseType(
+ xmlreader::XmlReader const & reader, xmlreader::Span const & text);
-bool parseBoolean(Span const & text);
+bool parseBoolean(xmlreader::Span const & text);
rtl::OUString parseTemplateReference(
rtl::OUString const & component, bool hasNodeType,
diff --git a/configure.in b/configure.in
index ec482fa9464d..64b7836dd4b9 100644
--- a/configure.in
+++ b/configure.in
@@ -1472,7 +1472,8 @@ if test \( "$_os" != "WINNT" -o "$WITH_MINGWIN" = "yes" \) -a "$GCC" = "yes"; th
fi
if test "$_os" = "Darwin" -a "$GCCVER" -ge "040100" ; then
if test -z "$save_CC" -a -x "$GCC_HOME/bin/gcc-4.0" ; then
- CC=$GCC_HOME/bin/gcc-4.0
+ export CC=$GCC_HOME/bin/gcc-4.0
+ dnl export CC to have it available in set_soenv -> config.guess
GCCVER2=`"$CC" -dumpversion | $AWK -F. '{ print \$1*10000+\$2*100+\$3 }'`
if test "$GCCVER2" -ge "040000" -a "$GCCVER2" -lt "040100" ; then
GCCVER=$GCCVER2
diff --git a/connectivity/prj/d.lst b/connectivity/prj/d.lst
index e116ee5740ac..01d82ba9177e 100644
--- a/connectivity/prj/d.lst
+++ b/connectivity/prj/d.lst
@@ -31,3 +31,20 @@ mkdir: %_DEST%\xml%_EXT%\registry\spool\DataAccess
..\%__SRC%\misc\registry\data\org\openoffice\Office\DataAccess\*.xcu %_DEST%\xml%_EXT%\registry\spool\DataAccess\*.xcu
..\%COMMON_OUTDIR%\bin\fcfg_drivers_*.zip %_DEST%\pck%_EXT%\fcfg_drivers_*.zip
..\%__SRC%\bin\fcfg_drivers_*.zip %_DEST%\pck%_EXT%\fcfg_drivers_*.zip
+..\%__SRC%\misc\adabas.component %_DEST%\xml%_EXT%\adabas.component
+..\%__SRC%\misc\ado.component %_DEST%\xml%_EXT%\ado.component
+..\%__SRC%\misc\calc.component %_DEST%\xml%_EXT%\calc.component
+..\%__SRC%\misc\dbase.component %_DEST%\xml%_EXT%\dbase.component
+..\%__SRC%\misc\dbpool2.component %_DEST%\xml%_EXT%\dbpool2.component
+..\%__SRC%\misc\dbtools.component %_DEST%\xml%_EXT%\dbtools.component
+..\%__SRC%\misc\evoab.component %_DEST%\xml%_EXT%\evoab.component
+..\%__SRC%\misc\flat.component %_DEST%\xml%_EXT%\flat.component
+..\%__SRC%\misc\hsqldb.component %_DEST%\xml%_EXT%\hsqldb.component
+..\%__SRC%\misc\jdbc.component %_DEST%\xml%_EXT%\jdbc.component
+..\%__SRC%\misc\kab1.component %_DEST%\xml%_EXT%\kab1.component
+..\%__SRC%\misc\macab1.component %_DEST%\xml%_EXT%\macab1.component
+..\%__SRC%\misc\mozab.component %_DEST%\xml%_EXT%\mozab.component
+..\%__SRC%\misc\mozbootstrap.component %_DEST%\xml%_EXT%\mozbootstrap.component
+..\%__SRC%\misc\mysql.component %_DEST%\xml%_EXT%\mysql.component
+..\%__SRC%\misc\odbc.component %_DEST%\xml%_EXT%\odbc.component
+..\%__SRC%\misc\sdbc2.component %_DEST%\xml%_EXT%\sdbc2.component
diff --git a/connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx b/connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx
index 52e76f834ab5..1e3f80546d74 100644
--- a/connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx
+++ b/connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx
@@ -900,11 +900,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(const
}
//---------------------------------------------------------------------------------------
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(void* serviceManager, com::sun::star::registry::XRegistryKey* registryKey)
-{
- return cppu::component_writeInfoHelper(serviceManager, registryKey, entries);
-}
-//---------------------------------------------------------------------------------------
SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(const sal_Char* implName, ::com::sun::star::lang::XMultiServiceFactory* serviceManager, void* registryKey)
{
return cppu::component_getFactoryHelper(implName, serviceManager, registryKey, entries);
diff --git a/connectivity/source/cpool/Zregistration.cxx b/connectivity/source/cpool/Zregistration.cxx
index 0786d9ea5f9a..be638aebf620 100644
--- a/connectivity/source/cpool/Zregistration.cxx
+++ b/connectivity/source/cpool/Zregistration.cxx
@@ -50,35 +50,6 @@ extern "C"
}
//---------------------------------------------------------------------------------------
-sal_Bool SAL_CALL component_writeInfo(void* /*_pServiceManager*/, com::sun::star::registry::XRegistryKey* _pRegistryKey)
-{
- ::rtl::OUString sMainKeyName = ::rtl::OUString::createFromAscii("/");
- sMainKeyName += OPoolCollection::getImplementationName_Static();
- sMainKeyName += ::rtl::OUString::createFromAscii("/UNO/SERVICES");
-
- try
- {
- Reference< XRegistryKey > xMainKey = _pRegistryKey->createKey(sMainKeyName);
- if (!xMainKey.is())
- return sal_False;
-
- Sequence< ::rtl::OUString > sServices = OPoolCollection::getSupportedServiceNames_Static();
- const ::rtl::OUString* pServices = sServices.getConstArray();
- for (sal_Int32 i=0; i<sServices.getLength(); ++i, ++pServices)
- xMainKey->createKey(*pServices);
- }
- catch(InvalidRegistryException&)
- {
- return sal_False;
- }
- catch(InvalidValueException&)
- {
- return sal_False;
- }
- return sal_True;
-}
-
-//---------------------------------------------------------------------------------------
void* SAL_CALL component_getFactory(const sal_Char* _pImplName, ::com::sun::star::lang::XMultiServiceFactory* _pServiceManager, void* /*_pRegistryKey*/)
{
void* pRet = NULL;
diff --git a/connectivity/source/cpool/dbpool2.component b/connectivity/source/cpool/dbpool2.component
new file mode 100644
index 000000000000..2fa8a144959c
--- /dev/null
+++ b/connectivity/source/cpool/dbpool2.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.sdbc.OConnectionPool">
+ <service name="com.sun.star.sdbc.ConnectionPool"/>
+ </implementation>
+</component>
diff --git a/connectivity/source/cpool/exports.dxp b/connectivity/source/cpool/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/connectivity/source/cpool/exports.dxp
+++ b/connectivity/source/cpool/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/connectivity/source/cpool/makefile.mk b/connectivity/source/cpool/makefile.mk
index 1f6e49c6cbd7..9908a6d242cb 100644
--- a/connectivity/source/cpool/makefile.mk
+++ b/connectivity/source/cpool/makefile.mk
@@ -78,4 +78,10 @@ DEF1EXPORTFILE= exports.dxp
.INCLUDE : target.mk
+ALLTAR : $(MISC)/dbpool2.component
+$(MISC)/dbpool2.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ dbpool2.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt dbpool2.component
diff --git a/connectivity/source/dbtools/dbtools.component b/connectivity/source/dbtools/dbtools.component
new file mode 100644
index 000000000000..08be953bb9d4
--- /dev/null
+++ b/connectivity/source/dbtools/dbtools.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="org.openoffice.comp.helper.DatabaseMetaDataResultSet">
+ <service name="com.sun.star.sdbc.ResultSet"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.helper.ParameterSubstitution">
+ <service name="com.sun.star.sdb.ParameterSubstitution"/>
+ </implementation>
+</component>
diff --git a/connectivity/source/dbtools/exports.dxp b/connectivity/source/dbtools/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/connectivity/source/dbtools/exports.dxp
+++ b/connectivity/source/dbtools/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/connectivity/source/dbtools/makefile.mk b/connectivity/source/dbtools/makefile.mk
index af4ac13e54cc..a73dae3d047d 100644
--- a/connectivity/source/dbtools/makefile.mk
+++ b/connectivity/source/dbtools/makefile.mk
@@ -95,3 +95,11 @@ $(MISC)$/$(SHL1TARGET).flt: makefile.mk
@echo _TI >$@
@echo _real >>$@
+
+ALLTAR : $(MISC)/dbtools.component
+
+$(MISC)/dbtools.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ dbtools.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt dbtools.component
diff --git a/connectivity/source/drivers/adabas/Bservices.cxx b/connectivity/source/drivers/adabas/Bservices.cxx
index be1d716e8cd0..d895fb72b391 100644
--- a/connectivity/source/drivers/adabas/Bservices.cxx
+++ b/connectivity/source/drivers/adabas/Bservices.cxx
@@ -29,13 +29,11 @@
#include "precompiled_connectivity.hxx"
#include "adabas/BDriver.hxx"
#include <cppuhelper/factory.hxx>
-#include <osl/diagnose.h>
using namespace connectivity::adabas;
using ::rtl::OUString;
using ::com::sun::star::uno::Reference;
using ::com::sun::star::uno::Sequence;
-using ::com::sun::star::registry::XRegistryKey;
using ::com::sun::star::lang::XSingleServiceFactory;
using ::com::sun::star::lang::XMultiServiceFactory;
@@ -48,31 +46,6 @@ typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
rtl_ModuleCount* _pT
);
-//***************************************************************************************
-//
-// Die vorgeschriebene C-Api muss erfuellt werden!
-// Sie besteht aus drei Funktionen, die von dem Modul exportiert werden muessen.
-//
-
-//---------------------------------------------------------------------------------------
-void REGISTER_PROVIDER(
- const OUString& aServiceImplName,
- const Sequence< OUString>& Services,
- const Reference< ::com::sun::star::registry::XRegistryKey > & xKey)
-{
- OUString aMainKeyName;
- aMainKeyName = OUString::createFromAscii("/");
- aMainKeyName += aServiceImplName;
- aMainKeyName += OUString::createFromAscii("/UNO/SERVICES");
-
- Reference< ::com::sun::star::registry::XRegistryKey > xNewKey( xKey->createKey(aMainKeyName) );
- OSL_ENSURE(xNewKey.is(), "ADABAS::component_writeInfo : could not create a registry key !");
-
- for (sal_Int32 i=0; i<Services.getLength(); ++i)
- xNewKey->createKey(Services[i]);
-}
-
-
//---------------------------------------------------------------------------------------
struct ProviderRequest
{
@@ -123,31 +96,6 @@ component_getImplementationEnvironment(
}
//---------------------------------------------------------------------------------------
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void* /*pServiceManager*/,
- void* pRegistryKey
- )
-{
- if (pRegistryKey)
- try
- {
- Reference< ::com::sun::star::registry::XRegistryKey > xKey(reinterpret_cast< ::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
-
- REGISTER_PROVIDER(
- ODriver::getImplementationName_Static(),
- ODriver::getSupportedServiceNames_Static(), xKey);
-
- return sal_True;
- }
- catch (::com::sun::star::registry::InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "ODBC::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
- }
-
- return sal_False;
-}
-
-//---------------------------------------------------------------------------------------
extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/connectivity/source/drivers/adabas/adabas.component b/connectivity/source/drivers/adabas/adabas.component
new file mode 100644
index 000000000000..3c359c3d0217
--- /dev/null
+++ b/connectivity/source/drivers/adabas/adabas.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.sdbcx.adabas.ODriver">
+ <service name="com.sun.star.sdbc.Driver"/>
+ <service name="com.sun.star.sdbcx.Driver"/>
+ </implementation>
+</component>
diff --git a/connectivity/source/drivers/adabas/adabas.mxp.map b/connectivity/source/drivers/adabas/adabas.mxp.map
index 2ce9f111412b..f64c44c13fce 100644
--- a/connectivity/source/drivers/adabas/adabas.mxp.map
+++ b/connectivity/source/drivers/adabas/adabas.mxp.map
@@ -1,5 +1,4 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
__mh_dylib_header
___builtin_delete
diff --git a/connectivity/source/drivers/adabas/exports.dxp b/connectivity/source/drivers/adabas/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/connectivity/source/drivers/adabas/exports.dxp
+++ b/connectivity/source/drivers/adabas/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/connectivity/source/drivers/adabas/makefile.mk b/connectivity/source/drivers/adabas/makefile.mk
index 9268f02a3b42..ffc3960391fd 100644
--- a/connectivity/source/drivers/adabas/makefile.mk
+++ b/connectivity/source/drivers/adabas/makefile.mk
@@ -104,3 +104,11 @@ DEF1EXPORTFILE= exports.dxp
.INCLUDE : $(PRJ)$/target.pmk
+
+ALLTAR : $(MISC)/adabas.component
+
+$(MISC)/adabas.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ adabas.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt adabas.component
diff --git a/connectivity/source/drivers/ado/Aservices.cxx b/connectivity/source/drivers/ado/Aservices.cxx
index 05ebd274be84..71d90f289a7d 100644
--- a/connectivity/source/drivers/ado/Aservices.cxx
+++ b/connectivity/source/drivers/ado/Aservices.cxx
@@ -29,13 +29,11 @@
#include "precompiled_connectivity.hxx"
#include "ado/ADriver.hxx"
#include <cppuhelper/factory.hxx>
-#include <osl/diagnose.h>
using namespace connectivity::ado;
using ::rtl::OUString;
using ::com::sun::star::uno::Reference;
using ::com::sun::star::uno::Sequence;
-using ::com::sun::star::registry::XRegistryKey;
using ::com::sun::star::lang::XSingleServiceFactory;
using ::com::sun::star::lang::XMultiServiceFactory;
@@ -48,31 +46,6 @@ typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
rtl_ModuleCount* _pT
);
-//***************************************************************************************
-//
-// Die vorgeschriebene C-Api muss erfuellt werden!
-// Sie besteht aus drei Funktionen, die von dem Modul exportiert werden muessen.
-//
-
-//---------------------------------------------------------------------------------------
-void REGISTER_PROVIDER(
- const OUString& aServiceImplName,
- const Sequence< OUString>& Services,
- const Reference< ::com::sun::star::registry::XRegistryKey > & xKey)
-{
- OUString aMainKeyName;
- aMainKeyName = OUString::createFromAscii("/");
- aMainKeyName += aServiceImplName;
- aMainKeyName += OUString::createFromAscii("/UNO/SERVICES");
-
- Reference< ::com::sun::star::registry::XRegistryKey > xNewKey( xKey->createKey(aMainKeyName) );
- OSL_ENSURE(xNewKey.is(), "ADO::component_writeInfo : could not create a registry key !");
-
- for (sal_Int32 i=0; i<Services.getLength(); ++i)
- xNewKey->createKey(Services[i]);
-}
-
-
//---------------------------------------------------------------------------------------
struct ProviderRequest
{
@@ -122,31 +95,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment(
}
//---------------------------------------------------------------------------------------
-extern "C" sal_Bool SAL_CALL component_writeInfo(
- void* /*pServiceManager*/,
- void* pRegistryKey
- )
-{
- if (pRegistryKey)
- try
- {
- Reference< ::com::sun::star::registry::XRegistryKey > xKey(reinterpret_cast< ::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
-
- REGISTER_PROVIDER(
- ODriver::getImplementationName_Static(),
- ODriver::getSupportedServiceNames_Static(), xKey);
-
- return sal_True;
- }
- catch (::com::sun::star::registry::InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "ADO::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
- }
-
- return sal_False;
-}
-
-//---------------------------------------------------------------------------------------
extern "C" void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/connectivity/source/drivers/ado/ado.component b/connectivity/source/drivers/ado/ado.component
new file mode 100644
index 000000000000..1962a6b710a7
--- /dev/null
+++ b/connectivity/source/drivers/ado/ado.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.sdbc.ado.ODriver">
+ <service name="com.sun.star.sdbc.Driver"/>
+ <service name="com.sun.star.sdbcx.Driver"/>
+ </implementation>
+</component>
diff --git a/connectivity/source/drivers/ado/exports.dxp b/connectivity/source/drivers/ado/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/connectivity/source/drivers/ado/exports.dxp
+++ b/connectivity/source/drivers/ado/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/connectivity/source/drivers/ado/makefile.mk b/connectivity/source/drivers/ado/makefile.mk
index 33e470648219..2b3c91a2010c 100644
--- a/connectivity/source/drivers/ado/makefile.mk
+++ b/connectivity/source/drivers/ado/makefile.mk
@@ -112,3 +112,11 @@ dummy:
# --- Targets ----------------------------------
.INCLUDE : $(PRJ)$/target.pmk
+
+ALLTAR : $(MISC)/ado.component
+
+$(MISC)/ado.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ ado.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt ado.component
diff --git a/connectivity/source/drivers/calc/Cservices.cxx b/connectivity/source/drivers/calc/Cservices.cxx
index b172d9d4cf88..5f0338b55aae 100644
--- a/connectivity/source/drivers/calc/Cservices.cxx
+++ b/connectivity/source/drivers/calc/Cservices.cxx
@@ -29,13 +29,11 @@
#include "precompiled_connectivity.hxx"
#include "calc/CDriver.hxx"
#include <cppuhelper/factory.hxx>
-#include <osl/diagnose.h>
using namespace connectivity::calc;
using ::rtl::OUString;
using ::com::sun::star::uno::Reference;
using ::com::sun::star::uno::Sequence;
-using ::com::sun::star::registry::XRegistryKey;
using ::com::sun::star::lang::XSingleServiceFactory;
using ::com::sun::star::lang::XMultiServiceFactory;
@@ -48,31 +46,6 @@ typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
rtl_ModuleCount* _pT
);
-//***************************************************************************************
-//
-// Die vorgeschriebene C-Api muss erfuellt werden!
-// Sie besteht aus drei Funktionen, die von dem Modul exportiert werden muessen.
-//
-
-//---------------------------------------------------------------------------------------
-void REGISTER_PROVIDER(
- const OUString& aServiceImplName,
- const Sequence< OUString>& Services,
- const Reference< ::com::sun::star::registry::XRegistryKey > & xKey)
-{
- OUString aMainKeyName;
- aMainKeyName = OUString::createFromAscii("/");
- aMainKeyName += aServiceImplName;
- aMainKeyName += OUString::createFromAscii("/UNO/SERVICES");
-
- Reference< ::com::sun::star::registry::XRegistryKey > xNewKey( xKey->createKey(aMainKeyName) );
- OSL_ENSURE(xNewKey.is(), "FILE::component_writeInfo : could not create a registry key !");
-
- for (sal_Int32 i=0; i<Services.getLength(); ++i)
- xNewKey->createKey(Services[i]);
-}
-
-
//---------------------------------------------------------------------------------------
struct ProviderRequest
{
@@ -123,31 +96,6 @@ component_getImplementationEnvironment(
}
//---------------------------------------------------------------------------------------
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void* /*pServiceManager*/,
- void* pRegistryKey
- )
-{
- if (pRegistryKey)
- try
- {
- Reference< ::com::sun::star::registry::XRegistryKey > xKey(reinterpret_cast< ::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
-
- REGISTER_PROVIDER(
- ODriver::getImplementationName_Static(),
- ODriver::getSupportedServiceNames_Static(), xKey);
-
- return sal_True;
- }
- catch (::com::sun::star::registry::InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "FILE::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
- }
-
- return sal_False;
-}
-
-//---------------------------------------------------------------------------------------
extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/connectivity/source/drivers/calc/calc.component b/connectivity/source/drivers/calc/calc.component
new file mode 100644
index 000000000000..be949f70de14
--- /dev/null
+++ b/connectivity/source/drivers/calc/calc.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.sdbc.calc.ODriver">
+ <service name="com.sun.star.sdbc.Driver"/>
+ <service name="com.sun.star.sdbcx.Driver"/>
+ </implementation>
+</component>
diff --git a/connectivity/source/drivers/calc/exports.dxp b/connectivity/source/drivers/calc/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/connectivity/source/drivers/calc/exports.dxp
+++ b/connectivity/source/drivers/calc/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/connectivity/source/drivers/calc/makefile.mk b/connectivity/source/drivers/calc/makefile.mk
index 8e193524aa45..a7393b3c8e82 100644
--- a/connectivity/source/drivers/calc/makefile.mk
+++ b/connectivity/source/drivers/calc/makefile.mk
@@ -94,3 +94,11 @@ DEF1EXPORTFILE= exports.dxp
.INCLUDE : $(PRJ)$/target.pmk
+
+ALLTAR : $(MISC)/calc.component
+
+$(MISC)/calc.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ calc.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt calc.component
diff --git a/connectivity/source/drivers/dbase/Dservices.cxx b/connectivity/source/drivers/dbase/Dservices.cxx
index 831329a1feba..74019abe364d 100644
--- a/connectivity/source/drivers/dbase/Dservices.cxx
+++ b/connectivity/source/drivers/dbase/Dservices.cxx
@@ -29,13 +29,11 @@
#include "precompiled_connectivity.hxx"
#include "dbase/DDriver.hxx"
#include <cppuhelper/factory.hxx>
-#include <osl/diagnose.h>
using namespace connectivity::dbase;
using ::rtl::OUString;
using ::com::sun::star::uno::Reference;
using ::com::sun::star::uno::Sequence;
-using ::com::sun::star::registry::XRegistryKey;
using ::com::sun::star::lang::XSingleServiceFactory;
using ::com::sun::star::lang::XMultiServiceFactory;
@@ -48,31 +46,6 @@ typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
rtl_ModuleCount* _pT
);
-//***************************************************************************************
-//
-// Die vorgeschriebene C-Api muss erfuellt werden!
-// Sie besteht aus drei Funktionen, die von dem Modul exportiert werden muessen.
-//
-
-//---------------------------------------------------------------------------------------
-void REGISTER_PROVIDER(
- const OUString& aServiceImplName,
- const Sequence< OUString>& Services,
- const Reference< ::com::sun::star::registry::XRegistryKey > & xKey)
-{
- OUString aMainKeyName;
- aMainKeyName = OUString::createFromAscii("/");
- aMainKeyName += aServiceImplName;
- aMainKeyName += OUString::createFromAscii("/UNO/SERVICES");
-
- Reference< ::com::sun::star::registry::XRegistryKey > xNewKey( xKey->createKey(aMainKeyName) );
- OSL_ENSURE(xNewKey.is(), "FILE::component_writeInfo : could not create a registry key !");
-
- for (sal_Int32 i=0; i<Services.getLength(); ++i)
- xNewKey->createKey(Services[i]);
-}
-
-
//---------------------------------------------------------------------------------------
struct ProviderRequest
{
@@ -123,31 +96,6 @@ component_getImplementationEnvironment(
}
//---------------------------------------------------------------------------------------
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void* /*pServiceManager*/,
- void* pRegistryKey
- )
-{
- if (pRegistryKey)
- try
- {
- Reference< ::com::sun::star::registry::XRegistryKey > xKey(reinterpret_cast< ::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
-
- REGISTER_PROVIDER(
- ODriver::getImplementationName_Static(),
- ODriver::getSupportedServiceNames_Static(), xKey);
-
- return sal_True;
- }
- catch (::com::sun::star::registry::InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "FILE::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
- }
-
- return sal_False;
-}
-
-//---------------------------------------------------------------------------------------
extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/connectivity/source/drivers/dbase/dbase.component b/connectivity/source/drivers/dbase/dbase.component
new file mode 100644
index 000000000000..7f913f083680
--- /dev/null
+++ b/connectivity/source/drivers/dbase/dbase.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.sdbc.dbase.ODriver">
+ <service name="com.sun.star.sdbc.Driver"/>
+ <service name="com.sun.star.sdbcx.Driver"/>
+ </implementation>
+</component>
diff --git a/connectivity/source/drivers/dbase/dbase.mxp.map b/connectivity/source/drivers/dbase/dbase.mxp.map
index c5b4377b04c3..87eccc45b66a 100644
--- a/connectivity/source/drivers/dbase/dbase.mxp.map
+++ b/connectivity/source/drivers/dbase/dbase.mxp.map
@@ -1,5 +1,4 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
__mh_dylib_header
___builtin_delete
diff --git a/connectivity/source/drivers/dbase/exports.dxp b/connectivity/source/drivers/dbase/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/connectivity/source/drivers/dbase/exports.dxp
+++ b/connectivity/source/drivers/dbase/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/connectivity/source/drivers/dbase/makefile.mk b/connectivity/source/drivers/dbase/makefile.mk
index f855cf1f4554..62b7ae96f8fa 100644
--- a/connectivity/source/drivers/dbase/makefile.mk
+++ b/connectivity/source/drivers/dbase/makefile.mk
@@ -127,3 +127,11 @@ DEF1EXPORTFILE= exports.dxp
.INCLUDE : $(PRJ)$/target.pmk
+
+ALLTAR : $(MISC)/dbase.component
+
+$(MISC)/dbase.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ dbase.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt dbase.component
diff --git a/connectivity/source/drivers/evoab/LServices.cxx b/connectivity/source/drivers/evoab/LServices.cxx
index 4ae9d4b9113b..29a19e9168eb 100644
--- a/connectivity/source/drivers/evoab/LServices.cxx
+++ b/connectivity/source/drivers/evoab/LServices.cxx
@@ -29,13 +29,11 @@
#include "precompiled_connectivity.hxx"
#include "LDriver.hxx"
#include <cppuhelper/factory.hxx>
-#include <osl/diagnose.h>
using namespace connectivity::evoab;
using ::rtl::OUString;
using ::com::sun::star::uno::Reference;
using ::com::sun::star::uno::Sequence;
-using ::com::sun::star::registry::XRegistryKey;
using ::com::sun::star::lang::XSingleServiceFactory;
using ::com::sun::star::lang::XMultiServiceFactory;
@@ -48,31 +46,6 @@ typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
rtl_ModuleCount* _pT
);
-//***************************************************************************************
-//
-// Die vorgeschriebene C-Api muss erfuellt werden!
-// Sie besteht aus drei Funktionen, die von dem Modul exportiert werden muessen.
-//
-
-//---------------------------------------------------------------------------------------
-void REGISTER_PROVIDER(
- const OUString& aServiceImplName,
- const Sequence< OUString>& Services,
- const Reference< ::com::sun::star::registry::XRegistryKey > & xKey)
-{
- OUString aMainKeyName;
- aMainKeyName = OUString::createFromAscii("/");
- aMainKeyName += aServiceImplName;
- aMainKeyName += OUString::createFromAscii("/UNO/SERVICES");
-
- Reference< ::com::sun::star::registry::XRegistryKey > xNewKey( xKey->createKey(aMainKeyName) );
- OSL_ENSURE(xNewKey.is(), "FILE::component_writeInfo : could not create a registry key !");
-
- for (sal_Int32 i=0; i<Services.getLength(); ++i)
- xNewKey->createKey(Services[i]);
-}
-
-
//---------------------------------------------------------------------------------------
struct ProviderRequest
{
@@ -123,31 +96,6 @@ component_getImplementationEnvironment(
}
//---------------------------------------------------------------------------------------
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void* /*pServiceManager*/,
- void* pRegistryKey
- )
-{
- if (pRegistryKey)
- try
- {
- Reference< ::com::sun::star::registry::XRegistryKey > xKey(reinterpret_cast< ::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
-
- REGISTER_PROVIDER(
- OEvoabDriver::getImplementationName_Static(),
- OEvoabDriver::getSupportedServiceNames_Static(), xKey);
-
- return sal_True;
- }
- catch (::com::sun::star::registry::InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "FILE::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
- }
-
- return sal_False;
-}
-
-//---------------------------------------------------------------------------------------
extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/connectivity/source/drivers/evoab/exports.dxp b/connectivity/source/drivers/evoab/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/connectivity/source/drivers/evoab/exports.dxp
+++ b/connectivity/source/drivers/evoab/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/connectivity/source/drivers/evoab2/NServices.cxx b/connectivity/source/drivers/evoab2/NServices.cxx
index c11eed9d6c61..555837d15a28 100644
--- a/connectivity/source/drivers/evoab2/NServices.cxx
+++ b/connectivity/source/drivers/evoab2/NServices.cxx
@@ -35,7 +35,6 @@ using namespace connectivity::evoab;
using ::rtl::OUString;
using ::com::sun::star::uno::Reference;
using ::com::sun::star::uno::Sequence;
-using ::com::sun::star::registry::XRegistryKey;
using ::com::sun::star::lang::XSingleServiceFactory;
using ::com::sun::star::lang::XMultiServiceFactory;
@@ -48,31 +47,6 @@ typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
rtl_ModuleCount* _pT
);
-//***************************************************************************************
-//
-// Die vorgeschriebene C-Api muss erfuellt werden!
-// Sie besteht aus drei Funktionen, die von dem Modul exportiert werden muessen.
-//
-
-//---------------------------------------------------------------------------------------
-void REGISTER_PROVIDER(
- const OUString& aServiceImplName,
- const Sequence< OUString>& Services,
- const Reference< ::com::sun::star::registry::XRegistryKey > & xKey)
-{
- OUString aMainKeyName;
- aMainKeyName = OUString::createFromAscii("/");
- aMainKeyName += aServiceImplName;
- aMainKeyName += OUString::createFromAscii("/UNO/SERVICES");
-
- Reference< ::com::sun::star::registry::XRegistryKey > xNewKey( xKey->createKey(aMainKeyName) );
- OSL_ENSURE(xNewKey.is(), "EVOAB::component_writeInfo : could not create a registry key !");
-
- for (sal_Int32 i=0; i<Services.getLength(); ++i)
- xNewKey->createKey(Services[i]);
-}
-
-
//---------------------------------------------------------------------------------------
struct ProviderRequest
{
@@ -123,31 +97,6 @@ extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnviron
}
//---------------------------------------------------------------------------------------
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void* /*pServiceManager*/,
- void* pRegistryKey
- )
-{
- if (pRegistryKey)
- try
- {
- Reference< ::com::sun::star::registry::XRegistryKey > xKey(reinterpret_cast< ::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
-
- REGISTER_PROVIDER(
- OEvoabDriver::getImplementationName_Static(),
- OEvoabDriver::getSupportedServiceNames_Static(), xKey);
-
- return sal_True;
- }
- catch (::com::sun::star::registry::InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "FILE::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
- }
-
- return sal_False;
-}
-
-//---------------------------------------------------------------------------------------
extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/connectivity/source/drivers/evoab2/evoab.component b/connectivity/source/drivers/evoab2/evoab.component
new file mode 100644
index 000000000000..a99719388d13
--- /dev/null
+++ b/connectivity/source/drivers/evoab2/evoab.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.sdbc.evoab.OEvoabDriver">
+ <service name="com.sun.star.sdbc.Driver"/>
+ </implementation>
+</component>
diff --git a/connectivity/source/drivers/evoab2/makefile.mk b/connectivity/source/drivers/evoab2/makefile.mk
index e8a1cf96cddf..3f5b62903b7a 100644
--- a/connectivity/source/drivers/evoab2/makefile.mk
+++ b/connectivity/source/drivers/evoab2/makefile.mk
@@ -110,3 +110,11 @@ DEF1NAME= $(SHL1TARGET)
# --- Targets ----------------------------------
.INCLUDE : $(PRJ)$/target.pmk
+
+ALLTAR : $(MISC)/evoab.component
+
+$(MISC)/evoab.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ evoab.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt evoab.component
diff --git a/connectivity/source/drivers/flat/Eservices.cxx b/connectivity/source/drivers/flat/Eservices.cxx
index a0445c1ca70f..30553af24cfc 100644
--- a/connectivity/source/drivers/flat/Eservices.cxx
+++ b/connectivity/source/drivers/flat/Eservices.cxx
@@ -29,13 +29,11 @@
#include "precompiled_connectivity.hxx"
#include "flat/EDriver.hxx"
#include <cppuhelper/factory.hxx>
-#include <osl/diagnose.h>
using namespace connectivity::flat;
using ::rtl::OUString;
using ::com::sun::star::uno::Reference;
using ::com::sun::star::uno::Sequence;
-using ::com::sun::star::registry::XRegistryKey;
using ::com::sun::star::lang::XSingleServiceFactory;
using ::com::sun::star::lang::XMultiServiceFactory;
@@ -48,31 +46,6 @@ typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
rtl_ModuleCount* _pT
);
-//***************************************************************************************
-//
-// Die vorgeschriebene C-Api muss erfuellt werden!
-// Sie besteht aus drei Funktionen, die von dem Modul exportiert werden muessen.
-//
-
-//---------------------------------------------------------------------------------------
-void REGISTER_PROVIDER(
- const OUString& aServiceImplName,
- const Sequence< OUString>& Services,
- const Reference< ::com::sun::star::registry::XRegistryKey > & xKey)
-{
- OUString aMainKeyName;
- aMainKeyName = OUString::createFromAscii("/");
- aMainKeyName += aServiceImplName;
- aMainKeyName += OUString::createFromAscii("/UNO/SERVICES");
-
- Reference< ::com::sun::star::registry::XRegistryKey > xNewKey( xKey->createKey(aMainKeyName) );
- OSL_ENSURE(xNewKey.is(), "FILE::component_writeInfo : could not create a registry key !");
-
- for (sal_Int32 i=0; i<Services.getLength(); ++i)
- xNewKey->createKey(Services[i]);
-}
-
-
//---------------------------------------------------------------------------------------
struct ProviderRequest
{
@@ -123,31 +96,6 @@ component_getImplementationEnvironment(
}
//---------------------------------------------------------------------------------------
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void* /*pServiceManager*/,
- void* pRegistryKey
- )
-{
- if (pRegistryKey)
- try
- {
- Reference< ::com::sun::star::registry::XRegistryKey > xKey(reinterpret_cast< ::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
-
- REGISTER_PROVIDER(
- ODriver::getImplementationName_Static(),
- ODriver::getSupportedServiceNames_Static(), xKey);
-
- return sal_True;
- }
- catch (::com::sun::star::registry::InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "FILE::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
- }
-
- return sal_False;
-}
-
-//---------------------------------------------------------------------------------------
extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/connectivity/source/drivers/flat/exports.dxp b/connectivity/source/drivers/flat/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/connectivity/source/drivers/flat/exports.dxp
+++ b/connectivity/source/drivers/flat/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/connectivity/source/drivers/flat/flat.component b/connectivity/source/drivers/flat/flat.component
new file mode 100644
index 000000000000..fe8b79ee73b8
--- /dev/null
+++ b/connectivity/source/drivers/flat/flat.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.sdbc.flat.ODriver">
+ <service name="com.sun.star.sdbc.Driver"/>
+ <service name="com.sun.star.sdbcx.Driver"/>
+ </implementation>
+</component>
diff --git a/connectivity/source/drivers/flat/flat.mxp.map b/connectivity/source/drivers/flat/flat.mxp.map
index 54a8532f7840..2737c61b5a57 100644
--- a/connectivity/source/drivers/flat/flat.mxp.map
+++ b/connectivity/source/drivers/flat/flat.mxp.map
@@ -1,5 +1,4 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
__mh_dylib_header
___builtin_delete
diff --git a/connectivity/source/drivers/flat/makefile.mk b/connectivity/source/drivers/flat/makefile.mk
index 2d1f99f759c7..23920f91c21d 100644
--- a/connectivity/source/drivers/flat/makefile.mk
+++ b/connectivity/source/drivers/flat/makefile.mk
@@ -105,3 +105,11 @@ DEF1EXPORTFILE= exports.dxp
.INCLUDE : $(PRJ)$/target.pmk
+
+ALLTAR : $(MISC)/flat.component
+
+$(MISC)/flat.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ flat.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt flat.component
diff --git a/connectivity/source/drivers/hsqldb/Hservices.cxx b/connectivity/source/drivers/hsqldb/Hservices.cxx
index a3e783a3e9a7..ea0d452f1d05 100644
--- a/connectivity/source/drivers/hsqldb/Hservices.cxx
+++ b/connectivity/source/drivers/hsqldb/Hservices.cxx
@@ -30,13 +30,11 @@
#include "hsqldb/HDriver.hxx"
#include <cppuhelper/factory.hxx>
-#include <osl/diagnose.h>
using namespace connectivity::hsqldb;
using ::rtl::OUString;
using ::com::sun::star::uno::Reference;
using ::com::sun::star::uno::Sequence;
-using ::com::sun::star::registry::XRegistryKey;
using ::com::sun::star::lang::XSingleServiceFactory;
using ::com::sun::star::lang::XMultiServiceFactory;
@@ -49,31 +47,6 @@ typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
rtl_ModuleCount* _pT
);
-//***************************************************************************************
-//
-// Die vorgeschriebene C-Api muss erfuellt werden!
-// Sie besteht aus drei Funktionen, die von dem Modul exportiert werden muessen.
-//
-
-//---------------------------------------------------------------------------------------
-void REGISTER_PROVIDER(
- const OUString& aServiceImplName,
- const Sequence< OUString>& Services,
- const Reference< ::com::sun::star::registry::XRegistryKey > & xKey)
-{
- OUString aMainKeyName;
- aMainKeyName = OUString::createFromAscii("/");
- aMainKeyName += aServiceImplName;
- aMainKeyName += OUString::createFromAscii("/UNO/SERVICES");
-
- Reference< ::com::sun::star::registry::XRegistryKey > xNewKey( xKey->createKey(aMainKeyName) );
- OSL_ENSURE(xNewKey.is(), "ADABAS::component_writeInfo : could not create a registry key !");
-
- for (sal_Int32 i=0; i<Services.getLength(); ++i)
- xNewKey->createKey(Services[i]);
-}
-
-
//---------------------------------------------------------------------------------------
struct ProviderRequest
{
@@ -124,31 +97,6 @@ component_getImplementationEnvironment(
}
//---------------------------------------------------------------------------------------
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void* /*pServiceManager*/,
- void* pRegistryKey
- )
-{
- if (pRegistryKey)
- try
- {
- Reference< ::com::sun::star::registry::XRegistryKey > xKey(reinterpret_cast< ::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
-
- REGISTER_PROVIDER(
- ODriverDelegator::getImplementationName_Static(),
- ODriverDelegator::getSupportedServiceNames_Static(), xKey);
-
- return sal_True;
- }
- catch (::com::sun::star::registry::InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "ODBC::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
- }
-
- return sal_False;
-}
-
-//---------------------------------------------------------------------------------------
extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/connectivity/source/drivers/hsqldb/exports.dxp b/connectivity/source/drivers/hsqldb/exports.dxp
index 7ff56f4f9977..3efc73741d24 100644
--- a/connectivity/source/drivers/hsqldb/exports.dxp
+++ b/connectivity/source/drivers/hsqldb/exports.dxp
@@ -1,5 +1,4 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_openStream
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Ljava_lang_String_2Ljava_lang_String_2_3BII
diff --git a/connectivity/source/drivers/hsqldb/hsqldb.component b/connectivity/source/drivers/hsqldb/hsqldb.component
new file mode 100644
index 000000000000..eb8ae477e749
--- /dev/null
+++ b/connectivity/source/drivers/hsqldb/hsqldb.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.sdbcx.comp.hsqldb.Driver">
+ <service name="com.sun.star.sdbc.Driver"/>
+ <service name="com.sun.star.sdbcx.Driver"/>
+ </implementation>
+</component>
diff --git a/connectivity/source/drivers/hsqldb/hsqldb.map b/connectivity/source/drivers/hsqldb/hsqldb.map
index b4fc53b320ef..b611aba02d5b 100644
--- a/connectivity/source/drivers/hsqldb/hsqldb.map
+++ b/connectivity/source/drivers/hsqldb/hsqldb.map
@@ -1,7 +1,6 @@
UDK_3_0_0 {
global:
component_getImplementationEnvironment;
- component_writeInfo;
component_getFactory;
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_openStream;
Java_com_sun_star_sdbcx_comp_hsqldb_StorageNativeOutputStream_write__Ljava_lang_String_2Ljava_lang_String_2_3BII;
diff --git a/connectivity/source/drivers/hsqldb/makefile.mk b/connectivity/source/drivers/hsqldb/makefile.mk
index e1a953055c04..5be6fa08cd7b 100644
--- a/connectivity/source/drivers/hsqldb/makefile.mk
+++ b/connectivity/source/drivers/hsqldb/makefile.mk
@@ -115,3 +115,11 @@ DEF1EXPORTFILE= exports.dxp
.INCLUDE : $(PRJ)$/target.pmk
+
+ALLTAR : $(MISC)/hsqldb.component
+
+$(MISC)/hsqldb.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ hsqldb.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt hsqldb.component
diff --git a/connectivity/source/drivers/jdbc/exports.dxp b/connectivity/source/drivers/jdbc/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/connectivity/source/drivers/jdbc/exports.dxp
+++ b/connectivity/source/drivers/jdbc/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/connectivity/source/drivers/jdbc/jdbc.component b/connectivity/source/drivers/jdbc/jdbc.component
new file mode 100644
index 000000000000..5d7db4690ba5
--- /dev/null
+++ b/connectivity/source/drivers/jdbc/jdbc.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.sdbc.JDBCDriver">
+ <service name="com.sun.star.sdbc.Driver"/>
+ </implementation>
+</component>
diff --git a/connectivity/source/drivers/jdbc/jdbc.mxp.map b/connectivity/source/drivers/jdbc/jdbc.mxp.map
index a4457e2478af..e02823e8c41b 100644
--- a/connectivity/source/drivers/jdbc/jdbc.mxp.map
+++ b/connectivity/source/drivers/jdbc/jdbc.mxp.map
@@ -1,5 +1,4 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
__mh_dylib_header
___builtin_delete
diff --git a/connectivity/source/drivers/jdbc/jservices.cxx b/connectivity/source/drivers/jdbc/jservices.cxx
index cadbbdcbcd49..85a8d37b9346 100644
--- a/connectivity/source/drivers/jdbc/jservices.cxx
+++ b/connectivity/source/drivers/jdbc/jservices.cxx
@@ -34,7 +34,6 @@ using namespace connectivity;
using ::rtl::OUString;
using ::com::sun::star::uno::Reference;
using ::com::sun::star::uno::Sequence;
-using ::com::sun::star::registry::XRegistryKey;
using ::com::sun::star::lang::XSingleServiceFactory;
using ::com::sun::star::lang::XMultiServiceFactory;
@@ -47,31 +46,6 @@ typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
rtl_ModuleCount* _pModCount
);
-//***************************************************************************************
-//
-// Die vorgeschriebene C-Api muss erfuellt werden!
-// Sie besteht aus drei Funktionen, die von dem Modul exportiert werden muessen.
-//
-
-//---------------------------------------------------------------------------------------
-void REGISTER_PROVIDER(
- const OUString& aServiceImplName,
- const Sequence< OUString>& Services,
- const Reference< ::com::sun::star::registry::XRegistryKey > & xKey)
-{
- OUString aMainKeyName;
- aMainKeyName = OUString::createFromAscii("/");
- aMainKeyName += aServiceImplName;
- aMainKeyName += OUString::createFromAscii("/UNO/SERVICES");
-
- Reference< ::com::sun::star::registry::XRegistryKey > xNewKey( xKey->createKey(aMainKeyName) );
- OSL_ENSURE(xNewKey.is(), "SBA::component_writeInfo : could not create a registry key !");
-
- for (sal_Int32 i=0; i<Services.getLength(); ++i)
- xNewKey->createKey(Services[i]);
-}
-
-
//---------------------------------------------------------------------------------------
struct ProviderRequest
{
@@ -122,31 +96,6 @@ component_getImplementationEnvironment(
}
//---------------------------------------------------------------------------------------
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void* /*pServiceManager*/,
- void* pRegistryKey
- )
-{
- if (pRegistryKey)
- try
- {
- Reference< ::com::sun::star::registry::XRegistryKey > xKey(reinterpret_cast< ::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
-
- REGISTER_PROVIDER(
- java_sql_Driver::getImplementationName_Static(),
- java_sql_Driver::getSupportedServiceNames_Static(), xKey);
-
- return sal_True;
- }
- catch (::com::sun::star::registry::InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "SBA::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
- }
-
- return sal_False;
-}
-
-//---------------------------------------------------------------------------------------
extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/connectivity/source/drivers/jdbc/makefile.mk b/connectivity/source/drivers/jdbc/makefile.mk
index 46619952163b..510daeac4a9f 100644
--- a/connectivity/source/drivers/jdbc/makefile.mk
+++ b/connectivity/source/drivers/jdbc/makefile.mk
@@ -110,3 +110,11 @@ DEF1EXPORTFILE= exports.dxp
.INCLUDE : $(PRJ)$/target.pmk
+
+ALLTAR : $(MISC)/jdbc.component
+
+$(MISC)/jdbc.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ jdbc.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt jdbc.component
diff --git a/connectivity/source/drivers/kab/KServices.cxx b/connectivity/source/drivers/kab/KServices.cxx
index 5a0f4c3f9917..6b7a1a39a667 100644
--- a/connectivity/source/drivers/kab/KServices.cxx
+++ b/connectivity/source/drivers/kab/KServices.cxx
@@ -30,13 +30,11 @@
#include "KDriver.hxx"
#include <cppuhelper/factory.hxx>
-#include <osl/diagnose.h>
using namespace connectivity::kab;
using ::rtl::OUString;
using ::com::sun::star::uno::Reference;
using ::com::sun::star::uno::Sequence;
-using ::com::sun::star::registry::XRegistryKey;
using ::com::sun::star::lang::XSingleServiceFactory;
using ::com::sun::star::lang::XMultiServiceFactory;
@@ -49,31 +47,6 @@ typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
rtl_ModuleCount* _pTemp
);
-//***************************************************************************************
-//
-// The following C Api must be provided!
-// It consists in three functions that must be exported by the module
-//
-
-//---------------------------------------------------------------------------------------
-void REGISTER_PROVIDER(
- const OUString& aServiceImplName,
- const Sequence< OUString>& Services,
- const Reference< ::com::sun::star::registry::XRegistryKey > & xKey)
-{
- OUString aMainKeyName;
- aMainKeyName = OUString::createFromAscii("/");
- aMainKeyName += aServiceImplName;
- aMainKeyName += OUString::createFromAscii("/UNO/SERVICES");
-
- Reference< ::com::sun::star::registry::XRegistryKey > xNewKey( xKey->createKey(aMainKeyName) );
- OSL_ENSURE(xNewKey.is(), "KAB::component_writeInfo : could not create a registry key !");
-
- for (sal_Int32 i=0; i<Services.getLength(); ++i)
- xNewKey->createKey(Services[i]);
-}
-
-
//---------------------------------------------------------------------------------------
struct ProviderRequest
{
@@ -123,31 +96,6 @@ extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnviron
}
//---------------------------------------------------------------------------------------
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void*,
- void* pRegistryKey
- )
-{
- if (pRegistryKey)
- try
- {
- Reference< ::com::sun::star::registry::XRegistryKey > xKey(reinterpret_cast< ::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
-
- REGISTER_PROVIDER(
- KabDriver::getImplementationName_Static(),
- KabDriver::getSupportedServiceNames_Static(), xKey);
-
- return sal_True;
- }
- catch (::com::sun::star::registry::InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "KAB::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
- }
-
- return sal_False;
-}
-
-//---------------------------------------------------------------------------------------
extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/connectivity/source/drivers/kab/exports.dxp b/connectivity/source/drivers/kab/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/connectivity/source/drivers/kab/exports.dxp
+++ b/connectivity/source/drivers/kab/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/connectivity/source/drivers/kab/kab1.component b/connectivity/source/drivers/kab/kab1.component
new file mode 100644
index 000000000000..77227501d36c
--- /dev/null
+++ b/connectivity/source/drivers/kab/kab1.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.sdbc.kab.Driver">
+ <service name="com.sun.star.sdbc.Driver"/>
+ </implementation>
+</component>
diff --git a/connectivity/source/drivers/kab/makefile.mk b/connectivity/source/drivers/kab/makefile.mk
index 219bdd6cd020..c085cddb2d3b 100644
--- a/connectivity/source/drivers/kab/makefile.mk
+++ b/connectivity/source/drivers/kab/makefile.mk
@@ -138,3 +138,11 @@ dummy:
.INCLUDE : $(PRJ)$/target.pmk
+
+ALLTAR : $(MISC)/kab1.component
+
+$(MISC)/kab1.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ kab1.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt kab1.component
diff --git a/connectivity/source/drivers/macab/MacabServices.cxx b/connectivity/source/drivers/macab/MacabServices.cxx
index b3c303324302..9d2e2faa0ca1 100755
--- a/connectivity/source/drivers/macab/MacabServices.cxx
+++ b/connectivity/source/drivers/macab/MacabServices.cxx
@@ -30,13 +30,11 @@
#include "MacabDriver.hxx"
#include <cppuhelper/factory.hxx>
-#include <osl/diagnose.h>
using namespace connectivity::macab;
using ::rtl::OUString;
using ::com::sun::star::uno::Reference;
using ::com::sun::star::uno::Sequence;
-using ::com::sun::star::registry::XRegistryKey;
using ::com::sun::star::lang::XSingleServiceFactory;
using ::com::sun::star::lang::XMultiServiceFactory;
@@ -49,31 +47,6 @@ typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
rtl_ModuleCount* _pTemp
);
-//***************************************************************************************
-//
-// The following C Api must be provided!
-// It consists in three functions that must be exported by the module
-//
-
-//---------------------------------------------------------------------------------------
-void REGISTER_PROVIDER(
- const OUString& aServiceImplName,
- const Sequence< OUString>& Services,
- const Reference< ::com::sun::star::registry::XRegistryKey > & xKey)
-{
- OUString aMainKeyName;
- aMainKeyName = OUString::createFromAscii("/");
- aMainKeyName += aServiceImplName;
- aMainKeyName += OUString::createFromAscii("/UNO/SERVICES");
-
- Reference< ::com::sun::star::registry::XRegistryKey > xNewKey( xKey->createKey(aMainKeyName) );
- OSL_ENSURE(xNewKey.is(), "MACAB::component_writeInfo : could not create a registry key !");
-
- for (sal_Int32 i=0; i<Services.getLength(); ++i)
- xNewKey->createKey(Services[i]);
-}
-
-
//---------------------------------------------------------------------------------------
struct ProviderRequest
{
@@ -123,31 +96,6 @@ extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnviron
}
//---------------------------------------------------------------------------------------
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void*,
- void* pRegistryKey
- )
-{
- if (pRegistryKey)
- try
- {
- Reference< ::com::sun::star::registry::XRegistryKey > xKey(reinterpret_cast< ::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
-
- REGISTER_PROVIDER(
- MacabDriver::getImplementationName_Static(),
- MacabDriver::getSupportedServiceNames_Static(), xKey);
-
- return sal_True;
- }
- catch (::com::sun::star::registry::InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "MACAB::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
- }
-
- return sal_False;
-}
-
-//---------------------------------------------------------------------------------------
extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/connectivity/source/drivers/macab/exports.dxp b/connectivity/source/drivers/macab/exports.dxp
index 9630d7e06768..f0e1c69934bc 100755
--- a/connectivity/source/drivers/macab/exports.dxp
+++ b/connectivity/source/drivers/macab/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/connectivity/source/drivers/macab/macab1.component b/connectivity/source/drivers/macab/macab1.component
new file mode 100644
index 000000000000..0a120c041883
--- /dev/null
+++ b/connectivity/source/drivers/macab/macab1.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.sdbc.macab.Driver">
+ <service name="com.sun.star.sdbc.Driver"/>
+ </implementation>
+</component>
diff --git a/connectivity/source/drivers/macab/makefile.mk b/connectivity/source/drivers/macab/makefile.mk
index 35532b15ec2d..0565d3171329 100755
--- a/connectivity/source/drivers/macab/makefile.mk
+++ b/connectivity/source/drivers/macab/makefile.mk
@@ -127,3 +127,11 @@ dummy:
.INCLUDE : $(PRJ)$/target.pmk
+
+ALLTAR : $(MISC)/macab1.component
+
+$(MISC)/macab1.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ macab1.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt macab1.component
diff --git a/connectivity/source/drivers/mozab/MServices.cxx b/connectivity/source/drivers/mozab/MServices.cxx
index 4e595dad57ed..d6a280985969 100644
--- a/connectivity/source/drivers/mozab/MServices.cxx
+++ b/connectivity/source/drivers/mozab/MServices.cxx
@@ -39,7 +39,6 @@ using namespace connectivity::mozab;
using ::rtl::OUString;
using ::com::sun::star::uno::Reference;
using ::com::sun::star::uno::Sequence;
-using ::com::sun::star::registry::XRegistryKey;
using ::com::sun::star::lang::XSingleServiceFactory;
using ::com::sun::star::lang::XMultiServiceFactory;
using ::com::sun::star::mozilla::XMozillaBootstrap;
@@ -53,31 +52,6 @@ typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
rtl_ModuleCount* _pTemp
);
-//***************************************************************************************
-//
-// Die vorgeschriebene C-Api muss erfuellt werden!
-// Sie besteht aus drei Funktionen, die von dem Modul exportiert werden muessen.
-//
-
-//---------------------------------------------------------------------------------------
-void REGISTER_PROVIDER(
- const OUString& aServiceImplName,
- const Sequence< OUString>& Services,
- const Reference< ::com::sun::star::registry::XRegistryKey > & xKey)
-{
- OUString aMainKeyName;
- aMainKeyName = OUString( RTL_CONSTASCII_USTRINGPARAM("/"));
- aMainKeyName += aServiceImplName;
- aMainKeyName += OUString( RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
-
- Reference< ::com::sun::star::registry::XRegistryKey > xNewKey( xKey->createKey(aMainKeyName) );
- OSL_ENSURE(xNewKey.is(), "MOZAB::component_writeInfo : could not create a registry key !");
-
- for (sal_Int32 i=0; i<Services.getLength(); ++i)
- xNewKey->createKey(Services[i]);
-}
-
-
//---------------------------------------------------------------------------------------
struct ProviderRequest
{
@@ -127,37 +101,6 @@ component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-//---------------------------------------------------------------------------------------
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void* /*pServiceManager*/,
- void* pRegistryKey
- )
-{
- if (pRegistryKey)
- try
- {
- Reference< ::com::sun::star::registry::XRegistryKey > xKey(reinterpret_cast< ::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
-
-
- REGISTER_PROVIDER(
- MozabDriver::getImplementationName_Static(),
- MozabDriver::getSupportedServiceNames_Static(), xKey);
-
- Sequence< ::rtl::OUString > aSNS( 1 );
- aSNS[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.mozilla.MozillaBootstrap"));
- REGISTER_PROVIDER(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.mozilla.MozillaBootstrap")),
- aSNS, xKey);
-
- return sal_True;
- }
- catch (::com::sun::star::registry::InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "Mozab::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
- }
-
- return sal_False;
-}
typedef void* (SAL_CALL * OMozillaBootstrap_CreateInstanceFunction)(const Reference< XMultiServiceFactory >& _rxFactory );
::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL createMozillaBootstrap(const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxFactory) throw( ::com::sun::star::uno::Exception )
{
diff --git a/connectivity/source/drivers/mozab/bootstrap/MMozillaBootstrap.cxx b/connectivity/source/drivers/mozab/bootstrap/MMozillaBootstrap.cxx
index 3a7c169d467d..aeef289bae20 100644
--- a/connectivity/source/drivers/mozab/bootstrap/MMozillaBootstrap.cxx
+++ b/connectivity/source/drivers/mozab/bootstrap/MMozillaBootstrap.cxx
@@ -238,7 +238,6 @@ Sequence< ::rtl::OUString > SAL_CALL MozillaBootstrap::getSupportedServiceNames(
#include <cppuhelper/factory.hxx>
using ::com::sun::star::uno::Reference;
using ::com::sun::star::uno::Sequence;
-using ::com::sun::star::registry::XRegistryKey;
using ::com::sun::star::lang::XSingleServiceFactory;
using ::com::sun::star::lang::XMultiServiceFactory;
@@ -251,50 +250,6 @@ component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-//---------------------------------------------------------------------------------------
-void REGISTER_PROVIDER(
- const ::rtl::OUString& aServiceImplName,
- const Sequence< ::rtl::OUString>& Services,
- const Reference< ::com::sun::star::registry::XRegistryKey > & xKey)
-{
- ::rtl::OUString aMainKeyName;
- aMainKeyName = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/"));
- aMainKeyName += aServiceImplName;
- aMainKeyName += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
-
- Reference< ::com::sun::star::registry::XRegistryKey > xNewKey( xKey->createKey(aMainKeyName) );
- OSL_ENSURE(xNewKey.is(), "MOZAB::component_writeInfo : could not create a registry key !");
-
- for (sal_Int32 i=0; i<Services.getLength(); ++i)
- xNewKey->createKey(Services[i]);
-}
-
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void* /*pServiceManager*/,
- void* pRegistryKey
- )
-{
- if (pRegistryKey)
- try
- {
- Reference< ::com::sun::star::registry::XRegistryKey > xKey(reinterpret_cast< ::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
-
- Sequence< ::rtl::OUString > aSNS( 1 );
- aSNS[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.mozilla.MozillaBootstrap"));
- REGISTER_PROVIDER(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.mozilla.MozillaBootstrap")),
- aSNS, xKey);
-
- return sal_True;
- }
- catch (::com::sun::star::registry::InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "Mozab::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
- }
-
- return sal_False;
-}
-
static Reference< XInterface > SAL_CALL createInstance( const Reference< XMultiServiceFactory >& rServiceManager )
{
MozillaBootstrap * pBootstrap = reinterpret_cast<MozillaBootstrap*>(OMozillaBootstrap_CreateInstance(rServiceManager));
diff --git a/connectivity/source/drivers/mozab/bootstrap/makefile.mk b/connectivity/source/drivers/mozab/bootstrap/makefile.mk
index 6a4172da205d..b44436e488ce 100644
--- a/connectivity/source/drivers/mozab/bootstrap/makefile.mk
+++ b/connectivity/source/drivers/mozab/bootstrap/makefile.mk
@@ -78,6 +78,14 @@ SHL1STDLIBS=\
$(SALLIB) \
$(COMPHELPERLIB)
+ALLTAR : $(MISC)/mozbootstrap.component
+
+$(MISC)/mozbootstrap.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt mozbootstrap.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt mozbootstrap.component
+
.ELSE
SLOFILES += \
$(SLO)$/MNSInit.obj \
@@ -90,4 +98,3 @@ SLOFILES += \
# --- Targets ----------------------------------
.INCLUDE : target.mk
-
diff --git a/connectivity/source/drivers/mozab/bootstrap/mozbootstrap.component b/connectivity/source/drivers/mozab/bootstrap/mozbootstrap.component
new file mode 100644
index 000000000000..5da158924a06
--- /dev/null
+++ b/connectivity/source/drivers/mozab/bootstrap/mozbootstrap.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.mozilla.MozillaBootstrap">
+ <service name="com.sun.star.mozilla.MozillaBootstrap"/>
+ </implementation>
+</component>
diff --git a/connectivity/source/drivers/mozab/exports.dxp b/connectivity/source/drivers/mozab/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/connectivity/source/drivers/mozab/exports.dxp
+++ b/connectivity/source/drivers/mozab/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/connectivity/source/drivers/mozab/makefile.mk b/connectivity/source/drivers/mozab/makefile.mk
index b1e12fde6f8a..852560f1c9a7 100644
--- a/connectivity/source/drivers/mozab/makefile.mk
+++ b/connectivity/source/drivers/mozab/makefile.mk
@@ -184,3 +184,11 @@ $(MISC)$/$(SHL2TARGET).flt: makefile.mk
@echo _TI >$@
@echo _real >>$@
+
+ALLTAR : $(MISC)/mozab.component
+
+$(MISC)/mozab.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ mozab.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt mozab.component
diff --git a/connectivity/source/drivers/mozab/mozab.component b/connectivity/source/drivers/mozab/mozab.component
new file mode 100644
index 000000000000..70f5da3bfe72
--- /dev/null
+++ b/connectivity/source/drivers/mozab/mozab.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.mozilla.MozillaBootstrap">
+ <service name="com.sun.star.mozilla.MozillaBootstrap"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.sdbc.MozabDriver">
+ <service name="com.sun.star.sdbc.Driver"/>
+ </implementation>
+</component>
diff --git a/connectivity/source/drivers/mysql/Yservices.cxx b/connectivity/source/drivers/mysql/Yservices.cxx
index 0927f191e6e6..b892e2f51066 100644
--- a/connectivity/source/drivers/mysql/Yservices.cxx
+++ b/connectivity/source/drivers/mysql/Yservices.cxx
@@ -29,13 +29,11 @@
#include "precompiled_connectivity.hxx"
#include "mysql/YDriver.hxx"
#include <cppuhelper/factory.hxx>
-#include <osl/diagnose.h>
using namespace connectivity::mysql;
using ::rtl::OUString;
using ::com::sun::star::uno::Reference;
using ::com::sun::star::uno::Sequence;
-using ::com::sun::star::registry::XRegistryKey;
using ::com::sun::star::lang::XSingleServiceFactory;
using ::com::sun::star::lang::XMultiServiceFactory;
@@ -48,31 +46,6 @@ typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
rtl_ModuleCount* _pT
);
-//***************************************************************************************
-//
-// Die vorgeschriebene C-Api muss erfuellt werden!
-// Sie besteht aus drei Funktionen, die von dem Modul exportiert werden muessen.
-//
-
-//---------------------------------------------------------------------------------------
-void REGISTER_PROVIDER(
- const OUString& aServiceImplName,
- const Sequence< OUString>& Services,
- const Reference< ::com::sun::star::registry::XRegistryKey > & xKey)
-{
- OUString aMainKeyName;
- aMainKeyName = OUString::createFromAscii("/");
- aMainKeyName += aServiceImplName;
- aMainKeyName += OUString::createFromAscii("/UNO/SERVICES");
-
- Reference< ::com::sun::star::registry::XRegistryKey > xNewKey( xKey->createKey(aMainKeyName) );
- OSL_ENSURE(xNewKey.is(), "ADABAS::component_writeInfo : could not create a registry key !");
-
- for (sal_Int32 i=0; i<Services.getLength(); ++i)
- xNewKey->createKey(Services[i]);
-}
-
-
//---------------------------------------------------------------------------------------
struct ProviderRequest
{
@@ -123,31 +96,6 @@ component_getImplementationEnvironment(
}
//---------------------------------------------------------------------------------------
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void* /*pServiceManager*/,
- void* pRegistryKey
- )
-{
- if (pRegistryKey)
- try
- {
- Reference< ::com::sun::star::registry::XRegistryKey > xKey(reinterpret_cast< ::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
-
- REGISTER_PROVIDER(
- ODriverDelegator::getImplementationName_Static(),
- ODriverDelegator::getSupportedServiceNames_Static(), xKey);
-
- return sal_True;
- }
- catch (::com::sun::star::registry::InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "ODBC::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
- }
-
- return sal_False;
-}
-
-//---------------------------------------------------------------------------------------
extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/connectivity/source/drivers/mysql/exports.dxp b/connectivity/source/drivers/mysql/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/connectivity/source/drivers/mysql/exports.dxp
+++ b/connectivity/source/drivers/mysql/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/connectivity/source/drivers/mysql/makefile.mk b/connectivity/source/drivers/mysql/makefile.mk
index fbb68321cb01..453f4b652f21 100644
--- a/connectivity/source/drivers/mysql/makefile.mk
+++ b/connectivity/source/drivers/mysql/makefile.mk
@@ -82,3 +82,11 @@ DEF1EXPORTFILE= exports.dxp
.INCLUDE : $(PRJ)$/target.pmk
+
+ALLTAR : $(MISC)/mysql.component
+
+$(MISC)/mysql.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ mysql.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt mysql.component
diff --git a/connectivity/source/drivers/mysql/mysql.component b/connectivity/source/drivers/mysql/mysql.component
new file mode 100644
index 000000000000..ced2297fa07f
--- /dev/null
+++ b/connectivity/source/drivers/mysql/mysql.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="org.openoffice.comp.drivers.MySQL.Driver">
+ <service name="com.sun.star.sdbc.Driver"/>
+ <service name="com.sun.star.sdbcx.Driver"/>
+ </implementation>
+</component>
diff --git a/connectivity/source/drivers/odbc/makefile.mk b/connectivity/source/drivers/odbc/makefile.mk
index 508cbfb6df63..426c75bf0142 100644
--- a/connectivity/source/drivers/odbc/makefile.mk
+++ b/connectivity/source/drivers/odbc/makefile.mk
@@ -76,3 +76,11 @@ SHL1VERSIONMAP=$(SOLARENV)/src/component.map
# --- Targets ----------------------------------
.INCLUDE : $(PRJ)$/target.pmk
+
+ALLTAR : $(MISC)/odbc.component
+
+$(MISC)/odbc.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ odbc.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt odbc.component
diff --git a/connectivity/source/drivers/odbc/odbc.component b/connectivity/source/drivers/odbc/odbc.component
new file mode 100644
index 000000000000..d4e6bc127da2
--- /dev/null
+++ b/connectivity/source/drivers/odbc/odbc.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.sdbc.ODBCDriver">
+ <service name="com.sun.star.sdbc.Driver"/>
+ </implementation>
+</component>
diff --git a/connectivity/source/drivers/odbc/oservices.cxx b/connectivity/source/drivers/odbc/oservices.cxx
index 21bc448a5708..1347a00ea4d4 100644
--- a/connectivity/source/drivers/odbc/oservices.cxx
+++ b/connectivity/source/drivers/odbc/oservices.cxx
@@ -30,13 +30,11 @@
#include "ORealDriver.hxx"
#include "odbc/ODriver.hxx"
#include <cppuhelper/factory.hxx>
-#include <osl/diagnose.h>
using namespace connectivity::odbc;
using ::rtl::OUString;
using ::com::sun::star::uno::Reference;
using ::com::sun::star::uno::Sequence;
-using ::com::sun::star::registry::XRegistryKey;
using ::com::sun::star::lang::XSingleServiceFactory;
using ::com::sun::star::lang::XMultiServiceFactory;
@@ -49,31 +47,6 @@ typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
rtl_ModuleCount* _pTemp
);
-//***************************************************************************************
-//
-// Die vorgeschriebene C-Api muss erfuellt werden!
-// Sie besteht aus drei Funktionen, die von dem Modul exportiert werden muessen.
-//
-
-//---------------------------------------------------------------------------------------
-void REGISTER_PROVIDER(
- const OUString& aServiceImplName,
- const Sequence< OUString>& Services,
- const Reference< ::com::sun::star::registry::XRegistryKey > & xKey)
-{
- OUString aMainKeyName;
- aMainKeyName = OUString::createFromAscii("/");
- aMainKeyName += aServiceImplName;
- aMainKeyName += OUString::createFromAscii("/UNO/SERVICES");
-
- Reference< ::com::sun::star::registry::XRegistryKey > xNewKey( xKey->createKey(aMainKeyName) );
- OSL_ENSURE(xNewKey.is(), "ODBC::component_writeInfo : could not create a registry key !");
-
- for (sal_Int32 i=0; i<Services.getLength(); ++i)
- xNewKey->createKey(Services[i]);
-}
-
-
//---------------------------------------------------------------------------------------
struct ProviderRequest
{
@@ -124,31 +97,6 @@ component_getImplementationEnvironment(
}
//---------------------------------------------------------------------------------------
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void* /*pServiceManager*/,
- void* pRegistryKey
- )
-{
- if (pRegistryKey)
- try
- {
- Reference< ::com::sun::star::registry::XRegistryKey > xKey(reinterpret_cast< ::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
-
- REGISTER_PROVIDER(
- ODBCDriver::getImplementationName_Static(),
- ODBCDriver::getSupportedServiceNames_Static(), xKey);
-
- return sal_True;
- }
- catch (::com::sun::star::registry::InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "ODBC::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
- }
-
- return sal_False;
-}
-
-//---------------------------------------------------------------------------------------
extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/connectivity/source/manager/exports.dxp b/connectivity/source/manager/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/connectivity/source/manager/exports.dxp
+++ b/connectivity/source/manager/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/connectivity/source/manager/makefile.mk b/connectivity/source/manager/makefile.mk
index 52ec191ec836..4880407952f6 100644
--- a/connectivity/source/manager/makefile.mk
+++ b/connectivity/source/manager/makefile.mk
@@ -76,4 +76,10 @@ DEF1EXPORTFILE= exports.dxp
.INCLUDE : target.mk
+ALLTAR : $(MISC)/sdbc2.component
+$(MISC)/sdbc2.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ sdbc2.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt sdbc2.component
diff --git a/connectivity/source/manager/mregistration.cxx b/connectivity/source/manager/mregistration.cxx
index f3bdf74c9574..16b88c071493 100644
--- a/connectivity/source/manager/mregistration.cxx
+++ b/connectivity/source/manager/mregistration.cxx
@@ -36,7 +36,6 @@
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::lang;
-using namespace ::com::sun::star::registry;
//==========================================================================
//= registration
@@ -51,38 +50,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(const
}
//---------------------------------------------------------------------------------------
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(void* /*_pServiceManager*/, com::sun::star::registry::XRegistryKey* _pRegistryKey)
-{
-
-
- sal_Bool bReturn = sal_False;
-
- try
- {
- ::rtl::OUString sMainKeyName = ::rtl::OUString::createFromAscii("/");
- sMainKeyName += ::drivermanager::OSDBCDriverManager::getImplementationName_static();
- sMainKeyName += ::rtl::OUString::createFromAscii("/UNO/SERVICES");
- Reference< XRegistryKey > xMainKey = _pRegistryKey->createKey(sMainKeyName);
- if (xMainKey.is())
- {
- Sequence< ::rtl::OUString > sServices(::drivermanager::OSDBCDriverManager::getSupportedServiceNames_static());
- const ::rtl::OUString* pBegin = sServices.getConstArray();
- const ::rtl::OUString* pEnd = pBegin + sServices.getLength();
- for (;pBegin != pEnd ; ++pBegin)
- xMainKey->createKey(*pBegin);
- bReturn = sal_True;
- }
- }
- catch(InvalidRegistryException&)
- {
- }
- catch(InvalidValueException&)
- {
- }
- return bReturn;
-}
-
-//---------------------------------------------------------------------------------------
SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(const sal_Char* _pImplName, ::com::sun::star::lang::XMultiServiceFactory* _pServiceManager, void* /*_pRegistryKey*/)
{
void* pRet = NULL;
diff --git a/connectivity/source/manager/sdbc.mxp.map b/connectivity/source/manager/sdbc.mxp.map
index 14e33ebafb65..431725adbbec 100644
--- a/connectivity/source/manager/sdbc.mxp.map
+++ b/connectivity/source/manager/sdbc.mxp.map
@@ -1,5 +1,4 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
__mh_dylib_header
___builtin_delete
diff --git a/connectivity/source/manager/sdbc2.component b/connectivity/source/manager/sdbc2.component
new file mode 100644
index 000000000000..6cce2b1d9fde
--- /dev/null
+++ b/connectivity/source/manager/sdbc2.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.sdbc.OSDBCDriverManager">
+ <service name="com.sun.star.sdbc.DriverManager"/>
+ </implementation>
+</component>
diff --git a/cppu/inc/uno/lbnames.h b/cppu/inc/uno/lbnames.h
index da12caa1e276..4bca6a8a9dd5 100644
--- a/cppu/inc/uno/lbnames.h
+++ b/cppu/inc/uno/lbnames.h
@@ -29,49 +29,6 @@
#ifdef __cplusplus
-/* environment type names for supported compilers */
-#if defined (_MSC_VER)
-#if (_MSC_VER < 1000)
-#error "ms visual c++ version must be at least 4.2"
-#elif (_MSC_VER < 1100) // MSVC 4.x
-#pragma warning( disable: 4290 )
-#define TMP_CPPU_ENV msci
-#elif (_MSC_VER < 1600) // MSVC 5-9
-#define TMP_CPPU_ENV msci
-#else
-#error "ms visual c++ version must be between 4.2 and 9.x"
-#endif /* (_MSC_VER < 1000) */
-/* sunpro cc */
-#elif defined (__SUNPRO_CC)
-#if ((__SUNPRO_CC >= 0x5000 && __SUNPRO_CC < 0x6000) || (__SUNPRO_CC >= 0x500 && __SUNPRO_CC < 0x600))
-#define TMP_CPPU_ENV sunpro5
-#elif
-#error "sunpro cc version must be 5.x"
-provoking error here, because PP ignores #error
-#endif /* defined (__SUNPRO_CC) */
-/* g++ 2.x, 3.0 */
-#elif defined (__GNUC__)
-#if (__GNUC__ == 2 && __GNUC_MINOR__ == 91)
-#define TMP_CPPU_ENV gcc2
-#elif (__GNUC__ == 2 && __GNUC_MINOR__ == 95)
-#define TMP_CPPU_ENV gcc2
-#elif (__GNUC__ == 2)
-#error "Tested gcc 2 versions are 2.91 and 2.95. Patch uno/lbnames.h to try your gcc 2 version."
-#elif (__GNUC__ == 3 && __GNUC_MINOR__ <= 4)
-#define __CPPU_ENV gcc3
-#elif (__GNUC__ == 4 && __GNUC_MINOR__ <= 4)
-#define __CPPU_ENV gcc3
-#elif (__GNUC__ == 3)
-#error "Tested gcc 3 version is <= 3.4. Patch uno/lbnames.h to try your gcc 3 version."
-#else
-#error "Supported gcc majors are 2 , 3 and 4 <= 4.4. Unsupported gcc major version."
-#endif /* defined (__GNUC__) */
-#endif /* defined (_MSC_VER) */
-
-#if (! defined (CPPU_ENV) && defined (TMP_CPPU_ENV))
-#define CPPU_ENV TMP_CPPU_ENV
-#endif
-
#ifdef CPPU_ENV
#define CPPU_STRINGIFY_EX( x ) #x
@@ -87,8 +44,6 @@ provoking error here, because PP ignores #error
#endif /* CPPU_ENV */
-#undef TMP_CPPU_ENV
-
#endif /* __cplusplus */
/** Environment type name for binary C UNO. */
diff --git a/cppu/source/threadpool/current.cxx b/cppu/source/threadpool/current.cxx
index db814a50991b..23bd52ca1917 100644
--- a/cppu/source/threadpool/current.cxx
+++ b/cppu/source/threadpool/current.cxx
@@ -106,11 +106,9 @@ static typelib_InterfaceTypeDescription * get_type_XCurrentContext()
1, aParameters, 1, pExceptions );
typelib_typedescription_register( (typelib_TypeDescription**)&pMethod );
typelib_typedescription_release( (typelib_TypeDescription*)pMethod );
-#if ! defined CPPU_LEAK_STATIC_DATA
- // another static ref
+ // another static ref:
++reinterpret_cast< typelib_TypeDescription * >( pTD )->
nStaticRefCount;
-#endif
s_type_XCurrentContext = pTD;
}
}
diff --git a/cppu/source/threadpool/jobqueue.cxx b/cppu/source/threadpool/jobqueue.cxx
index 2604af98dee4..6029505fe4ee 100644
--- a/cppu/source/threadpool/jobqueue.cxx
+++ b/cppu/source/threadpool/jobqueue.cxx
@@ -42,6 +42,7 @@ namespace cppu_threadpool {
m_cndWait( osl_createCondition() )
{
osl_resetCondition( m_cndWait );
+ m_DisposedCallerAdmin = DisposedCallerAdmin::getInstance();
}
JobQueue::~JobQueue()
@@ -68,7 +69,7 @@ namespace cppu_threadpool {
{
// synchronize with the dispose calls
MutexGuard guard( m_mutex );
- if( DisposedCallerAdmin::getInstance()->isDisposed( nDisposeId ) )
+ if( m_DisposedCallerAdmin->isDisposed( nDisposeId ) )
{
return 0;
}
diff --git a/cppu/source/threadpool/jobqueue.hxx b/cppu/source/threadpool/jobqueue.hxx
index 5f610b4a2fce..78202573403e 100644
--- a/cppu/source/threadpool/jobqueue.hxx
+++ b/cppu/source/threadpool/jobqueue.hxx
@@ -34,6 +34,8 @@
#include <osl/conditn.h>
#include <osl/mutex.hxx>
+#include <boost/shared_ptr.hpp>
+
namespace cppu_threadpool
{
extern "C" typedef void (SAL_CALL RequestFun)(void *);
@@ -48,6 +50,9 @@ namespace cppu_threadpool
typedef ::std::list < sal_Int64 > CallStackList;
+ class DisposedCallerAdmin;
+ typedef boost::shared_ptr<DisposedCallerAdmin> DisposedCallerAdminHolder;
+
class JobQueue
{
public:
@@ -73,6 +78,7 @@ namespace cppu_threadpool
sal_Int32 m_nToDo;
sal_Bool m_bSuspended;
oslCondition m_cndWait;
+ DisposedCallerAdminHolder m_DisposedCallerAdmin;
};
}
diff --git a/cppu/source/threadpool/thread.cxx b/cppu/source/threadpool/thread.cxx
index b043dd4e907a..00c91500d1e5 100644
--- a/cppu/source/threadpool/thread.cxx
+++ b/cppu/source/threadpool/thread.cxx
@@ -31,6 +31,8 @@
#include <osl/diagnose.h>
#include <uno/threadpool.h>
+#include <rtl/instance.hxx>
+
#include "thread.hxx"
#include "jobqueue.hxx"
#include "threadpool.hxx"
@@ -98,20 +100,17 @@ namespace cppu_threadpool {
} while( pCurrent );
}
- ThreadAdmin* ThreadAdmin::getInstance()
+ struct theThreadAdmin : public rtl::StaticWithInit< ThreadAdminHolder, theThreadAdmin >
{
- static ThreadAdmin *pThreadAdmin = 0;
- if( ! pThreadAdmin )
- {
- MutexGuard guard( Mutex::getGlobalMutex() );
- if( ! pThreadAdmin )
- {
- static ThreadAdmin admin;
- pThreadAdmin = &admin;
- }
+ ThreadAdminHolder operator () () {
+ ThreadAdminHolder aRet(new ThreadAdmin());
+ return aRet;
}
- return pThreadAdmin;
+ };
+ ThreadAdminHolder& ThreadAdmin::getInstance()
+ {
+ return theThreadAdmin::get();
}
// ----------------------------------------------------------------------------------
@@ -119,12 +118,13 @@ namespace cppu_threadpool {
const ByteSequence &aThreadId,
sal_Bool bAsynchron )
: m_thread( 0 )
+ , m_aThreadAdmin( ThreadAdmin::getInstance() )
, m_pQueue( pQueue )
, m_aThreadId( aThreadId )
, m_bAsynchron( bAsynchron )
, m_bDeleteSelf( sal_True )
{
- ThreadAdmin::getInstance()->add( this );
+ m_aThreadAdmin->add( this );
}
@@ -166,7 +166,7 @@ namespace cppu_threadpool {
void ORequestThread::onTerminated()
{
- ThreadAdmin::getInstance()->remove( this );
+ m_aThreadAdmin->remove( this );
if( m_bDeleteSelf )
{
delete this;
@@ -175,6 +175,8 @@ namespace cppu_threadpool {
void ORequestThread::run()
{
+ ThreadPoolHolder theThreadPool = cppu_threadpool::ThreadPool::getInstance();
+
while ( m_pQueue )
{
if( ! m_bAsynchron )
@@ -197,7 +199,7 @@ namespace cppu_threadpool {
if( m_pQueue->isEmpty() )
{
- ThreadPool::getInstance()->revokeQueue( m_aThreadId , m_bAsynchron );
+ theThreadPool->revokeQueue( m_aThreadId , m_bAsynchron );
// Note : revokeQueue might have failed because m_pQueue.isEmpty()
// may be false (race).
}
@@ -211,7 +213,7 @@ namespace cppu_threadpool {
uno_releaseIdFromCurrentThread();
}
- cppu_threadpool::ThreadPool::getInstance()->waitInPool( this );
+ theThreadPool->waitInPool( this );
}
}
}
diff --git a/cppu/source/threadpool/thread.hxx b/cppu/source/threadpool/thread.hxx
index 639f26c5339b..2f7791daf7e5 100644
--- a/cppu/source/threadpool/thread.hxx
+++ b/cppu/source/threadpool/thread.hxx
@@ -37,6 +37,8 @@
namespace cppu_threadpool {
class JobQueue;
+ class ThreadAdmin;
+ typedef boost::shared_ptr<ThreadAdmin> ThreadAdminHolder;
//-----------------------------------------
// private thread class for the threadpool
@@ -61,6 +63,7 @@ namespace cppu_threadpool {
private:
oslThread m_thread;
+ ThreadAdminHolder m_aThreadAdmin;
JobQueue *m_pQueue;
::rtl::ByteSequence m_aThreadId;
sal_Bool m_bAsynchron;
@@ -71,7 +74,7 @@ namespace cppu_threadpool {
{
public:
~ThreadAdmin ();
- static ThreadAdmin *getInstance();
+ static ThreadAdminHolder &getInstance();
void add( ORequestThread * );
void remove( ORequestThread * );
void join();
diff --git a/cppu/source/threadpool/threadpool.cxx b/cppu/source/threadpool/threadpool.cxx
index accf585957f8..b7df159a80b9 100644
--- a/cppu/source/threadpool/threadpool.cxx
+++ b/cppu/source/threadpool/threadpool.cxx
@@ -33,6 +33,7 @@
#include <osl/diagnose.h>
#include <osl/mutex.hxx>
#include <osl/thread.h>
+#include <rtl/instance.hxx>
#include <uno/threadpool.h>
@@ -44,19 +45,17 @@ using namespace ::osl;
namespace cppu_threadpool
{
- DisposedCallerAdmin *DisposedCallerAdmin::getInstance()
+ struct theDisposedCallerAdmin :
+ public rtl::StaticWithInit< DisposedCallerAdminHolder, theDisposedCallerAdmin >
{
- static DisposedCallerAdmin *pDisposedCallerAdmin = 0;
- if( ! pDisposedCallerAdmin )
- {
- MutexGuard guard( Mutex::getGlobalMutex() );
- if( ! pDisposedCallerAdmin )
- {
- static DisposedCallerAdmin admin;
- pDisposedCallerAdmin = &admin;
- }
+ DisposedCallerAdminHolder operator () () {
+ return DisposedCallerAdminHolder(new DisposedCallerAdmin());
}
- return pDisposedCallerAdmin;
+ };
+
+ DisposedCallerAdminHolder DisposedCallerAdmin::getInstance()
+ {
+ return theDisposedCallerAdmin::get();
}
DisposedCallerAdmin::~DisposedCallerAdmin()
@@ -107,6 +106,21 @@ namespace cppu_threadpool
//-------------------------------------------------------------------------------
+
+ struct theThreadPool :
+ public rtl::StaticWithInit< ThreadPoolHolder, theThreadPool >
+ {
+ ThreadPoolHolder operator () () {
+ ThreadPoolHolder aRet(new ThreadPool());
+ return aRet;
+ }
+ };
+
+ ThreadPool::ThreadPool()
+ {
+ m_DisposedCallerAdmin = DisposedCallerAdmin::getInstance();
+ }
+
ThreadPool::~ThreadPool()
{
#if OSL_DEBUG_LEVEL > 1
@@ -116,19 +130,9 @@ namespace cppu_threadpool
}
#endif
}
- ThreadPool *ThreadPool::getInstance()
+ ThreadPoolHolder ThreadPool::getInstance()
{
- static ThreadPool *pThreadPool = 0;
- if( ! pThreadPool )
- {
- MutexGuard guard( Mutex::getGlobalMutex() );
- if( ! pThreadPool )
- {
- static ThreadPool pool;
- pThreadPool = &pool;
- }
- }
- return pThreadPool;
+ return theThreadPool::get();
}
@@ -136,7 +140,7 @@ namespace cppu_threadpool
{
if( nDisposeId )
{
- DisposedCallerAdmin::getInstance()->dispose( nDisposeId );
+ m_DisposedCallerAdmin->dispose( nDisposeId );
MutexGuard guard( m_mutex );
for( ThreadIdHashMap::iterator ii = m_mapQueue.begin() ;
@@ -171,7 +175,7 @@ namespace cppu_threadpool
void ThreadPool::stopDisposing( sal_Int64 nDisposeId )
{
- DisposedCallerAdmin::getInstance()->stopDisposing( nDisposeId );
+ m_DisposedCallerAdmin->stopDisposing( nDisposeId );
}
/******************
@@ -400,7 +404,7 @@ struct uno_ThreadPool_Hash
-typedef ::std::hash_set< uno_ThreadPool, uno_ThreadPool_Hash, uno_ThreadPool_Equal > ThreadpoolHashSet;
+typedef ::std::hash_map< uno_ThreadPool, ThreadPoolHolder, uno_ThreadPool_Hash, uno_ThreadPool_Equal > ThreadpoolHashSet;
static ThreadpoolHashSet *g_pThreadpoolHashSet;
@@ -420,7 +424,7 @@ uno_threadpool_create() SAL_THROW_EXTERN_C()
// Just ensure that the handle is unique in the process (via heap)
uno_ThreadPool h = new struct _uno_ThreadPool;
- g_pThreadpoolHashSet->insert( h );
+ g_pThreadpoolHashSet->insert( ThreadpoolHashSet::value_type(h, ThreadPool::getInstance()) );
return h;
}
diff --git a/cppu/source/threadpool/threadpool.hxx b/cppu/source/threadpool/threadpool.hxx
index cb580eaf92a2..e1c9a127fa55 100644
--- a/cppu/source/threadpool/threadpool.hxx
+++ b/cppu/source/threadpool/threadpool.hxx
@@ -30,6 +30,8 @@
#include <rtl/byteseq.hxx>
+#include <boost/shared_ptr.hpp>
+
#include "jobqueue.hxx"
@@ -76,12 +78,15 @@ namespace cppu_threadpool {
typedef ::std::list < struct ::cppu_threadpool::WaitingThread * > WaitingThreadList;
+ class DisposedCallerAdmin;
+ typedef boost::shared_ptr<DisposedCallerAdmin> DisposedCallerAdminHolder;
+
class DisposedCallerAdmin
{
public:
~DisposedCallerAdmin();
- static DisposedCallerAdmin *getInstance();
+ static DisposedCallerAdminHolder getInstance();
void dispose( sal_Int64 nDisposeId );
void stopDisposing( sal_Int64 nDisposeId );
@@ -92,11 +97,15 @@ namespace cppu_threadpool {
DisposedCallerList m_lst;
};
+ class ThreadPool;
+ typedef boost::shared_ptr<ThreadPool> ThreadPoolHolder;
+
class ThreadPool
{
public:
+ ThreadPool();
~ThreadPool();
- static ThreadPool *getInstance();
+ static ThreadPoolHolder getInstance();
void dispose( sal_Int64 nDisposeId );
void stopDisposing( sal_Int64 nDisposeId );
@@ -124,6 +133,8 @@ namespace cppu_threadpool {
::osl::Mutex m_mutexWaitingThreadList;
WaitingThreadList m_lstThreads;
+
+ DisposedCallerAdminHolder m_DisposedCallerAdmin;
};
} // end namespace cppu_threadpool
diff --git a/cppu/source/typelib/static_types.cxx b/cppu/source/typelib/static_types.cxx
index 5f1bbaad514a..605bc5aadbdc 100644
--- a/cppu/source/typelib/static_types.cxx
+++ b/cppu/source/typelib/static_types.cxx
@@ -168,10 +168,8 @@ typelib_TypeDescriptionReference ** SAL_CALL typelib_static_type_getByTypeClass(
OUString sTypeName( RTL_CONSTASCII_USTRINGPARAM("type") );
::typelib_typedescriptionreference_new(
&s_aTypes[typelib_TypeClass_TYPE], typelib_TypeClass_TYPE, sTypeName.pData );
-#ifndef CPPU_LEAK_STATIC_DATA
- // another static ref
+ // another static ref:
++s_aTypes[typelib_TypeClass_TYPE]->nStaticRefCount;
-#endif
}
// any
if (! s_aTypes[typelib_TypeClass_ANY])
@@ -179,10 +177,8 @@ typelib_TypeDescriptionReference ** SAL_CALL typelib_static_type_getByTypeClass(
OUString sTypeName( RTL_CONSTASCII_USTRINGPARAM("any") );
::typelib_typedescriptionreference_new(
&s_aTypes[typelib_TypeClass_ANY], typelib_TypeClass_ANY, sTypeName.pData );
-#ifndef CPPU_LEAK_STATIC_DATA
- // another static ref
+ // another static ref:
++s_aTypes[typelib_TypeClass_ANY]->nStaticRefCount;
-#endif
}
// string
if (! s_aTypes[typelib_TypeClass_STRING])
@@ -190,10 +186,8 @@ typelib_TypeDescriptionReference ** SAL_CALL typelib_static_type_getByTypeClass(
OUString sTypeName( RTL_CONSTASCII_USTRINGPARAM("string") );
::typelib_typedescriptionreference_new(
&s_aTypes[typelib_TypeClass_STRING], typelib_TypeClass_STRING, sTypeName.pData );
-#ifndef CPPU_LEAK_STATIC_DATA
- // another static ref
+ // another static ref:
++s_aTypes[typelib_TypeClass_STRING]->nStaticRefCount;
-#endif
}
// XInterface
if (! s_aTypes[typelib_TypeClass_INTERFACE])
@@ -220,10 +214,8 @@ typelib_TypeDescriptionReference ** SAL_CALL typelib_static_type_getByTypeClass(
::typelib_typedescription_register( (typelib_TypeDescription **)&pTD );
::typelib_typedescriptionreference_acquire(
s_aTypes[typelib_TypeClass_INTERFACE] = ((typelib_TypeDescription *)pTD)->pWeakRef );
-#ifndef CPPU_LEAK_STATIC_DATA
- // another static ref
+ // another static ref:
++s_aTypes[typelib_TypeClass_INTERFACE]->nStaticRefCount;
-#endif
::typelib_typedescription_release( (typelib_TypeDescription*)pTD );
::typelib_typedescriptionreference_release( pMembers[0] );
@@ -252,10 +244,8 @@ typelib_TypeDescriptionReference ** SAL_CALL typelib_static_type_getByTypeClass(
typelib_typedescription_register( &pTD1 );
typelib_typedescriptionreference_acquire(
s_aTypes[typelib_TypeClass_EXCEPTION] = pTD1->pWeakRef );
-#ifndef CPPU_LEAK_STATIC_DATA
- // another static ref
+ // another static ref:
++s_aTypes[typelib_TypeClass_EXCEPTION]->nStaticRefCount;
-#endif
// RuntimeException
OUString sTypeName2( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.uno.RuntimeException") );
::typelib_typedescription_new(
@@ -302,10 +292,8 @@ typelib_TypeDescriptionReference ** SAL_CALL typelib_static_type_getByTypeClass(
{
OUString aTypeName( OUString::createFromAscii( s_aTypeNames[eTypeClass] ) );
::typelib_typedescriptionreference_new( &s_aTypes[eTypeClass], eTypeClass, aTypeName.pData );
-#ifndef CPPU_LEAK_STATIC_DATA
- // another static ref
+ // another static ref:
++s_aTypes[eTypeClass]->nStaticRefCount;
-#endif
}
}
}
@@ -327,10 +315,8 @@ void SAL_CALL typelib_static_type_init(
OUString aTypeName( OUString::createFromAscii( pTypeName ) );
::typelib_typedescriptionreference_new( ppRef, eTypeClass, aTypeName.pData );
-#ifndef CPPU_LEAK_STATIC_DATA
- // another static ref
+ // another static ref:
++((*ppRef)->nStaticRefCount);
-#endif
}
}
}
@@ -364,10 +350,8 @@ void SAL_CALL typelib_static_sequence_type_init(
*ppRef = (typelib_TypeDescriptionReference *)pReg;
OSL_ASSERT( *ppRef == pReg->pWeakRef );
}
-#ifndef CPPU_LEAK_STATIC_DATA
- // another static ref
+ // another static ref:
++((*ppRef)->nStaticRefCount);
-#endif
}
}
}
@@ -450,10 +434,8 @@ void init(
*ppRef = (typelib_TypeDescriptionReference *)pReg;
OSL_ASSERT( *ppRef == pReg->pWeakRef );
}
-#ifndef CPPU_LEAK_STATIC_DATA
- // another static ref
+ // another static ref:
++((*ppRef)->nStaticRefCount);
-#endif
}
}
}
@@ -551,10 +533,8 @@ void SAL_CALL typelib_static_mi_interface_type_init(
*ppRef = (typelib_TypeDescriptionReference *)pReg;
OSL_ASSERT( *ppRef == pReg->pWeakRef );
}
-#ifndef CPPU_LEAK_STATIC_DATA
- // another static ref
+ // another static ref:
++((*ppRef)->nStaticRefCount);
-#endif
}
}
}
@@ -593,10 +573,8 @@ void SAL_CALL typelib_static_enum_type_init(
*ppRef = (typelib_TypeDescriptionReference *)pReg;
OSL_ASSERT( *ppRef == pReg->pWeakRef );
}
-#ifndef CPPU_LEAK_STATIC_DATA
- // another static ref
+ // another static ref:
++(*(sal_Int32 *)&(*ppRef)->pReserved);
-#endif
}
}
}
@@ -660,10 +638,8 @@ void SAL_CALL typelib_static_array_type_init(
OSL_ASSERT( *ppRef == pReg->pWeakRef );
} else
delete [] pDimensions;
-#ifndef CPPU_LEAK_STATIC_DATA
- // another static ref
+ // another static ref:
++((*ppRef)->nStaticRefCount);
-#endif
}
}
}
diff --git a/cppu/source/typelib/typelib.cxx b/cppu/source/typelib/typelib.cxx
index 7f85d691cce5..aa0d18589a89 100644
--- a/cppu/source/typelib/typelib.cxx
+++ b/cppu/source/typelib/typelib.cxx
@@ -264,17 +264,9 @@ inline void TypeDescriptor_Init_Impl::callChain(
}
}
-// never called
-#if defined(CPPU_LEAK_STATIC_DATA) && defined(__SUNPRO_CC) && (__SUNPRO_CC == 0x500)
-static void dumb_sunpro5_must_have_dtor_stl_hashmap_code_if_compiled_with_minus_g() SAL_THROW( () )
-{
- delete (WeakMap_Impl *)0xbeef1e;
-}
-#endif
//__________________________________________________________________________________________________
TypeDescriptor_Init_Impl::~TypeDescriptor_Init_Impl() SAL_THROW( () )
{
-#ifndef CPPU_LEAK_STATIC_DATA
if( pCache )
{
TypeDescriptionList_Impl::const_iterator aIt = pCache->begin();
@@ -303,7 +295,6 @@ TypeDescriptor_Init_Impl::~TypeDescriptor_Init_Impl() SAL_THROW( () )
for( i = 0; i < nSize; i++ )
{
typelib_TypeDescriptionReference * pTDR = ppTDR[i];
- sal_Int32 nStaticCounts = pTDR->nStaticRefCount;
OSL_ASSERT( pTDR->nRefCount > pTDR->nStaticRefCount );
pTDR->nRefCount -= pTDR->nStaticRefCount;
@@ -355,9 +346,7 @@ TypeDescriptor_Init_Impl::~TypeDescriptor_Init_Impl() SAL_THROW( () )
#endif
delete pCallbacks;
pCallbacks = 0;
-#endif // CPPU_LEAK_STATIC_DATA
- // todo: maybe into leak block
if( pMutex )
{
delete pMutex;
diff --git a/cppu/source/uno/lbenv.cxx b/cppu/source/uno/lbenv.cxx
index 21d16c5b9148..f9e382d7e7a5 100644
--- a/cppu/source/uno/lbenv.cxx
+++ b/cppu/source/uno/lbenv.cxx
@@ -139,6 +139,7 @@ struct EnvironmentsData
::osl::Mutex mutex;
OUString2EnvironmentMap aName2EnvMap;
+ EnvironmentsData() : isDisposing(false) {}
~EnvironmentsData();
inline void getEnvironment(
@@ -147,6 +148,8 @@ struct EnvironmentsData
inline void getRegisteredEnvironments(
uno_Environment *** pppEnvs, sal_Int32 * pnLen,
uno_memAlloc memAlloc, const OUString & rEnvDcp );
+
+ bool isDisposing;
};
namespace
@@ -595,9 +598,14 @@ static void SAL_CALL defenv_harden(
*ppHardEnv = 0;
}
+ EnvironmentsData & rData = theEnvironmentsData::get();
+
+ if (rData.isDisposing)
+ return;
+
uno_DefaultEnvironment * that = (uno_DefaultEnvironment *)pEnv;
{
- ::osl::MutexGuard guard( theEnvironmentsData::get().mutex );
+ ::osl::MutexGuard guard( rData.mutex );
if (1 == ::osl_incrementInterlockedCount( &that->nRef )) // is dead
{
that->nRef = 0;
@@ -914,6 +922,7 @@ static void SAL_CALL unoenv_releaseInterface(
EnvironmentsData::~EnvironmentsData()
{
::osl::MutexGuard guard( mutex );
+ isDisposing = true;
for ( OUString2EnvironmentMap::const_iterator iPos( aName2EnvMap.begin() );
iPos != aName2EnvMap.end(); ++iPos )
@@ -928,11 +937,7 @@ EnvironmentsData::~EnvironmentsData()
#if OSL_DEBUG_LEVEL > 1
::uno_dumpEnvironment( 0, pHard, 0 );
#endif
-#if defined CPPU_LEAK_STATIC_DATA
- pHard->environmentDisposing = 0; // set to null => wont be called
-#else
(*pHard->dispose)( pHard ); // send explicit dispose
-#endif
(*pHard->release)( pHard );
}
}
diff --git a/cppu/util/target.pmk b/cppu/util/target.pmk
index 4e456b20605b..3befcb154753 100644
--- a/cppu/util/target.pmk
+++ b/cppu/util/target.pmk
@@ -51,12 +51,3 @@ CFLAGS += -Ob0
.ENDIF
.ENDIF
-
-# other stuff
-
-.IF "$(cppu_no_leak)" == ""
-.IF "$(bndchk)" == ""
-CFLAGS += -DCPPU_LEAK_STATIC_DATA
-.ENDIF
-.ENDIF
-
diff --git a/cppuhelper/inc/cppuhelper/factory.hxx b/cppuhelper/inc/cppuhelper/factory.hxx
index 1b733d7a9170..579ee876cb39 100644
--- a/cppuhelper/inc/cppuhelper/factory.hxx
+++ b/cppuhelper/inc/cppuhelper/factory.hxx
@@ -87,6 +87,9 @@ typedef void (SAL_CALL * component_getImplementationEnvironmentExtFunc)(
typedef const sal_Char * (SAL_CALL * component_getDescriptionFunc)(void);
/** Function pointer declaration.
+
+ @obsolete component_writeInfo should no longer be used in new components
+
Function writes component registry info, at least writing the supported service names.
@param pServiceManager
diff --git a/cppuhelper/inc/cppuhelper/implementationentry.hxx b/cppuhelper/inc/cppuhelper/implementationentry.hxx
index f1f20cf01391..e432a6186482 100644
--- a/cppuhelper/inc/cppuhelper/implementationentry.hxx
+++ b/cppuhelper/inc/cppuhelper/implementationentry.hxx
@@ -72,6 +72,8 @@ struct ImplementationEntry
/** Helper function for implementation of the component_writeInfo()-function.
+ @obsolete component_writeInfo should no longer be used in new components
+
@param pServiceManager The first parameter passed to component_writeInfo()-function
(This is an instance of the service manager, that creates the factory).
@param pRegistryKey The second parameter passed to the component_writeInfo()-function.
@@ -90,9 +92,9 @@ sal_Bool component_writeInfoHelper(
@param pImplName The implementation-name to be instantiated ( This is the
first parameter passed to the component_getFactory
- @param pServiceManager The first parameter passed to component_writeInfo()-function
+ @param pServiceManager The second parameter passed to component_getFactory()-function
(This is a of the service manager, that creates the factory).
- @param pRegistryKey The second parameter passed to the component_writeInfo()-function.
+ @param pRegistryKey The third parameter passed to the component_getFactory()-function.
This is a reference to the registry key, where the implementation
data has been written to.
@param entries Each element of the entries-array must contains a function pointer
diff --git a/cppuhelper/inc/cppuhelper/interfacecontainer.h b/cppuhelper/inc/cppuhelper/interfacecontainer.h
index 3f5da6bd10dc..ee57127a4fca 100644
--- a/cppuhelper/inc/cppuhelper/interfacecontainer.h
+++ b/cppuhelper/inc/cppuhelper/interfacecontainer.h
@@ -44,6 +44,17 @@
namespace cppu
{
+namespace detail {
+
+ union element_alias
+ {
+ ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > > *pAsSequence;
+ ::com::sun::star::uno::XInterface * pAsInterface;
+ element_alias() : pAsInterface(0) {}
+ };
+
+}
+
//===================================================================
class OInterfaceContainerHelper;
/**
@@ -95,7 +106,9 @@ public:
private:
OInterfaceContainerHelper & rCont;
sal_Bool bIsList;
- void * pData;
+
+ detail::element_alias aData;
+
sal_Int32 nRemain;
OInterfaceIteratorHelper( const OInterfaceIteratorHelper & ) SAL_THROW( () );
@@ -222,14 +235,14 @@ public:
private:
friend class OInterfaceIteratorHelper;
/**
- bIsList == TRUE -> pData of type Sequence< XInterfaceSequence >,
- otherwise pData == of type (XEventListener *)
+ bIsList == TRUE -> aData.pAsSequence of type Sequence< XInterfaceSequence >,
+ otherwise aData.pAsInterface == of type (XEventListener *)
*/
- void * pData;
+ detail::element_alias aData;
::osl::Mutex & rMutex;
/** TRUE -> used by an iterator. */
sal_Bool bInUse;
- /** TRUE -> pData is of type Sequence< XInterfaceSequence >. */
+ /** TRUE -> aData.pAsSequence is of type Sequence< XInterfaceSequence >. */
sal_Bool bIsList;
OInterfaceContainerHelper( const OInterfaceContainerHelper & ) SAL_THROW( () );
diff --git a/cppuhelper/inc/cppuhelper/shlib.hxx b/cppuhelper/inc/cppuhelper/shlib.hxx
index 47bf2fc06b97..ee7ae8ff4fda 100644
--- a/cppuhelper/inc/cppuhelper/shlib.hxx
+++ b/cppuhelper/inc/cppuhelper/shlib.hxx
@@ -65,6 +65,8 @@ SAL_CALL loadSharedLibComponentFactory(
directory. The resulting path of the library will be checked against environment variable
CPLD_ACCESSPATH if set.
+ @obsolete component_writeInfo should no longer be used in new components
+
@param rLibName name of the library
@param rPath optional path
@param xMgr service manager to be provided to the component
diff --git a/cppuhelper/qa/propertysetmixin/JavaSupplier.java b/cppuhelper/qa/propertysetmixin/JavaSupplier.java
index 2d37c8901077..0aa267610801 100644
--- a/cppuhelper/qa/propertysetmixin/JavaSupplier.java
+++ b/cppuhelper/qa/propertysetmixin/JavaSupplier.java
@@ -75,11 +75,6 @@ public final class JavaSupplier extends WeakBase implements XSupplier {
: null;
}
- public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
- return FactoryHelper.writeRegistryServiceInfo(
- implementationName, serviceName, regKey);
- }
-
private static final String implementationName
= JavaSupplier.class.getName();
private static final String serviceName
diff --git a/cppuhelper/qa/propertysetmixin/comp_propertysetmixin.cxx b/cppuhelper/qa/propertysetmixin/comp_propertysetmixin.cxx
index 1159d1aed7a0..1ed996617ce5 100644
--- a/cppuhelper/qa/propertysetmixin/comp_propertysetmixin.cxx
+++ b/cppuhelper/qa/propertysetmixin/comp_propertysetmixin.cxx
@@ -427,10 +427,3 @@ extern "C" void SAL_CALL component_getImplementationEnvironment(
{
*envTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-
-extern "C" sal_Bool SAL_CALL component_writeInfo(
- void * serviceManager, void * registryKey)
-{
- return cppu::component_writeInfoHelper(
- serviceManager, registryKey, entries);
-}
diff --git a/cppuhelper/qa/propertysetmixin/makefile.mk b/cppuhelper/qa/propertysetmixin/makefile.mk
index edd4795fc115..04aa2479c3b8 100644
--- a/cppuhelper/qa/propertysetmixin/makefile.mk
+++ b/cppuhelper/qa/propertysetmixin/makefile.mk
@@ -37,6 +37,8 @@ PACKAGE = test/cppuhelper/propertysetmixin/comp
ENABLE_EXCEPTIONS := TRUE
+my_components = $(TARGET).cpp $(TARGET).java
+
.INCLUDE: settings.mk
.IF "$(OS)" == "WNT"
@@ -75,51 +77,62 @@ JARFILES = java_uno.jar juh.jar jurt.jar ridl.jar
ALLTAR: test
$(MISC)/$(TARGET)/types.urd: types.idl
- - $(MKDIR) $(@:d)
+ $(MKDIRHIER) $(@:d)
$(IDLC) -O$(@:d) -I$(SOLARIDLDIR) -cid -we $<
$(MISC)/$(TARGET)/types.rdb: $(MISC)/$(TARGET)/types.urd
- $(RM) $@
$(REGMERGE) $@ /UCR $<
-$(MISC)/$(TARGET)/uno.rdb: $(MISC)/$(TARGET)/types.rdb $(SHL2TARGETN) \
- $(MISC)/$(TARGET)/$(TARGET).uno.jar $(MISC)/$(TARGET)/bootstrap.rdb
- - $(MKDIR) $(@:d)
- $(COPY) $(SOLARBINDIR)/types.rdb $@
- $(REGMERGE) $@ / $(MISC)/$(TARGET)/types.rdb
- $(REGCOMP) -register -r $@ -wop -c javaloader.uno -c javavm.uno \
- -c reflection.uno -c stocservices.uno -c $(SHL2TARGETN)
- $(REGCOMP) -register -br $(MISC)/$(TARGET)/bootstrap.rdb -r $@ \
- -c $(my_file)$(PWD)/$(MISC)/$(TARGET)/$(TARGET).uno.jar \
- -env:URE_INTERNAL_JAVA_DIR=$(my_file)$(SOLARBINDIR)
-
-$(MISC)/$(TARGET)/bootstrap.rdb:
- - $(MKDIR) $(@:d)
- $(COPY) $(SOLARBINDIR)/types.rdb $@
- $(REGCOMP) -register -r $@ -wop -c javaloader.uno -c javavm.uno \
- -c stocservices.uno
-
$(MISC)/$(TARGET)/cppumaker.flag: $(MISC)/$(TARGET)/types.rdb
$(CPPUMAKER) -O$(MISC)/$(TARGET)/inc -BUCR -Gc \
- -X$(SOLARBINDIR)/types.rdb $<
+ -X$(SOLARBINDIR)/udkapi.rdb $<
$(TOUCH) $@
$(SLOFILES): $(MISC)/$(TARGET)/cppumaker.flag
$(MISC)/$(TARGET)/javamaker.flag: $(MISC)/$(TARGET)/types.rdb
- $(JAVAMAKER) -O$(CLASSDIR) -BUCR -nD -Gc -X$(SOLARBINDIR)/types.rdb $<
+ $(JAVAMAKER) -O$(CLASSDIR) -BUCR -nD -Gc -X$(SOLARBINDIR)/udkapi.rdb $<
$(TOUCH) $@
$(JAVATARGET): $(MISC)/$(TARGET)/javamaker.flag
+$(MISC)/$(TARGET)/services.rdb .ERRREMOVE: $(SOLARENV)/bin/packcomponents.xslt \
+ $(MISC)/$(TARGET)/services.input \
+ $(my_components:^"$(MISC)/$(TARGET)/":+".component")
+ $(XSLTPROC) --nonet --stringparam prefix $(PWD)/$(MISC)/$(TARGET)/ -o $@ \
+ $(SOLARENV)/bin/packcomponents.xslt $(MISC)/$(TARGET)/services.input
+
+$(MISC)/$(TARGET)/services.input:
+ $(MKDIRHIER) $(@:d)
+ echo \
+ '<list>$(my_components:^"<filename>":+".component</filename>")</list>' \
+ > $@
+
+$(MISC)/$(TARGET)/$(TARGET).cpp.component .ERRREMOVE: \
+ $(SOLARENV)/bin/createcomponent.xslt $(TARGET).cpp.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_INBUILD_NATIVE)$(SHL2TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt $(TARGET).cpp.component
+
+$(MISC)/$(TARGET)/$(TARGET).java.component .ERRREMOVE: \
+ $(SOLARENV)/bin/createcomponent.xslt $(TARGET).java.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_INBUILD_JAVA)$(TARGET).uno.jar' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt $(TARGET).java.component
+
$(MISC)/$(TARGET)/$(TARGET).uno.jar: $(JAVATARGET) \
$(MISC)/$(TARGET)/javamaker.flag manifest
jar cfm $@ manifest -C $(CLASSDIR) test/cppuhelper/propertysetmixin
-test .PHONY: $(SHL1TARGETN) $(MISC)/$(TARGET)/uno.rdb
+test .PHONY: $(SHL1TARGETN) $(SHL2TARGETN) $(MISC)/$(TARGET)/$(TARGET).uno.jar \
+ $(MISC)/$(TARGET)/types.rdb $(MISC)/$(TARGET)/services.rdb
$(CPPUNITTESTER) $(SHL1TARGETN) \
- -env:URE_INTERNAL_JAVA_DIR=$(my_file)$(SOLARBINDIR) \
+ '-env:UNO_TYPES=$(my_file)$(SOLARBINDIR)/udkapi.rdb $(my_file)$(PWD)/$(MISC)/$(TARGET)/types.rdb' \
+ '-env:UNO_SERVICES=$(my_file)$(SOLARXMLDIR)/ure/services.rdb $(my_file)$(PWD)/$(MISC)/$(TARGET)/services.rdb'\
-env:URE_INTERNAL_LIB_DIR=$(my_file)$(SOLARSHAREDBIN) \
- -env:arg-reg=$(MISC)/$(TARGET)/uno.rdb -env:arg-path=$(SOLARSHAREDBIN)
+ -env:URE_INTERNAL_JAVA_DIR=$(my_file)$(SOLARBINDIR) \
+ -env:OOO_INBUILD_SHAREDLIB_DIR=$(my_file)$(PWD)/$(DLLDEST) \
+ -env:OOO_INBUILD_JAR_DIR=$(my_file)$(PWD)/$(MISC)/$(TARGET)
.END
diff --git a/cppuhelper/qa/propertysetmixin/qa_propertysetmixin.cpp.component b/cppuhelper/qa/propertysetmixin/qa_propertysetmixin.cpp.component
new file mode 100644
index 000000000000..a654e07581a3
--- /dev/null
+++ b/cppuhelper/qa/propertysetmixin/qa_propertysetmixin.cpp.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="test.cppuhelper.propertysetmixin.comp.CppSupplier">
+ <service name="test.cppuhelper.propertysetmixin.CppSupplier"/>
+ </implementation>
+</component>
diff --git a/cppuhelper/qa/propertysetmixin/qa_propertysetmixin.java.component b/cppuhelper/qa/propertysetmixin/qa_propertysetmixin.java.component
new file mode 100644
index 000000000000..9711563b758b
--- /dev/null
+++ b/cppuhelper/qa/propertysetmixin/qa_propertysetmixin.java.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Java2"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="test.cppuhelper.propertysetmixin.comp.JavaSupplier">
+ <service name="test.cppuhelper.propertysetmixin.JavaSupplier"/>
+ </implementation>
+</component>
diff --git a/cppuhelper/qa/propertysetmixin/test_propertysetmixin.cxx b/cppuhelper/qa/propertysetmixin/test_propertysetmixin.cxx
index 06db4cfdad52..e4f1a4a78c3b 100644
--- a/cppuhelper/qa/propertysetmixin/test_propertysetmixin.cxx
+++ b/cppuhelper/qa/propertysetmixin/test_propertysetmixin.cxx
@@ -52,21 +52,19 @@
#include "com/sun/star/beans/XPropertySetInfo.hpp"
#include "com/sun/star/beans/XVetoableChangeListener.hpp"
#include "com/sun/star/lang/XComponent.hpp"
-#include "com/sun/star/lang/XMultiComponentFactory.hpp"
#include "com/sun/star/uno/Any.hxx"
#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/Type.hxx"
#include "com/sun/star/uno/XComponentContext.hpp"
+#include "cppuhelper/bootstrap.hxx"
#include "cppuhelper/implbase1.hxx"
-#include "cppuhelper/servicefactory.hxx"
#include "cppunit/TestAssert.h"
#include "cppunit/TestFixture.h"
#include "cppunit/extensions/HelperMacros.h"
#include "cppunit/plugin/TestPlugIn.h"
#include "osl/mutex.hxx"
-#include "rtl/bootstrap.hxx"
#include "rtl/ref.hxx"
#include "rtl/string.h"
#include "rtl/textenc.h"
@@ -98,14 +96,6 @@ std::ostream & operator <<(std::ostream & out, css::uno::Any const & value) {
out << "com::sun::star::uno::Any[" << value.getValueType() << ", ...]";
}
-rtl::OUString getArgument(rtl::OUString const & name) {
- rtl::OUString val;
- CPPUNIT_ASSERT(
- rtl::Bootstrap::get(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("arg-")) + name, val));
- return val;
-}
-
class BoundListener:
public cppu::WeakImplHelper1< css::beans::XPropertyChangeListener >
{
@@ -178,7 +168,7 @@ class Test: public CppUnit::TestFixture {
public:
virtual void setUp();
- void finish();
+ virtual void tearDown();
void testCppEmpty1() { testEmpty1(getCppSupplier()); }
@@ -199,7 +189,6 @@ public:
CPPUNIT_TEST(testJavaEmpty1);
CPPUNIT_TEST(testJavaEmpty2);
CPPUNIT_TEST(testJavaFull);
- CPPUNIT_TEST(finish);
CPPUNIT_TEST_SUITE_END();
private:
@@ -221,30 +210,15 @@ private:
css::uno::Reference< test::cppuhelper::propertysetmixin::XSupplier >
const & supplier) const;
- static css::uno::Reference< css::uno::XComponentContext > m_context;
+ css::uno::Reference< css::uno::XComponentContext > m_context;
};
void Test::setUp() {
- // For whatever reason, on W32 it does not work to create/destroy a fresh
- // component context for each test in Test::setUp/tearDown; therefore, a
- // single component context is used for all tests and destroyed in the last
- // pseudo-test "finish":
- if (!m_context.is()) {
- css::uno::Reference< css::lang::XMultiComponentFactory > factory(
- cppu::createRegistryServiceFactory(
- getArgument(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("reg"))),
- sal_False,
- getArgument(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("path")))),
- css::uno::UNO_QUERY_THROW);
- css::uno::Reference< css::beans::XPropertySet >(
- factory, css::uno::UNO_QUERY_THROW)->getPropertyValue(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("DefaultContext")))
- >>= m_context;
- }
+ m_context = cppu::defaultBootstrap_InitialComponentContext();
+ CPPUNIT_ASSERT(m_context.is());
}
-void Test::finish() {
+void Test::tearDown() {
css::uno::Reference< css::lang::XComponent >(
m_context, css::uno::UNO_QUERY_THROW)->dispose();
}
@@ -671,8 +645,6 @@ void Test::testFull(
} catch (css::beans::UnknownPropertyException &) {}
}
-css::uno::Reference< css::uno::XComponentContext > Test::m_context;
-
CPPUNIT_TEST_SUITE_REGISTRATION(Test);
}
diff --git a/cppuhelper/source/bootstrap.cxx b/cppuhelper/source/bootstrap.cxx
index 5575c118420e..f892cdcab0f3 100644
--- a/cppuhelper/source/bootstrap.cxx
+++ b/cppuhelper/source/bootstrap.cxx
@@ -380,9 +380,15 @@ SAL_CALL defaultBootstrap_InitialComponentContext(
Bootstrap const & bootstrap )
SAL_THROW( (Exception) )
{
- OUString bootstrapPath( get_this_libpath() );
- OUString iniDir;
+ OUString bootstrapPath;
+ if (!bootstrap.getFrom(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("URE_INTERNAL_LIB_DIR")),
+ bootstrapPath))
+ {
+ bootstrapPath = get_this_libpath();
+ }
+ OUString iniDir;
osl_getProcessWorkingDir(&iniDir.pData);
Reference<lang::XMultiComponentFactory> smgr_XMultiComponentFactory(
diff --git a/cppuhelper/source/interfacecontainer.cxx b/cppuhelper/source/interfacecontainer.cxx
index 3053193d5ee6..b0c8d687a0a8 100644
--- a/cppuhelper/source/interfacecontainer.cxx
+++ b/cppuhelper/source/interfacecontainer.cxx
@@ -99,15 +99,15 @@ OInterfaceIteratorHelper::OInterfaceIteratorHelper( OInterfaceContainerHelper &
// worst case, two iterators at the same time
rCont.copyAndResetInUse();
bIsList = rCont_.bIsList;
- pData = rCont_.pData;
+ aData = rCont_.aData;
if( bIsList )
{
rCont.bInUse = sal_True;
- nRemain = ((Sequence< Reference< XInterface > >*)pData)->getLength();
+ nRemain = aData.pAsSequence->getLength();
}
- else if( pData )
+ else if( aData.pAsInterface )
{
- ((XInterface *)pData)->acquire();
+ aData.pAsInterface->acquire();
nRemain = 1;
}
else
@@ -120,7 +120,7 @@ OInterfaceIteratorHelper::~OInterfaceIteratorHelper() SAL_THROW( () )
{
MutexGuard aGuard( rCont.rMutex );
// bResetInUse protect the iterator against recursion
- bShared = pData == rCont.pData && rCont.bIsList;
+ bShared = aData.pAsSequence == rCont.aData.pAsSequence && rCont.bIsList;
if( bShared )
{
OSL_ENSURE( rCont.bInUse, "OInterfaceContainerHelper must be in use" );
@@ -132,10 +132,10 @@ OInterfaceIteratorHelper::~OInterfaceIteratorHelper() SAL_THROW( () )
{
if( bIsList )
// Sequence owned by the iterator
- delete (Sequence< Reference< XInterface > >*)pData;
- else if( pData )
+ delete aData.pAsSequence;
+ else if( aData.pAsInterface )
// Interface is acquired by the iterator
- ((XInterface*)pData)->release();
+ aData.pAsInterface->release();
}
}
@@ -146,9 +146,9 @@ XInterface * OInterfaceIteratorHelper::next() SAL_THROW( () )
nRemain--;
if( bIsList )
// typecase to const,so the getArray method is faster
- return ((const Sequence< Reference< XInterface > >*)pData)->getConstArray()[nRemain].get();
- else if( pData )
- return (XInterface*)pData;
+ return aData.pAsSequence->getConstArray()[nRemain].get();
+ else if( aData.pAsInterface )
+ return aData.pAsInterface;
}
// exception
return 0;
@@ -159,15 +159,14 @@ void OInterfaceIteratorHelper::remove() SAL_THROW( () )
if( bIsList )
{
OSL_ASSERT( nRemain >= 0 &&
- nRemain < ((const Sequence< Reference< XInterface > >*)pData)->getLength() );
- XInterface * p =
- ((const Sequence< Reference< XInterface > >*)pData)->getConstArray()[nRemain].get();
+ nRemain < aData.pAsSequence->getLength() );
+ XInterface * p = aData.pAsSequence->getConstArray()[nRemain].get();
rCont.removeInterface( * reinterpret_cast< const Reference< XInterface > * >( &p ) );
}
else
{
OSL_ASSERT( 0 == nRemain );
- rCont.removeInterface( * reinterpret_cast< const Reference< XInterface > * >(&pData));
+ rCont.removeInterface( * reinterpret_cast< const Reference< XInterface > * >(&aData.pAsInterface));
}
}
@@ -177,8 +176,7 @@ void OInterfaceIteratorHelper::remove() SAL_THROW( () )
OInterfaceContainerHelper::OInterfaceContainerHelper( Mutex & rMutex_ ) SAL_THROW( () )
- : pData( 0 )
- , rMutex( rMutex_ )
+ : rMutex( rMutex_ )
, bInUse( sal_False )
, bIsList( sal_False )
{
@@ -188,17 +186,17 @@ OInterfaceContainerHelper::~OInterfaceContainerHelper() SAL_THROW( () )
{
OSL_ENSURE( !bInUse, "~OInterfaceContainerHelper but is in use" );
if( bIsList )
- delete (Sequence< Reference< XInterface > >*)pData;
- else if( pData )
- ((XInterface*)pData)->release();
+ delete aData.pAsSequence;
+ else if( aData.pAsInterface )
+ aData.pAsInterface->release();
}
sal_Int32 OInterfaceContainerHelper::getLength() const SAL_THROW( () )
{
MutexGuard aGuard( rMutex );
if( bIsList )
- return ((Sequence< Reference< XInterface > >*)pData)->getLength();
- else if( pData )
+ return aData.pAsSequence->getLength();
+ else if( aData.pAsInterface )
return 1;
return 0;
}
@@ -207,10 +205,10 @@ Sequence< Reference<XInterface> > OInterfaceContainerHelper::getElements() const
{
MutexGuard aGuard( rMutex );
if( bIsList )
- return *(Sequence< Reference< XInterface > >*)pData;
- else if( pData )
+ return *aData.pAsSequence;
+ else if( aData.pAsInterface )
{
- Reference<XInterface> x( (XInterface *)pData );
+ Reference<XInterface> x( aData.pAsInterface );
return Sequence< Reference< XInterface > >( &x, 1 );
}
return Sequence< Reference< XInterface > >();
@@ -224,9 +222,9 @@ void OInterfaceContainerHelper::copyAndResetInUse() SAL_THROW( () )
// this should be the worst case. If a iterator is active
// and a new Listener is added.
if( bIsList )
- pData = new Sequence< Reference< XInterface > >( *(Sequence< Reference< XInterface > >*)pData );
- else if( pData )
- ((XInterface*)pData)->acquire();
+ aData.pAsSequence = new Sequence< Reference< XInterface > >( *aData.pAsSequence );
+ else if( aData.pAsInterface )
+ aData.pAsInterface->acquire();
bInUse = sal_False;
}
@@ -241,25 +239,25 @@ sal_Int32 OInterfaceContainerHelper::addInterface( const Reference<XInterface> &
if( bIsList )
{
- sal_Int32 nLen = ((Sequence< Reference< XInterface > >*)pData)->getLength();
- realloc( *(Sequence< Reference< XInterface > >*)pData, nLen +1 );
- ((Sequence< Reference< XInterface > >*)pData)->getArray()[ nLen ] = rListener;
+ sal_Int32 nLen = aData.pAsSequence->getLength();
+ realloc( *aData.pAsSequence, nLen +1 );
+ aData.pAsSequence->getArray()[ nLen ] = rListener;
return nLen +1;
}
- else if( pData )
+ else if( aData.pAsInterface )
{
Sequence< Reference< XInterface > > * pSeq = new Sequence< Reference< XInterface > >( 2 );
Reference<XInterface> * pArray = pSeq->getArray();
- pArray[0] = (XInterface *)pData;
+ pArray[0] = aData.pAsInterface;
pArray[1] = rListener;
- ((XInterface *)pData)->release();
- pData = pSeq;
+ aData.pAsInterface->release();
+ aData.pAsSequence = pSeq;
bIsList = sal_True;
return 2;
}
else
{
- pData = rListener.get();
+ aData.pAsInterface = rListener.get();
if( rListener.is() )
rListener->acquire();
return 1;
@@ -275,8 +273,8 @@ sal_Int32 OInterfaceContainerHelper::removeInterface( const Reference<XInterface
if( bIsList )
{
- const Reference<XInterface> * pL = ((const Sequence< Reference< XInterface > >*)pData)->getConstArray();
- sal_Int32 nLen = ((Sequence< Reference< XInterface > >*)pData)->getLength();
+ const Reference<XInterface> * pL = aData.pAsSequence->getConstArray();
+ sal_Int32 nLen = aData.pAsSequence->getLength();
sal_Int32 i;
for( i = 0; i < nLen; i++ )
{
@@ -284,7 +282,7 @@ sal_Int32 OInterfaceContainerHelper::removeInterface( const Reference<XInterface
// more faster.
if( pL[i].get() == rListener.get() )
{
- sequenceRemoveElementAt( *(Sequence< Reference< XInterface > >*)pData, i );
+ sequenceRemoveElementAt( *aData.pAsSequence, i );
break;
}
}
@@ -296,30 +294,30 @@ sal_Int32 OInterfaceContainerHelper::removeInterface( const Reference<XInterface
{
if( pL[i] == rListener )
{
- sequenceRemoveElementAt(*(Sequence< Reference< XInterface > >*)pData, i );
+ sequenceRemoveElementAt(*aData.pAsSequence, i );
break;
}
}
}
- if( ((Sequence< Reference< XInterface > >*)pData)->getLength() == 1 )
+ if( aData.pAsSequence->getLength() == 1 )
{
- XInterface * p = ((const Sequence< Reference< XInterface > >*)pData)->getConstArray()[0].get();
+ XInterface * p = aData.pAsSequence->getConstArray()[0].get();
p->acquire();
- delete (Sequence< Reference< XInterface > >*)pData;
- pData = p;
+ delete aData.pAsSequence;
+ aData.pAsInterface = p;
bIsList = sal_False;
return 1;
}
else
- return ((Sequence< Reference< XInterface > >*)pData)->getLength();
+ return aData.pAsSequence->getLength();
}
- else if( pData && Reference<XInterface>( (XInterface*)pData ) == rListener )
+ else if( aData.pAsInterface && Reference<XInterface>( aData.pAsInterface ) == rListener )
{
- ((XInterface *)pData)->release();
- pData = 0;
+ aData.pAsInterface->release();
+ aData.pAsInterface = 0;
}
- return pData ? 1 : 0;
+ return aData.pAsInterface ? 1 : 0;
}
void OInterfaceContainerHelper::disposeAndClear( const EventObject & rEvt ) SAL_THROW( () )
@@ -328,10 +326,10 @@ void OInterfaceContainerHelper::disposeAndClear( const EventObject & rEvt ) SAL_
OInterfaceIteratorHelper aIt( *this );
// Container freigeben, falls im disposing neue Eintrge kommen
OSL_ENSURE( !bIsList || bInUse, "OInterfaceContainerHelper not in use" );
- if( !bIsList && pData )
- ((XInterface *)pData)->release();
+ if( !bIsList && aData.pAsInterface )
+ aData.pAsInterface->release();
// set the member to null, the iterator delete the values
- pData = NULL;
+ aData.pAsInterface = NULL;
bIsList = sal_False;
bInUse = sal_False;
aGuard.clear();
@@ -358,10 +356,10 @@ void OInterfaceContainerHelper::clear() SAL_THROW( () )
OInterfaceIteratorHelper aIt( *this );
// Container freigeben, falls im disposing neue Eintrge kommen
OSL_ENSURE( !bIsList || bInUse, "OInterfaceContainerHelper not in use" );
- if( !bIsList && pData )
- ((XInterface *)pData)->release();
+ if( !bIsList && aData.pAsInterface )
+ aData.pAsInterface->release();
// set the member to null, the iterator delete the values
- pData = 0;
+ aData.pAsInterface = 0;
bIsList = sal_False;
bInUse = sal_False;
// release mutex before aIt destructor call
diff --git a/cppuhelper/source/servicefactory.cxx b/cppuhelper/source/servicefactory.cxx
index 57eae9a51087..bcc58b74af59 100644
--- a/cppuhelper/source/servicefactory.cxx
+++ b/cppuhelper/source/servicefactory.cxx
@@ -28,13 +28,9 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_cppuhelper.hxx"
-#if OSL_DEBUG_LEVEL > 0
-#include <stdio.h>
-#endif
#include <vector>
#include "rtl/string.hxx"
-#include "rtl/ustrbuf.hxx"
#include "rtl/bootstrap.hxx"
#include "osl/diagnose.h"
#include "osl/file.h"
@@ -46,6 +42,7 @@
#include "cppuhelper/servicefactory.hxx"
#include "cppuhelper/bootstrap.hxx"
+#include "com/sun/star/uno/DeploymentException.hpp"
#include "com/sun/star/uno/XComponentContext.hpp"
#include "com/sun/star/lang/XInitialization.hpp"
#include "com/sun/star/lang/XSingleServiceFactory.hpp"
@@ -64,6 +61,7 @@ using namespace ::rtl;
using namespace ::osl;
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
+namespace css = com::sun::star;
namespace cppu
{
@@ -417,39 +415,42 @@ Reference< XComponentContext > bootstrapInitialContext(
keys.getConstArray();
for ( sal_Int32 nPos = keys.getLength(); nPos--; )
{
- Reference< registry::XRegistryKey > const & xKey2 =
- pKeys[ nPos ];
- try
- {
- OUStringBuffer buf( 32 );
- buf.appendAscii(
- RTL_CONSTASCII_STRINGPARAM("/singletons/") );
- buf.append(
- xKey2->getKeyName().copy(
- sizeof("/SINGLETONS") /* -\0 +'/' */ ) );
- entry.name = buf.makeStringAndClear();
- entry.value <<= xKey2->getStringValue();
- context_values.push_back( entry );
- }
- catch (Exception & rExc)
- {
-#if OSL_DEBUG_LEVEL > 0
- OString aStr(
- OUStringToOString(
- xKey2->getKeyName().copy( 11 ),
- RTL_TEXTENCODING_ASCII_US ) );
- OString aStr2(
- OUStringToOString(
- rExc.Message, RTL_TEXTENCODING_ASCII_US ) );
- fprintf(
- stderr,
- "### failed reading singleton [%s]"
- " service name from registry: %s\n",
- aStr.getStr(), aStr2.getStr() );
-#else
- (void) rExc; // avoid warning about unused variable
-#endif
+ css::uno::Sequence< rtl::OUString > impls(
+ css::uno::Reference< css::registry::XRegistryKey >(
+ pKeys[nPos]->openKey(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "REGISTERED_BY"))),
+ css::uno::UNO_SET_THROW)->getAsciiListValue());
+ switch (impls.getLength()) {
+ case 0:
+ throw css::uno::DeploymentException(
+ (pKeys[nPos]->getKeyName() +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "/REGISTERED_BY is empty"))),
+ css::uno::Reference< css::uno::XInterface >());
+ case 1:
+ break;
+ default:
+ OSL_TRACE(
+ ("arbitrarily chosing \"%s\" among multiple"
+ " implementations for \"%s\""),
+ rtl::OUStringToOString(
+ impls[0], RTL_TEXTENCODING_UTF8).getStr(),
+ rtl::OUStringToOString(
+ pKeys[nPos]->getKeyName(),
+ RTL_TEXTENCODING_UTF8).getStr());
+ break;
}
+ context_values.push_back(
+ ContextEntry_Init(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("/singletons/")) +
+ pKeys[nPos]->getKeyName().copy(
+ RTL_CONSTASCII_LENGTH("/SINGLETONS/"))),
+ css::uno::makeAny(impls[0]),
+ true));
}
}
}
diff --git a/cppunit/ldflags.patch b/cppunit/ldflags.patch
index cecd69a4b5ee..ee8d5ed897ce 100644
--- a/cppunit/ldflags.patch
+++ b/cppunit/ldflags.patch
@@ -1,10 +1,11 @@
---- misc/cppunit-1.12.1/src/cppunit/Makefile.am Wed Feb 20 06:36:38 2008
-+++ misc/build/cppunit-1.12.1/src/cppunit/Makefile.am Mon May 3 17:00:41 2010
-@@ -63,5 +63,6 @@
+--- misc/cppunit-1.12.1/src/cppunit/Makefile.in 2008-02-20 06:59:55.000000000 +0100
++++ misc/build/cppunit-1.12.1/src/cppunit/Makefile.in 2010-06-21 17:01:38.324370072 +0200
+@@ -300,7 +300,7 @@
- libcppunit_la_LDFLAGS= \
+ libcppunit_la_LDFLAGS = \
-no-undefined -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
- -release $(LT_RELEASE)
-+ -release $(LT_RELEASE) \
-+ @LIBADD_DL@
++ -release $(LT_RELEASE) $(LIBADD_DL)
+
+ all: all-am
diff --git a/cpputools/prj/build.lst b/cpputools/prj/build.lst
index 7cd9053c5476..ca820871b3c3 100644
--- a/cpputools/prj/build.lst
+++ b/cpputools/prj/build.lst
@@ -2,7 +2,6 @@ pt cpputools : cppuhelper offuh LIBXML2:libxml2 NULL
pt cpputools usr1 - all pt_mkout NULL
pt cpputools\prj get - all pt_prj NULL
pt cpputools\source\registercomponent nmake - all pt_regcomp NULL
-pt cpputools\source\regcomplazy nmake - all pt_regcomplazy NULL
pt cpputools\source\regsingleton nmake - all pt_regsingleton NULL
pt cpputools\source\unoexe nmake - all pt_unoexe NULL
pt cpputools\source\sp2bv nmake - all pt_sp2bv NULL
diff --git a/cpputools/prj/d.lst b/cpputools/prj/d.lst
index fa029cc4deeb..14de5e78af75 100644
--- a/cpputools/prj/d.lst
+++ b/cpputools/prj/d.lst
@@ -1,8 +1,6 @@
..\%__SRC%\bin\regcomp.exe %_DEST%\bin%_EXT%\regcomp.exe
..\%__SRC%\bin\regcomp %_DEST%\bin%_EXT%\regcomp
..\%__SRC%\bin\regcomp %_DEST%\bin%_EXT%\regcomp.bin
-..\%__SRC%\bin\regcomplazy.exe %_DEST%\bin%_EXT%\regcomplazy.exe
-..\%__SRC%\bin\regcomplazy %_DEST%\bin%_EXT%\regcomplazy
..\%__SRC%\bin\uno.exe %_DEST%\bin%_EXT%\uno.exe
..\%__SRC%\bin\uno %_DEST%\bin%_EXT%\uno
..\%__SRC%\bin\uno %_DEST%\bin%_EXT%\uno.bin
diff --git a/cpputools/source/regcomplazy/regcomplazy.cxx b/cpputools/source/regcomplazy/regcomplazy.cxx
deleted file mode 100755
index 13c09c8d1c94..000000000000
--- a/cpputools/source/regcomplazy/regcomplazy.cxx
+++ /dev/null
@@ -1,282 +0,0 @@
-/*************************************************************************
- *
- * 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 <stdio.h>
-
-#include "sal/main.h"
-#include <osl/diagnose.h>
-#include <osl/thread.h>
-#include <osl/file.hxx>
-#include <rtl/strbuf.hxx>
-#include <rtl/ustrbuf.hxx>
-
-#include <vector>
-
-#include <registry/registry.hxx>
-
-
-#define OUSTR(x) ::rtl::OUString::createFromAscii( x )
-#define OSToOUS(x) ::rtl::OStringToOUString(x, osl_getThreadTextEncoding())
-#define OUSToOS(x) ::rtl::OUStringToOString(x, osl_getThreadTextEncoding())
-using namespace ::rtl;
-
-typedef ::std::vector< ::rtl::OString > OSVector;
-
-struct CompDescriptor {
- OString sImplementationName;
- OString sComponentName;
- OString sLoaderName;
- OSVector vSupportedServices;
-};
-
-typedef ::std::vector< CompDescriptor > CDescrVector;
-
-static void print_options() SAL_THROW( () )
-{
- printf(
- "\nusage: regcomplazy [-v]registry_file cmp_descr_file ...\n\n"
- "Register a cmponent using a comp description file.\n"
- "Option -v prints verbose output on stdout.\n" );
-}
-
-static bool checkImplValue(RegistryValueList<sal_Char*>* pValueList, OString sImplName) {
- for (sal_uInt32 i=0; i < pValueList->getLength(); i++) {
- if (sImplName.equals(pValueList->getElement(i)))
- return true;
- }
-
- return false;
-}
-
-//==================================================================================================
-SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
-{
- if (argc < 3)
- {
- print_options();
- return 1;
- }
-
- bool bVerbose = false;
- int nPos = 1;
- if ('-' == argv[ nPos ][ 0 ] && 'v' == argv[ nPos ][ 1 ])
- {
- if ('\0' != argv[ nPos ][ 2 ])
- {
- print_options();
- return 1;
- }
- bVerbose = true;
- ++nPos;
- }
-
- OUString sys_path( OUSTR( argv[ nPos ] ) );
- OUString reg_url;
- oslFileError rc = osl_getFileURLFromSystemPath( sys_path.pData, &reg_url.pData );
- if (osl_File_E_None != rc)
- {
- if (bVerbose)
- fprintf( stderr, "\nERROR: cannot make file url out of %s\n", argv[nPos]);
- return 1;
- }
-
- FILE* fDescr = fopen(argv[ ++nPos ], "r");
- OStringBuffer sBuffer(512);
-
- if ( fDescr) {
- size_t totalSize = 0;
- size_t readSize = 0;
- char pBuffer[513];
-
- while ( !feof(fDescr) )
- {
- if ( (readSize = fread(pBuffer, 1, 512, fDescr)) > 0
- && !ferror(fDescr) ) {
- totalSize += readSize;
- if (totalSize >= 512)
- sBuffer.ensureCapacity(totalSize * 2);
-
- sBuffer.append(pBuffer, readSize);
- }
- }
- fclose(fDescr);
- fDescr = 0; // just to be sure noone tries to use the file ever after
- }
-
- OString sDescr = sBuffer.makeStringAndClear();
- sal_Int32 nTokenIndex = 0;
-
- CDescrVector vDescr;
- CompDescriptor descr;
- bool bFirst = true;
-
- do {
- OString sTmp = sDescr.getToken(0, '\x0A', nTokenIndex);
- OString sToken(sTmp);
- if (sTmp.pData->buffer[sTmp.getLength()-1] == '\x0D')
- sToken = sTmp.copy(0, sTmp.getLength()-1);
- if ( sToken.indexOf("[ComponentDescriptor]") >= 0) {
- if (bFirst)
- bFirst = false;
- else
- vDescr.push_back(descr);
-
- descr = CompDescriptor();
- }
- else if ( sToken.indexOf("ImplementationName=") >= 0) {
- descr.sImplementationName = sToken.copy(19);
- }
- else if ( sToken.indexOf("ComponentName=") >= 0) {
- descr.sComponentName = sToken.copy(14);
- }
- else if ( sToken.indexOf("LoaderName=") >= 0) {
- descr.sLoaderName = sToken.copy(11);
- }
- else if ( (sToken.indexOf("[SupportedServices]") < 0) &&
- (sToken.getLength() > 0) &&
- (sToken.pData->buffer[0] != '[') ) {
- descr.vSupportedServices.push_back(sToken);
- }
- } while (nTokenIndex >= 0 );
- // insert the last descriptor
- vDescr.push_back(descr);
-
- Registry *pReg = new Registry;
-
- RegistryKey rootKey, key, subKey, serviceKey;
-
- if (pReg->open(reg_url, REG_READWRITE))
- {
- if (pReg->create(reg_url))
- {
- if (bVerbose)
- fprintf(stderr, "ERROR: open registry \"%s\" failed\n", argv[1]);
- return 1;
- }
- }
- if (pReg->openRootKey(rootKey)) {
- if (bVerbose)
- fprintf(stderr, "ERROR: open root key failed\n");
- return 1;
- }
-
- CDescrVector::const_iterator comp_iter = vDescr.begin();
- do {
- OString sImplName = (*comp_iter).sImplementationName;
- OUStringBuffer sbImpl;
- sbImpl.appendAscii("/IMPLEMENTATIONS/");
- sbImpl.append(OSToOUS(sImplName));
- OUString sImplKeyName = sbImpl.makeStringAndClear();
-
- if (rootKey.openKey(sImplKeyName, key) == REG_NO_ERROR) {
- if (bVerbose) {
- fprintf(stderr, "WARNING: implementation entry for \"%s\" already exists, existing entries are overwritten\n", sImplName.getStr());
- }
- } else {
- if (rootKey.createKey(sImplKeyName, key)) {
- if (bVerbose) {
- fprintf(stderr, "ERROR: can't create new implementation entry \"%s\".\n", sImplName.getStr());
- }
- return 1;
- }
- }
-
- OString sLoaderName = (*comp_iter).sLoaderName;
- OUString usKeyName(OUSTR("UNO/ACTIVATOR"));
- key.createKey(usKeyName, subKey);
- subKey.setValue(OUString(), RG_VALUETYPE_STRING,
- (sal_Char*)sLoaderName.getStr(), sLoaderName.getLength()+1);
-
- OString sCompName = (*comp_iter).sComponentName;
- usKeyName = OUSTR("UNO/LOCATION");
- key.createKey(usKeyName, subKey);
- subKey.setValue(OUString(), RG_VALUETYPE_STRING,
- (sal_Char*)sCompName.getStr(), sCompName.getLength()+1);
-
- usKeyName = OUSTR("UNO/SERVICES");
- key.createKey(usKeyName, subKey);
-
- rootKey.createKey(OUSTR("/SERVICES"), serviceKey);
-
- OSVector::const_iterator serv_iter = ((*comp_iter).vSupportedServices).begin();
- OUString usServiceKeyName;
- do {
- usServiceKeyName = OSToOUS(*serv_iter);
- // write service key in impl section
- subKey.createKey(usServiceKeyName, key);
-
- if (serviceKey.openKey(usServiceKeyName, key) == REG_NO_ERROR) {
- RegistryValueList<sal_Char*> valueList;
- serviceKey.getStringListValue(usServiceKeyName, valueList);
- if ( checkImplValue(&valueList, sImplName) ) {
- serv_iter++;
- continue;
- }
-
- sal_uInt32 nServices = valueList.getLength()+1;
- sal_Char** pImplList = (sal_Char**)rtl_allocateZeroMemory(
- nServices * sizeof(sal_Char*));
- pImplList[0] = (sal_Char*)rtl_allocateZeroMemory(
- sImplName.getLength()+1 * sizeof(sal_Char));
- rtl_copyMemory(pImplList[0], (sal_Char*)sImplName.getStr(),
- sImplName.getLength()+1);
- for (sal_uInt32 i=0; i < valueList.getLength(); i++) {
- pImplList[i+1]=valueList.getElement(i);
- }
- key.setStringListValue(OUString(), pImplList, nServices);
-
- // free memory
- rtl_freeMemory(pImplList[0]);
- rtl_freeMemory(pImplList);
-
- } else {
- serviceKey.createKey(usServiceKeyName, key);
-
- sal_Char* pImplList[1];
- pImplList[0] = (sal_Char*)rtl_allocateZeroMemory(
- sImplName.getLength()+1 * sizeof(sal_Char));
- rtl_copyMemory(pImplList[0], (sal_Char*)sImplName.getStr(),
- sImplName.getLength()+1);
- key.setStringListValue(OUString(), pImplList, 1);
-
- // free memory
- rtl_freeMemory(pImplList[0]);
- }
- serv_iter++;
- } while (serv_iter != (*comp_iter).vSupportedServices.end());
-
- comp_iter++;
- } while (comp_iter != vDescr.end());
-
- key.closeKey();
- subKey.closeKey();
- serviceKey.closeKey();
- rootKey.closeKey();
- pReg->close();
-
- return 0;
-}
diff --git a/crashrep/source/unx/main.cxx b/crashrep/source/unx/main.cxx
index afdba0afeebc..7579de78ec94 100755
--- a/crashrep/source/unx/main.cxx
+++ b/crashrep/source/unx/main.cxx
@@ -129,12 +129,12 @@ static string trim_string( const string& rString )
{
string temp = rString;
- while ( temp.length() && temp[0] == ' ' || temp[0] == '\t' )
+ while ( temp.length() && (temp[0] == ' ' || temp[0] == '\t') )
temp.erase( 0, 1 );
string::size_type len = temp.length();
- while ( len && temp[len-1] == ' ' || temp[len-1] == '\t' )
+ while ( len && (temp[len-1] == ' ' || temp[len-1] == '\t') )
{
temp.erase( len - 1, 1 );
len = temp.length();
diff --git a/cui/source/dialogs/SpellDialog.cxx b/cui/source/dialogs/SpellDialog.cxx
index 303b54688eea..4fde01da986e 100755
--- a/cui/source/dialogs/SpellDialog.cxx
+++ b/cui/source/dialogs/SpellDialog.cxx
@@ -76,6 +76,8 @@ using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::beans;
using namespace ::com::sun::star::linguistic2;
+using ::rtl::OUString;
+
#define C2U(cChar) ::rtl::OUString::createFromAscii(cChar)
// struct SpellDialog_Impl ---------------------------------------------
@@ -930,7 +932,7 @@ void SpellDialog::SetTitle_Impl(LanguageType nLang)
-----------------------------------------------------------------------*/
void SpellDialog::InitUserDicts()
{
- sal_uInt16 nLang = aLanguageLB.GetSelectLanguage();
+ const LanguageType nLang = aLanguageLB.GetSelectLanguage();
const Reference< XDictionary > *pDic = 0;
@@ -948,51 +950,50 @@ void SpellDialog::InitUserDicts()
pImpl->aDics = xDicList->getDictionaries();
}
- // Benutzerbuecher anzeigen
+ SvtLinguConfig aCfg;
+ const bool bHC = Application::GetSettings().GetStyleSettings().GetHighContrastMode();
+
+ // list suitable dictionaries
+ bool bEnable = false;
const sal_Int32 nSize = pImpl->aDics.getLength();
pDic = pImpl->aDics.getConstArray();
- sal_Int32 i;
delete aAddToDictMB.GetPopupMenu();
PopupMenu* pMenu = new PopupMenu;
- for (i = 0; i < nSize; ++i )
+ pMenu->SetMenuFlags(MENU_FLAG_NOAUTOMNEMONICS);
+ USHORT nItemId = 1; // menu items should be enumerated from 1 and not 0
+ for (sal_Int32 i = 0; i < nSize; ++i)
{
- Reference< XDictionary > xDic( pDic[i], UNO_QUERY );
- if (!xDic.is() || SvxGetIgnoreAllList() == xDic)
+ uno::Reference< linguistic2::XDictionary > xDicTmp( pDic[i], uno::UNO_QUERY );
+ if (!xDicTmp.is() || SvxGetIgnoreAllList() == xDicTmp)
continue;
- // add only active and not read-only dictionaries to list
- // from which to choose from
- Reference< frame::XStorable > xStor( xDic, UNO_QUERY );
- if ( xDic->isActive() && (!xStor.is() || !xStor->isReadonly()) )
+ uno::Reference< frame::XStorable > xStor( xDicTmp, uno::UNO_QUERY );
+ LanguageType nActLanguage = SvxLocaleToLanguage( xDicTmp->getLocale() );
+ if( xDicTmp->isActive()
+ && xDicTmp->getDictionaryType() != linguistic2::DictionaryType_NEGATIVE
+ && (nLang == nActLanguage || LANGUAGE_NONE == nActLanguage )
+ && (!xStor.is() || !xStor->isReadonly()) )
{
- sal_Bool bNegativ = xDic->getDictionaryType() == DictionaryType_NEGATIVE;
- pMenu->InsertItem( (USHORT)i + 1, ::GetDicInfoStr( xDic->getName(),
- SvxLocaleToLanguage( xDic->getLocale() ), bNegativ ) );
- }
- }
- aAddToDictMB.SetPopupMenu(pMenu);
-
- aAddToDictMB.Disable();
+ pMenu->InsertItem( nItemId, xDicTmp->getName() );
+ bEnable = sal_True;
- sal_uInt16 k;
- for ( k = 0; k < pMenu->GetItemCount(); ++k )
- {
- sal_uInt16 nId = pMenu->GetItemId(k) - 1;
- sal_Bool bFound = sal_False;
-
- const sal_uInt16 nDicLang = SvxLocaleToLanguage( pDic[nId]->getLocale() );
- const sal_Bool bDicNegativ =
- pDic[nId]->getDictionaryType() == DictionaryType_NEGATIVE;
- // Stimmt die Sprache "uberein, dann enable
- if ((nDicLang == nLang || nDicLang == LANGUAGE_NONE) && !bDicNegativ)
- bFound = sal_True;
+ uno::Reference< lang::XServiceInfo > xSvcInfo( xDicTmp, uno::UNO_QUERY );
+ if (xSvcInfo.is())
+ {
+ OUString aDictionaryImageUrl( aCfg.GetSpellAndGrammarContextDictionaryImage(
+ xSvcInfo->getImplementationName(), bHC) );
+ if (aDictionaryImageUrl.getLength() > 0)
+ {
+ Image aImage( lcl_GetImageFromPngUrl( aDictionaryImageUrl ) );
+ pMenu->SetItemImage( nItemId, aImage );
+ }
+ }
- if (bFound)
- {
- aAddToDictMB.Enable();
- break;
+ ++nItemId;
}
}
+ aAddToDictMB.SetPopupMenu(pMenu);
+ aAddToDictMB.Enable( bEnable );
}
/*-- 20.10.2003 15:31:06---------------------------------------------------
@@ -1000,31 +1001,39 @@ void SpellDialog::InitUserDicts()
IMPL_LINK(SpellDialog, AddToDictionaryHdl, MenuButton*, pButton )
{
aSentenceED.UndoActionStart( SPELLUNDO_CHANGE_GROUP );
- USHORT nItem = pButton->GetCurItemId();
//GetErrorText() returns the current error even if the text is already
//manually changed
- String sNewWord= aSentenceED.GetErrorText();
+ const String aNewWord= aSentenceED.GetErrorText();
+
+ USHORT nItemId = pButton->GetCurItemId();
+ PopupMenu *pMenu = pButton->GetPopupMenu();
+ String aDicName ( pMenu->GetItemText( nItemId ) );
+
+ uno::Reference< linguistic2::XDictionary > xDic;
+ uno::Reference< linguistic2::XDictionaryList > xDicList( SvxGetDictionaryList() );
+ if (xDicList.is())
+ xDic = xDicList->getDictionaryByName( aDicName );
- Reference< XDictionary > xDic( pImpl->aDics.getConstArray()[ nItem - 1 ], UNO_QUERY );
sal_Int16 nAddRes = DIC_ERR_UNKNOWN;
if (xDic.is())
{
- String sTmpTxt( sNewWord );
- sal_Bool bNegEntry = xDic->getDictionaryType() == DictionaryType_NEGATIVE;
- nAddRes = linguistic::AddEntryToDic( xDic, sTmpTxt, bNegEntry,
- ::rtl::OUString(), LANGUAGE_NONE );
+ nAddRes = linguistic::AddEntryToDic( xDic, aNewWord, FALSE, OUString(), LANGUAGE_NONE );
+ // save modified user-dictionary if it is persistent
+ uno::Reference< frame::XStorable > xSavDic( xDic, uno::UNO_QUERY );
+ if (xSavDic.is())
+ xSavDic->store();
- if(nAddRes == DIC_ERR_NONE)
+ if (nAddRes == DIC_ERR_NONE)
{
SpellUndoAction_Impl* pAction = new SpellUndoAction_Impl(
SPELLUNDO_CHANGE_ADD_TO_DICTIONARY, aDialogUndoLink);
- pAction->SetDictionary(xDic);
- pAction->SetAddedWord(sTmpTxt);
- aSentenceED.AddUndoAction(pAction);
+ pAction->SetDictionary( xDic );
+ pAction->SetAddedWord( aNewWord );
+ aSentenceED.AddUndoAction( pAction );
}
// failed because there is already an entry?
- if (DIC_ERR_NONE != nAddRes && xDic->getEntry( sTmpTxt ).is())
+ if (DIC_ERR_NONE != nAddRes && xDic->getEntry( aNewWord ).is())
nAddRes = DIC_ERR_NONE;
}
if (DIC_ERR_NONE != nAddRes)
@@ -1032,8 +1041,6 @@ IMPL_LINK(SpellDialog, AddToDictionaryHdl, MenuButton*, pButton )
SvxDicError( this, nAddRes );
return 0; // Nicht weitermachen
}
- // nach dem Aufnehmen ggf. '='-Zeichen entfernen
- sNewWord.EraseAllChars( sal_Unicode( '=' ) );
// go on
SpellContinue_Impl();
diff --git a/cui/source/dialogs/thesdlg.cxx b/cui/source/dialogs/thesdlg.cxx
index ec04362b488d..c1811b196895 100755
--- a/cui/source/dialogs/thesdlg.cxx
+++ b/cui/source/dialogs/thesdlg.cxx
@@ -57,6 +57,7 @@
#include <i18npool/mslangid.hxx>
#include <comphelper/processfactory.hxx>
#include <osl/file.hxx>
+#include <svl/lngmisc.hxx>
#include <stack>
@@ -73,36 +74,6 @@ using ::rtl::OUString;
#define A2S(x) String::CreateFromAscii( x )
-
-// GetReplaceEditString -------------------------------
-
-static void GetReplaceEditString( String &rText )
-{
- // The strings returned by the thesaurus saometimes have some
- // explanation text put in between '(' and ')' or a trailing '*'.
- // These parts should not be put in the ReplaceEdit Text that may get
- // inserted into the document. Thus we strip them from the text.
-
- xub_StrLen nPos = rText.Search( sal_Unicode('(') );
- while (STRING_NOTFOUND != nPos)
- {
- xub_StrLen nEnd = rText.Search( sal_Unicode(')'), nPos );
- if (STRING_NOTFOUND != nEnd)
- rText.Erase( nPos, nEnd-nPos+1 );
- else
- break;
- nPos = rText.Search( sal_Unicode('(') );
- }
-
- nPos = rText.Search( sal_Unicode('*') );
- if (STRING_NOTFOUND != nPos)
- rText.Erase( nPos );
-
- // remove any possible remaining ' ' that may confuse the thesaurus
- // when it gets called with the text
- rText.EraseLeadingAndTrailingChars( sal_Unicode(' ') );
-}
-
// class LookUpComboBox_Impl --------------------------------------------------
LookUpComboBox_Impl::LookUpComboBox_Impl(
@@ -488,7 +459,7 @@ IMPL_LINK( SvxThesaurusDialog_Impl, WordSelectHdl_Impl, ComboBox *, pBox )
{
USHORT nPos = pBox->GetSelectEntryPos();
String aStr( pBox->GetEntry( nPos ) );
- GetReplaceEditString( aStr );
+ aStr = linguistic::GetThesaurusReplaceText( aStr );
aWordCB.SetText( aStr );
LookUp_Impl();
}
@@ -507,7 +478,7 @@ IMPL_LINK( SvxThesaurusDialog_Impl, AlternativesSelectHdl_Impl, SvxCheckListBox
if (pData && !pData->IsHeader())
{
aStr = pData->GetText();
- GetReplaceEditString( aStr );
+ aStr = linguistic::GetThesaurusReplaceText( aStr );
}
aReplaceEdit.SetText( aStr );
}
@@ -525,7 +496,7 @@ IMPL_LINK( SvxThesaurusDialog_Impl, AlternativesDoubleClickHdl_Impl, SvxCheckLis
if (pData && !pData->IsHeader())
{
aStr = pData->GetText();
- GetReplaceEditString( aStr );
+ aStr = linguistic::GetThesaurusReplaceText( aStr );
}
aWordCB.SetText( aStr );
diff --git a/cui/source/options/webconninfo.cxx b/cui/source/options/webconninfo.cxx
index 5c5dcdae4ade..c52168fb1ab6 100644..100755
--- a/cui/source/options/webconninfo.cxx
+++ b/cui/source/options/webconninfo.cxx
@@ -311,10 +311,8 @@ IMPL_LINK( WebConnectionInfoDialog, ChangePasswordHdl, PushButton*, EMPTYARG )
::rtl::OUString aURL = m_aPasswordsLB.GetEntryText( pEntry, 0 );
::rtl::OUString aUserName = m_aPasswordsLB.GetEntryText( pEntry, 1 );
- ::comphelper::DocPasswordRequest* pPasswordRequest
- = new ::comphelper::DocPasswordRequest(
- ::comphelper::DocPasswordRequestType_STANDARD,
- task::PasswordRequestMode_PASSWORD_CREATE, aURL );
+ ::comphelper::SimplePasswordRequest* pPasswordRequest
+ = new ::comphelper::SimplePasswordRequest( task::PasswordRequestMode_PASSWORD_CREATE );
uno::Reference< task::XInteractionRequest > rRequest( pPasswordRequest );
uno::Reference< task::XInteractionHandler > xInteractionHandler(
diff --git a/curl/makefile.mk b/curl/makefile.mk
index adab75f41d49..f4e4c7f8ffd1 100644
--- a/curl/makefile.mk
+++ b/curl/makefile.mk
@@ -65,10 +65,6 @@ curl_CFLAGS+=-I$(SYSBASE)$/usr$/include
curl_LDFLAGS+=-L$(SYSBASE)$/usr$/lib
.ENDIF # "$(SYSBASE)"!=""
-.IF "$(OS)$(COM)$(CPU)"=="LINUXGCCI"
-curl_LDFLAGS+=-Wl,-z,noexecstack
-.ENDIF
-
.IF "$(OS)$(CPU)"=="SOLARISU"
curl_CFLAGS+:=$(ARCH_FLAGS)
curl_LDFLAGS+:=$(ARCH_FLAGS)
diff --git a/dbaccess/prj/d.lst b/dbaccess/prj/d.lst
index 383cc119c814..4e1ab9c7f417 100644
--- a/dbaccess/prj/d.lst
+++ b/dbaccess/prj/d.lst
@@ -51,3 +51,10 @@ touch: ..\%__SRC%\misc\dbaccess.hid %_DEST%\bin%_EXT%\dba.hid
..\inc\*.hxx %_DEST%\inc%_EXT%\dbaccess\*.hxx
..\inc\*.h %_DEST%\inc%_EXT%\dbaccess\*.h
+..\%__SRC%\misc\adabasui.component %_DEST%\xml%_EXT%\adabasui.component
+..\%__SRC%\misc\dba.component %_DEST%\xml%_EXT%\dba.component
+..\%__SRC%\misc\dbacfg.component %_DEST%\xml%_EXT%\dbacfg.component
+..\%__SRC%\misc\dbaxml.component %_DEST%\xml%_EXT%\dbaxml.component
+..\%__SRC%\misc\dbmm.component %_DEST%\xml%_EXT%\dbmm.component
+..\%__SRC%\misc\dbu.component %_DEST%\xml%_EXT%\dbu.component
+..\%__SRC%\misc\sdbt.component %_DEST%\xml%_EXT%\sdbt.component
diff --git a/dbaccess/source/core/misc/services.cxx b/dbaccess/source/core/misc/services.cxx
index 5c427d1eb57e..1853ac167ce3 100644
--- a/dbaccess/source/core/misc/services.cxx
+++ b/dbaccess/source/core/misc/services.cxx
@@ -94,28 +94,6 @@ extern "C" OOO_DLLPUBLIC_DBA void SAL_CALL component_getImplementationEnvironmen
}
//---------------------------------------------------------------------------------------
-extern "C" OOO_DLLPUBLIC_DBA sal_Bool SAL_CALL component_writeInfo(
- void* pServiceManager,
- void* pRegistryKey
- )
-{
- if (pRegistryKey)
- try
- {
- return ::dba::DbaModule::getInstance().writeComponentInfos(
- static_cast< XMultiServiceFactory* >( pServiceManager ),
- static_cast< XRegistryKey* >( pRegistryKey ) )
- && cppu::component_writeInfoHelper(pServiceManager, pRegistryKey, dba::entries);
- }
- catch (InvalidRegistryException& )
- {
- OSL_ENSURE( false, "DBA::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !" );
- }
-
- return sal_False;
-}
-
-//---------------------------------------------------------------------------------------
extern "C" OOO_DLLPUBLIC_DBA void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/dbaccess/source/ext/adabas/Acomponentmodule.cxx b/dbaccess/source/ext/adabas/Acomponentmodule.cxx
index 467a36b75afb..4a0661fff228 100644
--- a/dbaccess/source/ext/adabas/Acomponentmodule.cxx
+++ b/dbaccess/source/ext/adabas/Acomponentmodule.cxx
@@ -248,54 +248,6 @@ namespace COMPMOD_NAMESPACE
}
//--------------------------------------------------------------------------
- sal_Bool OModule::writeComponentInfos(
- const Reference< XMultiServiceFactory >& /*_rxServiceManager*/,
- const Reference< XRegistryKey >& _rxRootKey)
- {
- OSL_ENSURE(_rxRootKey.is(), "OModule::writeComponentInfos : invalid argument !");
-
- if (!s_pImplementationNames)
- {
- OSL_ASSERT("OModule::writeComponentInfos : have no class infos ! Are you sure called this method at the right time ?");
- return sal_True;
- }
- OSL_ENSURE(s_pImplementationNames && s_pSupportedServices && s_pCreationFunctionPointers && s_pFactoryFunctionPointers,
- "OModule::writeComponentInfos : inconsistent state (the pointers) !");
- OSL_ENSURE( (s_pImplementationNames->getLength() == s_pSupportedServices->getLength())
- && (s_pImplementationNames->getLength() == s_pCreationFunctionPointers->getLength())
- && (s_pImplementationNames->getLength() == s_pFactoryFunctionPointers->getLength()),
- "OModule::writeComponentInfos : inconsistent state !");
-
- sal_Int32 nLen = s_pImplementationNames->getLength();
- const ::rtl::OUString* pImplName = s_pImplementationNames->getConstArray();
- const Sequence< ::rtl::OUString >* pServices = s_pSupportedServices->getConstArray();
-
- ::rtl::OUString sRootKey("/", 1, RTL_TEXTENCODING_ASCII_US);
- for (sal_Int32 i=0; i<nLen; ++i, ++pImplName, ++pServices)
- {
- ::rtl::OUString aMainKeyName(sRootKey);
- aMainKeyName += *pImplName;
- aMainKeyName += ::rtl::OUString::createFromAscii("/UNO/SERVICES");
-
- try
- {
- Reference< XRegistryKey > xNewKey( _rxRootKey->createKey(aMainKeyName) );
-
- const ::rtl::OUString* pService = pServices->getConstArray();
- for (sal_Int32 j=0; j<pServices->getLength(); ++j, ++pService)
- xNewKey->createKey(*pService);
- }
- catch(Exception&)
- {
- OSL_ASSERT("OModule::writeComponentInfos : something went wrong while creating the keys !");
- return sal_False;
- }
- }
-
- return sal_True;
- }
-
- //--------------------------------------------------------------------------
Reference< XInterface > OModule::getComponentFactory(
const ::rtl::OUString& _rImplementationName,
const Reference< XMultiServiceFactory >& _rxServiceManager)
diff --git a/dbaccess/source/ext/adabas/Acomponentmodule.hxx b/dbaccess/source/ext/adabas/Acomponentmodule.hxx
index 7b5f1466a092..c015ad25cf38 100644
--- a/dbaccess/source/ext/adabas/Acomponentmodule.hxx
+++ b/dbaccess/source/ext/adabas/Acomponentmodule.hxx
@@ -137,21 +137,6 @@ typedef ::com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleService
static void revokeComponent(
const ::rtl::OUString& _rImplementationName);
- /** write the registration information of all known components
- <p>writes the registration information of all components which are currently registered into the
- specified registry.<p/>
- <p>Usually used from within component_writeInfo.<p/>
- @param _rxServiceManager
- the service manager
- @param _rRootKey
- the registry key under which the information will be stored
- @return
- sal_True if the registration of all implementations was successfull, sal_False otherwise
- */
- static sal_Bool writeComponentInfos(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxServiceManager,
- const ::com::sun::star::uno::Reference< ::com::sun::star::registry::XRegistryKey >& _rRootKey);
-
/** creates a Factory for the component with the given implementation name.
<p>Usually used from within component_getFactory.<p/>
@param _rxServiceManager
diff --git a/dbaccess/source/ext/adabas/Aservices.cxx b/dbaccess/source/ext/adabas/Aservices.cxx
index 7ea45579157f..b1c24bd295a5 100644
--- a/dbaccess/source/ext/adabas/Aservices.cxx
+++ b/dbaccess/source/ext/adabas/Aservices.cxx
@@ -74,27 +74,6 @@ component_getImplementationEnvironment(
}
//---------------------------------------------------------------------------------------
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void* pServiceManager,
- void* pRegistryKey
- )
-{
- if (pRegistryKey)
- try
- {
- return OModule::writeComponentInfos(
- static_cast<XMultiServiceFactory*>(pServiceManager),
- static_cast<XRegistryKey*>(pRegistryKey));
- }
- catch (InvalidRegistryException& )
- {
- OSL_ASSERT("DBA::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
- }
-
- return sal_False;
-}
-
-//---------------------------------------------------------------------------------------
extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/dbaccess/source/ext/adabas/adabasui.component b/dbaccess/source/ext/adabas/adabasui.component
new file mode 100644
index 000000000000..e547a0cffd4e
--- /dev/null
+++ b/dbaccess/source/ext/adabas/adabasui.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="org.openoffice.comp.adabasui.AdabasCreateDialog">
+ <service name="com.sun.star.sdb.AdabasCreationDialog"/>
+ </implementation>
+</component>
diff --git a/dbaccess/source/ext/adabas/adabasui.dxp b/dbaccess/source/ext/adabas/adabasui.dxp
index db9c0a52f288..926e49f5f1a5 100644
--- a/dbaccess/source/ext/adabas/adabasui.dxp
+++ b/dbaccess/source/ext/adabas/adabasui.dxp
@@ -1,4 +1,3 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/dbaccess/source/ext/adabas/exports.dxp b/dbaccess/source/ext/adabas/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/dbaccess/source/ext/adabas/exports.dxp
+++ b/dbaccess/source/ext/adabas/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/dbaccess/source/ext/adabas/makefile.mk b/dbaccess/source/ext/adabas/makefile.mk
index e23310ac92f3..8dbbe7abc3ff 100644
--- a/dbaccess/source/ext/adabas/makefile.mk
+++ b/dbaccess/source/ext/adabas/makefile.mk
@@ -91,3 +91,10 @@ RESLIB1SRSFILES=$(RES1FILELIST)
.INCLUDE : target.mk
+ALLTAR : $(MISC)/adabasui.component
+
+$(MISC)/adabasui.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ adabasui.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt adabasui.component
diff --git a/dbaccess/source/ext/macromigration/dbmm.component b/dbaccess/source/ext/macromigration/dbmm.component
new file mode 100644
index 000000000000..a74e94510aeb
--- /dev/null
+++ b/dbaccess/source/ext/macromigration/dbmm.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.dbaccess.macromigration.MacroMigrationDialogService">
+ <service name="com.sun.star.sdb.application.MacroMigrationWizard"/>
+ </implementation>
+</component>
diff --git a/dbaccess/source/ext/macromigration/makefile.mk b/dbaccess/source/ext/macromigration/makefile.mk
index 41898091c26a..b71330f17ef5 100644
--- a/dbaccess/source/ext/macromigration/makefile.mk
+++ b/dbaccess/source/ext/macromigration/makefile.mk
@@ -99,3 +99,11 @@ RESLIB1SRSFILES=$(RES1FILELIST)
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/dbmm.component
+
+$(MISC)/dbmm.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ dbmm.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt dbmm.component
diff --git a/dbaccess/source/filter/migration/cfgservices.cxx b/dbaccess/source/filter/migration/cfgservices.cxx
index c9696f37ca71..054f013eb51f 100644
--- a/dbaccess/source/filter/migration/cfgservices.cxx
+++ b/dbaccess/source/filter/migration/cfgservices.cxx
@@ -74,27 +74,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment(
}
//---------------------------------------------------------------------------------------
-extern "C" sal_Bool SAL_CALL component_writeInfo(
- void* pServiceManager,
- void* pRegistryKey
- )
-{
- if (pRegistryKey)
- try
- {
- return ::dbacfg::OModuleRegistration::writeComponentInfos(
- static_cast<XMultiServiceFactory*>(pServiceManager),
- static_cast<XRegistryKey*>(pRegistryKey));
- }
- catch (InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "DBA::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
- }
-
- return sal_False;
-}
-
-//---------------------------------------------------------------------------------------
extern "C" void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/dbaccess/source/filter/migration/dbacfg.component b/dbaccess/source/filter/migration/dbacfg.component
new file mode 100644
index 000000000000..65e92d0f5394
--- /dev/null
+++ b/dbaccess/source/filter/migration/dbacfg.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.sdb.DataSourceMigration">
+ <service name="com.sun.star.sdb.DataSourceMigration"/>
+ </implementation>
+</component>
diff --git a/dbaccess/source/filter/migration/makefile.mk b/dbaccess/source/filter/migration/makefile.mk
index 7bb53208d9d0..3a8a37e07ac7 100644
--- a/dbaccess/source/filter/migration/makefile.mk
+++ b/dbaccess/source/filter/migration/makefile.mk
@@ -72,3 +72,11 @@ DEF1NAME=$(SHL1TARGET)
# --- Targets ----------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/dbacfg.component
+
+$(MISC)/dbacfg.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ dbacfg.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt dbacfg.component
diff --git a/dbaccess/source/filter/xml/dbaxml.component b/dbaccess/source/filter/xml/dbaxml.component
new file mode 100644
index 000000000000..23b3a5c1a776
--- /dev/null
+++ b/dbaccess/source/filter/xml/dbaxml.component
@@ -0,0 +1,49 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.sdb.DBExportFilter">
+ <service name="com.sun.star.document.ExportFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.sdb.DBFilter">
+ <service name="com.sun.star.document.ImportFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.sdb.XMLFullExporter">
+ <service name="com.sun.star.document.ExportFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.sdb.XMLSettingsExporter">
+ <service name="com.sun.star.document.ExportFilter"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.dbflt.DBContentLoader2">
+ <service name="com.sun.star.frame.FrameLoader"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.dbflt.DBTypeDetection">
+ <service name="com.sun.star.document.ExtendedTypeDetection"/>
+ </implementation>
+</component>
diff --git a/dbaccess/source/filter/xml/makefile.mk b/dbaccess/source/filter/xml/makefile.mk
index 6c6091c5f69e..e36173f5abac 100644
--- a/dbaccess/source/filter/xml/makefile.mk
+++ b/dbaccess/source/filter/xml/makefile.mk
@@ -112,3 +112,11 @@ DEF1NAME=$(SHL1TARGET)
# --- Targets ----------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/dbaxml.component
+
+$(MISC)/dbaxml.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ dbaxml.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt dbaxml.component
diff --git a/dbaccess/source/filter/xml/xmlservices.cxx b/dbaccess/source/filter/xml/xmlservices.cxx
index 6d7f9dd1cb75..7afafe465e52 100644
--- a/dbaccess/source/filter/xml/xmlservices.cxx
+++ b/dbaccess/source/filter/xml/xmlservices.cxx
@@ -84,28 +84,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment(
}
//---------------------------------------------------------------------------------------
-extern "C" sal_Bool SAL_CALL component_writeInfo(
- void* pServiceManager,
- void* pRegistryKey
- )
-{
- if (pRegistryKey)
- try
- {
- writeDBLoaderInfo2(pRegistryKey);
- return ::dbaxml::OModuleRegistration::writeComponentInfos(
- static_cast<XMultiServiceFactory*>(pServiceManager),
- static_cast<XRegistryKey*>(pRegistryKey));
- }
- catch (InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "DBA::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
- }
-
- return sal_False;
-}
-
-//---------------------------------------------------------------------------------------
extern "C" void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/dbaccess/source/inc/registrationhelper.hxx b/dbaccess/source/inc/registrationhelper.hxx
index b7861e89faf0..1bec33866093 100644
--- a/dbaccess/source/inc/registrationhelper.hxx
+++ b/dbaccess/source/inc/registrationhelper.hxx
@@ -73,16 +73,6 @@ public:
static void revokeComponent(
const ::rtl::OUString& _rImplementationName);
- /** writes the registration information of all components which are currently registered into the specified registry.
- Usually used from within component_writeInfo.
- @param _rxServiceManager the service manager
- @param _rRootKey the registry key under which the information will be stored
- @return sal_True if the registration of all implementations was successfull, sal_False otherwise
- */
- static sal_Bool writeComponentInfos(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxServiceManager,
- const ::com::sun::star::uno::Reference< ::com::sun::star::registry::XRegistryKey >& _rRootKey);
-
/** creates a Factory for the component with the given implementation name. Usually used from within component_getFactory.
@param _rxServiceManager a pointer to an XMultiServiceFactory interface as got in component_getFactory
@param _pImplementationName the implementation name of the component
diff --git a/dbaccess/source/sdbtools/misc/sdbt_services.cxx b/dbaccess/source/sdbtools/misc/sdbt_services.cxx
index 1c6d746ed99b..9cbba28a2061 100644
--- a/dbaccess/source/sdbtools/misc/sdbt_services.cxx
+++ b/dbaccess/source/sdbtools/misc/sdbt_services.cxx
@@ -66,27 +66,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment(
}
//---------------------------------------------------------------------------------------
-extern "C" sal_Bool SAL_CALL component_writeInfo(
- void* pServiceManager,
- void* pRegistryKey
- )
-{
- if (pRegistryKey)
- try
- {
- return ::sdbtools::SdbtModule::getInstance().writeComponentInfos(
- static_cast<XMultiServiceFactory*>(pServiceManager),
- static_cast<XRegistryKey*>(pRegistryKey));
- }
- catch (const InvalidRegistryException& )
- {
- OSL_ASSERT("sdbt::component_writeInfo: could not create a registry key (InvalidRegistryException) !");
- }
-
- return sal_False;
-}
-
-//---------------------------------------------------------------------------------------
extern "C" void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/dbaccess/source/shared/registrationhelper.cxx b/dbaccess/source/shared/registrationhelper.cxx
index b606c6bcf9b6..318454df8994 100644
--- a/dbaccess/source/shared/registrationhelper.cxx
+++ b/dbaccess/source/shared/registrationhelper.cxx
@@ -116,54 +116,6 @@ void OModuleRegistration::revokeComponent(const ::rtl::OUString& _rImplementatio
}
//--------------------------------------------------------------------------
-sal_Bool OModuleRegistration::writeComponentInfos(
- const uno::Reference< lang::XMultiServiceFactory >& /*_rxServiceManager*/,
- const uno::Reference< registry::XRegistryKey >& _rxRootKey)
-{
- OSL_ENSURE(_rxRootKey.is(), "OModuleRegistration::writeComponentInfos : invalid argument !");
-
- if (!s_pImplementationNames)
- {
- OSL_ENSURE(sal_False, "OModuleRegistration::writeComponentInfos : have no class infos ! Are you sure called this method at the right time ?");
- return sal_True;
- }
- OSL_ENSURE(s_pImplementationNames && s_pSupportedServices && s_pCreationFunctionPointers && s_pFactoryFunctionPointers,
- "OModuleRegistration::writeComponentInfos : inconsistent state (the pointers) !");
- OSL_ENSURE( (s_pImplementationNames->getLength() == s_pSupportedServices->getLength())
- && (s_pImplementationNames->getLength() == s_pCreationFunctionPointers->getLength())
- && (s_pImplementationNames->getLength() == s_pFactoryFunctionPointers->getLength()),
- "OModuleRegistration::writeComponentInfos : inconsistent state !");
-
- sal_Int32 nLen = s_pImplementationNames->getLength();
- const ::rtl::OUString* pImplName = s_pImplementationNames->getConstArray();
- const uno::Sequence< ::rtl::OUString >* pServices = s_pSupportedServices->getConstArray();
-
- ::rtl::OUString sRootKey("/", 1, RTL_TEXTENCODING_ASCII_US);
- for (sal_Int32 i=0; i<nLen; ++i, ++pImplName, ++pServices)
- {
- ::rtl::OUString aMainKeyName(sRootKey);
- aMainKeyName += *pImplName;
- aMainKeyName += ::rtl::OUString::createFromAscii("/UNO/SERVICES");
-
- try
- {
- uno::Reference< registry::XRegistryKey > xNewKey( _rxRootKey->createKey(aMainKeyName) );
-
- const ::rtl::OUString* pService = pServices->getConstArray();
- for (sal_Int32 j=0; j<pServices->getLength(); ++j, ++pService)
- xNewKey->createKey(*pService);
- }
- catch(uno::Exception const&)
- {
- OSL_ENSURE(sal_False, "OModuleRegistration::writeComponentInfos : something went wrong while creating the keys !");
- return sal_False;
- }
- }
-
- return sal_True;
-}
-
-//--------------------------------------------------------------------------
uno::Reference< uno::XInterface > OModuleRegistration::getComponentFactory(
const ::rtl::OUString& _rImplementationName,
const uno::Reference< lang::XMultiServiceFactory >& _rxServiceManager)
diff --git a/dbaccess/source/ui/misc/uiservices.cxx b/dbaccess/source/ui/misc/uiservices.cxx
index d206e2854da6..0c5a37e31378 100644
--- a/dbaccess/source/ui/misc/uiservices.cxx
+++ b/dbaccess/source/ui/misc/uiservices.cxx
@@ -125,28 +125,6 @@ extern "C" DBACCESS_DLLPUBLIC void SAL_CALL component_getImplementationEnvironme
}
//---------------------------------------------------------------------------------------
-extern "C" DBACCESS_DLLPUBLIC sal_Bool SAL_CALL component_writeInfo(
- void* pServiceManager,
- void* pRegistryKey
- )
-{
- if (pRegistryKey)
- try
- {
- writeDBLoaderInfo(pRegistryKey);
- return ::dbaui::OModuleRegistration::writeComponentInfos(
- static_cast<XMultiServiceFactory*>(pServiceManager),
- static_cast<XRegistryKey*>(pRegistryKey));
- }
- catch (InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "DBA::component_writeInfo : could not create a registry key ! ## InvalidRegistryException !");
- }
-
- return sal_False;
-}
-
-//---------------------------------------------------------------------------------------
extern "C" DBACCESS_DLLPUBLIC void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/dbaccess/util/dba.component b/dbaccess/util/dba.component
new file mode 100644
index 000000000000..b25768dbfab6
--- /dev/null
+++ b/dbaccess/util/dba.component
@@ -0,0 +1,63 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.chart2.data.DatabaseDataProvider">
+ <service name="com.sun.star.chart2.data.DatabaseDataProvider"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.dba.DataAccessDescriptorFactory">
+ <service name="com.sun.star.sdb.DataAccessDescriptorFactory"/>
+ <singleton name="com.sun.star.sdb.DataAccessDescriptorFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.dba.OCommandDefinition">
+ <service name="com.sun.star.sdb.CommandDefinition"/>
+ <service name="com.sun.star.sdb.QueryDefinition"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.dba.OComponentDefinition">
+ <service name="com.sun.star.sdb.TableDefinition"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.dba.ODatabaseContext">
+ <service name="com.sun.star.sdb.DatabaseContext"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.dba.ODatabaseDocument">
+ <service name="com.sun.star.document.OfficeDocument"/>
+ <service name="com.sun.star.sdb.OfficeDatabaseDocument"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.dba.ODatabaseSource">
+ <service name="com.sun.star.sdb.DataSource"/>
+ <service name="com.sun.star.sdb.DocumentDataSource"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.dba.ORowSet">
+ <service name="com.sun.star.sdb.ResultSet"/>
+ <service name="com.sun.star.sdb.RowSet"/>
+ <service name="com.sun.star.sdbc.ResultSet"/>
+ <service name="com.sun.star.sdbc.RowSet"/>
+ <service name="com.sun.star.sdbcx.ResultSet"/>
+ </implementation>
+</component>
diff --git a/dbaccess/util/dbu.component b/dbaccess/util/dbu.component
new file mode 100644
index 000000000000..ce0dc45cf0be
--- /dev/null
+++ b/dbaccess/util/dbu.component
@@ -0,0 +1,116 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.dbaccess.DatabaseInteractionHandler">
+ <service name="com.sun.star.sdb.DatabaseInteractionHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.dbaccess.LegacyInteractionHandler">
+ <service name="com.sun.star.sdb.InteractionHandler"/>
+ </implementation>
+ <implementation
+ name="com.sun.star.comp.dbaccess.OTextConnectionSettingsDialog">
+ <service name="com.sun.star.sdb.TextConnectionSettings"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.dbu.OColumnControl">
+ <service name="com.sun.star.sdb.ColumnDescriptorControl"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.dbu.OColumnControlModel">
+ <service name="com.sun.star.sdb.ColumnDescriptorControlModel"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.dbu.SbaXGridControl">
+ <service name="com.sun.star.form.control.GridControl"/>
+ <service name="com.sun.star.form.control.InteractionGridControl"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.sdb.DirectSQLDialog">
+ <service name="org.openoffice.comp.dbu.DirectSqlDialog"/>
+ </implementation>
+ <implementation name="com.sun.star.sdb.ApplicationStatusbarController">
+ <service name="com.sun.star.frame.StatusbarController"/>
+ </implementation>
+ <implementation name="com.sun.star.sdb.ApplicationToolboxController">
+ <service name="com.sun.star.frame.ToolboxController"/>
+ </implementation>
+ <implementation name="com.sun.star.uno.comp.sdb.RowsetFilterDialog">
+ <service name="com.sun.star.sdb.FilterDialog"/>
+ </implementation>
+ <implementation name="com.sun.star.uno.comp.sdb.RowsetOrderDialog">
+ <service name="com.sun.star.sdb.OrderDialog"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.dbu.CopyTableWizard">
+ <service name="com.sun.star.sdb.application.CopyTableWizard"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.dbu.DBContentLoader">
+ <service name="com.sun.star.frame.FrameLoader"/>
+ <service name="com.sun.star.sdb.ContentLoader"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.dbu.OAdvancedSettingsDialog">
+ <service name="com.sun.star.sdb.AdvancedDatabaseSettingsDialog"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.dbu.OApplicationController">
+ <service name="com.sun.star.sdb.application.DefaultViewController"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.dbu.ODBTypeWizDialog">
+ <service name="com.sun.star.sdb.DataSourceTypeChangeDialog"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.dbu.ODBTypeWizDialogSetup">
+ <service name="com.sun.star.sdb.DatabaseWizardDialog"/>
+ </implementation>
+ <implementation
+ name="org.openoffice.comp.dbu.ODatasourceAdministrationDialog">
+ <service name="com.sun.star.sdb.DatasourceAdministrationDialog"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.dbu.ODatasourceBrowser">
+ <service name="com.sun.star.sdb.DataSourceBrowser"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.dbu.OFormGridView">
+ <service name="com.sun.star.sdb.FormGridView"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.dbu.OQueryDesign">
+ <service name="com.sun.star.sdb.QueryDesign"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.dbu.ORelationDesign">
+ <service name="com.sun.star.sdb.RelationDesign"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.dbu.OSQLMessageDialog">
+ <service name="com.sun.star.sdb.ErrorMessageDialog"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.dbu.OTableDesign">
+ <service name="com.sun.star.sdb.TableDesign"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.dbu.OTableFilterDialog">
+ <service name="com.sun.star.sdb.TableFilterDialog"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.dbu.OUserSettingsDialog">
+ <service name="com.sun.star.sdb.UserAdministrationDialog"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.dbu.OViewDesign">
+ <service name="com.sun.star.sdb.ViewDesign"/>
+ </implementation>
+</component>
diff --git a/dbaccess/util/makefile.mk b/dbaccess/util/makefile.mk
index 8430b5edf8dc..d59855961c79 100644
--- a/dbaccess/util/makefile.mk
+++ b/dbaccess/util/makefile.mk
@@ -239,3 +239,23 @@ $(MISC)$/$(SHL1TARGET).flt: makefile.mk
.ENDIF
.ENDIF
+
+ALLTAR : $(MISC)/dba.component $(MISC)/dbu.component $(MISC)/sdbt.component
+
+$(MISC)/dba.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ dba.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt dba.component
+
+$(MISC)/dbu.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ dbu.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL2TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt dbu.component
+
+$(MISC)/sdbt.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ sdbt.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL3TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt sdbt.component
diff --git a/dbaccess/util/sdbt.component b/dbaccess/util/sdbt.component
new file mode 100644
index 000000000000..0038c0cad27f
--- /dev/null
+++ b/dbaccess/util/sdbt.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.dbaccess.ConnectionTools">
+ <service name="com.sun.star.sdb.tools.ConnectionTools"/>
+ </implementation>
+</component>
diff --git a/desktop/prj/d.lst b/desktop/prj/d.lst
index 92a4853c2bed..b6e14a5ce722 100644
--- a/desktop/prj/d.lst
+++ b/desktop/prj/d.lst
@@ -143,3 +143,11 @@ mkdir: %_DEST%\xml%_EXT%\registry\spool\org\openoffice\Office\Jobs
..\%__SRC%\class\*.jar %_DEST%\bin%_EXT%\*.jar
..\%__SRC%\misc\registry\spool\org\openoffice\Office\Jobs\*.xcu %_DEST%\xml%_EXT%\registry\spool\org\openoffice\Office\Jobs
+..\%__SRC%\misc\deployment.component %_DEST%\xml%_EXT%\deployment.component
+..\%__SRC%\misc\deploymentgui.component %_DEST%\xml%_EXT%\deploymentgui.component
+..\%__SRC%\misc\migrationoo2.component %_DEST%\xml%_EXT%\migrationoo2.component
+..\%__SRC%\misc\migrationoo3.component %_DEST%\xml%_EXT%\migrationoo3.component
+..\%__SRC%\misc\offacc.component %_DEST%\xml%_EXT%\offacc.component
+..\%__SRC%\misc\productregistration.jar.component %_DEST%\xml%_EXT%\productregistration.jar.component
+..\%__SRC%\misc\socomp.component %_DEST%\xml%_EXT%\socomp.component
+..\%__SRC%\misc\spl.component %_DEST%\xml%_EXT%\spl.component
diff --git a/desktop/scripts/soffice.sh b/desktop/scripts/soffice.sh
index 0215f88d1ff0..5083bf285c14 100644
--- a/desktop/scripts/soffice.sh
+++ b/desktop/scripts/soffice.sh
@@ -43,15 +43,14 @@ export SAL_ENABLE_FILE_LOCKING
#@# export JITC_PROCESSOR_TYPE=6
# resolve installation directory
-sd_cwd="`pwd`"
-if [ -h "$0" ] ; then
- sd_basename=`basename "$0"`
- sd_script=`ls -l "$0" | sed "s/.*${sd_basename} -> //g"`
- cd "`dirname "$0"`"
- cd "`dirname "$sd_script"`"
-else
- cd "`dirname "$0"`"
-fi
+sd_cwd=`pwd`
+sd_res=$0
+while [ -h "$sd_res" ] ; do
+ cd "`dirname "$sd_res"`"
+ sd_basename=`basename "$sd_res"`
+ sd_res=`ls -l "$sd_basename" | sed "s/.*$sd_basename -> //g"`
+done
+cd "`dirname "$sd_res"`"
sd_prog=`pwd`
cd "$sd_cwd"
diff --git a/desktop/scripts/unoinfo.sh b/desktop/scripts/unoinfo.sh
index 081e414365cf..a7566155aa0d 100644
--- a/desktop/scripts/unoinfo.sh
+++ b/desktop/scripts/unoinfo.sh
@@ -29,14 +29,13 @@
set -e
# resolve installation directory
-if [ -h "$0" ] ; then
- sd_basename=`basename "$0"`
- sd_script=`ls -l "$0" | sed "s/.*${sd_basename} -> //g"`
- cd "`dirname "$0"`"
- cd "`dirname "$sd_script"`"
-else
- cd "`dirname "$0"`"
-fi
+sd_res=$0
+while [ -h "$sd_res" ] ; do
+ cd "`dirname "$sd_res"`"
+ sd_basename=`basename "$sd_res"`
+ sd_res=`ls -l "$sd_basename" | sed "s/.*$sd_basename -> //g"`
+done
+cd "`dirname "$sd_res"`"
sd_prog=`pwd`
case $1 in
diff --git a/desktop/scripts/unopkg.sh b/desktop/scripts/unopkg.sh
index 0fe319735c06..055db33da791 100644
--- a/desktop/scripts/unopkg.sh
+++ b/desktop/scripts/unopkg.sh
@@ -31,15 +31,14 @@ SAL_ENABLE_FILE_LOCKING=1
export SAL_ENABLE_FILE_LOCKING
# resolve installation directory
-sd_cwd="`pwd`"
-if [ -h "$0" ] ; then
- sd_basename=`basename "$0"`
- sd_script=`ls -l "$0" | sed "s/.*${sd_basename} -> //g"`
- cd "`dirname "$0"`"
- cd "`dirname "$sd_script"`"
-else
- cd "`dirname "$0"`"
-fi
+sd_cwd=`pwd`
+sd_res=$0
+while [ -h "$sd_res" ] ; do
+ cd "`dirname "$sd_res"`"
+ sd_basename=`basename "$sd_res"`
+ sd_res=`ls -l "$sd_basename" | sed "s/.*$sd_basename -> //g"`
+done
+cd "`dirname "$sd_res"`"
sd_prog=`pwd`
cd "$sd_cwd"
diff --git a/desktop/source/app/exports.dxp b/desktop/source/app/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/desktop/source/app/exports.dxp
+++ b/desktop/source/app/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/desktop/source/deployment/deployment.component b/desktop/source/deployment/deployment.component
new file mode 100644
index 000000000000..11385c7aa8d9
--- /dev/null
+++ b/desktop/source/deployment/deployment.component
@@ -0,0 +1,64 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.deployment.ExtensionManager">
+ <service name="com.sun.star.comp.deployment.ExtensionManager"/>
+ <singleton name="com.sun.star.deployment.ExtensionManager"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.deployment.PackageInformationProvider">
+ <service name="com.sun.star.comp.deployment.PackageInformationProvider"/>
+ <singleton name="com.sun.star.deployment.PackageInformationProvider"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.deployment.PackageManagerFactory">
+ <service name="com.sun.star.comp.deployment.PackageManagerFactory"/>
+ <singleton name="com.sun.star.deployment.thePackageManagerFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.deployment.ProgressLog">
+ <service name="com.sun.star.comp.deployment.ProgressLog"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.deployment.component.PackageRegistryBackend">
+ <service name="com.sun.star.deployment.PackageRegistryBackend"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.deployment.configuration.PackageRegistryBackend">
+ <service name="com.sun.star.deployment.PackageRegistryBackend"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.deployment.executable.PackageRegistryBackend">
+ <service name="com.sun.star.deployment.PackageRegistryBackend"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.deployment.help.PackageRegistryBackend">
+ <service name="com.sun.star.deployment.PackageRegistryBackend"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.deployment.script.PackageRegistryBackend">
+ <service name="com.sun.star.deployment.PackageRegistryBackend"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.deployment.sfwk.PackageRegistryBackend">
+ <service name="com.sun.star.deployment.PackageRegistryBackend"/>
+ </implementation>
+</component>
diff --git a/desktop/source/deployment/dp_services.cxx b/desktop/source/deployment/dp_services.cxx
index f7ebf66355ba..f3dc75ae39c5 100644
--- a/desktop/source/deployment/dp_services.cxx
+++ b/desktop/source/deployment/dp_services.cxx
@@ -92,27 +92,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-sal_Bool SAL_CALL component_writeInfo(
- lang::XMultiServiceFactory * pServiceManager,
- registry::XRegistryKey * pRegistryKey )
-{
- return component_writeInfoHelper(
- pServiceManager, pRegistryKey,
- dp_registry::backend::configuration::serviceDecl,
- dp_registry::backend::component::serviceDecl,
- dp_registry::backend::help::serviceDecl,
- dp_registry::backend::script::serviceDecl,
- dp_registry::backend::sfwk::serviceDecl,
- dp_registry::backend::executable::serviceDecl,
- dp_manager::factory::serviceDecl,
- dp_log::serviceDecl,
- dp_info::serviceDecl,
- dp_manager::serviceDecl) &&
- dp_manager::factory::singleton_entries( pRegistryKey ) &&
- dp_info::singleton_entries( pRegistryKey ) &&
- dp_manager::singleton_entries( pRegistryKey);
-}
-
void * SAL_CALL component_getFactory(
sal_Char const * pImplName,
lang::XMultiServiceFactory * pServiceManager,
diff --git a/desktop/source/deployment/gui/deploymentgui.component b/desktop/source/deployment/gui/deploymentgui.component
new file mode 100644
index 000000000000..d613f482e791
--- /dev/null
+++ b/desktop/source/deployment/gui/deploymentgui.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.deployment.ui.LicenseDialog">
+ <service name="com.sun.star.deployment.ui.LicenseDialog"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.deployment.ui.PackageManagerDialog">
+ <service name="com.sun.star.deployment.ui.PackageManagerDialog"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.deployment.ui.UpdateRequiredDialog">
+ <service name="com.sun.star.deployment.ui.UpdateRequiredDialog"/>
+ </implementation>
+</component>
diff --git a/desktop/source/deployment/gui/dp_gui_dialog2.cxx b/desktop/source/deployment/gui/dp_gui_dialog2.cxx
index 78b29624b16e..44d1e30f74b6 100644
--- a/desktop/source/deployment/gui/dp_gui_dialog2.cxx
+++ b/desktop/source/deployment/gui/dp_gui_dialog2.cxx
@@ -363,26 +363,28 @@ bool ExtBoxWithBtns_Impl::HandleTabKey( bool bReverse )
// -----------------------------------------------------------------------
MENU_COMMAND ExtBoxWithBtns_Impl::ShowPopupMenu( const Point & rPos, const long nPos )
{
- if ( nPos >= (long) getItemCount() )
- return CMD_NONE;
+ if ( ( nPos >= 0 ) && ( nPos < (long) getItemCount() ) )
+ {
+ if ( ! GetEntryData( nPos )->m_bLocked )
+ {
+ PopupMenu aPopup;
- PopupMenu aPopup;
+ aPopup.InsertItem( CMD_UPDATE, DialogHelper::getResourceString( RID_CTX_ITEM_CHECK_UPDATE ) );
- aPopup.InsertItem( CMD_UPDATE, DialogHelper::getResourceString( RID_CTX_ITEM_CHECK_UPDATE ) );
+ if ( GetEntryData( nPos )->m_bUser )
+ {
+ if ( GetEntryData( nPos )->m_eState == REGISTERED )
+ aPopup.InsertItem( CMD_DISABLE, DialogHelper::getResourceString( RID_CTX_ITEM_DISABLE ) );
+ else if ( GetEntryData( nPos )->m_eState != NOT_AVAILABLE )
+ aPopup.InsertItem( CMD_ENABLE, DialogHelper::getResourceString( RID_CTX_ITEM_ENABLE ) );
+ }
- if ( ! GetEntryData( nPos )->m_bLocked )
- {
- if ( GetEntryData( nPos )->m_bUser )
- {
- if ( GetEntryData( nPos )->m_eState == REGISTERED )
- aPopup.InsertItem( CMD_DISABLE, DialogHelper::getResourceString( RID_CTX_ITEM_DISABLE ) );
- else if ( GetEntryData( nPos )->m_eState != NOT_AVAILABLE )
- aPopup.InsertItem( CMD_ENABLE, DialogHelper::getResourceString( RID_CTX_ITEM_ENABLE ) );
+ aPopup.InsertItem( CMD_REMOVE, DialogHelper::getResourceString( RID_CTX_ITEM_REMOVE ) );
+
+ return (MENU_COMMAND) aPopup.Execute( this, rPos );
}
- aPopup.InsertItem( CMD_REMOVE, DialogHelper::getResourceString( RID_CTX_ITEM_REMOVE ) );
}
-
- return (MENU_COMMAND) aPopup.Execute( this, rPos );
+ return CMD_NONE;
}
//------------------------------------------------------------------------------
diff --git a/desktop/source/deployment/gui/dp_gui_service.cxx b/desktop/source/deployment/gui/dp_gui_service.cxx
index 29bedf1b229f..567eb9756386 100755..100644
--- a/desktop/source/deployment/gui/dp_gui_service.cxx
+++ b/desktop/source/deployment/gui/dp_gui_service.cxx
@@ -356,14 +356,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-sal_Bool SAL_CALL component_writeInfo(
- lang::XMultiServiceFactory * pServiceManager,
- registry::XRegistryKey * pRegistryKey )
-{
- return component_writeInfoHelper(
- pServiceManager, pRegistryKey, dp_gui::serviceDecl, dp_gui::licenseDecl, dp_gui::updateDecl );
-}
-
void * SAL_CALL component_getFactory(
sal_Char const * pImplName,
lang::XMultiServiceFactory * pServiceManager,
diff --git a/desktop/source/deployment/gui/makefile.mk b/desktop/source/deployment/gui/makefile.mk
index 52092a077a4b..fe3921bf506b 100644
--- a/desktop/source/deployment/gui/makefile.mk
+++ b/desktop/source/deployment/gui/makefile.mk
@@ -107,3 +107,11 @@ RESLIB1IMAGES= $(PRJ)$/res
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/deploymentgui.component
+
+$(MISC)/deploymentgui.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt deploymentgui.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt deploymentgui.component
diff --git a/desktop/source/deployment/makefile.mk b/desktop/source/deployment/makefile.mk
index 6d83a5c1004b..991ba7026d72 100644
--- a/desktop/source/deployment/makefile.mk
+++ b/desktop/source/deployment/makefile.mk
@@ -110,3 +110,11 @@ RESLIB1SRSFILES += $(SRS)$/deployment_misc.srs
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/deployment.component
+
+$(MISC)/deployment.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ deployment.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt deployment.component
diff --git a/desktop/source/deployment/misc/dp_update.cxx b/desktop/source/deployment/misc/dp_update.cxx
index 52011f1f0ca0..fb6efe0b79aa 100755..100644
--- a/desktop/source/deployment/misc/dp_update.cxx
+++ b/desktop/source/deployment/misc/dp_update.cxx
@@ -90,8 +90,6 @@ getUpdateInformation( Reference<deployment::XUpdateInformationProvider > const &
Sequence<Reference< xml::dom::XElement > >();
}
-//Put in anonymous namespace
-
void getOwnUpdateInfos(
Reference<uno::XComponentContext> const & xContext,
Reference<deployment::XUpdateInformationProvider > const & updateInformation,
@@ -185,6 +183,56 @@ void getDefaultUpdateInfos(
}
}
+bool containsBundledOnly(Sequence<Reference<deployment::XPackage> > const & sameIdExtensions)
+{
+ OSL_ASSERT(sameIdExtensions.getLength() == 3);
+ if (!sameIdExtensions[0].is() && !sameIdExtensions[1].is() && sameIdExtensions[2].is())
+ return true;
+ else
+ return false;
+}
+/** Returns true if the list of extensions are bundled extensions and there are no
+ other extensions with the same identifier in the shared or user repository.
+ If extensionList is NULL, then it is checked if there are only bundled extensions.
+*/
+bool onlyBundledExtensions(
+ Reference<deployment::XExtensionManager> const & xExtMgr,
+ std::vector< Reference<deployment::XPackage > > const * extensionList)
+{
+ OSL_ASSERT(xExtMgr.is());
+ bool onlyBundled = true;
+ if (extensionList)
+ {
+ typedef std::vector<Reference<deployment::XPackage > >::const_iterator CIT;
+ for (CIT i = extensionList->begin(); i != extensionList->end(); i++)
+ {
+ Sequence<Reference<deployment::XPackage> > seqExt = xExtMgr->getExtensionsWithSameIdentifier(
+ dp_misc::getIdentifier(*i), (*i)->getName(), Reference<ucb::XCommandEnvironment>());
+
+ if (!containsBundledOnly(seqExt))
+ {
+ onlyBundled = false;
+ break;
+ }
+
+ }
+ }
+ else
+ {
+ const uno::Sequence< uno::Sequence< Reference<deployment::XPackage > > > seqAllExt =
+ xExtMgr->getAllExtensions(Reference<task::XAbortChannel>(), Reference<ucb::XCommandEnvironment>());
+
+ for (int pos = seqAllExt.getLength(); pos --; )
+ {
+ if (!containsBundledOnly(seqAllExt[pos]))
+ {
+ onlyBundled = false;
+ break;
+ }
+ }
+ }
+ return onlyBundled;
+}
} // anon namespace
@@ -233,13 +281,14 @@ UPDATE_SOURCE isUpdateUserExtension(
retVal = UPDATE_SOURCE_ONLINE;
}
- else if (bundledVersion.getLength())
- {
- int index = determineHighestVersion(
- OUString(), OUString(), bundledVersion, onlineVersion);
- if (index == 3)
- retVal = UPDATE_SOURCE_ONLINE;
- }
+ //No update for bundled extensions, they are updated only by the setup
+ //else if (bundledVersion.getLength())
+ //{
+ // int index = determineHighestVersion(
+ // OUString(), OUString(), bundledVersion, onlineVersion);
+ // if (index == 3)
+ // retVal = UPDATE_SOURCE_ONLINE;
+ //}
}
else
{
@@ -278,13 +327,14 @@ UPDATE_SOURCE isUpdateSharedExtension(
else if (index == 3)
retVal = UPDATE_SOURCE_ONLINE;
}
- else if (bundledVersion.getLength())
- {
- int index = determineHighestVersion(
- OUString(), OUString(), bundledVersion, onlineVersion);
- if (index == 3)
- retVal = UPDATE_SOURCE_ONLINE;
- }
+ //No update for bundled extensions, they are updated only by the setup
+ //else if (bundledVersion.getLength())
+ //{
+ // int index = determineHighestVersion(
+ // OUString(), OUString(), bundledVersion, onlineVersion);
+ // if (index == 3)
+ // retVal = UPDATE_SOURCE_ONLINE;
+ //}
return retVal;
}
@@ -332,7 +382,7 @@ UpdateInfoMap getOnlineUpdateInfos(
{
OSL_ASSERT(xExtMgr.is());
UpdateInfoMap infoMap;
- if (!xExtMgr.is())
+ if (!xExtMgr.is() || onlyBundledExtensions(xExtMgr, extensionList))
return infoMap;
if (!extensionList)
diff --git a/desktop/source/migration/services/cexports.cxx b/desktop/source/migration/services/cexports.cxx
index cf9a9ab30b0c..d869993f39c3 100644
--- a/desktop/source/migration/services/cexports.cxx
+++ b/desktop/source/migration/services/cexports.cxx
@@ -63,13 +63,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- return ::cppu::component_writeInfoHelper(
- pServiceManager, pRegistryKey, entries );
-}
-
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/desktop/source/migration/services/cexportsoo3.cxx b/desktop/source/migration/services/cexportsoo3.cxx
index 695b6b810808..589701d534d5 100755..100644
--- a/desktop/source/migration/services/cexportsoo3.cxx
+++ b/desktop/source/migration/services/cexportsoo3.cxx
@@ -51,13 +51,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- return ::cppu::component_writeInfoHelper(
- pServiceManager, pRegistryKey, entries );
-}
-
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/desktop/source/migration/services/makefile.mk b/desktop/source/migration/services/makefile.mk
index 2f3eb9308ebd..38f97084b36e 100644
--- a/desktop/source/migration/services/makefile.mk
+++ b/desktop/source/migration/services/makefile.mk
@@ -87,7 +87,7 @@ DEF1NAME=$(SHL1TARGET)
COMP2TYPELIST = migrationoo3
SHL2TARGET=migrationoo3.uno
-SHL2VERSIONMAP = migrationoo3.map
+SHL2VERSIONMAP = $(SOLARENV)/src/component.map
SHL2OBJS= \
$(SLO)$/cexportsoo3.obj \
@@ -117,3 +117,18 @@ DEF2NAME=$(SHL2TARGET)
.INCLUDE : target.mk
+ALLTAR : $(MISC)/migrationoo3.component
+
+$(MISC)/migrationoo3.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt migrationoo3.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL2TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt migrationoo3.component
+
+ALLTAR : $(MISC)/migrationoo2.component
+
+$(MISC)/migrationoo2.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt migrationoo2.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt migrationoo2.component
diff --git a/desktop/source/migration/services/migrationoo2.component b/desktop/source/migration/services/migrationoo2.component
new file mode 100644
index 000000000000..2b21ab123b9e
--- /dev/null
+++ b/desktop/source/migration/services/migrationoo2.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.desktop.migration.Basic">
+ <service name="com.sun.star.migration.Basic"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.desktop.migration.Wordbooks">
+ <service name="com.sun.star.migration.Wordbooks"/>
+ </implementation>
+</component>
diff --git a/desktop/source/migration/services/migrationoo3.component b/desktop/source/migration/services/migrationoo3.component
new file mode 100644
index 000000000000..380c389ab7b9
--- /dev/null
+++ b/desktop/source/migration/services/migrationoo3.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.desktop.migration.OOo3Extensions">
+ <service name="com.sun.star.migration.Extensions"/>
+ </implementation>
+</component>
diff --git a/desktop/source/offacc/acceptor.cxx b/desktop/source/offacc/acceptor.cxx
index 4e100fd99665..430737106a59 100644
--- a/desktop/source/offacc/acceptor.cxx
+++ b/desktop/source/offacc/acceptor.cxx
@@ -317,23 +317,6 @@ component_getImplementationEnvironment(const sal_Char **ppEnvironmentTypeName, u
*ppEnvironmentTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
}
-sal_Bool SAL_CALL
-component_writeInfo(void *pServiceManager, void *pRegistryKey)
-{
- Reference< XMultiServiceFactory > xMan(reinterpret_cast< XMultiServiceFactory* >(pServiceManager));
- Reference< XRegistryKey > xKey(reinterpret_cast< XRegistryKey* >(pRegistryKey));
-
- // register service
- ::rtl::OUString aTempStr;
- ::rtl::OUString aImpl(RTL_CONSTASCII_USTRINGPARAM("/"));
- aImpl += Acceptor::impl_getImplementationName();
- aImpl += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
- Reference< XRegistryKey > xNewKey = xKey->createKey(aImpl);
- xNewKey->createKey(Acceptor::impl_getSupportedServiceNames()[0]);
-
- return sal_True;
-}
-
void * SAL_CALL
component_getFactory(const sal_Char *pImplementationName, void *pServiceManager, void *)
{
diff --git a/desktop/source/offacc/makefile.mk b/desktop/source/offacc/makefile.mk
index c2d53930b580..809c28414bef 100644
--- a/desktop/source/offacc/makefile.mk
+++ b/desktop/source/offacc/makefile.mk
@@ -60,3 +60,11 @@ SHL1STDLIBS= \
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/offacc.component
+
+$(MISC)/offacc.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ offacc.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt offacc.component
diff --git a/desktop/source/offacc/offacc.component b/desktop/source/offacc/offacc.component
new file mode 100644
index 000000000000..6f0d4a97a2d2
--- /dev/null
+++ b/desktop/source/offacc/offacc.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.office.comp.Acceptor">
+ <service name="com.sun.star.office.Acceptor"/>
+ </implementation>
+</component>
diff --git a/desktop/source/registration/com/sun/star/registration/Registration.java b/desktop/source/registration/com/sun/star/registration/Registration.java
index 7fc24b80398f..e5c98dd51ab8 100644
--- a/desktop/source/registration/com/sun/star/registration/Registration.java
+++ b/desktop/source/registration/com/sun/star/registration/Registration.java
@@ -63,10 +63,6 @@ public class Registration {
return xSingleServiceFactory;
}
- public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
- return FactoryHelper.writeRegistryServiceInfo(Registration.class.getName(), _serviceName, regKey);
- }
-
static final String _serviceName = "com.sun.star.comp.framework.DoRegistrationJob";
static public class _Registration implements XJob {
diff --git a/desktop/source/registration/com/sun/star/registration/makefile.mk b/desktop/source/registration/com/sun/star/registration/makefile.mk
index 9784166eb91b..859802256256 100644
--- a/desktop/source/registration/com/sun/star/registration/makefile.mk
+++ b/desktop/source/registration/com/sun/star/registration/makefile.mk
@@ -53,3 +53,10 @@ CUSTOMMANIFESTFILE = manifest
.INCLUDE : target.mk
+ALLTAR : $(MISC)/productregistration.jar.component
+
+$(MISC)/productregistration.jar.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt productregistration.jar.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_JAVA)productregistration.jar' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt productregistration.jar.component
diff --git a/desktop/source/registration/com/sun/star/registration/productregistration.jar.component b/desktop/source/registration/com/sun/star/registration/productregistration.jar.component
new file mode 100644
index 000000000000..c022a98ae010
--- /dev/null
+++ b/desktop/source/registration/com/sun/star/registration/productregistration.jar.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Java2"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.registration.Registration">
+ <service name="com.sun.star.comp.framework.DoRegistrationJob"/>
+ </implementation>
+</component>
diff --git a/desktop/source/so_comp/makefile.mk b/desktop/source/so_comp/makefile.mk
index 590f99518c68..7f9ceb4b646a 100644
--- a/desktop/source/so_comp/makefile.mk
+++ b/desktop/source/so_comp/makefile.mk
@@ -75,3 +75,10 @@ SHL1STDLIBS= \
.INCLUDE : target.mk
+ALLTAR : $(MISC)/socomp.component
+
+$(MISC)/socomp.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ socomp.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt socomp.component
diff --git a/desktop/source/so_comp/services.cxx b/desktop/source/so_comp/services.cxx
index d1a2b3139e91..e28d762fc69b 100644
--- a/desktop/source/so_comp/services.cxx
+++ b/desktop/source/so_comp/services.cxx
@@ -100,32 +100,6 @@ component_getImplementationEnvironment(
*ppEnvironmentTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
}
-sal_Bool SAL_CALL
-component_writeInfo(
- void* pServiceManager,
- void* pRegistryKey)
-{
- Reference<XMultiServiceFactory> xMan(
- reinterpret_cast< XMultiServiceFactory* >( pServiceManager ) ) ;
- Reference<XRegistryKey> xKey(
- reinterpret_cast< XRegistryKey* >( pRegistryKey ) ) ;
-
- // iterate over service names and register them...
- OUString aImpl;
- const char* pServiceName = NULL;
- const char* pImplName = NULL;
- for (int i = 0; (pServices[i]!=NULL)&&(pImplementations[i]!=NULL); i++) {
- pServiceName= pServices[i];
- pImplName = pImplementations[i];
- aImpl = OUString::createFromAscii("/")
- + OUString::createFromAscii(pImplName)
- + OUString::createFromAscii("/UNO/SERVICES");
- Reference<XRegistryKey> xNewKey = xKey->createKey(aImpl);
- xNewKey->createKey(OUString::createFromAscii(pServiceName));
- }
- return sal_True;
-}
-
void* SAL_CALL
component_getFactory(
const sal_Char* pImplementationName,
diff --git a/desktop/source/so_comp/socomp.component b/desktop/source/so_comp/socomp.component
new file mode 100644
index 000000000000..a53035223c39
--- /dev/null
+++ b/desktop/source/so_comp/socomp.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.desktop.Evaluation">
+ <service name="com.sun.star.office.Evaluation"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.desktop.OEMPreloadJob">
+ <service name="com.sun.star.office.OEMPreloadJob"/>
+ </implementation>
+</component>
diff --git a/desktop/source/splash/makefile.mk b/desktop/source/splash/makefile.mk
index 89609687438c..02483aae83dd 100644
--- a/desktop/source/splash/makefile.mk
+++ b/desktop/source/splash/makefile.mk
@@ -87,3 +87,11 @@ DO_PHONY=.PHONY
$(INCCOM)$/introbmpnames.hxx $(DO_PHONY):
echo const char INTRO_BITMAP_STRINGLIST[]=$(EMQ)"$(INTRO_BITMAPS:f:t",")$(EMQ)"$(EMQ); > $@
echo LASTTIME_INTRO_BITMAPS=$(INTRO_BITMAPS:f) > $(MISC)$/intro_bmp_names.mk
+
+ALLTAR : $(MISC)/spl.component
+
+$(MISC)/spl.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ spl.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt spl.component
diff --git a/desktop/source/splash/services_spl.cxx b/desktop/source/splash/services_spl.cxx
index 349ec2ec0a78..4b1130c71cdf 100755
--- a/desktop/source/splash/services_spl.cxx
+++ b/desktop/source/splash/services_spl.cxx
@@ -97,32 +97,6 @@ component_getImplementationEnvironment(
*ppEnvironmentTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
}
-sal_Bool SAL_CALL
-component_writeInfo(
- void* pServiceManager,
- void* pRegistryKey)
-{
- Reference<XMultiServiceFactory> xMan(
- reinterpret_cast< XMultiServiceFactory* >( pServiceManager ) ) ;
- Reference<XRegistryKey> xKey(
- reinterpret_cast< XRegistryKey* >( pRegistryKey ) ) ;
-
- // iterate over service names and register them...
- OUString aImpl;
- const char* pServiceName = NULL;
- const char* pImplName = NULL;
- for (int i = 0; (pServices[i]!=NULL)&&(pImplementations[i]!=NULL); i++) {
- pServiceName= pServices[i];
- pImplName = pImplementations[i];
- aImpl = OUString::createFromAscii("/")
- + OUString::createFromAscii(pImplName)
- + OUString::createFromAscii("/UNO/SERVICES");
- Reference<XRegistryKey> xNewKey = xKey->createKey(aImpl);
- xNewKey->createKey(OUString::createFromAscii(pServiceName));
- }
- return sal_True;
-}
-
void* SAL_CALL
component_getFactory(
const sal_Char* pImplementationName,
diff --git a/desktop/source/splash/spl.component b/desktop/source/splash/spl.component
new file mode 100644
index 000000000000..2caecf5c0e4b
--- /dev/null
+++ b/desktop/source/splash/spl.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.desktop.FirstStart">
+ <service name="com.sun.star.task.Job"/>
+ </implementation>
+ <implementation name="com.sun.star.office.comp.SplashScreen">
+ <service name="com.sun.star.office.SplashScreen"/>
+ </implementation>
+</component>
diff --git a/dtrans/prj/d.lst b/dtrans/prj/d.lst
index a1a7c2e95480..955aa075f24b 100644
--- a/dtrans/prj/d.lst
+++ b/dtrans/prj/d.lst
@@ -7,3 +7,8 @@
..\source\win32\ftransl\ftransl.xml %_DEST%\xml%_EXT%\ftransl.xml
..\source\cnttype\mcnttype.xml %_DEST%\xml%_EXT%\mcnttype.xml
..\source\generic\dtrans.xml %_DEST%\xml%_EXT%\dtrans.xml
+..\%__SRC%\misc\dnd.component %_DEST%\xml%_EXT%\dnd.component
+..\%__SRC%\misc\dtrans.component %_DEST%\xml%_EXT%\dtrans.component
+..\%__SRC%\misc\ftransl.component %_DEST%\xml%_EXT%\ftransl.component
+..\%__SRC%\misc\mcnttype.component %_DEST%\xml%_EXT%\mcnttype.component
+..\%__SRC%\misc\sysdtrans.component %_DEST%\xml%_EXT%\sysdtrans.component
diff --git a/dtrans/source/cnttype/exports.dxp b/dtrans/source/cnttype/exports.dxp
index 028ac4175990..f0e1c69934bc 100644
--- a/dtrans/source/cnttype/exports.dxp
+++ b/dtrans/source/cnttype/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/dtrans/source/cnttype/mctfentry.cxx b/dtrans/source/cnttype/mctfentry.cxx
index 095c9ed186ce..3d2e41201887 100644
--- a/dtrans/source/cnttype/mctfentry.cxx
+++ b/dtrans/source/cnttype/mctfentry.cxx
@@ -99,35 +99,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-//-------------------------------------------------------------------------
-// component_writeInfo - to register a UNO-Service
-// to register a UNO-Service use: regcomp -register -r *.rdb -c *.dll
-// to view the registry use: regview *.rdb /SERVICES/ServiceName
-// (you must use the full services name e.g. com.sun.star.frame.FilePicker
-//-------------------------------------------------------------------------
-
-sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey )
-{
- sal_Bool bRetVal = sal_False;
-
- if ( pRegistryKey )
- {
- try
- {
- Reference< XRegistryKey > pXNewKey( static_cast< XRegistryKey* >( pRegistryKey ) );
- pXNewKey->createKey( OUString( RTL_CONSTASCII_USTRINGPARAM( MIMECONTENTTYPEFACTORY_REGKEY_NAME ) ) );
- bRetVal = sal_True;
- }
- catch( InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "InvalidRegistryException caught");
- bRetVal = sal_False;
- }
- }
-
- return bRetVal;
-}
-
//----------------------------------------------------------------------
// component_getFactory
// returns a factory to create XFilePicker-Services
diff --git a/dtrans/source/generic/dtrans.component b/dtrans/source/generic/dtrans.component
new file mode 100644
index 000000000000..69034f716907
--- /dev/null
+++ b/dtrans/source/generic/dtrans.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.datatransfer.ClipboardManager">
+ <service name="com.sun.star.datatransfer.clipboard.ClipboardManager"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.datatransfer.clipboard.GenericClipboard">
+ <service name="com.sun.star.datatransfer.clipboard.GenericClipboard"/>
+ </implementation>
+</component>
diff --git a/dtrans/source/generic/dtrans.cxx b/dtrans/source/generic/dtrans.cxx
index 1e69158a6a12..4b39298f97c2 100644
--- a/dtrans/source/generic/dtrans.cxx
+++ b/dtrans/source/generic/dtrans.cxx
@@ -52,43 +52,6 @@ void SAL_CALL component_getImplementationEnvironment(const sal_Char ** ppEnvType
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(void * /*pServiceManager*/, void * pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- Reference< XRegistryKey > xNewKey(
- reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
- OUString::createFromAscii("/" CLIPBOARDMANAGER_IMPLEMENTATION_NAME "/UNO/SERVICES" ) ) );
-
- const Sequence< OUString > & rSNL = ClipboardManager_getSupportedServiceNames();
- const OUString * pArray = rSNL.getConstArray();
- sal_Int32 nPos;
- for ( nPos = rSNL.getLength(); nPos--; )
- xNewKey->createKey( pArray[nPos] );
-
- xNewKey = reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
- OUString::createFromAscii("/" GENERIC_CLIPBOARD_IMPLEMENTATION_NAME "/UNO/SERVICES" ) );
-
- const Sequence< OUString > & rSNL2 = GenericClipboard_getSupportedServiceNames();
- pArray = rSNL2.getConstArray();
- for ( nPos = rSNL2.getLength(); nPos--; )
- xNewKey->createKey( pArray[nPos] );
-
- return sal_True;
- }
- catch (InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
-
- return sal_False;
-}
-
-//==================================================================================================
-
void * SAL_CALL component_getFactory(
const sal_Char * pImplName,
void * pServiceManager,
diff --git a/dtrans/source/generic/exports.dxp b/dtrans/source/generic/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/dtrans/source/generic/exports.dxp
+++ b/dtrans/source/generic/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/dtrans/source/generic/makefile.mk b/dtrans/source/generic/makefile.mk
index e015400c32d9..2518b86a2d92 100644
--- a/dtrans/source/generic/makefile.mk
+++ b/dtrans/source/generic/makefile.mk
@@ -65,3 +65,11 @@ DEF1EXPORTFILE= exports.dxp
.ENDIF # L10N_framework
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/dtrans.component
+
+$(MISC)/dtrans.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ dtrans.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt dtrans.component
diff --git a/dtrans/source/os2/clipb/Os2Service.cxx b/dtrans/source/os2/clipb/Os2Service.cxx
index cc3e1e9a9b94..0c3e299f0299 100644
--- a/dtrans/source/os2/clipb/Os2Service.cxx
+++ b/dtrans/source/os2/clipb/Os2Service.cxx
@@ -56,28 +56,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-sal_Bool SAL_CALL component_writeInfo( void* pServiceManager, void* pRegistryKey )
-{
- sal_Bool bRetVal = sal_False;
-
- if ( pRegistryKey )
- {
- try
- {
- Reference< XRegistryKey > pXNewKey( static_cast< XRegistryKey* >( pRegistryKey ) );
- pXNewKey->createKey( OUString( RTL_CONSTASCII_USTRINGPARAM( OS2_CLIPBOARD_REGKEY_NAME ) ) );
- bRetVal = sal_True;
- }
- catch( InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "InvalidRegistryException caught");
- bRetVal = sal_False;
- }
- }
-
- return bRetVal;
-}
-
void* SAL_CALL component_getFactory( const sal_Char* pImplName, uno_Interface* pSrvManager, uno_Interface* pRegistryKey )
{
void* pRet = 0;
diff --git a/dtrans/source/os2/clipb/exports.dxp b/dtrans/source/os2/clipb/exports.dxp
index f72beb0fcb31..926e49f5f1a5 100644
--- a/dtrans/source/os2/clipb/exports.dxp
+++ b/dtrans/source/os2/clipb/exports.dxp
@@ -1,4 +1,3 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/dtrans/source/win32/clipb/exports.dxp b/dtrans/source/win32/clipb/exports.dxp
index f72beb0fcb31..926e49f5f1a5 100644
--- a/dtrans/source/win32/clipb/exports.dxp
+++ b/dtrans/source/win32/clipb/exports.dxp
@@ -1,4 +1,3 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/dtrans/source/win32/clipb/wcbentry.cxx b/dtrans/source/win32/clipb/wcbentry.cxx
index 986e7b4c4db7..653d97194efc 100644
--- a/dtrans/source/win32/clipb/wcbentry.cxx
+++ b/dtrans/source/win32/clipb/wcbentry.cxx
@@ -97,35 +97,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-//-------------------------------------------------------------------------
-// component_writeInfo - to register a UNO-Service
-// to register a UNO-Service use: regcomp -register -r *.rdb -c *.dll
-// to view the registry use: regview *.rdb /SERVICES/ServiceName
-// (you must use the full services name e.g. com.sun.star.frame.FilePicker
-//-------------------------------------------------------------------------
-
-sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey )
-{
- sal_Bool bRetVal = sal_False;
-
- if ( pRegistryKey )
- {
- try
- {
- Reference< XRegistryKey > pXNewKey( static_cast< XRegistryKey* >( pRegistryKey ) );
- pXNewKey->createKey( OUString( RTL_CONSTASCII_USTRINGPARAM( WINCLIPBOARD_REGKEY_NAME ) ) );
- bRetVal = sal_True;
- }
- catch( InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "InvalidRegistryException caught");
- bRetVal = sal_False;
- }
- }
-
- return bRetVal;
-}
-
//----------------------------------------------------------------------
// component_getFactory
// returns a factory to create XFilePicker-Services
diff --git a/dtrans/source/win32/dnd/dndentry.cxx b/dtrans/source/win32/dnd/dndentry.cxx
index 2ea9b7746def..d37fa07ba3bd 100644
--- a/dtrans/source/win32/dnd/dndentry.cxx
+++ b/dtrans/source/win32/dnd/dndentry.cxx
@@ -72,39 +72,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-//-------------------------------------------------------------------------
-// component_writeInfo - to register a UNO-Service
-// to register a UNO-Service use: regcomp -register -r *.rdb -c *.dll
-// to view the registry use: regview *.rdb /SERVICES/ServiceName
-// (you must use the full services name e.g. com.sun.star.frame.FilePicker
-//-------------------------------------------------------------------------
-
-sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey )
-{
- sal_Bool bRetVal = sal_False;
-
- if ( pRegistryKey )
- {
- try
- {
- Reference< XRegistryKey > pXNewKey( static_cast< XRegistryKey* >( pRegistryKey ) );
- pXNewKey->createKey( OUString( RTL_CONSTASCII_USTRINGPARAM( DNDSOURCE_REGKEY_NAME ) ) );
- bRetVal = sal_True;
-
- pXNewKey= static_cast< XRegistryKey* >( pRegistryKey );
- pXNewKey->createKey( OUString( RTL_CONSTASCII_USTRINGPARAM( DNDTARGET_REGKEY_NAME ) ) );
- bRetVal = sal_True;
- }
- catch( InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "InvalidRegistryException caught");
- bRetVal = sal_False;
- }
- }
-
- return bRetVal;
-}
-
//----------------------------------------------------------------------
// component_getFactory
// returns a factory to create XFilePicker-Services
diff --git a/dtrans/source/win32/dnd/exports.dxp b/dtrans/source/win32/dnd/exports.dxp
index 028ac4175990..f0e1c69934bc 100644
--- a/dtrans/source/win32/dnd/exports.dxp
+++ b/dtrans/source/win32/dnd/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/dtrans/source/win32/ftransl/exports.dxp b/dtrans/source/win32/ftransl/exports.dxp
index 028ac4175990..f0e1c69934bc 100644
--- a/dtrans/source/win32/ftransl/exports.dxp
+++ b/dtrans/source/win32/ftransl/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/dtrans/source/win32/ftransl/ftranslentry.cxx b/dtrans/source/win32/ftransl/ftranslentry.cxx
index 01d1521b15bc..abdd27ffcdae 100644
--- a/dtrans/source/win32/ftransl/ftranslentry.cxx
+++ b/dtrans/source/win32/ftransl/ftranslentry.cxx
@@ -102,35 +102,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-//-------------------------------------------------------------------------
-// component_writeInfo - to register a UNO-Service
-// to register a UNO-Service use: regcomp -register -r *.rdb -c *.dll
-// to view the registry use: regview *.rdb /SERVICES/ServiceName
-// (you must use the full services name e.g. com.sun.star.frame.FilePicker
-//-------------------------------------------------------------------------
-
-sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey )
-{
- sal_Bool bRetVal = sal_False;
-
- if ( pRegistryKey )
- {
- try
- {
- Reference< XRegistryKey > pXNewKey( static_cast< XRegistryKey* >( pRegistryKey ) );
- pXNewKey->createKey( OUString( RTL_CONSTASCII_USTRINGPARAM( REGKEY_NAME ) ) );
- bRetVal = sal_True;
- }
- catch( InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "InvalidRegistryException caught");
- bRetVal = sal_False;
- }
- }
-
- return bRetVal;
-}
-
//----------------------------------------------------------------------
// component_getFactory
// returns a factory to create XFilePicker-Services
diff --git a/dtrans/util/dnd.component b/dtrans/util/dnd.component
new file mode 100644
index 000000000000..b56fe326f04f
--- /dev/null
+++ b/dtrans/util/dnd.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.datatransfer.dnd.OleDragSource_V1">
+ <service name="com.sun.star.datatransfer.dnd.OleDragSource"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.datatransfer.dnd.OleDropTarget_V1">
+ <service name="com.sun.star.datatransfer.dnd.OleDropTarget"/>
+ </implementation>
+</component>
diff --git a/dtrans/util/exports.dxp b/dtrans/util/exports.dxp
index 028ac4175990..f0e1c69934bc 100644
--- a/dtrans/util/exports.dxp
+++ b/dtrans/util/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/dtrans/util/ftransl.component b/dtrans/util/ftransl.component
new file mode 100644
index 000000000000..dad7d341cce7
--- /dev/null
+++ b/dtrans/util/ftransl.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.datatransfer.DataFormatTranslator">
+ <service name="com.sun.star.datatransfer.DataFormatTranslator"/>
+ </implementation>
+</component>
diff --git a/dtrans/util/makefile.mk b/dtrans/util/makefile.mk
index 0443c131ccb6..8df69bbf1d36 100644
--- a/dtrans/util/makefile.mk
+++ b/dtrans/util/makefile.mk
@@ -180,3 +180,32 @@ DEF3EXPORTFILE= exports.dxp
.INCLUDE : target.mk
+ALLTAR : \
+ $(MISC)/dnd.component \
+ $(MISC)/ftransl.component \
+ $(MISC)/mcnttype.component \
+ $(MISC)/sysdtrans.component
+
+$(MISC)/dnd.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ dnd.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL4TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt dnd.component
+
+$(MISC)/ftransl.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ ftransl.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL2TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt ftransl.component
+
+$(MISC)/mcnttype.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ mcnttype.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt mcnttype.component
+
+$(MISC)/sysdtrans.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ sysdtrans.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL3TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt sysdtrans.component
diff --git a/dtrans/util/mcnttype.component b/dtrans/util/mcnttype.component
new file mode 100644
index 000000000000..f5a937a7a77a
--- /dev/null
+++ b/dtrans/util/mcnttype.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.datatransfer.MimeCntTypeFactory">
+ <service name="com.sun.star.datatransfer.MimeContentTypeFactory"/>
+ </implementation>
+</component>
diff --git a/dtrans/util/sysdtrans.component b/dtrans/util/sysdtrans.component
new file mode 100644
index 000000000000..ec1807000b3f
--- /dev/null
+++ b/dtrans/util/sysdtrans.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.datatransfer.clipboard.ClipboardW32">
+ <service name="com.sun.star.datatransfer.clipboard.SystemClipboard"/>
+ </implementation>
+</component>
diff --git a/editeng/util/editeng.dxp b/editeng/util/editeng.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/editeng/util/editeng.dxp
+++ b/editeng/util/editeng.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/embeddedobj/prj/d.lst b/embeddedobj/prj/d.lst
index 69721747166a..e85b439a1e34 100644
--- a/embeddedobj/prj/d.lst
+++ b/embeddedobj/prj/d.lst
@@ -4,3 +4,5 @@ mkdir: %_DEST%\xml%_EXT%\registry\spool
..\%__SRC%\lib\lib*.so %_DEST%\lib%_EXT%\lib*.so
..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
..\dtd\*.dtd %_DEST%\bin%_EXT%\*.*
+..\%__SRC%\misc\embobj.component %_DEST%\xml%_EXT%\embobj.component
+..\%__SRC%\misc\emboleobj.component %_DEST%\xml%_EXT%\emboleobj.component
diff --git a/embeddedobj/source/commonembedding/register.cxx b/embeddedobj/source/commonembedding/register.cxx
index bd2a64b299f1..8dbbd9ee4980 100644
--- a/embeddedobj/source/commonembedding/register.cxx
+++ b/embeddedobj/source/commonembedding/register.cxx
@@ -87,47 +87,5 @@ void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServic
return pRet;
}
-sal_Bool SAL_CALL component_writeInfo( void * /*pServiceManager*/, void * pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- sal_Int32 nInd = 0;
- uno::Reference< registry::XRegistryKey > xKey( reinterpret_cast< registry::XRegistryKey* >( pRegistryKey ) );
-
- uno::Reference< registry::XRegistryKey > xNewKey;
-
- xNewKey = xKey->createKey( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
- OOoEmbeddedObjectFactory::impl_staticGetImplementationName() +
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) );
- uno::Sequence< ::rtl::OUString > rServices = OOoEmbeddedObjectFactory::impl_staticGetSupportedServiceNames();
- for( nInd = 0; nInd < rServices.getLength(); nInd++ )
- xNewKey->createKey( rServices.getConstArray()[nInd] );
-
- xNewKey = xKey->createKey( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
- OOoSpecialEmbeddedObjectFactory::impl_staticGetImplementationName() +
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) );
- rServices = OOoSpecialEmbeddedObjectFactory::impl_staticGetSupportedServiceNames();
- for( nInd = 0; nInd < rServices.getLength(); nInd++ )
- xNewKey->createKey( rServices.getConstArray()[nInd] );
-
- xNewKey = xKey->createKey( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
- UNOEmbeddedObjectCreator::impl_staticGetImplementationName() +
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) );
- rServices = UNOEmbeddedObjectCreator::impl_staticGetSupportedServiceNames();
- for( nInd = 0; nInd < rServices.getLength(); nInd++ )
- xNewKey->createKey( rServices.getConstArray()[nInd] );
-
- return sal_True;
- }
- catch (registry::InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
-
} // extern "C"
diff --git a/embeddedobj/source/msole/emboleobj.component b/embeddedobj/source/msole/emboleobj.component
new file mode 100644
index 000000000000..96f8ed0d8d57
--- /dev/null
+++ b/embeddedobj/source/msole/emboleobj.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.embed.OLEEmbeddedObjectFactory">
+ <service name="com.sun.star.comp.embed.OLEEmbeddedObjectFactory"/>
+ <service name="com.sun.star.embed.OLEEmbeddedObjectFactory"/>
+ </implementation>
+</component>
diff --git a/embeddedobj/source/msole/emboleobj.windows.component b/embeddedobj/source/msole/emboleobj.windows.component
new file mode 100644
index 000000000000..644a1d4f19a1
--- /dev/null
+++ b/embeddedobj/source/msole/emboleobj.windows.component
@@ -0,0 +1,39 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.embed.MSOLEObjectSystemCreator">
+ <service name="com.sun.star.comp.embed.MSOLEObjectSystemCreator"/>
+ <service name="com.sun.star.embed.MSOLEObjectSystemCreator"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.embed.OLEEmbeddedObjectFactory">
+ <service name="com.sun.star.comp.embed.OLEEmbeddedObjectFactory"/>
+ <service name="com.sun.star.embed.OLEEmbeddedObjectFactory"/>
+ </implementation>
+</component>
diff --git a/embeddedobj/source/msole/exports.dxp b/embeddedobj/source/msole/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/embeddedobj/source/msole/exports.dxp
+++ b/embeddedobj/source/msole/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/embeddedobj/source/msole/makefile.mk b/embeddedobj/source/msole/makefile.mk
index 07b08bce6984..f40e231bc2dd 100644
--- a/embeddedobj/source/msole/makefile.mk
+++ b/embeddedobj/source/msole/makefile.mk
@@ -130,3 +130,14 @@ DEF1NAME= $(SHL1TARGET)
.INCLUDE : target.mk
+ALLTAR : $(MISC)/emboleobj.component
+
+.IF "$(OS)" == "WNT"
+my_platform = .windows
+.END
+
+$(MISC)/emboleobj.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ emboleobj.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt emboleobj$(my_platform).component
diff --git a/embeddedobj/util/embobj.component b/embeddedobj/util/embobj.component
new file mode 100644
index 000000000000..e46945dcb7e0
--- /dev/null
+++ b/embeddedobj/util/embobj.component
@@ -0,0 +1,43 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.embed.EmbeddedObjectCreator">
+ <service name="com.sun.star.comp.embed.EmbeddedObjectCreator"/>
+ <service name="com.sun.star.embed.EmbeddedObjectCreator"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.embed.OOoEmbeddedObjectFactory">
+ <service name="com.sun.star.comp.embed.OOoEmbeddedObjectFactory"/>
+ <service name="com.sun.star.embed.OOoEmbeddedObjectFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.embed.OOoSpecialEmbeddedObjectFactory">
+ <service name="com.sun.star.comp.embed.OOoSpecialEmbeddedObjectFactory"/>
+ <service name="com.sun.star.embed.OOoSpecialEmbeddedObjectFactory"/>
+ </implementation>
+</component>
diff --git a/embeddedobj/util/exports.dxp b/embeddedobj/util/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/embeddedobj/util/exports.dxp
+++ b/embeddedobj/util/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/embeddedobj/util/makefile.mk b/embeddedobj/util/makefile.mk
index 763d64c164c4..eb2416bd4dd5 100644
--- a/embeddedobj/util/makefile.mk
+++ b/embeddedobj/util/makefile.mk
@@ -87,3 +87,11 @@ $(MISC)$/$(SHL1TARGET).flt: makefile.mk
@echo CLEAR_THE_FILE > $@
@echo __CT >>$@
+
+ALLTAR : $(MISC)/embobj.component
+
+$(MISC)/embobj.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ embobj.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt embobj.component
diff --git a/embedserv/prj/d.lst b/embedserv/prj/d.lst
index 3765f7d97a96..e01fbabf84e0 100755
--- a/embedserv/prj/d.lst
+++ b/embedserv/prj/d.lst
@@ -1 +1,2 @@
..\%__SRC%\bin\*.dll %_DEST%\bin%_EXT%\*.dll
+..\%__SRC%\misc\emser.component %_DEST%\xml%_EXT%\emser.component
diff --git a/embedserv/source/embed/register.cxx b/embedserv/source/embed/register.cxx
index 320579f502fc..8df0b103ec55 100755
--- a/embedserv/source/embed/register.cxx
+++ b/embedserv/source/embed/register.cxx
@@ -95,34 +95,6 @@ void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServic
return pRet;
}
-sal_Bool SAL_CALL component_writeInfo( void * /*pServiceManager*/, void * pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- uno::Reference< registry::XRegistryKey > xKey( reinterpret_cast< registry::XRegistryKey* >( pRegistryKey ) );
-
- uno::Reference< registry::XRegistryKey > xNewKey;
-
- xNewKey = xKey->createKey( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
- EmbedServer_getImplementationName() +
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) );
-
- uno::Sequence< ::rtl::OUString > rServices = EmbedServer_getSupportedServiceNames();
- for( sal_Int32 ind = 0; ind < rServices.getLength(); ind++ )
- xNewKey->createKey( rServices.getConstArray()[ind] );
-
- return sal_True;
- }
- catch (registry::InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
-
} // extern "C"
// Fix strange warnings about some
@@ -130,4 +102,4 @@ sal_Bool SAL_CALL component_writeInfo( void * /*pServiceManager*/, void * pRegis
// warning C4505: 'xxx' : unreferenced local function has been removed
#if defined(_MSC_VER)
#pragma warning(disable: 4505)
-#endif \ No newline at end of file
+#endif
diff --git a/embedserv/util/emser.component b/embedserv/util/emser.component
new file mode 100644
index 000000000000..682ad1c31cc7
--- /dev/null
+++ b/embedserv/util/emser.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.ole.EmbedServer">
+ <service name="com.sun.star.document.OleEmbeddedServerRegistration"/>
+ </implementation>
+</component>
diff --git a/embedserv/util/exports.dxp b/embedserv/util/exports.dxp
index 9630d7e06768..f0e1c69934bc 100755
--- a/embedserv/util/exports.dxp
+++ b/embedserv/util/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/embedserv/util/makefile.mk b/embedserv/util/makefile.mk
index 45e3e4698804..5af210d96029 100755
--- a/embedserv/util/makefile.mk
+++ b/embedserv/util/makefile.mk
@@ -94,3 +94,11 @@ DEF1EXPORTFILE= exports.dxp
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/emser.component
+
+$(MISC)/emser.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ emser.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt emser.component
diff --git a/eventattacher/prj/d.lst b/eventattacher/prj/d.lst
index 5f9f228eda10..202a0a06aec8 100644
--- a/eventattacher/prj/d.lst
+++ b/eventattacher/prj/d.lst
@@ -1,3 +1,4 @@
..\%__SRC%\bin\*.dll %_DEST%\bin%_EXT%
..\%__SRC%\lib\lib*.so %_DEST%\lib%_EXT%
..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%
+..\%__SRC%\misc\evtatt.component %_DEST%\xml%_EXT%\evtatt.component
diff --git a/eventattacher/source/eventattacher.cxx b/eventattacher/source/eventattacher.cxx
index 9ff96cbf1087..effa7cb202ae 100644
--- a/eventattacher/source/eventattacher.cxx
+++ b/eventattacher/source/eventattacher.cxx
@@ -842,34 +842,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
- void * , void * pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- // DefaultRegistry
- Reference< XRegistryKey > xNewKey(
- reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
- OUString( RTL_CONSTASCII_USTRINGPARAM( "/" IMPLNAME "/UNO/SERVICES") )));
-
- Sequence< OUString > aSNL
- ( ::comp_EventAttacher::EventAttacherImpl::getSupportedServiceNames_Static() );
- const OUString * pArray = aSNL.getConstArray();
- for ( sal_Int32 nPos = aSNL.getLength(); nPos--; )
- xNewKey->createKey( pArray[nPos] );
-
- return sal_True;
- }
- catch (InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * )
{
diff --git a/eventattacher/source/evtatt.component b/eventattacher/source/evtatt.component
new file mode 100644
index 000000000000..3e48d58893fb
--- /dev/null
+++ b/eventattacher/source/evtatt.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.EventAttacher">
+ <service name="com.sun.star.script.EventAttacher"/>
+ </implementation>
+</component>
diff --git a/eventattacher/source/makefile.mk b/eventattacher/source/makefile.mk
index 632a1fa41ad5..360dcdabd7d7 100644
--- a/eventattacher/source/makefile.mk
+++ b/eventattacher/source/makefile.mk
@@ -61,3 +61,11 @@ SHL1LIBS= $(SLB)$/$(TARGET).lib
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/evtatt.component
+
+$(MISC)/evtatt.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ evtatt.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt evtatt.component
diff --git a/extensions/prj/d.lst b/extensions/prj/d.lst
index ecfe0ef9abcd..5b974816cf21 100644
--- a/extensions/prj/d.lst
+++ b/extensions/prj/d.lst
@@ -22,6 +22,7 @@ mkdir: %_DEST%\bin%_EXT%\so
..\%__SRC%\bin\npsoplugin_so.dll %_DEST%\bin%_EXT%\so\npsoplugin.dll
..\%__SRC%\bin\x64\so_activex.dll %_DEST%\bin%_EXT%\so_activex_x64.dll
..\%__SRC%\bin\mdibundle.zip %_DEST%\bin%_EXT%\mdibundle.zip
+..\%__SRC%\misc\oleautobridge.component %_DEST%\xml%_EXT%\oleautobridge.component
..\source\bibliography\uiconfig\sbibliography\menubar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\sbibliography\menubar\*.xml
@@ -39,3 +40,19 @@ mkdir: %_DEST%\xml%_EXT%\registry\spool\org\openoffice\Office\Logging
..\%__SRC%\misc\registry\spool\org\openoffice\Office\Logging\*.xcu %_DEST%\xml%_EXT%\registry\spool\org\openoffice\Office\Logging
..\%__SRC%\bin\*.oxt %_DEST%\pck%_EXT%\*
+..\%__SRC%\misc\abp.component %_DEST%\xml%_EXT%\abp.component
+..\%__SRC%\misc\bib.component %_DEST%\xml%_EXT%\bib.component
+..\%__SRC%\misc\dbp.component %_DEST%\xml%_EXT%\dbp.component
+..\%__SRC%\misc\ldapbe2.component %_DEST%\xml%_EXT%\ldapbe2.component
+..\%__SRC%\misc\log.component %_DEST%\xml%_EXT%\log.component
+..\%__SRC%\misc\oooimprovecore.component %_DEST%\xml%_EXT%\oooimprovecore.component
+..\%__SRC%\misc\oooimprovement.component %_DEST%\xml%_EXT%\oooimprovement.component
+..\%__SRC%\misc\pcr.component %_DEST%\xml%_EXT%\pcr.component
+..\%__SRC%\misc\pl.component %_DEST%\xml%_EXT%\pl.component
+..\%__SRC%\misc\preload.component %_DEST%\xml%_EXT%\preload.component
+..\%__SRC%\misc\res.component %_DEST%\xml%_EXT%\res.component
+..\%__SRC%\misc\scn.component %_DEST%\xml%_EXT%\scn.component
+..\%__SRC%\misc\updatefeed.component %_DEST%\xml%_EXT%\updatefeed.component
+..\%__SRC%\misc\updchk.component %_DEST%\xml%_EXT%\updchk.component
+..\%__SRC%\misc\updchk.uno.component %_DEST%\xml%_EXT%\updchk.uno.component
+..\%__SRC%\misc\xmx.component %_DEST%\xml%_EXT%\xmx.component
diff --git a/extensions/source/abpilot/abp.component b/extensions/source/abpilot/abp.component
new file mode 100644
index 000000000000..a07cef986219
--- /dev/null
+++ b/extensions/source/abpilot/abp.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="org.openoffice.comp.abp.OAddressBookSourcePilot">
+ <service name="com.sun.star.ui.dialogs.AddressBookSourcePilot"/>
+ </implementation>
+</component>
diff --git a/extensions/source/abpilot/abpservices.cxx b/extensions/source/abpilot/abpservices.cxx
index 8997ce335676..1cb327f73c72 100644
--- a/extensions/source/abpilot/abpservices.cxx
+++ b/extensions/source/abpilot/abpservices.cxx
@@ -66,27 +66,6 @@ component_getImplementationEnvironment(
}
//---------------------------------------------------------------------------------------
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void* pServiceManager,
- void* pRegistryKey
- )
-{
- if (pRegistryKey)
- try
- {
- return ::abp::OModule::writeComponentInfos(
- static_cast<XMultiServiceFactory*>(pServiceManager),
- static_cast<XRegistryKey*>(pRegistryKey));
- }
- catch (InvalidRegistryException& )
- {
- OSL_ASSERT("abp::component_writeInfo: could not create a registry key (InvalidRegistryException) !");
- }
-
- return sal_False;
-}
-
-//---------------------------------------------------------------------------------------
extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/extensions/source/abpilot/exports.dxp b/extensions/source/abpilot/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/extensions/source/abpilot/exports.dxp
+++ b/extensions/source/abpilot/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/extensions/source/abpilot/makefile.mk b/extensions/source/abpilot/makefile.mk
index 19477e1b6b2b..86bc5c68a7df 100644
--- a/extensions/source/abpilot/makefile.mk
+++ b/extensions/source/abpilot/makefile.mk
@@ -104,3 +104,11 @@ DEF1EXPORTFILE= exports.dxp
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/abp.component
+
+$(MISC)/abp.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ abp.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt abp.component
diff --git a/extensions/source/bibliography/bib.component b/extensions/source/bibliography/bib.component
new file mode 100644
index 000000000000..98627854dffa
--- /dev/null
+++ b/extensions/source/bibliography/bib.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.extensions.Bibliography">
+ <service name="com.sun.star.frame.Bibliography"/>
+ <service name="com.sun.star.frame.FrameLoader"/>
+ </implementation>
+</component>
diff --git a/extensions/source/bibliography/bibload.cxx b/extensions/source/bibliography/bibload.cxx
index 91356a0d1074..64262d2356a9 100644
--- a/extensions/source/bibliography/bibload.cxx
+++ b/extensions/source/bibliography/bibload.cxx
@@ -225,36 +225,6 @@ extern "C"
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
- sal_Bool SAL_CALL component_writeInfo( void * //pServiceManager
- , registry::XRegistryKey * pRegistryKey )
- {
- try
- {
- rtl::OUString sKey = rtl::OUString::createFromAscii("/");
- sKey += BibliographyLoader::getImplementationName_Static();
- //creates the impl key: /com.sun.star.extensions.Bibliography
- Reference< registry::XRegistryKey > xImplKey = pRegistryKey->createKey(sKey);
-
-
- //sKey += rtl::OUString::createFromAscii("/UNO/SERVICES");
- Reference< registry::XRegistryKey > xNewKey = xImplKey->createKey( C2U("/UNO/SERVICES") );
- Sequence< rtl::OUString > aServices = BibliographyLoader::getSupportedServiceNames_Static();
- for( INT32 i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i]);
- xNewKey = xImplKey->createKey( C2U("/UNO/Loader"));
-
- Reference< registry::XRegistryKey > xPatternKey = xImplKey->createKey( C2U("/Loader/Pattern" ));
- xPatternKey->setAsciiValue( C2U( ".component:Bibliography/*" ) );
-
- return sal_True;
- }
- catch (Exception &)
- {
- return sal_False;
- }
- }
-
-
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, XMultiServiceFactory * pServiceManager, void * /*pRegistryKey*/ )
{
diff --git a/extensions/source/bibliography/makefile.mk b/extensions/source/bibliography/makefile.mk
index f25dce11045b..e24c32237533 100644
--- a/extensions/source/bibliography/makefile.mk
+++ b/extensions/source/bibliography/makefile.mk
@@ -89,3 +89,11 @@ DEF1NAME= $(SHL1TARGET)
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/bib.component
+
+$(MISC)/bib.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ bib.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt bib.component
diff --git a/extensions/source/config/ldap/componentdef.cxx b/extensions/source/config/ldap/componentdef.cxx
index 0fd917d2ff9e..e76314ba56f2 100644
--- a/extensions/source/config/ldap/componentdef.cxx
+++ b/extensions/source/config/ldap/componentdef.cxx
@@ -62,13 +62,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment(
}
//------------------------------------------------------------------------------
-extern "C" sal_Bool SAL_CALL component_writeInfo(void *aServiceManager,
- void *aRegistryKey) {
- return cppu::component_writeInfoHelper(
- aServiceManager, aRegistryKey, kImplementations_entries);
-}
-//------------------------------------------------------------------------------
-
extern "C" void *component_getFactory(const sal_Char *aImplementationName,
void *aServiceManager,
void *aRegistryKey) {
diff --git a/extensions/source/config/ldap/exports.dxp b/extensions/source/config/ldap/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/extensions/source/config/ldap/exports.dxp
+++ b/extensions/source/config/ldap/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/extensions/source/config/ldap/ldapbe2.component b/extensions/source/config/ldap/ldapbe2.component
new file mode 100644
index 000000000000..071064d1c823
--- /dev/null
+++ b/extensions/source/config/ldap/ldapbe2.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.configuration.backend.LdapUserProfileBe">
+ <service name="com.sun.star.configuration.backend.LdapUserProfileBe"/>
+ </implementation>
+</component>
diff --git a/extensions/source/config/ldap/makefile.mk b/extensions/source/config/ldap/makefile.mk
index a27cb39b6225..d35e2428ca31 100644
--- a/extensions/source/config/ldap/makefile.mk
+++ b/extensions/source/config/ldap/makefile.mk
@@ -95,3 +95,11 @@ DEF1DES=Configuration: LDAP User Profile Backend
.INCLUDE : target.mk
.INCLUDE : $(PRJ)$/util$/target.pmk
+
+ALLTAR : $(MISC)/ldapbe2.component
+
+$(MISC)/ldapbe2.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ ldapbe2.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt ldapbe2.component
diff --git a/extensions/source/dbpilots/dbp.component b/extensions/source/dbpilots/dbp.component
new file mode 100644
index 000000000000..84ec98713b2a
--- /dev/null
+++ b/extensions/source/dbpilots/dbp.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="org.openoffice.comp.dbp.OGridWizard">
+ <service name="com.sun.star.sdb.GridControlAutoPilot"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.dbp.OGroupBoxWizard">
+ <service name="com.sun.star.sdb.GroupBoxAutoPilot"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.dbp.OListComboWizard">
+ <service name="com.sun.star.sdb.ListComboBoxAutoPilot"/>
+ </implementation>
+</component>
diff --git a/extensions/source/dbpilots/dbpservices.cxx b/extensions/source/dbpilots/dbpservices.cxx
index 28e55e1e8900..6cb77dde19bb 100644
--- a/extensions/source/dbpilots/dbpservices.cxx
+++ b/extensions/source/dbpilots/dbpservices.cxx
@@ -70,27 +70,6 @@ component_getImplementationEnvironment(
}
//---------------------------------------------------------------------------------------
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void* pServiceManager,
- void* pRegistryKey
- )
-{
- if (pRegistryKey)
- try
- {
- return ::dbp::OModule::writeComponentInfos(
- static_cast<XMultiServiceFactory*>(pServiceManager),
- static_cast<XRegistryKey*>(pRegistryKey));
- }
- catch (InvalidRegistryException& )
- {
- OSL_ASSERT("dbp::component_writeInfo: could not create a registry key (InvalidRegistryException) !");
- }
-
- return sal_False;
-}
-
-//---------------------------------------------------------------------------------------
extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/extensions/source/dbpilots/makefile.mk b/extensions/source/dbpilots/makefile.mk
index b5831e5fda0f..e37ab0a546ac 100644
--- a/extensions/source/dbpilots/makefile.mk
+++ b/extensions/source/dbpilots/makefile.mk
@@ -101,3 +101,11 @@ DEF1NAME= $(SHL1TARGET)
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/dbp.component
+
+$(MISC)/dbp.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ dbp.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt dbp.component
diff --git a/extensions/source/inc/componentmodule.cxx b/extensions/source/inc/componentmodule.cxx
index 6b08c46ff13b..f72458b01ec2 100644
--- a/extensions/source/inc/componentmodule.cxx
+++ b/extensions/source/inc/componentmodule.cxx
@@ -238,54 +238,6 @@ namespace COMPMOD_NAMESPACE
}
//--------------------------------------------------------------------------
- sal_Bool OModule::writeComponentInfos(
- const Reference< XMultiServiceFactory >& /*_rxServiceManager*/,
- const Reference< XRegistryKey >& _rxRootKey)
- {
- OSL_ENSURE(_rxRootKey.is(), "OModule::writeComponentInfos : invalid argument !");
-
- if (!s_pImplementationNames)
- {
- OSL_ASSERT("OModule::writeComponentInfos : have no class infos ! Are you sure called this method at the right time ?");
- return sal_True;
- }
- OSL_ENSURE(s_pImplementationNames && s_pSupportedServices && s_pCreationFunctionPointers && s_pFactoryFunctionPointers,
- "OModule::writeComponentInfos : inconsistent state (the pointers) !");
- OSL_ENSURE( (s_pImplementationNames->getLength() == s_pSupportedServices->getLength())
- && (s_pImplementationNames->getLength() == s_pCreationFunctionPointers->getLength())
- && (s_pImplementationNames->getLength() == s_pFactoryFunctionPointers->getLength()),
- "OModule::writeComponentInfos : inconsistent state !");
-
- sal_Int32 nLen = s_pImplementationNames->getLength();
- const ::rtl::OUString* pImplName = s_pImplementationNames->getConstArray();
- const Sequence< ::rtl::OUString >* pServices = s_pSupportedServices->getConstArray();
-
- ::rtl::OUString sRootKey("/", 1, RTL_TEXTENCODING_ASCII_US);
- for (sal_Int32 i=0; i<nLen; ++i, ++pImplName, ++pServices)
- {
- ::rtl::OUString aMainKeyName(sRootKey);
- aMainKeyName += *pImplName;
- aMainKeyName += ::rtl::OUString::createFromAscii("/UNO/SERVICES");
-
- try
- {
- Reference< XRegistryKey > xNewKey( _rxRootKey->createKey(aMainKeyName) );
-
- const ::rtl::OUString* pService = pServices->getConstArray();
- for (sal_Int32 j=0; j<pServices->getLength(); ++j, ++pService)
- xNewKey->createKey(*pService);
- }
- catch(Exception&)
- {
- OSL_ASSERT("OModule::writeComponentInfos : something went wrong while creating the keys !");
- return sal_False;
- }
- }
-
- return sal_True;
- }
-
- //--------------------------------------------------------------------------
Reference< XInterface > OModule::getComponentFactory(
const ::rtl::OUString& _rImplementationName,
const Reference< XMultiServiceFactory >& _rxServiceManager)
diff --git a/extensions/source/inc/componentmodule.hxx b/extensions/source/inc/componentmodule.hxx
index 09fd0807639f..88d6e5cf99c0 100644
--- a/extensions/source/inc/componentmodule.hxx
+++ b/extensions/source/inc/componentmodule.hxx
@@ -121,21 +121,6 @@ typedef ::com::sun::star::uno::Reference< ::com::sun::star::lang::XSingleService
static void revokeComponent(
const ::rtl::OUString& _rImplementationName);
- /** write the registration information of all known components
- <p>writes the registration information of all components which are currently registered into the
- specified registry.<p/>
- <p>Usually used from within component_writeInfo.<p/>
- @param _rxServiceManager
- the service manager
- @param _rRootKey
- the registry key under which the information will be stored
- @return
- sal_True if the registration of all implementations was successfull, sal_False otherwise
- */
- static sal_Bool writeComponentInfos(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxServiceManager,
- const ::com::sun::star::uno::Reference< ::com::sun::star::registry::XRegistryKey >& _rRootKey);
-
/** creates a Factory for the component with the given implementation name.
<p>Usually used from within component_getFactory.<p/>
@param _rxServiceManager
diff --git a/extensions/source/logging/log.component b/extensions/source/logging/log.component
new file mode 100644
index 000000000000..4dd2db56c3cc
--- /dev/null
+++ b/extensions/source/logging/log.component
@@ -0,0 +1,47 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.extensions.ConsoleHandler">
+ <service name="com.sun.star.logging.ConsoleHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.extensions.CsvFormatter">
+ <service name="com.sun.star.logging.CsvFormatter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.extensions.FileHandler">
+ <service name="com.sun.star.logging.FileHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.extensions.LoggerPool">
+ <service name="com.sun.star.logging.LoggerPool"/>
+ <singleton name="com.sun.star.logging.LoggerPool"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.extensions.PlainTextFormatter">
+ <service name="com.sun.star.logging.PlainTextFormatter"/>
+ </implementation>
+</component>
diff --git a/extensions/source/logging/makefile.mk b/extensions/source/logging/makefile.mk
index 4a1fa9813cb0..1436576e89ba 100644
--- a/extensions/source/logging/makefile.mk
+++ b/extensions/source/logging/makefile.mk
@@ -74,3 +74,11 @@ SHL1VERSIONMAP=$(SOLARENV)/src/component.map
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/log.component
+
+$(MISC)/log.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ log.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt log.component
diff --git a/extensions/source/ole/makefile.mk b/extensions/source/ole/makefile.mk
index ad4ecee72c82..806cd027eaae 100644
--- a/extensions/source/ole/makefile.mk
+++ b/extensions/source/ole/makefile.mk
@@ -129,3 +129,10 @@ DEF2EXPORTFILE=$(TARGET).dxp
.INCLUDE : target.mk
+ALLTAR : $(MISC)/oleautobridge.component
+
+$(MISC)/oleautobridge.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt oleautobridge.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt oleautobridge.component
diff --git a/extensions/source/ole/oleautobridge.component b/extensions/source/ole/oleautobridge.component
new file mode 100644
index 000000000000..6f5309e42ad9
--- /dev/null
+++ b/extensions/source/ole/oleautobridge.component
@@ -0,0 +1,46 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.ole.OleClient">
+ <service name="com.sun.star.bridge.OleObjectFactory"/>
+ <service name="com.sun.star.bridge.oleautomation.Factory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.ole.OleConverter2">
+ <service name="com.sun.star.bridge.OleBridgeSupplier2"/>
+ <service name="com.sun.star.bridge.oleautomation.BridgeSupplier"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.ole.OleConverterVar1">
+ <service name="com.sun.star.bridge.OleBridgeSupplierVar1"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.ole.OleServer">
+ <service name="com.sun.star.bridge.OleApplicationRegistration"/>
+ <service name="com.sun.star.bridge.oleautomation.ApplicationRegistration"/>
+ </implementation>
+</component>
diff --git a/extensions/source/ole/oleautobridge.uno.dxp b/extensions/source/ole/oleautobridge.uno.dxp
index e7947188aa92..1f26fd019c1c 100644
--- a/extensions/source/ole/oleautobridge.uno.dxp
+++ b/extensions/source/ole/oleautobridge.uno.dxp
@@ -1,4 +1,3 @@
-component_writeInfo @100
component_getFactory @101
component_getImplementationEnvironment @102
component_canUnload @103
diff --git a/extensions/source/ole/servreg.cxx b/extensions/source/ole/servreg.cxx
index 17fc24e9a08c..f5d6c8080a15 100644
--- a/extensions/source/ole/servreg.cxx
+++ b/extensions/source/ole/servreg.cxx
@@ -119,47 +119,6 @@ extern "C" void * SAL_CALL component_getFactory(
}
-extern "C" sal_Bool SAL_CALL component_writeInfo( void * /*pServiceManager*/, void * pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- //deprecated
- Reference<XRegistryKey> xNewKey =
- reinterpret_cast<XRegistryKey*>( pRegistryKey)->createKey(reinterpret_cast<const sal_Unicode*>(L"/com.sun.star.comp.ole.OleConverter2/UNO/SERVICES"));
- xNewKey->createKey(reinterpret_cast<const sal_Unicode*>(L"com.sun.star.bridge.OleBridgeSupplier2"));
-
- xNewKey->createKey(reinterpret_cast<const sal_Unicode*>(L"com.sun.star.bridge.oleautomation.BridgeSupplier"));
-
- //deprecated
- xNewKey =
- reinterpret_cast<XRegistryKey*>( pRegistryKey)->createKey(reinterpret_cast<const sal_Unicode*>(L"/com.sun.star.comp.ole.OleConverterVar1/UNO/SERVICES"));
- xNewKey->createKey(reinterpret_cast<const sal_Unicode*>(L"com.sun.star.bridge.OleBridgeSupplierVar1"));
-
- //deprecated
- xNewKey =
- reinterpret_cast<XRegistryKey*>( pRegistryKey)->createKey(reinterpret_cast<const sal_Unicode*>(L"/com.sun.star.comp.ole.OleClient/UNO/SERVICES"));
- xNewKey->createKey(reinterpret_cast<const sal_Unicode*>(L"com.sun.star.bridge.OleObjectFactory"));
-
- xNewKey->createKey(reinterpret_cast<const sal_Unicode*>(L"com.sun.star.bridge.oleautomation.Factory"));
- //deprecated
- xNewKey =
- reinterpret_cast<XRegistryKey*>( pRegistryKey)->createKey(reinterpret_cast<const sal_Unicode*>(L"/com.sun.star.comp.ole.OleServer/UNO/SERVICES"));
- xNewKey->createKey(reinterpret_cast<const sal_Unicode*>(L"com.sun.star.bridge.OleApplicationRegistration"));
-
- xNewKey->createKey(reinterpret_cast<const sal_Unicode*>(L"com.sun.star.bridge.oleautomation.ApplicationRegistration"));
-
- return sal_True;
- }
- catch (InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
-
extern "C" void SAL_CALL component_getImplementationEnvironment(
const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
{
diff --git a/extensions/source/oooimprovecore/makefile.mk b/extensions/source/oooimprovecore/makefile.mk
index 97e130c3a644..f92804dbf261 100644
--- a/extensions/source/oooimprovecore/makefile.mk
+++ b/extensions/source/oooimprovecore/makefile.mk
@@ -75,3 +75,11 @@ SHL1VERSIONMAP=$(SOLARENV)/src/component.map
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/oooimprovecore.component
+
+$(MISC)/oooimprovecore.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt oooimprovecore.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt oooimprovecore.component
diff --git a/extensions/source/oooimprovecore/oooimprovecore.component b/extensions/source/oooimprovecore/oooimprovecore.component
new file mode 100644
index 000000000000..58bdaf37c2c5
--- /dev/null
+++ b/extensions/source/oooimprovecore/oooimprovecore.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.extensions.oooimprovecore.Core">
+ <service name="com.sun.star.oooimprovement.Core"/>
+ </implementation>
+</component>
diff --git a/extensions/source/oooimprovement/invite_job.cxx b/extensions/source/oooimprovement/invite_job.cxx
index 8bf4a3c5d241..69036826432f 100644
--- a/extensions/source/oooimprovement/invite_job.cxx
+++ b/extensions/source/oooimprovement/invite_job.cxx
@@ -121,7 +121,7 @@ namespace oooimprovement
Sequence<OUString> SAL_CALL InviteJob::getSupportedServiceNames_static()
{
Sequence<OUString> aServiceNames(1);
- aServiceNames[0] = OUString::createFromAscii("com.sun.star.task.XAsyncJob");
+ aServiceNames[0] = OUString::createFromAscii("com.sun.star.task.AsyncJob");
return aServiceNames;
}
diff --git a/extensions/source/oooimprovement/makefile.mk b/extensions/source/oooimprovement/makefile.mk
index 6e5d7ab0d6a2..16e3f12f126c 100644
--- a/extensions/source/oooimprovement/makefile.mk
+++ b/extensions/source/oooimprovement/makefile.mk
@@ -102,3 +102,11 @@ $(SPOOLDIR)$/$(PACKAGEDIR)$/Jobs$/Jobs-oooimprovement.xcu : $(XCU_SOURCEDIR)$/Jo
$(SPOOLDIR)$/$(PACKAGEDIR)$/Logging$/Logging-oooimprovement.xcu : $(XCU_SOURCEDIR)$/Logging.xcu
@-$(MKDIRHIER) $(@:d)
@$(COPY) $< $@
+
+ALLTAR : $(MISC)/oooimprovement.component
+
+$(MISC)/oooimprovement.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt oooimprovement.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt oooimprovement.component
diff --git a/extensions/source/oooimprovement/onlogrotate_job.cxx b/extensions/source/oooimprovement/onlogrotate_job.cxx
index 3007ada42aba..c5f6b56be31a 100644
--- a/extensions/source/oooimprovement/onlogrotate_job.cxx
+++ b/extensions/source/oooimprovement/onlogrotate_job.cxx
@@ -223,7 +223,7 @@ namespace oooimprovement
Sequence<OUString> SAL_CALL OnLogRotateJob::getSupportedServiceNames_static()
{
Sequence<OUString> aServiceNames(1);
- aServiceNames[0] = OUString::createFromAscii("com.sun.star.task.XAsyncJob");
+ aServiceNames[0] = OUString::createFromAscii("com.sun.star.task.AsyncJob");
return aServiceNames;
}
diff --git a/extensions/source/oooimprovement/oooimprovement.component b/extensions/source/oooimprovement/oooimprovement.component
new file mode 100644
index 000000000000..e133f932c199
--- /dev/null
+++ b/extensions/source/oooimprovement/oooimprovement.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation
+ name="com.sun.star.comp.extensions.oooimprovement.CoreController">
+ <service name="com.sun.star.oooimprovement.CoreController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.extensions.oooimprovement.InviteJob"/>
+ <implementation
+ name="com.sun.star.comp.extensions.oooimprovement.OnLogRotateJob"/>
+</component>
diff --git a/extensions/source/oooimprovement/oooimprovement_exports.cxx b/extensions/source/oooimprovement/oooimprovement_exports.cxx
index 147089dd203c..b351f84680d7 100644
--- a/extensions/source/oooimprovement/oooimprovement_exports.cxx
+++ b/extensions/source/oooimprovement/oooimprovement_exports.cxx
@@ -65,28 +65,6 @@ extern "C"
void SAL_CALL component_getImplementationEnvironment(const sal_Char** env_type_name, uno_Environment**)
{ *env_type_name = CPPU_CURRENT_LANGUAGE_BINDING_NAME; }
- sal_Bool SAL_CALL component_writeInfo(void*, void* p_reg_key)
- {
- if (!p_reg_key) return sal_False;
- try
- {
- Reference<XRegistryKey> reg_key(reinterpret_cast<XRegistryKey*>(p_reg_key), UNO_QUERY);
- writeInfo(reg_key,
- CoreController::getImplementationName_static(),
- CoreController::getSupportedServiceNames_static()[0]);
- writeInfo(reg_key,
- OnLogRotateJob::getImplementationName_static(),
- OnLogRotateJob::getSupportedServiceNames_static()[0]);
- writeInfo(reg_key,
- InviteJob::getImplementationName_static(),
- InviteJob::getSupportedServiceNames_static()[0]);
- return sal_True;
- }
- catch(const InvalidRegistryException&)
- { OSL_ENSURE( sal_False, "### InvalidRegistryException!" ); }
- return sal_False;
- }
-
void* SAL_CALL component_getFactory(const sal_Char* pImplName, void* pServiceManager, void*)
{
if ( !pServiceManager || !pImplName ) return 0;
diff --git a/extensions/source/plugin/base/service.cxx b/extensions/source/plugin/base/service.cxx
index de74d05060db..21389caa2bbd 100644
--- a/extensions/source/plugin/base/service.cxx
+++ b/extensions/source/plugin/base/service.cxx
@@ -54,33 +54,6 @@ extern "C" {
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
- sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pXUnoKey )
- {
- if( pXUnoKey )
- {
- try
- {
- Reference< ::com::sun::star::registry::XRegistryKey > xKey( reinterpret_cast< ::com::sun::star::registry::XRegistryKey* >( pXUnoKey ) );
-
- ::rtl::OUString aImplName = ::rtl::OUString::createFromAscii( "/" );
- aImplName += XPluginManager_Impl::getImplementationName_Static();
- aImplName += ::rtl::OUString::createFromAscii( "/UNO/SERVICES/com.sun.star.plugin.PluginManager" );
- xKey->createKey( aImplName );
-
- aImplName = ::rtl::OUString::createFromAscii( "/" );
- aImplName += PluginModel::getImplementationName_Static();
- aImplName += ::rtl::OUString::createFromAscii( "/UNO/SERVICES/com.sun.star.plugin.PluginModel" );
- xKey->createKey( aImplName );
-
- return sal_True;
- }
- catch( ::com::sun::star::registry::InvalidRegistryException& )
- {
- }
- }
- return sal_False;
- }
-
void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pXUnoSMgr,
diff --git a/extensions/source/plugin/util/makefile.mk b/extensions/source/plugin/util/makefile.mk
index 7a8c46c01769..765941689658 100644
--- a/extensions/source/plugin/util/makefile.mk
+++ b/extensions/source/plugin/util/makefile.mk
@@ -107,3 +107,11 @@ SHL1STDLIBS+=$(SHL1OWNLIBS)
+
+ALLTAR : $(MISC)/pl.component
+
+$(MISC)/pl.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ pl.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt pl.component
diff --git a/extensions/source/plugin/util/pl.component b/extensions/source/plugin/util/pl.component
new file mode 100644
index 000000000000..4a9d98f7dc7b
--- /dev/null
+++ b/extensions/source/plugin/util/pl.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.extensions.PluginManager">
+ <service name="com.sun.star.plugin.PluginManager"/>
+ </implementation>
+ <implementation name="com.sun.star.extensions.PluginModel">
+ <service name="com.sun.star.plugin.PluginModel"/>
+ </implementation>
+</component>
diff --git a/extensions/source/preload/makefile.mk b/extensions/source/preload/makefile.mk
index fb11a2bfd32c..8bd6226619bc 100644
--- a/extensions/source/preload/makefile.mk
+++ b/extensions/source/preload/makefile.mk
@@ -83,3 +83,11 @@ DEF1NAME= $(SHL1TARGET)
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/preload.component
+
+$(MISC)/preload.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ preload.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt preload.component
diff --git a/extensions/source/preload/preload.component b/extensions/source/preload/preload.component
new file mode 100644
index 000000000000..56a8a0d7a0cf
--- /dev/null
+++ b/extensions/source/preload/preload.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="org.openoffice.comp.preload.OEMPreloadWizard">
+ <service name="org.openoffice.comp.preload.OEMPreloadWizard"/>
+ </implementation>
+</component>
diff --git a/extensions/source/preload/services.cxx b/extensions/source/preload/services.cxx
index 39904ef7cc51..e063789e0f0c 100644
--- a/extensions/source/preload/services.cxx
+++ b/extensions/source/preload/services.cxx
@@ -66,27 +66,6 @@ component_getImplementationEnvironment(
}
//---------------------------------------------------------------------------------------
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void* pServiceManager,
- void* pRegistryKey
- )
-{
- if (pRegistryKey)
- try
- {
- return ::preload::OModule::writeComponentInfos(
- static_cast<XMultiServiceFactory*>(pServiceManager),
- static_cast<XRegistryKey*>(pRegistryKey));
- }
- catch (InvalidRegistryException& )
- {
- OSL_ASSERT("preload::component_writeInfo: could not create a registry key (InvalidRegistryException) !");
- }
-
- return sal_False;
-}
-
-//---------------------------------------------------------------------------------------
extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/extensions/source/propctrlr/makefile.mk b/extensions/source/propctrlr/makefile.mk
index c69f47bcef1a..ebb629ae39c9 100644
--- a/extensions/source/propctrlr/makefile.mk
+++ b/extensions/source/propctrlr/makefile.mk
@@ -144,3 +144,11 @@ DEF1NAME= $(SHL1TARGET)
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/pcr.component
+
+$(MISC)/pcr.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ pcr.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt pcr.component
diff --git a/extensions/source/propctrlr/pcr.component b/extensions/source/propctrlr/pcr.component
new file mode 100644
index 000000000000..2b606cc01c11
--- /dev/null
+++ b/extensions/source/propctrlr/pcr.component
@@ -0,0 +1,91 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="StringRepresentation">
+ <service name="com.sun.star.inspection.StringRepresentation"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.extensions.ButtonNavigationHandler">
+ <service name="com.sun.star.form.inspection.ButtonNavigationHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.extensions.CellBindingPropertyHandler">
+ <service name="com.sun.star.form.inspection.CellBindingPropertyHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.extensions.EFormsPropertyHandler">
+ <service name="com.sun.star.form.inspection.XMLFormsPropertyHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.extensions.EditPropertyHandler">
+ <service name="com.sun.star.form.inspection.EditPropertyHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.extensions.EventHandler">
+ <service name="com.sun.star.form.inspection.EventHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.extensions.FormComponentPropertyHandler">
+ <service name="com.sun.star.form.inspection.FormComponentPropertyHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.extensions.FormGeometryHandler">
+ <service name="com.sun.star.form.inspection.FormGeometryHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.extensions.GenericPropertyHandler">
+ <service name="com.sun.star.inspection.GenericPropertyHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.extensions.SubmissionPropertyHandler">
+ <service name="com.sun.star.form.inspection.SubmissionPropertyHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.extensions.XSDValidationPropertyHandler">
+ <service name="com.sun.star.form.inspection.XSDValidationPropertyHandler"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.extensions.DefaultFormComponentInspectorModel">
+ <service name="com.sun.star.form.inspection.DefaultFormComponentInspectorModel"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.extensions.DefaultHelpProvider">
+ <service name="com.sun.star.inspection.DefaultHelpProvider"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.extensions.DialogController">
+ <service name="com.sun.star.awt.PropertyBrowserController"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.extensions.FormController">
+ <service name="com.sun.star.form.PropertyBrowserController"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.extensions.ObjectInspector">
+ <service name="com.sun.star.inspection.ObjectInspector"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.extensions.ObjectInspectorModel">
+ <service name="com.sun.star.inspection.ObjectInspectorModel"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.form.ui.MasterDetailLinkDialog">
+ <service name="com.sun.star.form.MasterDetailLinkDialog"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.form.ui.OControlFontDialog">
+ <service name="com.sun.star.form.ControlFontDialog"/>
+ </implementation>
+ <implementation name="org.openoffice.comp.form.ui.OTabOrderDialog">
+ <service name="com.sun.star.form.ui.TabOrderDialog"/>
+ </implementation>
+</component>
diff --git a/extensions/source/propctrlr/pcrservices.cxx b/extensions/source/propctrlr/pcrservices.cxx
index e04169e7d90e..e515a87c1b16 100644
--- a/extensions/source/propctrlr/pcrservices.cxx
+++ b/extensions/source/propctrlr/pcrservices.cxx
@@ -104,27 +104,6 @@ component_getImplementationEnvironment(
}
//---------------------------------------------------------------------------------------
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void* pServiceManager,
- void* pRegistryKey
- )
-{
- if (pRegistryKey)
- try
- {
- return ::pcr::PcrModule::getInstance().writeComponentInfos(
- static_cast<XMultiServiceFactory*>(pServiceManager),
- static_cast<XRegistryKey*>(pRegistryKey));
- }
- catch (InvalidRegistryException& )
- {
- OSL_ASSERT("pcr::component_writeInfo: could not create a registry key (InvalidRegistryException) !");
- }
-
- return sal_False;
-}
-
-//---------------------------------------------------------------------------------------
extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/extensions/source/resource/exports.dxp b/extensions/source/resource/exports.dxp
index 9e59e94034a6..f0e1c69934bc 100644
--- a/extensions/source/resource/exports.dxp
+++ b/extensions/source/resource/exports.dxp
@@ -1,3 +1,2 @@
-component_writeInfo
component_getImplementationEnvironment
component_getFactory
diff --git a/extensions/source/resource/makefile.mk b/extensions/source/resource/makefile.mk
index a89d690b7393..adeec5fd09dc 100644
--- a/extensions/source/resource/makefile.mk
+++ b/extensions/source/resource/makefile.mk
@@ -74,3 +74,11 @@ DEF1EXPORTFILE= exports.dxp
.INCLUDE : target.mk
.INCLUDE : $(PRJ)$/util$/target.pmk
+
+ALLTAR : $(MISC)/res.component
+
+$(MISC)/res.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ res.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt res.component
diff --git a/extensions/source/resource/res.component b/extensions/source/resource/res.component
new file mode 100644
index 000000000000..57f96609d5df
--- /dev/null
+++ b/extensions/source/resource/res.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.extensions.ResourceService">
+ <service name="com.sun.star.resource.VclStringResourceLoader"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.resource.OpenOfficeResourceLoader">
+ <service name="com.sun.star.resource.OfficeResourceLoader"/>
+ <singleton name="com.sun.star.resource.OfficeResourceLoader"/>
+ </implementation>
+</component>
diff --git a/extensions/source/resource/res_services.cxx b/extensions/source/resource/res_services.cxx
index 6babbe48e8cd..7bdc684294ea 100644
--- a/extensions/source/resource/res_services.cxx
+++ b/extensions/source/resource/res_services.cxx
@@ -29,12 +29,7 @@
#include "precompiled_extensions.hxx"
#include "res_services.hxx"
-/** === begin UNO includes === **/
-#include <com/sun/star/registry/XRegistryKey.hpp>
-/** === end UNO includes === **/
-
/** === begin UNO using === **/
-using ::com::sun::star::registry::XRegistryKey;
using ::com::sun::star::uno::Reference;
using ::com::sun::star::uno::Sequence;
using ::com::sun::star::uno::Exception;
@@ -64,43 +59,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-sal_Bool SAL_CALL component_writeInfo( void * /*pServiceManager*/, XRegistryKey * pRegistryKey )
-{
- try
- {
- ::std::vector< ::res::ComponentInfo > aComponentInfos( ::res::getComponentInfos() );
- for ( ::std::vector< ::res::ComponentInfo >::const_iterator loop = aComponentInfos.begin();
- loop != aComponentInfos.end();
- ++loop
- )
- {
- Reference< XRegistryKey > xNewKey =
- pRegistryKey->createKey( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") )
- + loop->sImplementationName + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES" ) ) );
-
- for( sal_Int32 i = 0; i < loop->aSupportedServices.getLength(); ++i )
- xNewKey->createKey( loop->aSupportedServices.getConstArray()[i]);
-
- if ( loop->sSingletonName.getLength() )
- {
- OSL_ENSURE( loop->aSupportedServices.getLength() == 1, "singletons must support exactly one service!" );
- xNewKey = pRegistryKey->createKey( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") )
- + loop->sImplementationName + ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "/UNO/SINGLETONS/" ) )
- + loop->sSingletonName );
- xNewKey->setStringValue( loop->aSupportedServices[ 0 ] );
- }
- }
-
- return sal_True;
- }
- catch (Exception &)
- {
- // not allowed to throw an exception over the c function.
- //OSL_ENSURE( sal_False, "Exception cannot register component!" );
- return sal_False;
- }
-}
-
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, XMultiServiceFactory * /*pServiceManager*/, void * /*pRegistryKey*/ )
{
diff --git a/extensions/source/scanner/exports.dxp b/extensions/source/scanner/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/extensions/source/scanner/exports.dxp
+++ b/extensions/source/scanner/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/extensions/source/scanner/makefile.mk b/extensions/source/scanner/makefile.mk
index ff42864e0496..519be1ff863d 100644
--- a/extensions/source/scanner/makefile.mk
+++ b/extensions/source/scanner/makefile.mk
@@ -98,3 +98,11 @@ DEF1EXPORTFILE=exports.dxp
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/scn.component
+
+$(MISC)/scn.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ scn.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt scn.component
diff --git a/extensions/source/scanner/scn.component b/extensions/source/scanner/scn.component
new file mode 100644
index 000000000000..d7daf3ae36d4
--- /dev/null
+++ b/extensions/source/scanner/scn.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.scanner.ScannerManager">
+ <service name="com.sun.star.scanner.ScannerManager"/>
+ </implementation>
+</component>
diff --git a/extensions/source/scanner/scnserv.cxx b/extensions/source/scanner/scnserv.cxx
index e7c125fe1cae..e96522002b9a 100644
--- a/extensions/source/scanner/scnserv.cxx
+++ b/extensions/source/scanner/scnserv.cxx
@@ -45,37 +45,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment( const sal_Char*
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-// -----------------------
-// - component_writeInfo -
-// -----------------------
-
-extern "C" sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey )
-{
- sal_Bool bRet = sal_False;
-
- if( pRegistryKey )
- {
- try
- {
- ::rtl::OUString aImplName( '/' );
-
- aImplName += ScannerManager::getImplementationName_Static();
- aImplName += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES/" ) );
- aImplName += ScannerManager::getImplementationName_Static();
-
- REF( XRegistryKey ) xNewKey1( static_cast< XRegistryKey* >( pRegistryKey )->createKey( aImplName ) );
-
- bRet = sal_True;
- }
- catch( InvalidRegistryException& )
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
-
- return bRet;
-}
-
// ------------------------
// - component_getFactory -
// ------------------------
diff --git a/extensions/source/svg/svguno.cxx b/extensions/source/svg/svguno.cxx
index cb76e80d9319..5e4281ca2e28 100644
--- a/extensions/source/svg/svguno.cxx
+++ b/extensions/source/svg/svguno.cxx
@@ -60,36 +60,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment( const sal_Char
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-// -----------------------
-// - component_writeInfo -
-// -----------------------
-
-extern "C" sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey )
-{
- sal_Bool bRet = sal_False;
-
- if( pRegistryKey )
- {
- try
- {
- REF( NMSP_REGISTRY::XRegistryKey ) xNewKey1(
- static_cast< NMSP_REGISTRY::XRegistryKey* >( pRegistryKey )->createKey(
- B2UCONST( "/com.sun.star.comp.extensions.SVGWriter/UNO/SERVICES/com.sun.star.svg.SVGWriter" ) ) );
- REF( NMSP_REGISTRY::XRegistryKey ) xNewKey2(
- static_cast< NMSP_REGISTRY::XRegistryKey* >( pRegistryKey )->createKey(
- B2UCONST( "/com.sun.star.comp.extensions.SVGPrinter/UNO/SERVICES/com.sun.star.svg.SVGPrinter" ) ) );
-
- bRet = sal_True;
- }
- catch( NMSP_REGISTRY::InvalidRegistryException& )
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
-
- return bRet;
-}
-
// ------------------------
// - component_getFactory -
// ------------------------
diff --git a/extensions/source/update/check/makefile.mk b/extensions/source/update/check/makefile.mk
index 9f5f544102dd..47da869ea11e 100644
--- a/extensions/source/update/check/makefile.mk
+++ b/extensions/source/update/check/makefile.mk
@@ -132,3 +132,11 @@ $(SPOOLDIR)$/$(PACKAGEDIR)$/Jobs$/Jobs-onlineupdate.xcu : $(XCU_SOURCEDIR)$/Jobs
@$(COPY) $< $@
# @$(PERL) transform.pl < $< > $@
+
+ALLTAR : $(MISC)/updchk.uno.component
+
+$(MISC)/updchk.uno.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ updchk.uno.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt updchk.uno.component
diff --git a/extensions/source/update/check/updatecheckjob.cxx b/extensions/source/update/check/updatecheckjob.cxx
index 0c9ee46d10f0..9a87779e0999 100755
--- a/extensions/source/update/check/updatecheckjob.cxx
+++ b/extensions/source/update/check/updatecheckjob.cxx
@@ -388,18 +388,6 @@ component_getImplementationEnvironment( const sal_Char **aEnvTypeName, uno_Envir
//------------------------------------------------------------------------------
-extern "C" sal_Bool SAL_CALL
-component_writeInfo(void *pServiceManager, void *pRegistryKey)
-{
- return cppu::component_writeInfoHelper(
- pServiceManager,
- pRegistryKey,
- kImplementations_entries
- );
-}
-
-//------------------------------------------------------------------------------
-
extern "C" void *
component_getFactory(const sal_Char *pszImplementationName, void *pServiceManager, void *pRegistryKey)
{
diff --git a/extensions/source/update/check/updchk.uno.component b/extensions/source/update/check/updchk.uno.component
new file mode 100644
index 000000000000..b1eb32917eaf
--- /dev/null
+++ b/extensions/source/update/check/updchk.uno.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="vnd.sun.UpdateCheck">
+ <service name="com.sun.star.setup.UpdateCheck"/>
+ </implementation>
+ <implementation name="vnd.sun.UpdateCheckConfig">
+ <service name="com.sun.star.setup.UpdateCheckConfig"/>
+ </implementation>
+</component>
diff --git a/extensions/source/update/feed/makefile.mk b/extensions/source/update/feed/makefile.mk
index 7e12970ddef1..6361f20bdd73 100644
--- a/extensions/source/update/feed/makefile.mk
+++ b/extensions/source/update/feed/makefile.mk
@@ -62,3 +62,11 @@ DEF1NAME=$(SHL1TARGET)
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/updatefeed.component
+
+$(MISC)/updatefeed.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ updatefeed.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt updatefeed.component
diff --git a/extensions/source/update/feed/updatefeed.component b/extensions/source/update/feed/updatefeed.component
new file mode 100644
index 000000000000..2d53ff5f9398
--- /dev/null
+++ b/extensions/source/update/feed/updatefeed.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="vnd.sun.UpdateInformationProvider">
+ <service name="com.sun.star.deployment.UpdateInformationProvider"/>
+ </implementation>
+</component>
diff --git a/extensions/source/update/feed/updatefeed.cxx b/extensions/source/update/feed/updatefeed.cxx
index e5eb490e29a2..12af008ee853 100644
--- a/extensions/source/update/feed/updatefeed.cxx
+++ b/extensions/source/update/feed/updatefeed.cxx
@@ -851,18 +851,6 @@ component_getImplementationEnvironment( const sal_Char **aEnvTypeName, uno_Envir
//------------------------------------------------------------------------------
-extern "C" sal_Bool SAL_CALL
-component_writeInfo(void *pServiceManager, void *pRegistryKey)
-{
- return cppu::component_writeInfoHelper(
- pServiceManager,
- pRegistryKey,
- kImplementations_entries
- );
-}
-
-//------------------------------------------------------------------------------
-
extern "C" void *
component_getFactory(const sal_Char *pszImplementationName, void *pServiceManager, void *pRegistryKey)
{
diff --git a/extensions/source/update/ui/makefile.mk b/extensions/source/update/ui/makefile.mk
index c4826efba9ca..5ea6994d3d22 100644
--- a/extensions/source/update/ui/makefile.mk
+++ b/extensions/source/update/ui/makefile.mk
@@ -72,3 +72,11 @@ DEF1NAME=$(SHL1TARGET)
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/updchk.component
+
+$(MISC)/updchk.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ updchk.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt updchk.component
diff --git a/extensions/source/update/ui/updatecheckui.cxx b/extensions/source/update/ui/updatecheckui.cxx
index a2a8c31908fc..a6fe8fb27d32 100644
--- a/extensions/source/update/ui/updatecheckui.cxx
+++ b/extensions/source/update/ui/updatecheckui.cxx
@@ -1059,18 +1059,6 @@ component_getImplementationEnvironment( const sal_Char **aEnvTypeName, uno_Envir
//------------------------------------------------------------------------------
-extern "C" sal_Bool SAL_CALL
-component_writeInfo(void *pServiceManager, void *pRegistryKey)
-{
- return cppu::component_writeInfoHelper(
- pServiceManager,
- pRegistryKey,
- kImplementations_entries
- );
-}
-
-//------------------------------------------------------------------------------
-
extern "C" void *
component_getFactory(const sal_Char *pszImplementationName, void *pServiceManager, void *pRegistryKey)
{
diff --git a/extensions/source/update/ui/updchk.component b/extensions/source/update/ui/updchk.component
new file mode 100644
index 000000000000..bd533e30d1f3
--- /dev/null
+++ b/extensions/source/update/ui/updchk.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="vnd.sun.UpdateCheckUI">
+ <service name="com.sun.star.setup.UpdateCheckUI"/>
+ </implementation>
+</component>
diff --git a/extensions/source/xmlextract/makefile.mk b/extensions/source/xmlextract/makefile.mk
index 0a021027f4b4..fa54df738b58 100644
--- a/extensions/source/xmlextract/makefile.mk
+++ b/extensions/source/xmlextract/makefile.mk
@@ -63,3 +63,11 @@ SHL1LIBS= $(SLB)$/$(TARGET).lib
# --- Targets ----------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/xmx.component
+
+$(MISC)/xmx.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ xmx.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt xmx.component
diff --git a/extensions/source/xmlextract/xmx.component b/extensions/source/xmlextract/xmx.component
new file mode 100644
index 000000000000..456ff33b6c06
--- /dev/null
+++ b/extensions/source/xmlextract/xmx.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.io.XMLExtractor">
+ <service name="com.sun.star.io.XMLExtractor"/>
+ </implementation>
+</component>
diff --git a/extensions/source/xmlextract/xmxuno.cxx b/extensions/source/xmlextract/xmxuno.cxx
index ba4044a54e6b..98d11238fb73 100644
--- a/extensions/source/xmlextract/xmxuno.cxx
+++ b/extensions/source/xmlextract/xmxuno.cxx
@@ -52,27 +52,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
- void * /*pServiceManager*/, void * pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- REF( NMSP_REGISTRY::XRegistryKey ) xNewKey(
- reinterpret_cast< NMSP_REGISTRY::XRegistryKey * >( pRegistryKey )->createKey(
- NMSP_RTL::OUString( RTL_CONSTASCII_USTRINGPARAM("/com.sun.star.comp.io.XMLExtractor/UNO/SERVICES/com.sun.star.io.XMLExtractor") ) ) );
-
- return sal_True;
- }
- catch (NMSP_REGISTRY::InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ )
{
diff --git a/fileaccess/prj/d.lst b/fileaccess/prj/d.lst
index 695487c56035..c9b2bdd18f06 100644
--- a/fileaccess/prj/d.lst
+++ b/fileaccess/prj/d.lst
@@ -3,3 +3,4 @@
..\%__SRC%\lib\lib*.so %_DEST%\lib%_EXT%
..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*
..\source\fileacc.xml %_DEST%\xml%_EXT%\fileacc.xml
+..\%__SRC%\misc\fileacc.component %_DEST%\xml%_EXT%\fileacc.component
diff --git a/fileaccess/source/FileAccess.cxx b/fileaccess/source/FileAccess.cxx
index a7b08778dbdd..ca11639fef33 100644
--- a/fileaccess/source/FileAccess.cxx
+++ b/fileaccess/source/FileAccess.cxx
@@ -914,32 +914,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
- void * /*pServiceManager*/, void * pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- Reference< XRegistryKey > xNewKey(
- reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
- rtl::OUString::createFromAscii("/" IMPLEMENTATION_NAME "/UNO/SERVICES" ) ) );
-
- const Sequence< rtl::OUString > & rSNL = io_FileAccess::FileAccess_getSupportedServiceNames();
- const rtl::OUString * pArray = rSNL.getConstArray();
- for ( sal_Int32 nPos = rSNL.getLength(); nPos--; )
- xNewKey->createKey( pArray[nPos] );
-
- return sal_True;
- }
- catch (InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ )
{
diff --git a/fileaccess/source/fileacc.component b/fileaccess/source/fileacc.component
new file mode 100644
index 000000000000..3f14d4053216
--- /dev/null
+++ b/fileaccess/source/fileacc.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.ucb.SimpleFileAccess">
+ <service name="com.sun.star.ucb.SimpleFileAccess"/>
+ </implementation>
+</component>
diff --git a/fileaccess/source/makefile.mk b/fileaccess/source/makefile.mk
index 2b7826534618..8c8a91b0f675 100644
--- a/fileaccess/source/makefile.mk
+++ b/fileaccess/source/makefile.mk
@@ -66,3 +66,11 @@ SHL1LIBS=$(SLB)$/$(TARGET).lib
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/fileacc.component
+
+$(MISC)/fileacc.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ fileacc.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt fileacc.component
diff --git a/filter/prj/d.lst b/filter/prj/d.lst
index e8fdae8a1c58..037bef1a3765 100644
--- a/filter/prj/d.lst
+++ b/filter/prj/d.lst
@@ -49,9 +49,21 @@ mkdir: %_DEST%\bin%_EXT%\pdfimport
..\%__SRC%\bin\pdfunzip.* %_DEST%\bin%_EXT%\pdfunzip.*
..\%__SRC%\misc\filters\modulepacks\fcfg_*.xcu %_DEST%\xml%_EXT%\registry\spool\fcfg_*.xcu
..\%COMMON_OUTDIR%\bin\fcfg_langpack_*.zip %_DEST%\pck%_EXT%\fcfg_langpack_*.zip
+..\%__SRC%\misc\t602filter.component %_DEST%\xml%_EXT%\t602filter.component
mkdir: %_DEST%\inc%_EXT%\filter
mkdir: %_DEST%\inc%_EXT%\filter\msfilter
..\inc\filter\msfilter\*.hxx %_DEST%\inc%_EXT%\filter\msfilter\*.hxx
..\inc\filter\msfilter\*.h %_DEST%\inc%_EXT%\filter\msfilter\*.h
+..\%__SRC%\misc\XSLTFilter.jar.component %_DEST%\xml%_EXT%\XSLTFilter.jar.component
+..\%__SRC%\misc\XSLTValidate.component %_DEST%\xml%_EXT%\XSLTValidate.component
+..\%__SRC%\misc\filterconfig1.component %_DEST%\xml%_EXT%\filterconfig1.component
+..\%__SRC%\misc\flash.component %_DEST%\xml%_EXT%\flash.component
+..\%__SRC%\misc\pdffilter.component %_DEST%\xml%_EXT%\pdffilter.component
+..\%__SRC%\misc\placeware.component %_DEST%\xml%_EXT%\placeware.component
+..\%__SRC%\misc\svgfilter.component %_DEST%\xml%_EXT%\svgfilter.component
+..\%__SRC%\misc\xmlfa.component %_DEST%\xml%_EXT%\xmlfa.component
+..\%__SRC%\misc\xmlfd.component %_DEST%\xml%_EXT%\xmlfd.component
+..\%__SRC%\misc\xsltdlg.component %_DEST%\xml%_EXT%\xsltdlg.component
+..\%__SRC%\misc\xsltfilter.component %_DEST%\xml%_EXT%\xsltfilter.component
diff --git a/filter/source/config/cache/filterconfig1.component b/filter/source/config/cache/filterconfig1.component
new file mode 100644
index 000000000000..9d3c7c90fb31
--- /dev/null
+++ b/filter/source/config/cache/filterconfig1.component
@@ -0,0 +1,46 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.filter.config.ConfigFlush">
+ <service name="com.sun.star.document.FilterConfigRefresh"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.filter.config.ContentHandlerFactory">
+ <service name="com.sun.star.frame.ContentHandlerFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.filter.config.FilterFactory">
+ <service name="com.sun.star.document.FilterFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.filter.config.FrameLoaderFactory">
+ <service name="com.sun.star.frame.FrameLoaderFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.filter.config.TypeDetection">
+ <service name="com.sun.star.document.TypeDetection"/>
+ </implementation>
+</component>
diff --git a/filter/source/config/cache/makefile.mk b/filter/source/config/cache/makefile.mk
index fbc4806b0a32..d94c81e35010 100644
--- a/filter/source/config/cache/makefile.mk
+++ b/filter/source/config/cache/makefile.mk
@@ -77,3 +77,11 @@ SHL1VERSIONMAP= $(SOLARENV)/src/component.map
# --- Targets ----------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/filterconfig1.component
+
+$(MISC)/filterconfig1.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt filterconfig1.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt filterconfig1.component
diff --git a/filter/source/config/cache/registration.cxx b/filter/source/config/cache/registration.cxx
index a65f5c42fea8..2be110871ee1 100644
--- a/filter/source/config/cache/registration.cxx
+++ b/filter/source/config/cache/registration.cxx
@@ -94,30 +94,6 @@ static void InitConstants()
// extern "C" component_getImplementationEnvironment()
_COMPHELPER_COMPONENT_GETIMPLEMENTATIONENVIRONMENT
-// extern "C" component_writeInfo()
-_COMPHELPER_COMPONENT_WRITEINFO
-(
- _COMPHELPER_COMPONENTINFO( TypeDetection ,
- TypeDetection::impl_getImplementationName() ,
- TypeDetection::impl_getSupportedServiceNames())
-
- _COMPHELPER_COMPONENTINFO( FilterFactory ,
- FilterFactory::impl_getImplementationName() ,
- FilterFactory::impl_getSupportedServiceNames())
-
- _COMPHELPER_COMPONENTINFO( ContentHandlerFactory ,
- ContentHandlerFactory::impl_getImplementationName() ,
- ContentHandlerFactory::impl_getSupportedServiceNames())
-
- _COMPHELPER_COMPONENTINFO( FrameLoaderFactory ,
- FrameLoaderFactory::impl_getImplementationName() ,
- FrameLoaderFactory::impl_getSupportedServiceNames())
-
- _COMPHELPER_COMPONENTINFO( ConfigFlush ,
- ConfigFlush::impl_getImplementationName() ,
- ConfigFlush::impl_getSupportedServiceNames())
-)
-
// extern "C" component_getFactory()
_COMPHELPER_COMPONENT_GETFACTORY
(
diff --git a/filter/source/config/cache/registration.hxx b/filter/source/config/cache/registration.hxx
index 38e5980c967a..d664cc365abb 100644
--- a/filter/source/config/cache/registration.hxx
+++ b/filter/source/config/cache/registration.hxx
@@ -31,10 +31,8 @@
//_______________________________________________
// includes
-#include <com/sun/star/registry/XRegistryKey.hpp>
#include <com/sun/star/lang/XSingleServiceFactory.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/registry/InvalidRegistryException.hpp>
#include <rtl/ustrbuf.hxx>
#include <cppuhelper/factory.hxx>
@@ -59,97 +57,6 @@ namespace comphelper{
//_______________________________________________
-/** @short creates a new key inside component registry.
-
- @descr using: a) _COMPHELPER_COMPONENTINFO( MyClass,
- MyClass::st_getImplName(),
- MyClass::st_getServNames())
-
- b) _COMPHELPER_COMPONENTINFO( MyClass,
- ::rtl::OUString::createFromAscii("css.MyClass"),
- lServiceNames)
-
- @param CLASS
- must be the class name of the implementation
- of an uno service, which should be registered here.
-
- @param IMPLEMENTATIONNAME
- can be an uno implementation name from type [::rtl::OUString]
- directly or any possible method call, which returns such
- name.
-
- @param SERVICENAME
- a list of supported uno service names from type
- [css::uno::Sequence< ::rtl::OUString >]
- or any possible method call, which returns such
- list.
- */
-#define _COMPHELPER_COMPONENTINFO(CLASS, IMPLEMENTATIONNAME, SERVICENAMES) \
- /*define new scope to prevent multiple using of the same variables ... */ \
- { \
- /* build new key name */ \
- ::rtl::OUStringBuffer sKeyBuf(256); \
- sKeyBuf.appendAscii("/" ); \
- sKeyBuf.append (IMPLEMENTATIONNAME); \
- sKeyBuf.appendAscii("/UNO/SERVICES" ); \
- ::rtl::OUString sKey = sKeyBuf.makeStringAndClear(); \
- \
- /* try to register this service ... thrown exception will be catched by COMPONENT_WRITEINFO! */ \
- css::uno::Reference< css::registry::XRegistryKey > xKey = xRoot->createKey(sKey); \
- if (!xKey.is()) \
- throw css::registry::InvalidRegistryException(sKey, css::uno::Reference< css::uno::XInterface >()); \
- \
- /* dont optimize it! it must work for simple types and function calls! */ \
- const css::uno::Sequence< ::rtl::OUString > lServiceNames = SERVICENAMES; \
- const ::rtl::OUString* pServiceNames = lServiceNames.getConstArray(); \
- sal_Int32 nCount = lServiceNames.getLength(); \
- \
- for (sal_Int32 i=0; i<nCount; ++i) \
- xKey->createKey(pServiceNames[i]); \
- }
-
-//_______________________________________________
-
-/** @short implments extern C function component_writeInfo
-
- @descr using: _COMPHELPER_COMPONENT_WRITEINFO
- (
- _COMPHELPER_COMPONENTINFO(...)
- ..
- _COMPHELPER_COMPONENTINFO(...)
- )
-
- @param INFOLIST
- list of macros of type COMPONENTINFO without(!) any
- seperator signs between two elements.
- */
-#define _COMPHELPER_COMPONENT_WRITEINFO(INFOLIST) \
- extern "C" sal_Bool SAL_CALL component_writeInfo(void* pServiceManager, \
- void* pRegistryKey ) \
- { \
- if (!pServiceManager || !pRegistryKey) \
- return sal_False; \
- \
- css::uno::Reference< css::registry::XRegistryKey > xRoot = reinterpret_cast< css::registry::XRegistryKey* >(pRegistryKey); \
- \
- /*if one of following registration will fail ... an exception is thrown! */ \
- try \
- { \
- /* This parameter will expand to: */ \
- /* _COMPHELPER_COMPONENTINFO(1) */ \
- /* ... */ \
- /* _COMPHELPER_COMPONENTINFO(n) */ \
- INFOLIST \
- } \
- catch(const css::registry::InvalidRegistryException&) \
- { \
- return sal_False; \
- } \
- return sal_True; \
- }
-
-//_______________________________________________
-
/** TODO doc
*/
#define _COMPHELPER_MULTIINSTANCEFACTORY(IMPLEMENTATIONNAME, SERVICENAMES, FACTORYMETHOD) \
diff --git a/filter/source/filtertracer/exports.dxp b/filter/source/filtertracer/exports.dxp
index 0c2e3e7cddd7..0cb5620a1603 100644
--- a/filter/source/filtertracer/exports.dxp
+++ b/filter/source/filtertracer/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory \ No newline at end of file
diff --git a/filter/source/filtertracer/filtertraceruno.cxx b/filter/source/filtertracer/filtertraceruno.cxx
index f2254c8256f9..0e3097de3ff6 100644
--- a/filter/source/filtertracer/filtertraceruno.cxx
+++ b/filter/source/filtertracer/filtertraceruno.cxx
@@ -51,37 +51,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment( const sal_Char
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-// -----------------------
-// - component_writeInfo -
-// -----------------------
-
-extern "C" sal_Bool SAL_CALL component_writeInfo( void* /* pServiceManager */, void* pRegistryKey )
-{
- sal_Bool bRet = sal_False;
-
- if( pRegistryKey )
- {
- try
- {
- NMSP_UNO::Reference< com::sun::star::registry::XRegistryKey > xNewKey(
- reinterpret_cast< com::sun::star::registry::XRegistryKey * >( pRegistryKey )->createKey(
- FilterTracer_getImplementationName() ) );
- xNewKey = xNewKey->createKey( B2UCONST( "/UNO/SERVICES" ) );
- const SEQ( rtl::OUString )& rSNL = FilterTracer_getSupportedServiceNames();
- const rtl::OUString * pArray = rSNL.getConstArray();
- for ( sal_Int32 nPos = rSNL.getLength(); nPos--; )
- xNewKey->createKey( pArray[nPos] );
- bRet = sal_True;
- }
- catch( com::sun::star::registry::InvalidRegistryException& )
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
-
- return bRet;
-}
-
// ------------------------
// - component_getFactory -
// ------------------------
diff --git a/filter/source/flash/flash.component b/filter/source/flash/flash.component
new file mode 100644
index 000000000000..1ce69b3549bc
--- /dev/null
+++ b/filter/source/flash/flash.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.Impress.FlashExportDialog">
+ <service name="com.sun.star.Impress.FlashExportDialog"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Impress.FlashExportFilter">
+ <service name="com.sun.star.document.ExportFilter"/>
+ </implementation>
+</component>
diff --git a/filter/source/flash/makefile.mk b/filter/source/flash/makefile.mk
index e5ff1bf21c5e..69da217234d8 100644
--- a/filter/source/flash/makefile.mk
+++ b/filter/source/flash/makefile.mk
@@ -96,3 +96,11 @@ DEF1NAME=$(SHL1TARGET)
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/flash.component
+
+$(MISC)/flash.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ flash.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt flash.component
diff --git a/filter/source/flash/swfuno.cxx b/filter/source/flash/swfuno.cxx
index d4a11ebb921b..5ab572014ace 100644
--- a/filter/source/flash/swfuno.cxx
+++ b/filter/source/flash/swfuno.cxx
@@ -61,42 +61,7 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
{
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-//==================================================================================================
-
-void singlecomponent_writeInfo( Reference< XRegistryKey >& xNewKey, const Sequence< OUString > & rSNL )
-{
- const OUString * pArray = rSNL.getConstArray();
- for ( sal_Int32 nPos = rSNL.getLength(); nPos--; )
- xNewKey->createKey( pArray[nPos] );
-}
-
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void * /* pServiceManager */, void * pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- Reference< XRegistryKey > xNewKey(
- reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( FlashExportFilter_getImplementationName() ) );
- xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) );
- singlecomponent_writeInfo( xNewKey, FlashExportFilter_getSupportedServiceNames() );
-
- xNewKey = reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( SWFDialog_getImplementationName() );
- xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) );
-
- singlecomponent_writeInfo( xNewKey, SWFDialog_getSupportedServiceNames() );
-
- return sal_True;
- }
- catch (InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
//==================================================================================================
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * /* pRegistryKey */ )
diff --git a/filter/source/graphicfilter/ipict/ipict.cxx b/filter/source/graphicfilter/ipict/ipict.cxx
index 91366b752de4..244ca56971be 100644
--- a/filter/source/graphicfilter/ipict/ipict.cxx
+++ b/filter/source/graphicfilter/ipict/ipict.cxx
@@ -36,12 +36,107 @@
#include <svtools/fltcall.hxx>
#include <math.h>
-// MT: NOOLDSV, someone should change the code...
-enum PenStyle { PEN_NULL, PEN_SOLID, PEN_DOT, PEN_DASH, PEN_DASHDOT };
-enum BrushStyle { BRUSH_NULL, BRUSH_SOLID, BRUSH_HORZ, BRUSH_VERT,
- BRUSH_CROSS, BRUSH_DIAGCROSS, BRUSH_UPDIAG, BRUSH_DOWNDIAG,
- BRUSH_25, BRUSH_50, BRUSH_75,
- BRUSH_BITMAP };
+namespace PictReaderInternal {
+ //! utilitary class to store a pattern, ...
+ class Pattern {
+ public:
+ //! constructor
+ Pattern() {
+ isColor = false; isRead = false;
+ penStyle=PEN_SOLID; brushStyle = BRUSH_SOLID;
+ nBitCount = 64;
+ }
+
+ //! reads black/white pattern from SvStream
+ ULONG read(SvStream &stream);
+ //! sets the color
+ void setColor(Color &col) { isColor = true; color = col; }
+ /** returns a color which can be "used" to replace the pattern,
+ * created from ForeColor and BackColor, ...
+ *
+ * note: maybe, we must also use some mode PatCopy, ... to define the color
+ */
+ Color getColor(Color bkColor=COL_WHITE, Color fgColor = COL_BLACK) const {
+ if (isColor) return color;
+ // we create a gray pattern from nBitCount
+ double alpha = nBitCount / 64.0;
+ return Color(BYTE(alpha*fgColor.GetRed()+(1.0-alpha)*bkColor.GetRed()),
+ BYTE(alpha*fgColor.GetGreen()+(1.0-alpha)*bkColor.GetGreen()),
+ BYTE(alpha*fgColor.GetBlue()+(1.0-alpha)*bkColor.GetBlue()));
+ }
+
+ //! returns true if this is the default pattern
+ bool isDefault() const { return isRead == false; }
+
+ // MT: NOOLDSV, someone should change the code...
+ enum PenStyle { PEN_NULL, PEN_SOLID, PEN_DOT, PEN_DASH, PEN_DASHDOT };
+ enum BrushStyle { BRUSH_NULL, BRUSH_SOLID, BRUSH_HORZ, BRUSH_VERT,
+ BRUSH_CROSS, BRUSH_DIAGCROSS, BRUSH_UPDIAG, BRUSH_DOWNDIAG,
+ BRUSH_25, BRUSH_50, BRUSH_75,
+ BRUSH_BITMAP };
+ // Data
+ enum PenStyle penStyle;
+ enum BrushStyle brushStyle;
+ short nBitCount;
+
+ bool isColor; // true if it is a color pattern
+ Color color;
+
+ protected:
+ // flag to know if the pattern came from reading the picture, or if it is the default pattern
+ bool isRead;
+ };
+
+ ULONG Pattern::read(SvStream &stream) {
+ short nx,ny;
+ unsigned char nbyte[8];
+ ULONG nHiBytes, nLoBytes;
+ isColor = false;
+
+ // Anzahl der Bits im Pattern zaehlen, die auf 1 gesetzt sind:
+ nBitCount=0;
+ for (ny=0; ny<8; ny++) {
+ stream >> ((char&)nbyte[ny]);
+ for (nx=0; nx<8; nx++) {
+ if ( (nbyte[ny] & (1<<nx)) != 0 ) nBitCount++;
+ }
+ }
+
+ // Pattern in 2 Langworten unterbringen:
+ nHiBytes=(((((((ULONG)nbyte[0])<<8)|
+ (ULONG)nbyte[1])<<8)|
+ (ULONG)nbyte[2])<<8)|
+ (ULONG)nbyte[3];
+ nLoBytes=(((((((ULONG)nbyte[4])<<8)|
+ (ULONG)nbyte[5])<<8)|
+ (ULONG)nbyte[6])<<8)|
+ (ULONG)nbyte[7];
+
+ // Einen PenStyle machen:
+ if (nBitCount<=0) penStyle=PEN_NULL;
+ else if (nBitCount<=16) penStyle=PEN_DOT;
+ else if (nBitCount<=32) penStyle=PEN_DASHDOT;
+ else if (nBitCount<=48) penStyle=PEN_DASH;
+ else penStyle=PEN_SOLID;
+
+ // Einen BrushStyle machen:
+ if (nHiBytes==0xffffffff && nLoBytes==0xffffffff) brushStyle=BRUSH_SOLID;
+ else if (nHiBytes==0xff000000 && nLoBytes==0x00000000) brushStyle=BRUSH_HORZ;
+ else if (nHiBytes==0x80808080 && nLoBytes==0x80808080) brushStyle=BRUSH_VERT;
+ else if (nHiBytes==0xff808080 && nLoBytes==0x80808080) brushStyle=BRUSH_CROSS;
+ else if (nHiBytes==0x01824428 && nLoBytes==0x10284482) brushStyle=BRUSH_DIAGCROSS;
+ else if (nHiBytes==0x80402010 && nLoBytes==0x08040201) brushStyle=BRUSH_UPDIAG;
+ else if (nHiBytes==0x01020408 && nLoBytes==0x10204080) brushStyle=BRUSH_DOWNDIAG;
+ else if (nBitCount<=24) brushStyle=BRUSH_25;
+ else if (nBitCount<=40) brushStyle=BRUSH_50;
+ else if (nBitCount<=56) brushStyle=BRUSH_75;
+ else brushStyle=BRUSH_SOLID;
+
+ isRead = true;
+
+ return 8;
+ }
+}
//============================ PictReader ==================================
@@ -51,7 +146,7 @@ enum PictDrawingMethod {
};
class PictReader {
-
+ typedef class PictReaderInternal::Pattern Pattern;
private:
SvStream * pPict; // Die einzulesende Pict-Datei
@@ -67,11 +162,11 @@ private:
Point aTextPosition;
Color aActForeColor;
Color aActBackColor;
- PenStyle eActPenPenStyle;
- BrushStyle eActPenBrushStyle;
- BrushStyle eActFillStyle;
- BrushStyle eActBackStyle;
+ Pattern eActPenPattern;
+ Pattern eActFillPattern;
+ Pattern eActBackPattern;
USHORT nActPenSize;
+ // Note: Postscript mode is stored by setting eActRop to ROP_1
RasterOp eActROP;
PictDrawingMethod eActMethod;
Size aActOvalSize;
@@ -100,9 +195,7 @@ private:
ULONG ReadPolygon(Polygon & rPoly);
- ULONG ReadPattern(PenStyle * pPenStyle, BrushStyle * pBrushStyle);
-
- ULONG ReadPixPattern(PenStyle * pPenStyle, BrushStyle * pBrushStyle);
+ ULONG ReadPixPattern(Pattern &pattern);
Rectangle aLastRect;
ULONG ReadAndDrawRect(PictDrawingMethod eMethod);
@@ -146,9 +239,11 @@ private:
void SetLineColor( const Color& rColor );
void SetFillColor( const Color& rColor );
+ // OSNOLA: returns the text encoding which must be used for system id
+ static rtl_TextEncoding GetTextEncoding (USHORT fId = 0xFFFF);
public:
- PictReader() {}
+ PictReader() { aActFont.SetCharSet(GetTextEncoding()); }
void ReadPict( SvStream & rStreamPict, GDIMetaFile & rGDIMetaFile );
// Liesst aus dem Stream eine Pict-Datei und fuellt das GDIMetaFile
@@ -208,6 +303,42 @@ public:
}
//=================== Methoden von PictReader ==============================
+rtl_TextEncoding PictReader::GetTextEncoding (USHORT fId) {
+ static bool first = true;
+ static rtl_TextEncoding enc = RTL_TEXTENCODING_APPLE_ROMAN;
+ if (first) {
+ rtl_TextEncoding def = gsl_getSystemTextEncoding();
+ // we keep gsl_getSystemTextEncoding only if it is a mac encoding
+ switch(def) {
+ case RTL_TEXTENCODING_APPLE_ROMAN:
+ case RTL_TEXTENCODING_APPLE_ARABIC:
+ case RTL_TEXTENCODING_APPLE_CENTEURO:
+ case RTL_TEXTENCODING_APPLE_CROATIAN:
+ case RTL_TEXTENCODING_APPLE_CYRILLIC:
+ case RTL_TEXTENCODING_APPLE_DEVANAGARI:
+ case RTL_TEXTENCODING_APPLE_FARSI:
+ case RTL_TEXTENCODING_APPLE_GREEK:
+ case RTL_TEXTENCODING_APPLE_GUJARATI:
+ case RTL_TEXTENCODING_APPLE_GURMUKHI:
+ case RTL_TEXTENCODING_APPLE_HEBREW:
+ case RTL_TEXTENCODING_APPLE_ICELAND:
+ case RTL_TEXTENCODING_APPLE_ROMANIAN:
+ case RTL_TEXTENCODING_APPLE_THAI:
+ case RTL_TEXTENCODING_APPLE_TURKISH:
+ case RTL_TEXTENCODING_APPLE_UKRAINIAN:
+ case RTL_TEXTENCODING_APPLE_CHINSIMP:
+ case RTL_TEXTENCODING_APPLE_CHINTRAD:
+ case RTL_TEXTENCODING_APPLE_JAPANESE:
+ case RTL_TEXTENCODING_APPLE_KOREAN:
+ enc = def; break;
+ default: break;
+ }
+ first = false;
+ }
+ if (fId == 13) return RTL_TEXTENCODING_ADOBE_DINGBATS; // CHECKME
+ if (fId == 23) return RTL_TEXTENCODING_ADOBE_SYMBOL;
+ return enc;
+}
void PictReader::SetLineColor( const Color& rColor )
{
@@ -344,61 +475,7 @@ ULONG PictReader::ReadPolygon(Polygon & rPoly)
return nDataSize;
}
-ULONG PictReader::ReadPattern(PenStyle * pPenStyle, BrushStyle * pBrushStyle)
-{
- short nx,ny,nBitCount;
- unsigned char nbyte[8];
- BrushStyle eBrStyle;
- PenStyle ePnStyle;
- ULONG nHiBytes, nLoBytes;
-
- // Anzahl der Bits im Pattern zaehlen, die auf 1 gesetzt sind:
- nBitCount=0;
- for (ny=0; ny<8; ny++) {
- *pPict >> ((char&)nbyte[ny]);
- for (nx=0; nx<8; nx++) {
- if ( (nbyte[ny] & (1<<nx)) != 0 ) nBitCount++;
- }
- }
-
- // Pattern in 2 Langworten unterbringen:
- nHiBytes=(((((((ULONG)nbyte[0])<<8)|
- (ULONG)nbyte[1])<<8)|
- (ULONG)nbyte[2])<<8)|
- (ULONG)nbyte[3];
- nLoBytes=(((((((ULONG)nbyte[4])<<8)|
- (ULONG)nbyte[5])<<8)|
- (ULONG)nbyte[6])<<8)|
- (ULONG)nbyte[7];
-
- // Einen PenStyle machen:
- if (nBitCount<=0) ePnStyle=PEN_NULL;
- else if (nBitCount<=16) ePnStyle=PEN_DOT;
- else if (nBitCount<=32) ePnStyle=PEN_DASHDOT;
- else if (nBitCount<=48) ePnStyle=PEN_DASH;
- else ePnStyle=PEN_SOLID;
-
- // Einen BrushStyle machen:
- if (nHiBytes==0xffffffff && nLoBytes==0xffffffff) eBrStyle=BRUSH_SOLID;
- else if (nHiBytes==0xff000000 && nLoBytes==0x00000000) eBrStyle=BRUSH_HORZ;
- else if (nHiBytes==0x80808080 && nLoBytes==0x80808080) eBrStyle=BRUSH_VERT;
- else if (nHiBytes==0xff808080 && nLoBytes==0x80808080) eBrStyle=BRUSH_CROSS;
- else if (nHiBytes==0x01824428 && nLoBytes==0x10284482) eBrStyle=BRUSH_DIAGCROSS;
- else if (nHiBytes==0x80402010 && nLoBytes==0x08040201) eBrStyle=BRUSH_UPDIAG;
- else if (nHiBytes==0x01020408 && nLoBytes==0x10204080) eBrStyle=BRUSH_DOWNDIAG;
- else if (nBitCount<=24) eBrStyle=BRUSH_25;
- else if (nBitCount<=40) eBrStyle=BRUSH_50;
- else if (nBitCount<=56) eBrStyle=BRUSH_75;
- else eBrStyle=BRUSH_SOLID;
-
- if (pPenStyle!=0) *pPenStyle=ePnStyle;
-
- if (pBrushStyle!=0) *pBrushStyle=eBrStyle;
-
- return 8;
-}
-
-ULONG PictReader::ReadPixPattern(PenStyle * pPenStyle, BrushStyle * pBrushStyle)
+ULONG PictReader::ReadPixPattern(PictReader::Pattern &pattern)
{
// Keine Ahnung, ob dies richtig ist, weil kein Bild gefunden, das
// PixPatterns enthaelt. Auch hier nur der Versuch, die Groesse der Daten zu
@@ -411,13 +488,18 @@ ULONG PictReader::ReadPixPattern(PenStyle * pPenStyle, BrushStyle * pBrushStyle)
*pPict >> nPatType;
if (nPatType==1) {
- ReadPattern(pPenStyle,pBrushStyle);
+ pattern.read(*pPict);
nDataSize=ReadPixMapEtc(aBMP,FALSE,TRUE,NULL,NULL,FALSE,FALSE);
+ // CHANGEME: use average pixmap colors to update the pattern, ...
if (nDataSize!=0xffffffff) nDataSize+=10;
}
else if (nPatType==2) {
- ReadPattern(pPenStyle,pBrushStyle);
- pPict->SeekRel(6); // RGBColor
+ pattern.read(*pPict);
+ // RGBColor
+ USHORT nR, nG, nB;
+ *pPict >> nR >> nG >> nB;
+ Color col((BYTE) ( nR >> 8 ), (BYTE) ( nG >> 8 ), (BYTE) ( nB >> 8 ) );
+ pattern.setColor(col);
nDataSize=16;
}
else nDataSize=0xffffffff;
@@ -444,14 +526,15 @@ ULONG PictReader::ReadAndDrawRoundRect(PictDrawingMethod eMethod)
{
ReadRectangle(aLastRoundRect);
DrawingMethod(eMethod);
- pVirDev->DrawRect(aLastRoundRect,aActOvalSize.Width(),aActOvalSize.Height());
+ // Osnola: the corner's size is equal to aActOvalSize/2, see Quickdraw Drawing Reference 3-63
+ pVirDev->DrawRect(aLastRoundRect,(aActOvalSize.Width()+1)/2,(aActOvalSize.Height()+1)/2);
return 8;
}
ULONG PictReader::ReadAndDrawSameRoundRect(PictDrawingMethod eMethod)
{
DrawingMethod(eMethod);
- pVirDev->DrawRect(aLastRoundRect,aActOvalSize.Width(),aActOvalSize.Height());
+ pVirDev->DrawRect(aLastRoundRect,(aActOvalSize.Width()+1)/2,(aActOvalSize.Height()+1)/2);
return 0;
}
@@ -561,6 +644,23 @@ ULONG PictReader::ReadAndDrawSameRgn(PictDrawingMethod eMethod)
void PictReader::DrawingMethod(PictDrawingMethod eMethod)
{
if( eActMethod==eMethod ) return;
+ if (eActROP == ROP_1) {
+ // Osnola: ignore postscript command
+ if (eMethod == PDM_TEXT) {
+ Font invisibleFont;
+ invisibleFont.SetColor(Color(COL_TRANSPARENT));
+ invisibleFont.SetFillColor(Color(COL_TRANSPARENT));
+ invisibleFont.SetTransparent(TRUE);
+ pVirDev->SetFont(invisibleFont);
+ }
+ else {
+ SetLineColor( Color(COL_TRANSPARENT) );
+ SetFillColor( Color(COL_TRANSPARENT) );
+ }
+ pVirDev->SetRasterOp(ROP_OVERPAINT);
+ eActMethod=eMethod;
+ return;
+ }
switch (eMethod) {
case PDM_FRAME:
SetLineColor( aActForeColor );
@@ -569,22 +669,31 @@ void PictReader::DrawingMethod(PictDrawingMethod eMethod)
break;
case PDM_PAINT:
SetLineColor( Color(COL_TRANSPARENT) );
- SetFillColor( aActForeColor );
+ if (eActPenPattern.isDefault())
+ SetFillColor( aActForeColor );
+ else
+ SetFillColor(eActPenPattern.getColor(aActBackColor, aActForeColor));
pVirDev->SetRasterOp(eActROP);
break;
case PDM_ERASE:
SetLineColor( Color(COL_TRANSPARENT) );
- SetFillColor( aActForeColor );
+ if (eActBackPattern.isDefault())
+ SetFillColor( aActBackColor );// Osnola: previously aActForeColor
+ else // checkMe
+ SetFillColor(eActBackPattern.getColor(COL_BLACK, aActBackColor));
pVirDev->SetRasterOp(ROP_OVERPAINT);
break;
- case PDM_INVERT:
+ case PDM_INVERT: // checkme
SetLineColor( Color(COL_TRANSPARENT));
SetFillColor( Color( COL_BLACK ) );
pVirDev->SetRasterOp(ROP_INVERT);
break;
case PDM_FILL:
SetLineColor( Color(COL_TRANSPARENT) );
- SetFillColor( aActForeColor );
+ if (eActFillPattern.isDefault())
+ SetFillColor( aActForeColor );
+ else
+ SetFillColor(eActFillPattern.getColor(aActBackColor, aActForeColor));
pVirDev->SetRasterOp(ROP_OVERPAINT);
break;
case PDM_TEXT:
@@ -615,7 +724,7 @@ ULONG PictReader::ReadAndDrawText()
while ( nLen > 0 && ( (unsigned char)sText[ nLen - 1 ] ) < 32 )
nLen--;
sText[ nLen ] = 0;
- String aString( (const sal_Char*)&sText, gsl_getSystemTextEncoding() );
+ String aString( (const sal_Char*)&sText, aActFont.GetCharSet());// OSNOLA: gsl_getSystemTextEncoding() );
pVirDev->DrawText( Point( aTextPosition.X(), aTextPosition.Y() ), aString );
return nDataLen;
}
@@ -1116,9 +1225,9 @@ ULONG PictReader::ReadData(USHORT nOpcode)
break;
}
case 0x0002: // BkPat
- nDataSize=ReadPattern(NULL,&eActBackStyle);
- eActMethod=PDM_UNDEFINED;
- break;
+ nDataSize=eActBackPattern.read(*pPict);
+ eActMethod=PDM_UNDEFINED;
+ break;
case 0x0003: // TxFont
*pPict >> nUSHORT;
@@ -1129,8 +1238,7 @@ ULONG PictReader::ReadData(USHORT nOpcode)
else if (nUSHORT == 22) aActFont.SetFamily(FAMILY_MODERN);
else if (nUSHORT <= 1023) aActFont.SetFamily(FAMILY_SWISS);
else aActFont.SetFamily(FAMILY_ROMAN);
- if ( nUSHORT == 23 ) aActFont.SetCharSet( RTL_TEXTENCODING_SYMBOL );
- else aActFont.SetCharSet( gsl_getSystemTextEncoding() );
+ aActFont.SetCharSet(GetTextEncoding(nUSHORT));
eActMethod=PDM_UNDEFINED;
nDataSize=2;
break;
@@ -1170,7 +1278,10 @@ ULONG PictReader::ReadData(USHORT nOpcode)
}
case 0x0008: // PnMode
*pPict >> nUSHORT;
- switch (nUSHORT & 0x0007) {
+ // internal code for postscript command (Quickdraw Reference Drawing B-30,B-34)
+ if (nUSHORT==23) eActROP = ROP_1;
+ else {
+ switch (nUSHORT & 0x0007) {
case 0: eActROP=ROP_OVERPAINT; break; // Copy
case 1: eActROP=ROP_OVERPAINT; break; // Or
case 2: eActROP=ROP_XOR; break; // Xor
@@ -1179,18 +1290,19 @@ ULONG PictReader::ReadData(USHORT nOpcode)
case 5: eActROP=ROP_OVERPAINT; break; // notOr
case 6: eActROP=ROP_XOR; break; // notXor
case 7: eActROP=ROP_OVERPAINT; break; // notBic
+ }
}
eActMethod=PDM_UNDEFINED;
nDataSize=2;
break;
case 0x0009: // PnPat
- nDataSize=ReadPattern(&eActPenPenStyle,&eActPenBrushStyle);
+ nDataSize=eActPenPattern.read(*pPict);
eActMethod=PDM_UNDEFINED;
break;
case 0x000a: // FillPat
- nDataSize=ReadPattern(NULL,&eActFillStyle);
+ nDataSize=eActFillPattern.read(*pPict);
eActMethod=PDM_UNDEFINED;
break;
@@ -1232,17 +1344,17 @@ ULONG PictReader::ReadData(USHORT nOpcode)
break;
case 0x0012: // BkPixPat
- nDataSize=ReadPixPattern(NULL,&eActBackStyle);
+ nDataSize=ReadPixPattern(eActBackPattern);
eActMethod=PDM_UNDEFINED;
break;
case 0x0013: // PnPixPat
- nDataSize=ReadPixPattern(&eActPenPenStyle,&eActPenBrushStyle);
+ nDataSize=ReadPixPattern(eActPenPattern);
eActMethod=PDM_UNDEFINED;
break;
case 0x0014: // FillPixPat
- nDataSize=ReadPixPattern(NULL,&eActFillStyle);
+ nDataSize=ReadPixPattern(eActFillPattern);
eActMethod=PDM_UNDEFINED;
break;
@@ -1361,8 +1473,7 @@ ULONG PictReader::ReadData(USHORT nOpcode)
else if (nUSHORT == 22) aActFont.SetFamily(FAMILY_MODERN);
else if (nUSHORT <= 1023) aActFont.SetFamily(FAMILY_SWISS);
else aActFont.SetFamily(FAMILY_ROMAN);
- if (nUSHORT==23) aActFont.SetCharSet( RTL_TEXTENCODING_SYMBOL);
- else aActFont.SetCharSet( gsl_getSystemTextEncoding() );
+ aActFont.SetCharSet(GetTextEncoding(nUSHORT));
*pPict >> nByteLen; nLen=((USHORT)nByteLen)&0x00ff;
pPict->Read( &sFName, nLen );
sFName[ nLen ] = 0;
@@ -1803,16 +1914,12 @@ void PictReader::ReadPict( SvStream & rStreamPict, GDIMetaFile & rGDIMetaFile )
aActForeColor = Color(COL_BLACK);
aActBackColor = Color(COL_WHITE);
- eActPenPenStyle = PEN_SOLID;
- eActPenBrushStyle = BRUSH_SOLID;
- eActFillStyle = BRUSH_SOLID;
- eActBackStyle = BRUSH_SOLID;
nActPenSize = 1;
eActROP = ROP_OVERPAINT;
eActMethod = PDM_UNDEFINED;
aActOvalSize = Size(1,1);
- aActFont.SetCharSet( gsl_getSystemTextEncoding() );
+ aActFont.SetCharSet( GetTextEncoding());
aActFont.SetFamily(FAMILY_SWISS);
aActFont.SetSize(Size(0,12));
aActFont.SetAlign(ALIGN_BASELINE);
diff --git a/filter/source/msfilter/powerpoint/pptimporteruno.cxx b/filter/source/msfilter/powerpoint/pptimporteruno.cxx
index c1089f66a5c3..325d360344cf 100644
--- a/filter/source/msfilter/powerpoint/pptimporteruno.cxx
+++ b/filter/source/msfilter/powerpoint/pptimporteruno.cxx
@@ -51,37 +51,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment( const sal_Char
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-// -----------------------
-// - component_writeInfo -
-// -----------------------
-
-extern "C" sal_Bool SAL_CALL component_writeInfo( void* /* pServiceManager */, void* pRegistryKey )
-{
- sal_Bool bRet = sal_False;
-
- if( pRegistryKey )
- {
- try
- {
- NMSP_UNO::Reference< NMSP_REGISTRY::XRegistryKey > xNewKey(
- reinterpret_cast< NMSP_REGISTRY::XRegistryKey * >( pRegistryKey )->createKey(
- PptImporter_getImplementationName() ) );
- xNewKey = xNewKey->createKey( B2UCONST( "/UNO/SERVICES" ) );
- const SEQ( NMSP_RTL::OUString )& rSNL = PptImporter_getSupportedServiceNames();
- const NMSP_RTL::OUString * pArray = rSNL.getConstArray();
- for ( sal_Int32 nPos = rSNL.getLength(); nPos--; )
- xNewKey->createKey( pArray[nPos] );
- bRet = sal_True;
- }
- catch( NMSP_REGISTRY::InvalidRegistryException& )
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
-
- return bRet;
-}
-
// ------------------------
// - component_getFactory -
// ------------------------
diff --git a/filter/source/pdf/makefile.mk b/filter/source/pdf/makefile.mk
index edf3147a822c..776729ac0d97 100644
--- a/filter/source/pdf/makefile.mk
+++ b/filter/source/pdf/makefile.mk
@@ -81,3 +81,11 @@ DEF1NAME=$(SHL1TARGET)
# --- Targets ----------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/pdffilter.component
+
+$(MISC)/pdffilter.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ pdffilter.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt pdffilter.component
diff --git a/filter/source/pdf/pdffilter.component b/filter/source/pdf/pdffilter.component
new file mode 100644
index 000000000000..36766b61eb97
--- /dev/null
+++ b/filter/source/pdf/pdffilter.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.PDF.PDFDialog">
+ <service name="com.sun.star.document.PDFDialog"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.PDF.PDFFilter">
+ <service name="com.sun.star.document.PDFFilter"/>
+ </implementation>
+</component>
diff --git a/filter/source/pdf/pdfuno.cxx b/filter/source/pdf/pdfuno.cxx
index 10c0f7df293d..78bfff4c89f7 100644
--- a/filter/source/pdf/pdfuno.cxx
+++ b/filter/source/pdf/pdfuno.cxx
@@ -53,41 +53,6 @@ extern "C"
// -------------------------------------------------------------------------
- SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey )
- {
- if (pRegistryKey)
- {
- try
- {
- Reference< XRegistryKey > xNewKey;
- sal_Int32 nPos;
-
- xNewKey = reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( PDFFilter_getImplementationName() );
- xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) );
- const Sequence< OUString > & rSNL1 = PDFFilter_getSupportedServiceNames();
- const OUString * pArray1 = rSNL1.getConstArray();
- for ( nPos = rSNL1.getLength(); nPos--; )
- xNewKey->createKey( pArray1[nPos] );
-
- xNewKey = reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( PDFDialog_getImplementationName() );
- xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) );
- const Sequence< OUString > & rSNL2 = PDFDialog_getSupportedServiceNames();
- const OUString * pArray2 = rSNL2.getConstArray();
- for ( nPos = rSNL2.getLength(); nPos--; )
- xNewKey->createKey( pArray2[nPos] );
-
- return sal_True;
- }
- catch (InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
- }
-
- // -------------------------------------------------------------------------
-
SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ )
{
OUString aImplName( OUString::createFromAscii( pImplName ) );
diff --git a/filter/source/placeware/exports.dxp b/filter/source/placeware/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/filter/source/placeware/exports.dxp
+++ b/filter/source/placeware/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/filter/source/placeware/makefile.mk b/filter/source/placeware/makefile.mk
index 3238193c52ae..e3bd32a9197f 100644
--- a/filter/source/placeware/makefile.mk
+++ b/filter/source/placeware/makefile.mk
@@ -65,3 +65,11 @@ DEF1NAME= $(SHL1TARGET)
# --- Targets ----------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/placeware.component
+
+$(MISC)/placeware.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ placeware.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt placeware.component
diff --git a/filter/source/placeware/placeware.component b/filter/source/placeware/placeware.component
new file mode 100644
index 000000000000..9a6ca703ef2d
--- /dev/null
+++ b/filter/source/placeware/placeware.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.Impress.PlaceWareExportFilter">
+ <service name="com.sun.star.document.ExportFilter"/>
+ </implementation>
+</component>
diff --git a/filter/source/placeware/uno.cxx b/filter/source/placeware/uno.cxx
index c11b4392a1b4..49a660b05241 100644
--- a/filter/source/placeware/uno.cxx
+++ b/filter/source/placeware/uno.cxx
@@ -59,32 +59,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
- void * /* pServiceManager */, void * pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- Reference< XRegistryKey > xNewKey(
- reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( PlaceWareExportFilter_getImplementationName() ) );
- xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) );
-
- const Sequence< OUString > & rSNL = PlaceWareExportFilter_getSupportedServiceNames();
- const OUString * pArray = rSNL.getConstArray();
- for ( sal_Int32 nPos = rSNL.getLength(); nPos--; )
- xNewKey->createKey( pArray[nPos] );
-
- return sal_True;
- }
- catch (InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * /* pRegistryKey */ )
{
diff --git a/filter/source/svg/makefile.mk b/filter/source/svg/makefile.mk
index 12c1210c18c4..44bac23381f5 100644
--- a/filter/source/svg/makefile.mk
+++ b/filter/source/svg/makefile.mk
@@ -81,3 +81,11 @@ DEF1NAME=$(SHL1TARGET)
# --- Targets ----------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/svgfilter.component
+
+$(MISC)/svgfilter.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ svgfilter.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt svgfilter.component
diff --git a/filter/source/svg/svgfilter.component b/filter/source/svg/svgfilter.component
new file mode 100644
index 000000000000..82db624ff9e0
--- /dev/null
+++ b/filter/source/svg/svgfilter.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.Draw.SVGFilter">
+ <service name="com.sun.star.document.SVGFilter"/>
+ </implementation>
+</component>
diff --git a/filter/source/svg/svguno.cxx b/filter/source/svg/svguno.cxx
index aa91889fc93f..f20bfb6a526d 100644
--- a/filter/source/svg/svguno.cxx
+++ b/filter/source/svg/svguno.cxx
@@ -51,32 +51,6 @@ extern "C"
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
- SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void * /* pServiceManager */, void * pRegistryKey )
- {
- if (pRegistryKey)
- {
- try
- {
- Reference< XRegistryKey > xNewKey(
- reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( SVGFilter_getImplementationName() ) );
- xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) );
-
- const Sequence< OUString > & rSNL = SVGFilter_getSupportedServiceNames();
- const OUString * pArray = rSNL.getConstArray();
- for ( sal_Int32 nPos = rSNL.getLength(); nPos--; )
- xNewKey->createKey( pArray[nPos] );
-
- return sal_True;
- }
- catch (InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
- }
- //==================================================================================================
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * /* pRegistryKey */ )
{
diff --git a/filter/source/t602/filterenv.cxx b/filter/source/t602/filterenv.cxx
index f7fc319c27e3..d1e1a2536f8b 100644
--- a/filter/source/t602/filterenv.cxx
+++ b/filter/source/t602/filterenv.cxx
@@ -52,41 +52,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
- void * /* pServiceManager */, void * pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- sal_Int32 nPos = 0;
- Reference< XRegistryKey > xNewKey(
- reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( T602ImportFilter_getImplementationName() ) );
- xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) );
-
- const Sequence< OUString > & rSNL = T602ImportFilter_getSupportedServiceNames();
- const OUString * pArray = rSNL.getConstArray();
- for ( nPos = rSNL.getLength(); nPos--; )
- xNewKey->createKey( pArray[nPos] );
-
- xNewKey = reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( T602ImportFilterDialog_getImplementationName() );
- xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) );
-
- const Sequence< OUString > & rSNL2 = T602ImportFilterDialog_getSupportedServiceNames();
- pArray = rSNL2.getConstArray();
- for ( nPos = rSNL2.getLength(); nPos--; )
- xNewKey->createKey( pArray[nPos] );
-
- return sal_True;
- }
- catch (InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * /* pRegistryKey */ )
{
diff --git a/filter/source/t602/makefile.mk b/filter/source/t602/makefile.mk
index c65de1bc9b7c..141794b346b5 100644
--- a/filter/source/t602/makefile.mk
+++ b/filter/source/t602/makefile.mk
@@ -60,3 +60,11 @@ SHL1STDLIBS= \
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/t602filter.component
+
+$(MISC)/t602filter.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ t602filter.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt t602filter.component
diff --git a/filter/source/t602/t602filter.component b/filter/source/t602/t602filter.component
new file mode 100644
index 000000000000..fe512bf483ca
--- /dev/null
+++ b/filter/source/t602/t602filter.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.Writer.T602ImportFilter">
+ <service name="com.sun.star.document.ExtendedTypeDetection"/>
+ <service name="com.sun.star.document.ImportFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.T602ImportFilterDialog">
+ <service name="com.sun.star.ui.dialogs.FilterOptionsDialog"/>
+ </implementation>
+</component>
diff --git a/filter/source/xmlfilteradaptor/genericfilter.cxx b/filter/source/xmlfilteradaptor/genericfilter.cxx
index f91c7e4f296c..8af896b84938 100644
--- a/filter/source/xmlfilteradaptor/genericfilter.cxx
+++ b/filter/source/xmlfilteradaptor/genericfilter.cxx
@@ -82,58 +82,6 @@ void SAL_CALL component_getImplementationEnvironment(
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
-
- void * /* pServiceManager */, void * pRegistryKey )
-
-{
-
- if (pRegistryKey)
-
- {
-
- try
-
- {
-
- Reference< XRegistryKey > xNewKey(
-
- reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( XmlFilterAdaptor_getImplementationName() ) );
-
- xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) );
-
-
-
- const Sequence< OUString > & rSNL = XmlFilterAdaptor_getSupportedServiceNames();
-
- const OUString * pArray = rSNL.getConstArray();
-
- for ( sal_Int32 nPos = rSNL.getLength(); nPos--; )
-
- xNewKey->createKey( pArray[nPos] );
-
-
-
- return sal_True;
-
- }
-
- catch (InvalidRegistryException &)
-
- {
-
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
-
- }
-
- }
-
- return sal_False;
-
-}
-
-//==================================================================================================
-
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * /* pRegistryKey */ )
diff --git a/filter/source/xmlfilteradaptor/makefile.mk b/filter/source/xmlfilteradaptor/makefile.mk
index b3d39f860388..0e3732c20885 100644
--- a/filter/source/xmlfilteradaptor/makefile.mk
+++ b/filter/source/xmlfilteradaptor/makefile.mk
@@ -60,3 +60,11 @@ SHL1STDLIBS= $(COMPHELPERLIB) \
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/xmlfa.component
+
+$(MISC)/xmlfa.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ xmlfa.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt xmlfa.component
diff --git a/filter/source/xmlfilteradaptor/xmlfa.component b/filter/source/xmlfilteradaptor/xmlfa.component
new file mode 100644
index 000000000000..d835782c2f38
--- /dev/null
+++ b/filter/source/xmlfilteradaptor/xmlfa.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.Writer.XmlFilterAdaptor">
+ <service name="com.sun.star.document.ExportFilter"/>
+ <service name="com.sun.star.document.ImportFilter"/>
+ </implementation>
+</component>
diff --git a/filter/source/xmlfilterdetect/fdcomp.cxx b/filter/source/xmlfilterdetect/fdcomp.cxx
index 10820fc8f280..8f68f35cc0dc 100644
--- a/filter/source/xmlfilterdetect/fdcomp.cxx
+++ b/filter/source/xmlfilterdetect/fdcomp.cxx
@@ -82,58 +82,6 @@ void SAL_CALL component_getImplementationEnvironment(
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
-
- void * /* pServiceManager */, void * pRegistryKey )
-
-{
-
- if (pRegistryKey)
-
- {
-
- try
-
- {
-
- Reference< XRegistryKey > xNewKey(
-
- reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( FilterDetect_getImplementationName() ) );
-
- xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) );
-
-
-
- const Sequence< OUString > & rSNL = FilterDetect_getSupportedServiceNames();
-
- const OUString * pArray = rSNL.getConstArray();
-
- for ( sal_Int32 nPos = rSNL.getLength(); nPos--; )
-
- xNewKey->createKey( pArray[nPos] );
-
-
-
- return sal_True;
-
- }
-
- catch (InvalidRegistryException &)
-
- {
-
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
-
- }
-
- }
-
- return sal_False;
-
-}
-
-//==================================================================================================
-
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * /* pRegistryKey */ )
diff --git a/filter/source/xmlfilterdetect/makefile.mk b/filter/source/xmlfilterdetect/makefile.mk
index d13c4af5f576..582b73950ef9 100644
--- a/filter/source/xmlfilterdetect/makefile.mk
+++ b/filter/source/xmlfilterdetect/makefile.mk
@@ -58,3 +58,11 @@ SHL1STDLIBS= $(UCBHELPERLIB) \
$(SALLIB)
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/xmlfd.component
+
+$(MISC)/xmlfd.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ xmlfd.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt xmlfd.component
diff --git a/filter/source/xmlfilterdetect/xmlfd.component b/filter/source/xmlfilterdetect/xmlfd.component
new file mode 100644
index 000000000000..3796b0e1fb46
--- /dev/null
+++ b/filter/source/xmlfilterdetect/xmlfd.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.filters.XMLFilterDetect">
+ <service name="com.sun.star.document.ExtendedTypeDetection"/>
+ </implementation>
+</component>
diff --git a/filter/source/xsltdialog/exports.dxp b/filter/source/xsltdialog/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/filter/source/xsltdialog/exports.dxp
+++ b/filter/source/xsltdialog/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/filter/source/xsltdialog/makefile.mk b/filter/source/xsltdialog/makefile.mk
index 728a94bf0d36..c8b95594df4f 100644
--- a/filter/source/xsltdialog/makefile.mk
+++ b/filter/source/xsltdialog/makefile.mk
@@ -92,3 +92,11 @@ DEF1EXPORTFILE=exports.dxp
# --- Targets ----------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/xsltdlg.component
+
+$(MISC)/xsltdlg.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ xsltdlg.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt xsltdlg.component
diff --git a/filter/source/xsltdialog/xmlfilterdialogcomponent.cxx b/filter/source/xsltdialog/xmlfilterdialogcomponent.cxx
index c744a65fc274..e22ac2790955 100644
--- a/filter/source/xsltdialog/xmlfilterdialogcomponent.cxx
+++ b/filter/source/xsltdialog/xmlfilterdialogcomponent.cxx
@@ -403,37 +403,7 @@ void SAL_CALL component_getImplementationEnvironment(
{
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-//==================================================================================================
-
-void singlecomponent_writeInfo( Reference< XRegistryKey >& xNewKey, const Sequence< OUString > & rSNL )
-{
- const OUString * pArray = rSNL.getConstArray();
- for ( sal_Int32 nPos = rSNL.getLength(); nPos--; )
- xNewKey->createKey( pArray[nPos] );
-}
-
-sal_Bool SAL_CALL component_writeInfo(
- void * /* pServiceManager */, void * pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- Reference< XRegistryKey > xNewKey(
- reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( XMLFilterDialogComponent_getImplementationName() ) );
- xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) );
- singlecomponent_writeInfo( xNewKey, XMLFilterDialogComponent_getSupportedServiceNames() );
-
- return sal_True;
- }
- catch (InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * /* pRegistryKey */ )
diff --git a/filter/source/xsltdialog/xsltdlg.component b/filter/source/xsltdialog/xsltdlg.component
new file mode 100644
index 000000000000..086208f4f830
--- /dev/null
+++ b/filter/source/xsltdialog/xsltdlg.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="XMLFilterDialogComponent">
+ <service name="com.sun.star.comp.ui.XSLTFilterDialog"/>
+ </implementation>
+</component>
diff --git a/filter/source/xsltfilter/XSLTFilter.cxx b/filter/source/xsltfilter/XSLTFilter.cxx
index 2ee532086ef5..cccad09bae2e 100644
--- a/filter/source/xsltfilter/XSLTFilter.cxx
+++ b/filter/source/xsltfilter/XSLTFilter.cxx
@@ -682,31 +682,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-sal_Bool SAL_CALL component_writeInfo(void * /* pServiceManager */, void * pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- Reference< XRegistryKey > xNewKey(
- reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
- OUString::createFromAscii( "/" IMPLEMENTATION_NAME "/UNO/SERVICES" ) ) );
-
- const Sequence< OUString > & rSNL = getSupportedServiceNames();
- const OUString * pArray = rSNL.getConstArray();
- for ( sal_Int32 nPos = rSNL.getLength(); nPos--; )
- xNewKey->createKey( pArray[nPos] );
-
- return sal_True;
- }
- catch (InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
-
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * /* pRegistryKey */ )
{
diff --git a/filter/source/xsltfilter/XSLTFilter.jar.component b/filter/source/xsltfilter/XSLTFilter.jar.component
new file mode 100644
index 000000000000..d4ecd66f3b53
--- /dev/null
+++ b/filter/source/xsltfilter/XSLTFilter.jar.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Java2"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="XSLTransformer">
+ <service name="com.sun.star.comp.JAXTHelper"/>
+ </implementation>
+</component>
diff --git a/filter/source/xsltfilter/XSLTransformer.java b/filter/source/xsltfilter/XSLTransformer.java
index 4806c18b8161..315170ec7f98 100644
--- a/filter/source/xsltfilter/XSLTransformer.java
+++ b/filter/source/xsltfilter/XSLTransformer.java
@@ -81,9 +81,8 @@ import com.sun.star.lib.uno.adapter.XOutputStreamToOutputStreamAdapter;
import net.sf.saxon.FeatureKeys;
/** This outer class provides an inner class to implement the service
- * description, a method to instantiate the
- * component on demand (__getServiceFactory()), and a method to give
- * information about the component (__writeRegistryServiceInfo()).
+ * description and a method to instantiate the
+ * component on demand (__getServiceFactory()).
*/
public class XSLTransformer
implements XTypeProvider, XServiceName, XServiceInfo, XActiveDataSink,
@@ -476,9 +475,4 @@ public class XSLTransformer
}
return xSingleServiceFactory;
}
-
- public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
- return FactoryHelper.writeRegistryServiceInfo(XSLTransformer.class.getName(),
- _serviceName, regKey);
- }
}
diff --git a/filter/source/xsltfilter/makefile.mk b/filter/source/xsltfilter/makefile.mk
index a5e27135e17a..f96534df4e2d 100644
--- a/filter/source/xsltfilter/makefile.mk
+++ b/filter/source/xsltfilter/makefile.mk
@@ -83,3 +83,17 @@ $(JAVACLASSFILES) : $(CLASSDIR)
$(CLASSDIR) :
$(MKDIR) $(CLASSDIR)
.ENDIF
+
+ALLTAR : $(MISC)/XSLTFilter.jar.component $(MISC)/xsltfilter.component
+
+$(MISC)/XSLTFilter.jar.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt XSLTFilter.jar.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_JAVA)$(JARTARGET)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt XSLTFilter.jar.component
+
+$(MISC)/xsltfilter.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ xsltfilter.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt xsltfilter.component
diff --git a/filter/source/xsltfilter/xsltfilter.component b/filter/source/xsltfilter/xsltfilter.component
new file mode 100644
index 000000000000..25a479794b29
--- /dev/null
+++ b/filter/source/xsltfilter/xsltfilter.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.documentconversion.XSLTFilter">
+ <service name="com.sun.star.documentconversion.XSLTFilter"/>
+ </implementation>
+</component>
diff --git a/filter/source/xsltvalidate/XSLTValidate.component b/filter/source/xsltvalidate/XSLTValidate.component
new file mode 100644
index 000000000000..7d357be55119
--- /dev/null
+++ b/filter/source/xsltvalidate/XSLTValidate.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Java2"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="XSLTValidate$_XSLTValidate">
+ <service name="com.sun.star.documentconversion.XSLTValidate"/>
+ </implementation>
+</component>
diff --git a/filter/source/xsltvalidate/XSLTValidate.java b/filter/source/xsltvalidate/XSLTValidate.java
index 6dba438f4e47..591b7c6f354c 100644
--- a/filter/source/xsltvalidate/XSLTValidate.java
+++ b/filter/source/xsltvalidate/XSLTValidate.java
@@ -53,9 +53,8 @@ import com.sun.star.uno.AnyConverter;
import com.sun.star.lib.uno.adapter.*;
/** This outer class provides an inner class to implement the service
- * description, a method to instantiate the
- * component on demand (__getServiceFactory()), and a method to give
- * information about the component (__writeRegistryServiceInfo()).
+ * description and a method to instantiate the
+ * component on demand (__getServiceFactory()).
*/
public class XSLTValidate {
@@ -330,18 +329,4 @@ public class XSLTValidate {
return xSingleServiceFactory;
}
-
- /**
- * Writes the service information into the given registry key.
- * This method is called by the <code>JavaLoader</code>
- * <p>
- * @return returns true if the operation succeeded
- * @param regKey the registryKey
- * @see com.sun.star.comp.loader.JavaLoader
- */
- public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
-
- return FactoryHelper.writeRegistryServiceInfo(_XSLTValidate.class.getName(),
- _XSLTValidate.__serviceName, regKey);
- }
}
diff --git a/filter/source/xsltvalidate/makefile.mk b/filter/source/xsltvalidate/makefile.mk
index 5337d31a4bd7..1ceb740fcf6a 100644
--- a/filter/source/xsltvalidate/makefile.mk
+++ b/filter/source/xsltvalidate/makefile.mk
@@ -74,3 +74,11 @@ $(JARMANIFEST) : $(CLASSDIR)
$(CLASSDIR) :
$(MKDIR) $(CLASSDIR)
+
+ALLTAR : $(MISC)/XSLTValidate.component
+
+$(MISC)/XSLTValidate.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt XSLTValidate.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_JAVA)$(JARTARGET)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt XSLTValidate.component
diff --git a/forms/prj/d.lst b/forms/prj/d.lst
index de1655d7d7f8..a708dd3e3bc9 100644
--- a/forms/prj/d.lst
+++ b/forms/prj/d.lst
@@ -5,3 +5,4 @@
..\%__SRC%\bin\*.bin %_DEST%\bin%_EXT%\*.bin
..\%__SRC%\bin\*.res %_DEST%\bin%_EXT%\*.res
..\util\*.xml %_DEST%\xml%_EXT%\*.xml
+..\%__SRC%\misc\frm.component %_DEST%\xml%_EXT%\frm.component
diff --git a/forms/source/inc/forms_module.hxx b/forms/source/inc/forms_module.hxx
index 6655fb750e8d..912323d93194 100644
--- a/forms/source/inc/forms_module.hxx
+++ b/forms/source/inc/forms_module.hxx
@@ -101,21 +101,6 @@ namespace FORMS_MODULE_NAMESPACE
static void revokeComponent(
const ::rtl::OUString& _rImplementationName);
- /** write the registration information of all known components
- <p>writes the registration information of all components which are currently registered into the
- specified registry.<p/>
- <p>Usually used from within component_writeInfo.<p/>
- @param _rxServiceManager
- the service manager
- @param _rRootKey
- the registry key under which the information will be stored
- @return
- sal_True if the registration of all implementations was successfull, sal_False otherwise
- */
- static sal_Bool writeComponentInfos(
- const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& _rxServiceManager,
- const ::com::sun::star::uno::Reference< ::com::sun::star::registry::XRegistryKey >& _rRootKey);
-
/** creates a Factory for the component with the given implementation name.
<p>Usually used from within component_getFactory.<p/>
@param _rxServiceManager
diff --git a/forms/source/inc/forms_module_impl.hxx b/forms/source/inc/forms_module_impl.hxx
index a2c0e50e55e7..d10527075ae3 100644
--- a/forms/source/inc/forms_module_impl.hxx
+++ b/forms/source/inc/forms_module_impl.hxx
@@ -107,54 +107,6 @@ namespace FORMS_MODULE_NAMESPACE
}
//--------------------------------------------------------------------------
- sal_Bool OFormsModule::writeComponentInfos(
- const Reference< XMultiServiceFactory >& /*_rxServiceManager*/,
- const Reference< XRegistryKey >& _rxRootKey)
- {
- OSL_ENSURE(_rxRootKey.is(), "OFormsModule::writeComponentInfos : invalid argument !");
-
- if (!s_pImplementationNames)
- {
- OSL_ASSERT("OFormsModule::writeComponentInfos : have no class infos ! Are you sure called this method at the right time ?");
- return sal_True;
- }
- OSL_ENSURE(s_pImplementationNames && s_pSupportedServices && s_pCreationFunctionPointers && s_pFactoryFunctionPointers,
- "OFormsModule::writeComponentInfos : inconsistent state (the pointers) !");
- OSL_ENSURE( (s_pImplementationNames->getLength() == s_pSupportedServices->getLength())
- && (s_pImplementationNames->getLength() == s_pCreationFunctionPointers->getLength())
- && (s_pImplementationNames->getLength() == s_pFactoryFunctionPointers->getLength()),
- "OFormsModule::writeComponentInfos : inconsistent state !");
-
- sal_Int32 nLen = s_pImplementationNames->getLength();
- const ::rtl::OUString* pImplName = s_pImplementationNames->getConstArray();
- const Sequence< ::rtl::OUString >* pServices = s_pSupportedServices->getConstArray();
-
- ::rtl::OUString sRootKey("/", 1, RTL_TEXTENCODING_ASCII_US);
- for (sal_Int32 i=0; i<nLen; ++i, ++pImplName, ++pServices)
- {
- ::rtl::OUString aMainKeyName(sRootKey);
- aMainKeyName += *pImplName;
- aMainKeyName += ::rtl::OUString::createFromAscii("/UNO/SERVICES");
-
- try
- {
- Reference< XRegistryKey > xNewKey( _rxRootKey->createKey(aMainKeyName) );
-
- const ::rtl::OUString* pService = pServices->getConstArray();
- for (sal_Int32 j=0; j<pServices->getLength(); ++j, ++pService)
- xNewKey->createKey(*pService);
- }
- catch(Exception&)
- {
- OSL_ASSERT("OFormsModule::writeComponentInfos : something went wrong while creating the keys !");
- return sal_False;
- }
- }
-
- return sal_True;
- }
-
- //--------------------------------------------------------------------------
Reference< XInterface > OFormsModule::getComponentFactory(
const ::rtl::OUString& _rImplementationName,
const Reference< XMultiServiceFactory >& _rxServiceManager)
diff --git a/forms/source/misc/services.cxx b/forms/source/misc/services.cxx
index dbda0ae3896d..9a38d49e3e67 100644
--- a/forms/source/misc/services.cxx
+++ b/forms/source/misc/services.cxx
@@ -283,22 +283,6 @@ void ensureClassInfos()
}
-//---------------------------------------------------------------------------------------
-void registerServiceProvider(const ::rtl::OUString& _rServiceImplName, const Sequence< ::rtl::OUString >& _rServices, XRegistryKey* _pKey)
-{
- ::rtl::OUString sMainKeyName = ::rtl::OUString::createFromAscii("/");
- sMainKeyName += _rServiceImplName;
- sMainKeyName += ::rtl::OUString::createFromAscii("/UNO/SERVICES");
- Reference< XRegistryKey > xNewKey = _pKey->createKey(sMainKeyName);
- OSL_ENSURE(xNewKey.is(), "forms::registerProvider : could not create a registry key !");
- if (!xNewKey.is())
- return;
-
- const ::rtl::OUString* pSupportedServices = _rServices.getConstArray();
- for (sal_Int32 i=0; i<_rServices.getLength(); ++i, ++pSupportedServices)
- xNewKey->createKey(*pSupportedServices);
-}
-
//=======================================================================================
extern "C"
{
@@ -342,57 +326,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(const
}
//---------------------------------------------------------------------------------------
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(void* _pServiceManager, XRegistryKey* _pRegistryKey)
-{
- if (_pRegistryKey)
- {
- try
- {
- // ========================================================================
- // the real way - use the OModule
- createRegistryInfo_FORMS();
- if ( !::frm::OFormsModule::writeComponentInfos(
- static_cast<XMultiServiceFactory*>( _pServiceManager ),
- static_cast<XRegistryKey*>( _pRegistryKey ) )
- )
- return sal_False;
-
- // ========================================================================
- // a lot of stuff which is implemented "manually" here in this file
-
- // collect the class infos
- ensureClassInfos();
-
- // both our static sequences should have the same length ...
- sal_Int32 nClasses = s_aClassImplementationNames.getLength();
- OSL_ENSURE(s_aClassServiceNames.getLength() == nClasses,
- "forms::component_writeInfo : invalid class infos !");
-
- // loop through the sequences and register the service providers
- const ::rtl::OUString* pClasses = s_aClassImplementationNames.getConstArray();
- const Sequence< ::rtl::OUString >* pServices = s_aClassServiceNames.getConstArray();
-
- for (sal_Int32 i=0; i<nClasses; ++i, ++pClasses, ++pServices)
- registerServiceProvider(*pClasses, *pServices, _pRegistryKey);
-
- s_aClassImplementationNames.realloc(0);
- s_aClassServiceNames.realloc(0);
- s_aFactories.realloc(0);
-
- return sal_True;
- }
- catch ( InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "forms::component_writeInfo : InvalidRegistryException !");
- }
- }
- s_aClassImplementationNames.realloc(0);
- s_aClassServiceNames.realloc(0);
- s_aFactories.realloc(0);
- return sal_False;
-}
-
-//---------------------------------------------------------------------------------------
SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(const sal_Char* _pImplName, XMultiServiceFactory* _pServiceManager, void* /*_pRegistryKey*/)
{
if (!_pServiceManager || !_pImplName)
diff --git a/forms/util/frm.component b/forms/util/frm.component
new file mode 100644
index 000000000000..c727e805940a
--- /dev/null
+++ b/forms/util/frm.component
@@ -0,0 +1,255 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.form.ONavigationBarControl">
+ <service name="com.sun.star.form.control.NavigationToolBar"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.form.ONavigationBarModel">
+ <service name="com.sun.star.form.FormComponent"/>
+ <service name="com.sun.star.form.FormControlModel"/>
+ <service name="com.sun.star.form.component.NavigationToolBar"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.form.ORichTextControl">
+ <service name="com.sun.star.form.control.RichTextControl"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.forms.FormOperations">
+ <service name="com.sun.star.form.runtime.FormOperations"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.forms.ODatabaseForm">
+ <service name="com.sun.star.form.FormComponent"/>
+ <service name="com.sun.star.form.FormComponents"/>
+ <service name="com.sun.star.form.component.DataForm"/>
+ <service name="com.sun.star.form.component.Form"/>
+ <service name="com.sun.star.form.component.HTMLForm"/>
+ <service name="stardiv.one.form.component.Form"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.forms.OFilterControl">
+ <service name="com.sun.star.awt.UnoControl"/>
+ <service name="com.sun.star.form.control.FilterControl"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.forms.OFormattedFieldWrapper_ForcedFormatted">
+ <service name="com.sun.star.form.binding.BindableDatabaseFormattedField"/>
+ <service name="com.sun.star.form.component.DatabaseFormattedField"/>
+ <service name="com.sun.star.form.component.FormattedField"/>
+ <service name="stardiv.one.form.component.FormattedField"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.forms.ORichTextModel">
+ <service name="com.sun.star.form.FormComponent"/>
+ <service name="com.sun.star.form.FormControlModel"/>
+ <service name="com.sun.star.form.component.RichTextControl"/>
+ <service name="com.sun.star.style.CharacterProperties"/>
+ <service name="com.sun.star.style.CharacterPropertiesAsian"/>
+ <service name="com.sun.star.style.CharacterPropertiesComplex"/>
+ <service name="com.sun.star.style.ParagraphProperties"/>
+ <service name="com.sun.star.style.ParagraphPropertiesComplex"/>
+ <service name="com.sun.star.text.TextRange"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.forms.OScrollBarModel">
+ <service name="com.sun.star.form.FormComponent"/>
+ <service name="com.sun.star.form.FormControlModel"/>
+ <service name="com.sun.star.form.binding.BindableIntegerValueRange"/>
+ <service name="com.sun.star.form.component.ScrollBar"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.forms.OSpinButtonModel">
+ <service name="com.sun.star.form.FormComponent"/>
+ <service name="com.sun.star.form.FormControlModel"/>
+ <service name="com.sun.star.form.binding.BindableIntegerValueRange"/>
+ <service name="com.sun.star.form.component.SpinButton"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.xml.xpath.XFormsExtension">
+ <service name="com.sun.star.xml.xpath.XPathExtension"/>
+ </implementation>
+ <implementation name="com.sun.star.form.ImageProducer">
+ <service name="com.sun.star.awt.ImageProducer"/>
+ </implementation>
+ <implementation name="com.sun.star.form.Model">
+ <service name="com.sun.star.xforms.Model"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OButtonControl">
+ <service name="com.sun.star.form.control.CommandButton"/>
+ <service name="stardiv.one.form.control.CommandButton"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OButtonModel">
+ <service name="com.sun.star.form.component.CommandButton"/>
+ <service name="stardiv.one.form.component.CommandButton"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OCheckBoxControl">
+ <service name="com.sun.star.form.control.CheckBox"/>
+ <service name="stardiv.one.form.control.CheckBox"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OCheckBoxModel">
+ <service name="com.sun.star.form.binding.BindableDatabaseCheckBox"/>
+ <service name="com.sun.star.form.component.CheckBox"/>
+ <service name="com.sun.star.form.component.DatabaseCheckBox"/>
+ <service name="stardiv.one.form.component.CheckBox"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OComboBoxControl">
+ <service name="com.sun.star.form.control.ComboBox"/>
+ <service name="stardiv.one.form.control.ComboBox"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OComboBoxModel">
+ <service name="com.sun.star.form.binding.BindableDatabaseComboBox"/>
+ <service name="com.sun.star.form.component.ComboBox"/>
+ <service name="com.sun.star.form.component.DatabaseComboBox"/>
+ <service name="stardiv.one.form.component.ComboBox"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OCurrencyControl">
+ <service name="com.sun.star.form.control.CurrencyField"/>
+ <service name="stardiv.one.form.control.CurrencyField"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OCurrencyModel">
+ <service name="com.sun.star.form.component.CurrencyField"/>
+ <service name="com.sun.star.form.component.DatabaseCurrencyField"/>
+ <service name="stardiv.one.form.component.CurrencyField"/>
+ </implementation>
+ <implementation name="com.sun.star.form.ODateControl">
+ <service name="com.sun.star.form.control.DateField"/>
+ <service name="stardiv.one.form.control.DateField"/>
+ </implementation>
+ <implementation name="com.sun.star.form.ODateModel">
+ <service name="com.sun.star.form.component.DatabaseDateField"/>
+ <service name="com.sun.star.form.component.DateField"/>
+ <service name="stardiv.one.form.component.DateField"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OEditControl">
+ <service name="com.sun.star.form.control.TextField"/>
+ <service name="stardiv.one.form.control.Edit"/>
+ <service name="stardiv.one.form.control.TextField"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OEditModel">
+ <service name="com.sun.star.form.binding.BindableDatabaseTextField"/>
+ <service name="com.sun.star.form.component.DatabaseTextField"/>
+ <service name="com.sun.star.form.component.TextField"/>
+ <service name="stardiv.one.form.component.TextField"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OFileControlModel">
+ <service name="com.sun.star.form.component.FileControl"/>
+ <service name="stardiv.one.form.component.FileControl"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OFixedTextModel">
+ <service name="com.sun.star.form.component.FixedText"/>
+ <service name="stardiv.one.form.component.FixedText"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OFormattedControl">
+ <service name="com.sun.star.form.control.FormattedField"/>
+ <service name="stardiv.one.form.control.FormattedField"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OFormattedFieldWrapper">
+ <service name="stardiv.one.form.component.Edit"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OFormsCollection">
+ <service name="com.sun.star.form.Forms"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OGridControlModel">
+ <service name="com.sun.star.form.component.GridControl"/>
+ <service name="stardiv.one.form.component.Grid"/>
+ <service name="stardiv.one.form.component.GridControl"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OGroupBoxControl">
+ <service name="com.sun.star.form.control.GroupBox"/>
+ <service name="stardiv.one.form.control.GroupBox"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OGroupBoxModel">
+ <service name="com.sun.star.form.component.GroupBox"/>
+ <service name="stardiv.one.form.component.GroupBox"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OHiddenModel">
+ <service name="com.sun.star.form.component.HiddenControl"/>
+ <service name="stardiv.one.form.component.Hidden"/>
+ <service name="stardiv.one.form.component.HiddenControl"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OImageButtonControl">
+ <service name="com.sun.star.form.control.ImageButton"/>
+ <service name="stardiv.one.form.control.ImageButton"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OImageButtonModel">
+ <service name="com.sun.star.form.component.ImageButton"/>
+ <service name="stardiv.one.form.component.ImageButton"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OImageControlControl">
+ <service name="com.sun.star.form.control.ImageControl"/>
+ <service name="stardiv.one.form.control.ImageControl"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OImageControlModel">
+ <service name="com.sun.star.form.component.DatabaseImageControl"/>
+ <service name="stardiv.one.form.component.ImageControl"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OListBoxControl">
+ <service name="com.sun.star.form.control.ListBox"/>
+ <service name="stardiv.one.form.control.ListBox"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OListBoxModel">
+ <service name="com.sun.star.form.binding.BindableDatabaseListBox"/>
+ <service name="com.sun.star.form.component.DatabaseListBox"/>
+ <service name="com.sun.star.form.component.ListBox"/>
+ <service name="stardiv.one.form.component.ListBox"/>
+ </implementation>
+ <implementation name="com.sun.star.form.ONumericControl">
+ <service name="com.sun.star.form.control.NumericField"/>
+ <service name="stardiv.one.form.control.NumericField"/>
+ </implementation>
+ <implementation name="com.sun.star.form.ONumericModel">
+ <service name="com.sun.star.form.binding.BindableDatabaseNumericField"/>
+ <service name="com.sun.star.form.component.DatabaseNumericField"/>
+ <service name="com.sun.star.form.component.NumericField"/>
+ <service name="stardiv.one.form.component.NumericField"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OPatternControl">
+ <service name="com.sun.star.form.control.PatternField"/>
+ <service name="stardiv.one.form.control.PatternField"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OPatternModel">
+ <service name="com.sun.star.form.component.DatabasePatternField"/>
+ <service name="com.sun.star.form.component.PatternField"/>
+ <service name="stardiv.one.form.component.PatternField"/>
+ </implementation>
+ <implementation name="com.sun.star.form.ORadioButtonControl">
+ <service name="com.sun.star.form.control.RadioButton"/>
+ <service name="stardiv.one.form.control.RadioButton"/>
+ </implementation>
+ <implementation name="com.sun.star.form.ORadioButtonModel">
+ <service name="com.sun.star.form.binding.BindableDatabaseRadioButton"/>
+ <service name="com.sun.star.form.component.DatabaseRadioButton"/>
+ <service name="com.sun.star.form.component.RadioButton"/>
+ <service name="stardiv.one.form.component.RadioButton"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OTimeControl">
+ <service name="com.sun.star.form.control.TimeField"/>
+ <service name="stardiv.one.form.control.TimeField"/>
+ </implementation>
+ <implementation name="com.sun.star.form.OTimeModel">
+ <service name="com.sun.star.form.component.DatabaseTimeField"/>
+ <service name="com.sun.star.form.component.TimeField"/>
+ <service name="stardiv.one.form.component.TimeField"/>
+ </implementation>
+ <implementation name="com.sun.star.form.XForms">
+ <service name="com.sun.star.xforms.XForms"/>
+ </implementation>
+</component>
diff --git a/forms/util/frm.dxp b/forms/util/frm.dxp
index 9e59e94034a6..f0e1c69934bc 100644
--- a/forms/util/frm.dxp
+++ b/forms/util/frm.dxp
@@ -1,3 +1,2 @@
-component_writeInfo
component_getImplementationEnvironment
component_getFactory
diff --git a/forms/util/makefile.mk b/forms/util/makefile.mk
index 00d7a81d5a97..5ce7dd2566d2 100644
--- a/forms/util/makefile.mk
+++ b/forms/util/makefile.mk
@@ -112,3 +112,11 @@ $(MISC)$/$(SHL1TARGET).flt: makefile.mk
@echo NavigationToolBar >>$@
@echo ONavigationBar >>$@
+
+ALLTAR : $(MISC)/frm.component
+
+$(MISC)/frm.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ frm.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt frm.component
diff --git a/formula/prj/d.lst b/formula/prj/d.lst
index 3ad1e394844f..d2afebacf4d9 100644
--- a/formula/prj/d.lst
+++ b/formula/prj/d.lst
@@ -35,3 +35,4 @@ mkdir: %_DEST%\inc%_EXT%\formula
+..\%__SRC%\misc\for.component %_DEST%\xml%_EXT%\for.component
diff --git a/formula/source/core/api/services.cxx b/formula/source/core/api/services.cxx
index 0b45a0e4d02a..d1811dcfa303 100644
--- a/formula/source/core/api/services.cxx
+++ b/formula/source/core/api/services.cxx
@@ -66,10 +66,4 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
*envTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void * serviceManager, void * registryKey)
-{
- return cppu::component_writeInfoHelper(
- serviceManager, registryKey, entries);
-}
} // extern "C"
diff --git a/formula/util/for.component b/formula/util/for.component
new file mode 100644
index 000000000000..99a1adfbf978
--- /dev/null
+++ b/formula/util/for.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="simple.formula.FormulaOpCodeMapperObj">
+ <service name="com.sun.star.sheet.FormulaOpCodeMapper"/>
+ </implementation>
+</component>
diff --git a/formula/util/makefile.mk b/formula/util/makefile.mk
index 7ae30b007d00..3c6f91f6073d 100644
--- a/formula/util/makefile.mk
+++ b/formula/util/makefile.mk
@@ -136,3 +136,11 @@ RESLIB2SRSFILES=$(RES2FILELIST)
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/for.component
+
+$(MISC)/for.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ for.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt for.component
diff --git a/fpicker/prj/d.lst b/fpicker/prj/d.lst
index 7c4e0bf6024a..4fff0467fc87 100644
--- a/fpicker/prj/d.lst
+++ b/fpicker/prj/d.lst
@@ -9,6 +9,10 @@ mkdir: %COMMON_DEST%\bin%_EXT%\hid
..\source\win32\filepicker\*.xml %_DEST%\xml%_EXT%\*.xml
..\source\win32\folderpicker\*.xml %_DEST%\xml%_EXT%\*.xml
-..\source\unx\gnome\fps-gnome-ucd.txt %_DEST%\bin%_EXT%\fps-gnome-ucd.txt
-..\source\unx\kde4\fps-kde4-ucd.txt %_DEST%\bin%_EXT%\fps-kde4-ucd.txt
-..\source\aqua\fps-aqua-ucd.txt %_DEST%\bin%_EXT%\fps-aqua-ucd.txt
+..\%__SRC%\misc\fop.component %_DEST%\xml%_EXT%\fop.component
+..\%__SRC%\misc\fpicker.component %_DEST%\xml%_EXT%\fpicker.component
+..\%__SRC%\misc\fps.component %_DEST%\xml%_EXT%\fps.component
+..\%__SRC%\misc\fps_aqua.component %_DEST%\xml%_EXT%\fps_aqua.component
+..\%__SRC%\misc\fps_gnome.component %_DEST%\xml%_EXT%\fps_gnome.component
+..\%__SRC%\misc\fps_kde4.component %_DEST%\xml%_EXT%\fps_kde4.component
+..\%__SRC%\misc\fps_office.component %_DEST%\xml%_EXT%\fps_office.component
diff --git a/fpicker/source/aqua/FPentry.cxx b/fpicker/source/aqua/FPentry.cxx
index 127d1f5d60bb..5d5dc16c5d32 100644
--- a/fpicker/source/aqua/FPentry.cxx
+++ b/fpicker/source/aqua/FPentry.cxx
@@ -95,32 +95,6 @@ void SAL_CALL component_getImplementationEnvironment(
//
//------------------------------------------------
-sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey )
-{
- sal_Bool bRetVal = sal_True;
-
- if ( pRegistryKey )
- {
- try
- {
- Reference< XRegistryKey > pXNewKey( static_cast< XRegistryKey* >( pRegistryKey ) );
- pXNewKey->createKey( OUString::createFromAscii( FILE_PICKER_REGKEY_NAME ) );
- pXNewKey->createKey( OUString::createFromAscii( FOLDER_PICKER_REGKEY_NAME ) );
- }
- catch( InvalidRegistryException& )
- {
- OSL_ENSURE( sal_False, "InvalidRegistryException caught" );
- bRetVal = sal_False;
- }
- }
-
- return bRetVal;
-}
-
-//------------------------------------------------
-//
-//------------------------------------------------
-
void* SAL_CALL component_getFactory(
const sal_Char* pImplName, uno_Interface* pSrvManager, uno_Interface* /*pRegistryKey*/ )
{
diff --git a/fpicker/source/aqua/fps-aqua-ucd.txt b/fpicker/source/aqua/fps-aqua-ucd.txt
deleted file mode 100644
index d71e8f4a574f..000000000000
--- a/fpicker/source/aqua/fps-aqua-ucd.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-[ComponentDescriptor]
-ImplementationName=com.sun.star.ui.dialogs.SalAquaFilePicker
-ComponentName=fps_aqua.uno.dylib
-LoaderName=com.sun.star.loader.SharedLibrary
-[SupportedServices]
-com.sun.star.ui.dialogs.AquaFilePicker
-
-[ComponentDescriptor]
-ImplementationName=com.sun.star.ui.dialogs.SalAquaFolderPicker
-ComponentName=fps_aqua.uno.dylib
-LoaderName=com.sun.star.loader.SharedLibrary
-[SupportedServices]
-com.sun.star.ui.dialogs.AquaFolderPicker
diff --git a/fpicker/source/aqua/fps_aqua.component b/fpicker/source/aqua/fps_aqua.component
new file mode 100644
index 000000000000..a04443e37ffd
--- /dev/null
+++ b/fpicker/source/aqua/fps_aqua.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.ui.dialogs.SalAquaFilePicker">
+ <service name="com.sun.star.ui.dialogs.AquaFilePicker"/>
+ </implementation>
+ <implementation name="com.sun.star.ui.dialogs.SalAquaFolderPicker">
+ <service name="com.sun.star.ui.dialogs.AquaFolderPicker"/>
+ </implementation>
+</component>
diff --git a/fpicker/source/aqua/makefile.mk b/fpicker/source/aqua/makefile.mk
index 10990e22d5e1..ff0473c8a71e 100644
--- a/fpicker/source/aqua/makefile.mk
+++ b/fpicker/source/aqua/makefile.mk
@@ -83,3 +83,11 @@ DEF1NAME=$(SHL1TARGET)
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/fps_aqua.component
+
+$(MISC)/fps_aqua.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ fps_aqua.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt fps_aqua.component
diff --git a/fpicker/source/generic/fpicker.component b/fpicker/source/generic/fpicker.component
new file mode 100644
index 000000000000..7d44d006d960
--- /dev/null
+++ b/fpicker/source/generic/fpicker.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.fpicker.FilePicker">
+ <service name="com.sun.star.ui.dialogs.FilePicker"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.fpicker.FolderPicker">
+ <service name="com.sun.star.ui.dialogs.FolderPicker"/>
+ </implementation>
+</component>
diff --git a/fpicker/source/generic/fpicker.cxx b/fpicker/source/generic/fpicker.cxx
index 4589b3319163..7d6417099ae0 100644
--- a/fpicker/source/generic/fpicker.cxx
+++ b/fpicker/source/generic/fpicker.cxx
@@ -216,13 +216,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment (
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo (
- void * pServiceManager, void * pRegistryKey)
-{
- return cppu::component_writeInfoHelper (
- pServiceManager, pRegistryKey, g_entries);
-}
-
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory (
const sal_Char * pImplementationName, void * pServiceManager, void * pRegistryKey)
{
diff --git a/fpicker/source/generic/makefile.mk b/fpicker/source/generic/makefile.mk
index bfbfb65f3da6..0b2ad77baac6 100644
--- a/fpicker/source/generic/makefile.mk
+++ b/fpicker/source/generic/makefile.mk
@@ -60,3 +60,11 @@ DEF1NAME= $(SHL1TARGET)
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/fpicker.component
+
+$(MISC)/fpicker.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ fpicker.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt fpicker.component
diff --git a/fpicker/source/office/fps_office.component b/fpicker/source/office/fps_office.component
new file mode 100644
index 000000000000..3e49f68a49db
--- /dev/null
+++ b/fpicker/source/office/fps_office.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.svtools.OfficeFilePicker">
+ <service name="com.sun.star.ui.dialogs.OfficeFilePicker"/>
+ </implementation>
+ <implementation name="com.sun.star.svtools.OfficeFolderPicker">
+ <service name="com.sun.star.ui.dialogs.OfficeFolderPicker"/>
+ </implementation>
+</component>
diff --git a/fpicker/source/office/fps_office.cxx b/fpicker/source/office/fps_office.cxx
index 52659e1f76f5..3d06873338de 100644
--- a/fpicker/source/office/fps_office.cxx
+++ b/fpicker/source/office/fps_office.cxx
@@ -63,13 +63,6 @@ component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey)
-{
- return cppu::component_writeInfoHelper (
- pServiceManager, pRegistryKey, g_entries);
-}
-
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
const sal_Char * pImplementationName, void * pServiceManager, void * pRegistryKey)
{
diff --git a/fpicker/source/office/makefile.mk b/fpicker/source/office/makefile.mk
index adc3c30f9a3d..7481fd867ca7 100644
--- a/fpicker/source/office/makefile.mk
+++ b/fpicker/source/office/makefile.mk
@@ -86,3 +86,11 @@ RESLIB1SRSFILES=\
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/fps_office.component
+
+$(MISC)/fps_office.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ fps_office.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt fps_office.component
diff --git a/fpicker/source/unx/gnome/FPentry.cxx b/fpicker/source/unx/gnome/FPentry.cxx
index 7561d1f4e95f..ccca3dabf72c 100644
--- a/fpicker/source/unx/gnome/FPentry.cxx
+++ b/fpicker/source/unx/gnome/FPentry.cxx
@@ -99,32 +99,6 @@ void SAL_CALL component_getImplementationEnvironment(
//
//------------------------------------------------
-sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey )
-{
- sal_Bool bRetVal = sal_True;
-
- if ( pRegistryKey )
- {
- try
- {
- Reference< XRegistryKey > pXNewKey( static_cast< XRegistryKey* >( pRegistryKey ) );
- pXNewKey->createKey( OUString::createFromAscii( FILE_PICKER_REGKEY_NAME ) );
- pXNewKey->createKey( OUString::createFromAscii( FOLDER_PICKER_REGKEY_NAME ) );
- }
- catch( InvalidRegistryException& )
- {
- OSL_ENSURE( sal_False, "InvalidRegistryException caught" );
- bRetVal = sal_False;
- }
- }
-
- return bRetVal;
-}
-
-//------------------------------------------------
-//
-//------------------------------------------------
-
void* SAL_CALL component_getFactory(
const sal_Char* pImplName, uno_Interface* pSrvManager, uno_Interface* /*pRegistryKey*/ )
{
diff --git a/fpicker/source/unx/gnome/fps-gnome-ucd.txt b/fpicker/source/unx/gnome/fps-gnome-ucd.txt
deleted file mode 100644
index 4a84215dc960..000000000000
--- a/fpicker/source/unx/gnome/fps-gnome-ucd.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-[ComponentDescriptor]
-ImplementationName=com.sun.star.ui.dialogs.SalGtkFilePicker
-ComponentName=fps_gnome.uno.so
-LoaderName=com.sun.star.loader.SharedLibrary
-[SupportedServices]
-com.sun.star.ui.dialogs.GtkFilePicker
-
-[ComponentDescriptor]
-ImplementationName=com.sun.star.ui.dialogs.SalGtkFolderPicker
-ComponentName=fps_gnome.uno.so
-LoaderName=com.sun.star.loader.SharedLibrary
-[SupportedServices]
-com.sun.star.ui.dialogs.GtkFolderPicker
diff --git a/fpicker/source/unx/gnome/fps_gnome.component b/fpicker/source/unx/gnome/fps_gnome.component
new file mode 100644
index 000000000000..72bca42f8acf
--- /dev/null
+++ b/fpicker/source/unx/gnome/fps_gnome.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.ui.dialogs.SalGtkFilePicker">
+ <service name="com.sun.star.ui.dialogs.GtkFilePicker"/>
+ </implementation>
+ <implementation name="com.sun.star.ui.dialogs.SalGtkFolderPicker">
+ <service name="com.sun.star.ui.dialogs.GtkFolderPicker"/>
+ </implementation>
+</component>
diff --git a/fpicker/source/unx/gnome/makefile.mk b/fpicker/source/unx/gnome/makefile.mk
index 04c6e650ff6f..82b2413dd4af 100644
--- a/fpicker/source/unx/gnome/makefile.mk
+++ b/fpicker/source/unx/gnome/makefile.mk
@@ -96,3 +96,11 @@ DEF1NAME=$(SHL1TARGET)
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/fps_gnome.component
+
+$(MISC)/fps_gnome.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ fps_gnome.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt fps_gnome.component
diff --git a/fpicker/source/unx/kde4/KDE4FPEntry.cxx b/fpicker/source/unx/kde4/KDE4FPEntry.cxx
index 3d74c1a09dca..174b1fc440a6 100644
--- a/fpicker/source/unx/kde4/KDE4FPEntry.cxx
+++ b/fpicker/source/unx/kde4/KDE4FPEntry.cxx
@@ -55,27 +55,6 @@ extern "C"
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
- sal_Bool SAL_CALL component_writeInfo( void*, void* pRegistryKey )
- {
- sal_Bool bRetVal = sal_True;
-
- if ( pRegistryKey )
- {
- try
- {
- Reference< XRegistryKey > pXNewKey( static_cast< XRegistryKey* >( pRegistryKey ) );
- pXNewKey->createKey( OUString::createFromAscii( FILE_PICKER_REGKEY_NAME ) );
- }
- catch( InvalidRegistryException& )
- {
- OSL_ENSURE( sal_False, "InvalidRegistryException caught" );
- bRetVal = sal_False;
- }
- }
-
- return bRetVal;
- }
-
void* SAL_CALL component_getFactory( const sal_Char* pImplName, uno_Interface* pSrvManager, uno_Interface* )
{
void* pRet = 0;
diff --git a/fpicker/source/unx/kde4/fps-kde4-ucd.txt b/fpicker/source/unx/kde4/fps-kde4-ucd.txt
deleted file mode 100644
index 8ecc4e0a0a52..000000000000
--- a/fpicker/source/unx/kde4/fps-kde4-ucd.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-[ComponentDescriptor]
-ImplementationName=com.sun.star.ui.dialogs.KDE4FilePicker
-ComponentName=fps_kde4.uno.so
-LoaderName=com.sun.star.loader.SharedLibrary
-[SupportedServices]
-com.sun.star.ui.dialogs.KDE4FilePicker
diff --git a/fpicker/source/unx/kde4/fps_kde4.component b/fpicker/source/unx/kde4/fps_kde4.component
new file mode 100644
index 000000000000..d627212b75e8
--- /dev/null
+++ b/fpicker/source/unx/kde4/fps_kde4.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.ui.dialogs.KDE4FilePicker">
+ <service name="com.sun.star.ui.dialogs.KDE4FilePicker"/>
+ </implementation>
+</component>
diff --git a/fpicker/source/unx/kde4/makefile.mk b/fpicker/source/unx/kde4/makefile.mk
index e245e6618465..7ccf6df6a0ce 100644
--- a/fpicker/source/unx/kde4/makefile.mk
+++ b/fpicker/source/unx/kde4/makefile.mk
@@ -80,3 +80,11 @@ DEF1VERSIONMAP=exports.map
$(MISC)$/KDE4FilePicker.moc.cxx : KDE4FilePicker.hxx
$(MOC4) $< -o $@
+
+ALLTAR : $(MISC)/fps_kde4.component
+
+$(MISC)/fps_kde4.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ fps_kde4.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt fps_kde4.component
diff --git a/fpicker/source/win32/filepicker/FPentry.cxx b/fpicker/source/win32/filepicker/FPentry.cxx
index e93c3bec18ba..79a2cf3b2865 100644
--- a/fpicker/source/win32/filepicker/FPentry.cxx
+++ b/fpicker/source/win32/filepicker/FPentry.cxx
@@ -104,31 +104,6 @@ void SAL_CALL component_getImplementationEnvironment(
//
//------------------------------------------------
-sal_Bool SAL_CALL component_writeInfo( void*, void* pRegistryKey )
-{
- sal_Bool bRetVal = sal_True;
-
- if ( pRegistryKey )
- {
- try
- {
- Reference< XRegistryKey > pXNewKey( static_cast< XRegistryKey* >( pRegistryKey ) );
- pXNewKey->createKey( OUString::createFromAscii( FILE_PICKER_REGKEY_NAME ) );
- }
- catch( InvalidRegistryException& )
- {
- OSL_ENSURE( sal_False, "InvalidRegistryException caught" );
- bRetVal = sal_False;
- }
- }
-
- return bRetVal;
-}
-
-//------------------------------------------------
-//
-//------------------------------------------------
-
void* SAL_CALL component_getFactory(
const sal_Char* pImplName, uno_Interface* pSrvManager, uno_Interface* )
{
diff --git a/fpicker/source/win32/folderpicker/Fopentry.cxx b/fpicker/source/win32/folderpicker/Fopentry.cxx
index 717359ba511a..3c861cc67ce3 100644
--- a/fpicker/source/win32/folderpicker/Fopentry.cxx
+++ b/fpicker/source/win32/folderpicker/Fopentry.cxx
@@ -87,31 +87,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-//-----------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------
-
-sal_Bool SAL_CALL component_writeInfo( void*, void* pRegistryKey )
-{
- sal_Bool bRetVal = sal_True;
-
- if ( pRegistryKey )
- {
- try
- {
- Reference< XRegistryKey > pXNewKey( static_cast< XRegistryKey* >( pRegistryKey ) );
- pXNewKey->createKey( OUString( RTL_CONSTASCII_USTRINGPARAM( FOLDER_PICKER_REGKEY_NAME ) ) );
- }
- catch( InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "InvalidRegistryException caught");
- bRetVal = sal_False;
- }
- }
-
- return bRetVal;
-}
-
//----------------------------------------------------------------------
// component_getFactory
// returns a factory to create XFilePicker-Services
diff --git a/fpicker/util/exports.dxp b/fpicker/util/exports.dxp
index 028ac4175990..f0e1c69934bc 100644
--- a/fpicker/util/exports.dxp
+++ b/fpicker/util/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/fpicker/util/fop.component b/fpicker/util/fop.component
new file mode 100644
index 000000000000..a31c096dd42a
--- /dev/null
+++ b/fpicker/util/fop.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.ui.dialogs.Win32FolderPicker">
+ <service name="com.sun.star.ui.dialogs.SystemFolderPicker"/>
+ </implementation>
+</component>
diff --git a/fpicker/util/fps.component b/fpicker/util/fps.component
new file mode 100644
index 000000000000..cc18d211028c
--- /dev/null
+++ b/fpicker/util/fps.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.ui.dialogs.Win32FilePicker">
+ <service name="com.sun.star.ui.dialogs.SystemFilePicker"/>
+ </implementation>
+</component>
diff --git a/fpicker/util/makefile.mk b/fpicker/util/makefile.mk
index c249e4259e91..60bd3333cb71 100644
--- a/fpicker/util/makefile.mk
+++ b/fpicker/util/makefile.mk
@@ -100,3 +100,16 @@ DEF2EXPORTFILE= exports.dxp
.INCLUDE : target.mk
+ALLTAR : $(MISC)/fop.component $(MISC)/fps.component
+
+$(MISC)/fop.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ fop.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL2TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt fop.component
+
+$(MISC)/fps.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ fps.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt fps.component
diff --git a/framework/inc/macros/debug/registration.hxx b/framework/inc/macros/debug/registration.hxx
index e8ea5a0bafe6..afb359348349 100644
--- a/framework/inc/macros/debug/registration.hxx
+++ b/framework/inc/macros/debug/registration.hxx
@@ -53,26 +53,6 @@
"registration.log"
#endif
- /*_____________________________________________________________________________________________________________
- LOG_REGISTRATION_WRITEINFO( SINFOTEXT )
-
- Write informations for component_writeInfo() in log file.
- _____________________________________________________________________________________________________________*/
-
- #define LOG_REGISTRATION_WRITEINFO( SINFOTEXT ) \
- { \
- ::rtl::OStringBuffer sOut( 1024 ); \
- sOut.append( "component_writeInfo():" ); \
- sOut.append( SINFOTEXT ); \
- WRITE_LOGFILE( LOGFILE_REGISTRATION, sOut.makeStringAndClear() ) \
- }
-
- /*_____________________________________________________________________________________________________________
- LOG_REGISTRATION_WRITEINFO( SINFOTEXT )
-
- Write informations for component_getFactory() in log file.
- _____________________________________________________________________________________________________________*/
-
#define LOG_REGISTRATION_GETFACTORY( SINFOTEXT ) \
{ \
::rtl::OStringBuffer sOut( 1024 ); \
@@ -88,7 +68,6 @@
_____________________________________________________________________________________________________________*/
#undef LOGFILE_REGISTRATION
- #define LOG_REGISTRATION_WRITEINFO( SINFOTEXT )
#define LOG_REGISTRATION_GETFACTORY( SINFOTEXT )
#endif // #ifdef ENABLE_REGISTRATIONDEBUG
diff --git a/framework/inc/macros/registration.hxx b/framework/inc/macros/registration.hxx
index 3db6761abc15..11f7c297c645 100644
--- a/framework/inc/macros/registration.hxx
+++ b/framework/inc/macros/registration.hxx
@@ -37,10 +37,8 @@
//_________________________________________________________________________________________________________________
// interface includes
//_________________________________________________________________________________________________________________
-#include <com/sun/star/registry/XRegistryKey.hpp>
#include <com/sun/star/lang/XSingleServiceFactory.hpp>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/registry/InvalidRegistryException.hpp>
//_________________________________________________________________________________________________________________
// other includes
@@ -57,67 +55,14 @@
macros for registration of services
Please use follow public macros only!
- 1) COMPONENTINFO( CLASS ) => use it as parameter for COMPONENT_WRITEINFO( INFOS )
- 2) IFFACTORY( CLASS ) => use it as parameter for COMPONENT_GETFACTORY( IFFACTORIES )
- 3) COMPONENTGETIMPLEMENTATIONENVIRONMENT => use it to define exported function component_getImplementationEnvironment()
- 4) COMPONENTWRITEINFO( INFOS ) => use it to define exported function component_writeInfo()
- 5) COMPONENTGETFACTORY( IFFACTORIES ) => use it to define exported function component_getFactory()
+ IFFACTORY( CLASS ) => use it as parameter for COMPONENT_GETFACTORY( IFFACTORIES )
+ COMPONENTGETIMPLEMENTATIONENVIRONMENT => use it to define exported function component_getImplementationEnvironment()
+ COMPONENTGETFACTORY( IFFACTORIES ) => use it to define exported function component_getFactory()
_________________________________________________________________________________________________________________*/
//*****************************************************************************************************************
// public
-// use it as parameter for COMPONENT_WRITEINFO( INFOS )
-//*****************************************************************************************************************
-
-#define COMPONENTINFO( CLASS ) \
- try \
- { \
- /* Set default result of follow operations !!! */ \
- bReturn = sal_False; \
- /* Do the follow only, if given key is valid ! */ \
- if ( xKey.is() == sal_True ) \
- { \
- LOG_REGISTRATION_WRITEINFO( "\t\t\txKey is valid ...\n" ) \
- /* Build new keyname */ \
- sKeyName = DECLARE_ASCII( "/" ); \
- sKeyName += CLASS::impl_getStaticImplementationName(); \
- sKeyName += DECLARE_ASCII( "/UNO/SERVICES" ); \
- LOG_REGISTRATION_WRITEINFO( "\t\t\tcreate key \"" ) \
- LOG_REGISTRATION_WRITEINFO( U2B( sKeyName ) ) \
- LOG_REGISTRATION_WRITEINFO( "\" ...\n" ) \
- /* Create new key with new name. */ \
- xNewKey = xKey->createKey( sKeyName ); \
- /* If this new key valid ... */ \
- if ( xNewKey.is() == sal_True ) \
- { \
- LOG_REGISTRATION_WRITEINFO( "\t\t\t\ttsuccessful ...\n" ) \
- /* Get information about supported services. */ \
- seqServiceNames = CLASS::impl_getStaticSupportedServiceNames() ; \
- pArray = seqServiceNames.getArray() ; \
- nLength = seqServiceNames.getLength() ; \
- nCounter = 0 ; \
- /* Then set this information on this key. */ \
- for ( nCounter = 0; nCounter < nLength; ++nCounter ) \
- { \
- LOG_REGISTRATION_WRITEINFO( "\t\t\t\twrite key \"" ) \
- LOG_REGISTRATION_WRITEINFO( U2B( pArray[nCounter] ) ) \
- LOG_REGISTRATION_WRITEINFO( "\" to registry ...\n" ) \
- xNewKey->createKey( pArray[nCounter] ); \
- } \
- /* Result of this operations = OK. */ \
- bReturn = sal_True ; \
- } \
- } \
- } \
- catch( ::com::sun::star::registry::InvalidRegistryException& ) \
- { \
- LOG_REGISTRATION_WRITEINFO( "\n\nERROR:\nInvalidRegistryException detected\n\n" ) \
- bReturn = sal_False ; \
- }
-
-//*****************************************************************************************************************
-// public
// use it as parameter for COMPONENT_GETFACTORY( IFFACTORIES )
//*****************************************************************************************************************
#define IFFACTORY( CLASS ) \
@@ -144,41 +89,6 @@ ________________________________________________________________________________
//*****************************************************************************************************************
// public
-// define registration of service
-//*****************************************************************************************************************
-#define COMPONENTWRITEINFO( INFOS ) \
- extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/ , \
- void* pRegistryKey ) \
- { \
- LOG_REGISTRATION_WRITEINFO( "\t[start]\n" ) \
- /* Set default return value for this operation - if it failed. */ \
- sal_Bool bReturn = sal_False ; \
- if ( pRegistryKey != NULL ) \
- { \
- LOG_REGISTRATION_WRITEINFO( "\t\tpRegistryKey is valid ...\n" ) \
- /* Define variables for following helper macros! */ \
- /* bReturn will set automaticly. */ \
- ::com::sun::star::uno::Reference< ::com::sun::star::registry::XRegistryKey > xKey ; \
- ::com::sun::star::uno::Reference< ::com::sun::star::registry::XRegistryKey > xNewKey ; \
- ::com::sun::star::uno::Sequence< ::rtl::OUString > seqServiceNames ; \
- const ::rtl::OUString* pArray ; \
- sal_Int32 nLength ; \
- sal_Int32 nCounter ; \
- ::rtl::OUString sKeyName ; \
- xKey = reinterpret_cast< ::com::sun::star::registry::XRegistryKey* >( pRegistryKey ); \
- /* This parameter will expand to */ \
- /* "COMPONENT_INFO(a) */ \
- /* ... */ \
- /* COMPONENT_INFO(z)" */ \
- INFOS \
- } \
- LOG_REGISTRATION_WRITEINFO( "\t[end]\n" ) \
- /* Return with result of this operation. */ \
- return bReturn ; \
- }
-
-//*****************************************************************************************************************
-// public
// define method to instanciate new services
//*****************************************************************************************************************
#define COMPONENTGETFACTORY( IFFACTORIES ) \
diff --git a/framework/prj/d.lst b/framework/prj/d.lst
index fe6077f57bc8..d3a3d6dd153c 100644
--- a/framework/prj/d.lst
+++ b/framework/prj/d.lst
@@ -50,3 +50,6 @@ mkdir: %_DEST%\xml%_EXT%\uiconfig\modules\StartModule\statusbar
..\source\unotypes\fw?.xml %_DEST%\xml%_EXT%\*.xml
+..\%__SRC%\misc\fwk.component %_DEST%\xml%_EXT%\fwk.component
+..\%__SRC%\misc\fwl.component %_DEST%\xml%_EXT%\fwl.component
+..\%__SRC%\misc\fwm.component %_DEST%\xml%_EXT%\fwm.component
diff --git a/framework/source/register/register3rdcomponents.cxx b/framework/source/register/register3rdcomponents.cxx
index 0d93c775ff7e..86ef8c16d1ea 100644
--- a/framework/source/register/register3rdcomponents.cxx
+++ b/framework/source/register/register3rdcomponents.cxx
@@ -47,10 +47,6 @@
COMPONENTGETIMPLEMENTATIONENVIRONMENT
- COMPONENTWRITEINFO ( COMPONENTINFO( Service1 )
- COMPONENTINFO( Service2 )
- )
-
COMPONENTGETFACTORY ( IFFACTORIE( Service1 )
else
IFFACTORIE( Service2 )
@@ -63,12 +59,6 @@
COMPONENTGETIMPLEMENTATIONENVIRONMENT
-COMPONENTWRITEINFO ( COMPONENTINFO( ::framework::HelpOnStartup )
- COMPONENTINFO( ::framework::TabWinFactory )
- COMPONENTINFO( ::framework::SystemExec )
- COMPONENTINFO( ::framework::ShellJob )
- )
-
COMPONENTGETFACTORY ( IFFACTORY( ::framework::HelpOnStartup ) else
IFFACTORY( ::framework::TabWinFactory ) else
IFFACTORY( ::framework::SystemExec ) else
diff --git a/framework/source/register/registerlogindialog.cxx b/framework/source/register/registerlogindialog.cxx
index 55e13252570f..0a7e08c8c93a 100644
--- a/framework/source/register/registerlogindialog.cxx
+++ b/framework/source/register/registerlogindialog.cxx
@@ -48,10 +48,6 @@
COMPONENTGETIMPLEMENTATIONENVIRONMENT
- COMPONENTWRITEINFO ( COMPONENTINFO( Service1 )
- COMPONENTINFO( Service2 )
- )
-
COMPONENTGETFACTORY ( IFFACTORIE( Service1 )
else
IFFACTORIE( Service2 )
@@ -64,8 +60,5 @@
COMPONENTGETIMPLEMENTATIONENVIRONMENT
-COMPONENTWRITEINFO ( COMPONENTINFO( ::framework::LoginDialog )
- )
-
COMPONENTGETFACTORY ( IFFACTORY( ::framework::LoginDialog )
)
diff --git a/framework/source/register/registerservices.cxx b/framework/source/register/registerservices.cxx
index 6e3fa878bbb1..4f078d9ab50d 100644
--- a/framework/source/register/registerservices.cxx
+++ b/framework/source/register/registerservices.cxx
@@ -47,10 +47,6 @@
COMPONENTGETIMPLEMENTATIONENVIRONMENT
- COMPONENTWRITEINFO ( COMPONENTINFO( Service1 )
- COMPONENTINFO( Service2 )
- )
-
COMPONENTGETFACTORY ( IFFACTORIE( Service1 )
else
IFFACTORIE( Service2 )
@@ -117,66 +113,6 @@
COMPONENTGETIMPLEMENTATIONENVIRONMENT
-COMPONENTWRITEINFO ( COMPONENTINFO( ::framework::URLTransformer )
- COMPONENTINFO( ::framework::Desktop )
- COMPONENTINFO( ::framework::Frame )
- //COMPONENTINFO( ::framework::Oxt_Handler )
- COMPONENTINFO( ::framework::JobExecutor )
- //COMPONENTINFO( ::framework::DispatchRecorderSupplier )
- //COMPONENTINFO( ::framework::DispatchRecorder )
- //COMPONENTINFO( ::framework::MailToDispatcher )
- //COMPONENTINFO( ::framework::ServiceHandler )
- COMPONENTINFO( ::framework::JobDispatch )
- COMPONENTINFO( ::framework::BackingComp )
- //COMPONENTINFO( ::framework::DispatchHelper )
- COMPONENTINFO( ::framework::LayoutManager )
- //COMPONENTINFO( ::framework::License )
- COMPONENTINFO( ::framework::UIElementFactoryManager )
- COMPONENTINFO( ::framework::PopupMenuControllerFactory )
- //COMPONENTINFO( ::framework::FontMenuController )
- //COMPONENTINFO( ::framework::FontSizeMenuController )
- COMPONENTINFO( ::framework::ObjectMenuController )
- //COMPONENTINFO( ::framework::HeaderMenuController )
- //COMPONENTINFO( ::framework::FooterMenuController )
- COMPONENTINFO( ::framework::ControlMenuController )
- //COMPONENTINFO( ::framework::MacrosMenuController )
- COMPONENTINFO( ::framework::UICommandDescription )
- COMPONENTINFO( ::framework::ModuleManager )
- COMPONENTINFO( ::framework::UIConfigurationManager )
- COMPONENTINFO( ::framework::ModuleUIConfigurationManagerSupplier )
- COMPONENTINFO( ::framework::ModuleUIConfigurationManager )
- COMPONENTINFO( ::framework::MenuBarFactory )
- COMPONENTINFO( ::framework::GlobalAcceleratorConfiguration )
- COMPONENTINFO( ::framework::ModuleAcceleratorConfiguration )
- COMPONENTINFO( ::framework::DocumentAcceleratorConfiguration )
- COMPONENTINFO( ::framework::ToolBoxFactory )
- COMPONENTINFO( ::framework::AddonsToolBoxFactory )
- COMPONENTINFO( ::framework::WindowStateConfiguration )
- COMPONENTINFO( ::framework::ToolbarControllerFactory )
- //COMPONENTINFO( ::framework::ToolbarsMenuController )
- COMPONENTINFO( ::framework::AutoRecovery )
- COMPONENTINFO( ::framework::StatusIndicatorFactory )
- COMPONENTINFO( ::framework::RecentFilesMenuController )
- COMPONENTINFO( ::framework::StatusBarFactory )
- COMPONENTINFO( ::framework::UICategoryDescription )
- COMPONENTINFO( ::framework::StatusbarControllerFactory )
- COMPONENTINFO( ::framework::SessionListener )
- //COMPONENTINFO( ::framework::LogoImageStatusbarController )
- //COMPONENTINFO( ::framework::LogoTextStatusbarController )
- //COMPONENTINFO( ::framework::NewMenuController )
- COMPONENTINFO( ::framework::TaskCreatorService )
- //COMPONENTINFO( ::framework::SimpleTextStatusbarController )
- //COMPONENTINFO( ::framework::UriAbbreviation )
- //COMPONENTINFO( ::framework::PopupMenuDispatcher )
- COMPONENTINFO( ::framework::ImageManager )
- COMPONENTINFO( ::framework::LangSelectionStatusbarController )
- //COMPONENTINFO( ::framework::LanguageSelectionMenuController )
- //COMPONENTINFO( ::framework::TabWindowService )
- COMPONENTINFO( ::framework::WindowContentFactoryManager )
- COMPONENTINFO( ::framework::SubstitutePathVariables )
- COMPONENTINFO( ::framework::PathSettings )
- )
-
COMPONENTGETFACTORY ( IFFACTORY( ::framework::URLTransformer ) else
IFFACTORY( ::framework::Desktop ) else
IFFACTORY( ::framework::Frame ) else
diff --git a/framework/source/register/registertemp.cxx b/framework/source/register/registertemp.cxx
index 7382380ef525..111b3550559d 100644
--- a/framework/source/register/registertemp.cxx
+++ b/framework/source/register/registertemp.cxx
@@ -47,10 +47,6 @@
COMPONENTGETIMPLEMENTATIONENVIRONMENT
- COMPONENTWRITEINFO ( COMPONENTINFO( Service1 )
- COMPONENTINFO( Service2 )
- )
-
COMPONENTGETFACTORY ( IFFACTORIE( Service1 )
else
IFFACTORIE( Service2 )
@@ -82,31 +78,6 @@
COMPONENTGETIMPLEMENTATIONENVIRONMENT
-COMPONENTWRITEINFO ( COMPONENTINFO( ::framework::MediaTypeDetectionHelper )
- COMPONENTINFO( ::framework::MailToDispatcher )
- COMPONENTINFO( ::framework::NewMenuController )
- COMPONENTINFO( ::framework::ToolbarsMenuController )
- COMPONENTINFO( ::framework::MacrosMenuController )
- COMPONENTINFO( ::framework::FontSizeMenuController )
- COMPONENTINFO( ::framework::HeaderMenuController )
- COMPONENTINFO( ::framework::FooterMenuController )
- COMPONENTINFO( ::framework::FontMenuController )
- COMPONENTINFO( ::framework::ServiceHandler )
- COMPONENTINFO( ::framework::LogoImageStatusbarController )
- COMPONENTINFO( ::framework::LogoTextStatusbarController )
- COMPONENTINFO( ::framework::SimpleTextStatusbarController )
- COMPONENTINFO( ::framework::UriAbbreviation )
- COMPONENTINFO( ::framework::LanguageSelectionMenuController )
- COMPONENTINFO( ::framework::PopupMenuDispatcher )
- COMPONENTINFO( ::framework::DispatchHelper )
- COMPONENTINFO( ::framework::TabWindowService )
- COMPONENTINFO( ::framework::DispatchRecorder )
- COMPONENTINFO( ::framework::DispatchRecorderSupplier )
- COMPONENTINFO( ::framework::Oxt_Handler )
- COMPONENTINFO( ::framework::License )
- COMPONENTINFO( ::framework::PopupMenuController )
- )
-
COMPONENTGETFACTORY ( IFFACTORY( ::framework::MediaTypeDetectionHelper )
IFFACTORY( ::framework::MailToDispatcher ) else
IFFACTORY( ::framework::ServiceHandler ) else
diff --git a/framework/util/fwk.component b/framework/util/fwk.component
new file mode 100644
index 000000000000..e6ceb91e8090
--- /dev/null
+++ b/framework/util/fwk.component
@@ -0,0 +1,142 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.frame.SessionListener">
+ <service name="com.sun.star.frame.SessionListener"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.AddonsToolBarFactory">
+ <service name="com.sun.star.ui.ToolBarFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.AutoRecovery">
+ <service name="com.sun.star.frame.AutoRecovery"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.BackingComp">
+ <service name="com.sun.star.frame.StartModule"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.ControlMenuController">
+ <service name="com.sun.star.frame.PopupMenuController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.Desktop">
+ <service name="com.sun.star.frame.Desktop"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.DocumentAcceleratorConfiguration">
+ <service name="com.sun.star.ui.DocumentAcceleratorConfiguration"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.Frame">
+ <service name="com.sun.star.frame.Frame"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.GlobalAcceleratorConfiguration">
+ <service name="com.sun.star.ui.GlobalAcceleratorConfiguration"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.ImageManager">
+ <service name="com.sun.star.ui.ImageManager"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.JobExecutor">
+ <service name="com.sun.star.task.JobExecutor"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.LangSelectionStatusbarController">
+ <service name="com.sun.star.frame.StatusbarController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.LayoutManager">
+ <service name="com.sun.star.frame.LayoutManager"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.MenuBarFactory">
+ <service name="com.sun.star.ui.UIElementFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.ModuleAcceleratorConfiguration">
+ <service name="com.sun.star.ui.ModuleAcceleratorConfiguration"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.ModuleManager">
+ <service name="com.sun.star.frame.ModuleManager"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.ModuleUIConfigurationManager">
+ <service name="com.sun.star.ui.ModuleUIConfigurationManager"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.ModuleUIConfigurationManagerSupplier">
+ <service name="com.sun.star.ui.ModuleUIConfigurationManagerSupplier"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.ObjectMenuController">
+ <service name="com.sun.star.frame.PopupMenuController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.PathSettings">
+ <service name="com.sun.star.util.PathSettings"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.PathSubstitution">
+ <service name="com.sun.star.util.PathSubstitution"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.PopupMenuControllerFactory">
+ <service name="com.sun.star.frame.PopupMenuControllerFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.RecentFilesMenuController">
+ <service name="com.sun.star.frame.PopupMenuController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.StatusBarControllerFactory">
+ <service name="com.sun.star.frame.StatusbarControllerFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.StatusBarFactory">
+ <service name="com.sun.star.ui.StatusBarFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.StatusIndicatorFactory">
+ <service name="com.sun.star.task.StatusIndicatorFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.TaskCreator">
+ <service name="com.sun.star.frame.TaskCreator"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.ToolBarControllerFactory">
+ <service name="com.sun.star.frame.ToolBarControllerFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.ToolBarFactory">
+ <service name="com.sun.star.ui.ToolBarFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.UICategoryDescription">
+ <service name="com.sun.star.ui.UICategoryDescription"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.UICommandDescription">
+ <service name="com.sun.star.frame.UICommandDescription"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.UIConfigurationManager">
+ <service name="com.sun.star.ui.UIConfigurationManager"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.UIElementFactoryManager">
+ <service name="com.sun.star.ui.UIElementFactoryManager"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.URLTransformer">
+ <service name="com.sun.star.util.URLTransformer"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.WindowContentFactoryManager">
+ <service name="com.sun.star.ui.WindowContentFactoryManager"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.WindowStateConfiguration">
+ <service name="com.sun.star.ui.WindowStateConfiguration"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.jobs.JobDispatch">
+ <service name="com.sun.star.frame.ProtocolHandler"/>
+ </implementation>
+</component>
diff --git a/framework/util/fwl.component b/framework/util/fwl.component
new file mode 100644
index 000000000000..aa124d1cdc4b
--- /dev/null
+++ b/framework/util/fwl.component
@@ -0,0 +1,100 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sum.star.comp.framework.LanguageSelectionMenuController">
+ <service name="com.sun.star.frame.PopupMenuController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.DispatchRecorder">
+ <service name="com.sun.star.frame.DispatchRecorder"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.DispatchRecorderSupplier">
+ <service name="com.sun.star.frame.DispatchRecorderSupplier"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.FontMenuController">
+ <service name="com.sun.star.frame.PopupMenuController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.FontSizeMenuController">
+ <service name="com.sun.star.frame.PopupMenuController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.FooterMenuController">
+ <service name="com.sun.star.frame.PopupMenuController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.HeaderMenuController">
+ <service name="com.sun.star.frame.PopupMenuController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.License">
+ <service name="com.sun.star.task.Job"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.LogoImageStatusbarController">
+ <service name="com.sun.star.frame.StatusbarController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.LogoTextStatusbarController">
+ <service name="com.sun.star.frame.StatusbarController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.MacrosMenuController">
+ <service name="com.sun.star.frame.PopupMenuController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.MailToDispatcher">
+ <service name="com.sun.star.frame.ProtocolHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.MediaTypeDetectionHelper">
+ <service name="com.sun.star.frame.MediaTypeDetectionHelper"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.NewMenuController">
+ <service name="com.sun.star.frame.PopupMenuController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.OXTFileHandler">
+ <service name="com.sun.star.frame.ContentHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.PopupMenuController">
+ <service name="com.sun.star.frame.ToolbarController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.PopupMenuControllerDispatcher">
+ <service name="com.sun.star.frame.ProtocolHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.ServiceHandler">
+ <service name="com.sun.star.frame.ProtocolHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.SimpleTextStatusbarController">
+ <service name="com.sun.star.frame.StatusbarController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.TabWindowService">
+ <service name="com.sun.star.ui.dialogs.TabContainerWindow"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.ToolBarsMenuController">
+ <service name="com.sun.star.frame.PopupMenuController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.UriAbbreviation">
+ <service name="com.sun.star.util.UriAbbreviation"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.services.DispatchHelper">
+ <service name="com.sun.star.frame.DispatchHelper"/>
+ </implementation>
+</component>
diff --git a/framework/util/fwm.component b/framework/util/fwm.component
new file mode 100644
index 000000000000..624249ff4382
--- /dev/null
+++ b/framework/util/fwm.component
@@ -0,0 +1,43 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.framework.HelpOnStartup">
+ <service name="com.sun.star.task.Job"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.ShellJob">
+ <service name="com.sun.star.task.Job"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.SystemExecute">
+ <service name="com.sun.star.frame.ProtocolHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.framework.TabWindowFactory">
+ <service name="com.sun.star.frame.TabWindowFactory"/>
+ </implementation>
+</component>
diff --git a/framework/util/makefile.mk b/framework/util/makefile.mk
index edc5f67ce60a..a3f14341d3f3 100644
--- a/framework/util/makefile.mk
+++ b/framework/util/makefile.mk
@@ -423,3 +423,23 @@ $(MISC)$/$(SHL2TARGET).flt: makefile.mk
@echo _TI2>>$@
@echo LIBMAIN>>$@
@echo LibMain>>$@
+
+ALLTAR : $(MISC)/fwk.component $(MISC)/fwl.component $(MISC)/fwm.component
+
+$(MISC)/fwk.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ fwk.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL4TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt fwk.component
+
+$(MISC)/fwl.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ fwl.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL3TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt fwl.component
+
+$(MISC)/fwm.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ fwm.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL5TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt fwm.component
diff --git a/hwpfilter/prj/d.lst b/hwpfilter/prj/d.lst
index 32763725af8b..0848b21f27ac 100644
--- a/hwpfilter/prj/d.lst
+++ b/hwpfilter/prj/d.lst
@@ -2,4 +2,4 @@
..\%__SRC%\lib\ihwp*.lib %_DEST%\bin%_EXT%\ihwp*.lib
..\%__SRC%\lib\libhwp.so %_DEST%\lib%_EXT%\libhwp.so
..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
-
+..\%__SRC%\misc\hwp.component %_DEST%\xml%_EXT%\hwp.component
diff --git a/hwpfilter/source/hwp.component b/hwpfilter/source/hwp.component
new file mode 100644
index 000000000000..5280cfbbd46b
--- /dev/null
+++ b/hwpfilter/source/hwp.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.comp.hwpimport.HwpImportFilter">
+ <service name="com.sun.star.document.ImportFilter"/>
+ </implementation>
+</component>
diff --git a/hwpfilter/source/hwpreader.hxx b/hwpfilter/source/hwpreader.hxx
index c5fdb180f776..239a1ff225d6 100644
--- a/hwpfilter/source/hwpreader.hxx
+++ b/hwpfilter/source/hwpreader.hxx
@@ -345,30 +345,6 @@ extern "C"
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-
- sal_Bool SAL_CALL component_writeInfo(
- void * , void * pRegistryKey )
- {
- if (pRegistryKey)
- {
- try
- {
- Reference< XRegistryKey > xKey( reinterpret_cast< XRegistryKey * >( pRegistryKey ) );
-
- Reference< XRegistryKey > xNewKey = xKey->createKey(
- OUString::createFromAscii( "/" IMPLEMENTATION_NAME "/UNO/SERVICES" ) );
- xNewKey->createKey( OUString::createFromAscii( SERVICE_NAME ) );
-
- return sal_True;
- }
- catch (InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
- }
-
void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * )
{
void * pRet = 0;
diff --git a/hwpfilter/source/makefile.mk b/hwpfilter/source/makefile.mk
index 98b00d0618d6..494b4a30d74d 100644
--- a/hwpfilter/source/makefile.mk
+++ b/hwpfilter/source/makefile.mk
@@ -1,6 +1,4 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#************************************************************************* NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# Copyright 2000, 2010 Oracle and/or its affiliates.
#
@@ -95,3 +93,11 @@ DEF1NAME=$(SHL1TARGET)
# --- Tagets -------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/hwp.component
+
+$(MISC)/hwp.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ hwp.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt hwp.component
diff --git a/i18npool/prj/d.lst b/i18npool/prj/d.lst
index 54aefa732b89..8d27137424a9 100644
--- a/i18npool/prj/d.lst
+++ b/i18npool/prj/d.lst
@@ -46,3 +46,5 @@ mkdir: %_DEST%\inc%_EXT%\i18npool
..\%__SRC%\lib\libi18npaper*.so %_DEST%\lib%_EXT%\libi18npaper*.so
..\%__SRC%\lib\libi18npaper*.dylib %_DEST%\lib%_EXT%\libi18npaper*.dylib
+..\%__SRC%\misc\i18npool.component %_DEST%\xml%_EXT%\i18npool.component
+..\%__SRC%\misc\i18nsearch.component %_DEST%\xml%_EXT%\i18nsearch.component
diff --git a/i18npool/source/breakiterator/breakiteratorImpl.cxx b/i18npool/source/breakiterator/breakiteratorImpl.cxx
index e4e08d42df43..d22203d100c7 100644
--- a/i18npool/source/breakiterator/breakiteratorImpl.cxx
+++ b/i18npool/source/breakiterator/breakiteratorImpl.cxx
@@ -488,6 +488,10 @@ sal_Int16 BreakIteratorImpl::getScriptClass(sal_uInt32 currentChar)
// workaround for Coptic
else if ( 0x2C80 <= currentChar && 0x2CE3 >= currentChar)
nRet = ScriptType::LATIN;
+ // work-around for ligatures (see http://www.unicode.org/charts/PDF/UFB00.pdf)
+ else if ((0xFB00 <= currentChar && currentChar <= 0xFB06) ||
+ (0xFB13 <= currentChar && currentChar <= 0xFB17))
+ nRet = ScriptType::LATIN;
else {
UBlockCode block=ublock_getCode(currentChar);
sal_uInt16 i;
diff --git a/i18npool/source/localedata/data/makefile.mk b/i18npool/source/localedata/data/makefile.mk
index 1ac16a31fe37..1034de7f11bf 100644..100755
--- a/i18npool/source/localedata/data/makefile.mk
+++ b/i18npool/source/localedata/data/makefile.mk
@@ -39,6 +39,14 @@ LIBTARGET=NO
debug!=
.ENDIF
+.IF "$(OS)" == "WNT"
+my_file = file:///
+.ELSE
+my_file = file://
+.END
+
+my_components = sax.inbuild
+
# --- Settings -----------------------------------------------------
.INCLUDE : settings.mk
@@ -62,190 +70,6 @@ LINK_LOCALEDATA_ES_LIB=-l$(SHL2TARGET)
# --- Files --------------------------------------------------------
-# Interim files generated by the saxparser executable, for dependencies
-MY_MISC_CXXFILES = \
- $(MISC)$/localedata_af_NA.cxx \
- $(MISC)$/localedata_af_ZA.cxx \
- $(MISC)$/localedata_ak_GH.cxx \
- $(MISC)$/localedata_am_ET.cxx \
- $(MISC)$/localedata_ar_DZ.cxx \
- $(MISC)$/localedata_ar_EG.cxx \
- $(MISC)$/localedata_ar_LB.cxx \
- $(MISC)$/localedata_ar_SA.cxx \
- $(MISC)$/localedata_ar_TN.cxx \
- $(MISC)$/localedata_ast_ES.cxx \
- $(MISC)$/localedata_az_AZ.cxx \
- $(MISC)$/localedata_be_BY.cxx \
- $(MISC)$/localedata_bg_BG.cxx \
- $(MISC)$/localedata_bn_IN.cxx \
- $(MISC)$/localedata_bn_BD.cxx \
- $(MISC)$/localedata_br_FR.cxx \
- $(MISC)$/localedata_bs_BA.cxx \
- $(MISC)$/localedata_ca_ES.cxx \
- $(MISC)$/localedata_cs_CZ.cxx \
- $(MISC)$/localedata_cv_RU.cxx \
- $(MISC)$/localedata_cy_GB.cxx \
- $(MISC)$/localedata_da_DK.cxx \
- $(MISC)$/localedata_de_AT.cxx \
- $(MISC)$/localedata_de_CH.cxx \
- $(MISC)$/localedata_de_DE.cxx \
- $(MISC)$/localedata_de_LI.cxx \
- $(MISC)$/localedata_de_LU.cxx \
- $(MISC)$/localedata_dz_BT.cxx \
- $(MISC)$/localedata_ee_GH.cxx \
- $(MISC)$/localedata_el_GR.cxx \
- $(MISC)$/localedata_en_AU.cxx \
- $(MISC)$/localedata_en_BZ.cxx \
- $(MISC)$/localedata_en_CA.cxx \
- $(MISC)$/localedata_en_GB.cxx \
- $(MISC)$/localedata_en_GH.cxx \
- $(MISC)$/localedata_en_IE.cxx \
- $(MISC)$/localedata_en_IN.cxx \
- $(MISC)$/localedata_en_JM.cxx \
- $(MISC)$/localedata_en_NA.cxx \
- $(MISC)$/localedata_en_NZ.cxx \
- $(MISC)$/localedata_en_PH.cxx \
- $(MISC)$/localedata_en_TT.cxx \
- $(MISC)$/localedata_en_US.cxx \
- $(MISC)$/localedata_en_ZA.cxx \
- $(MISC)$/localedata_en_ZW.cxx \
- $(MISC)$/localedata_eo.cxx \
- $(MISC)$/localedata_es_AR.cxx \
- $(MISC)$/localedata_es_BO.cxx \
- $(MISC)$/localedata_es_CL.cxx \
- $(MISC)$/localedata_es_CO.cxx \
- $(MISC)$/localedata_es_CR.cxx \
- $(MISC)$/localedata_es_DO.cxx \
- $(MISC)$/localedata_es_EC.cxx \
- $(MISC)$/localedata_es_ES.cxx \
- $(MISC)$/localedata_es_GT.cxx \
- $(MISC)$/localedata_es_HN.cxx \
- $(MISC)$/localedata_es_MX.cxx \
- $(MISC)$/localedata_es_NI.cxx \
- $(MISC)$/localedata_es_PA.cxx \
- $(MISC)$/localedata_es_PE.cxx \
- $(MISC)$/localedata_es_PR.cxx \
- $(MISC)$/localedata_es_PY.cxx \
- $(MISC)$/localedata_es_SV.cxx \
- $(MISC)$/localedata_es_UY.cxx \
- $(MISC)$/localedata_es_VE.cxx \
- $(MISC)$/localedata_et_EE.cxx \
- $(MISC)$/localedata_eu.cxx \
- $(MISC)$/localedata_fa_IR.cxx \
- $(MISC)$/localedata_fi_FI.cxx \
- $(MISC)$/localedata_fo_FO.cxx \
- $(MISC)$/localedata_fr_BE.cxx \
- $(MISC)$/localedata_fr_CA.cxx \
- $(MISC)$/localedata_fr_CH.cxx \
- $(MISC)$/localedata_fr_FR.cxx \
- $(MISC)$/localedata_fr_LU.cxx \
- $(MISC)$/localedata_fr_MC.cxx \
- $(MISC)$/localedata_fur_IT.cxx \
- $(MISC)$/localedata_fy_NL.cxx \
- $(MISC)$/localedata_ga_IE.cxx \
- $(MISC)$/localedata_gl_ES.cxx \
- $(MISC)$/localedata_gsc_FR.cxx \
- $(MISC)$/localedata_gu_IN.cxx \
- $(MISC)$/localedata_gug_PY.cxx \
- $(MISC)$/localedata_ha_GH.cxx \
- $(MISC)$/localedata_he_IL.cxx \
- $(MISC)$/localedata_hi_IN.cxx \
- $(MISC)$/localedata_hil_PH.cxx \
- $(MISC)$/localedata_hr_HR.cxx \
- $(MISC)$/localedata_hsb_DE.cxx \
- $(MISC)$/localedata_hu_HU.cxx \
- $(MISC)$/localedata_hy_AM.cxx \
- $(MISC)$/localedata_ia.cxx \
- $(MISC)$/localedata_id_ID.cxx \
- $(MISC)$/localedata_is_IS.cxx \
- $(MISC)$/localedata_it_CH.cxx \
- $(MISC)$/localedata_it_IT.cxx \
- $(MISC)$/localedata_ja_JP.cxx \
- $(MISC)$/localedata_ka_GE.cxx \
- $(MISC)$/localedata_kk_KZ.cxx \
- $(MISC)$/localedata_kl_GL.cxx \
- $(MISC)$/localedata_km_KH.cxx \
- $(MISC)$/localedata_kn_IN.cxx \
- $(MISC)$/localedata_ko_KR.cxx \
- $(MISC)$/localedata_ku_TR.cxx \
- $(MISC)$/localedata_ky_KG.cxx \
- $(MISC)$/localedata_la_VA.cxx \
- $(MISC)$/localedata_lb_LU.cxx \
- $(MISC)$/localedata_lg_UG.cxx \
- $(MISC)$/localedata_ln_CD.cxx \
- $(MISC)$/localedata_lo_LA.cxx \
- $(MISC)$/localedata_lt_LT.cxx \
- $(MISC)$/localedata_ltg_LV.cxx \
- $(MISC)$/localedata_lv_LV.cxx \
- $(MISC)$/localedata_mai_IN.cxx \
- $(MISC)$/localedata_mk_MK.cxx \
- $(MISC)$/localedata_ml_IN.cxx \
- $(MISC)$/localedata_mn_MN.cxx \
- $(MISC)$/localedata_mr_IN.cxx \
- $(MISC)$/localedata_ms_MY.cxx \
- $(MISC)$/localedata_mt_MT.cxx \
- $(MISC)$/localedata_my_MM.cxx \
- $(MISC)$/localedata_nb_NO.cxx \
- $(MISC)$/localedata_ne_NP.cxx \
- $(MISC)$/localedata_nl_BE.cxx \
- $(MISC)$/localedata_nl_NL.cxx \
- $(MISC)$/localedata_nn_NO.cxx \
- $(MISC)$/localedata_no_NO.cxx \
- $(MISC)$/localedata_nr_ZA.cxx \
- $(MISC)$/localedata_nso_ZA.cxx \
- $(MISC)$/localedata_oc_FR.cxx \
- $(MISC)$/localedata_om_ET.cxx \
- $(MISC)$/localedata_or_IN.cxx \
- $(MISC)$/localedata_pa_IN.cxx \
- $(MISC)$/localedata_pl_PL.cxx \
- $(MISC)$/localedata_plt_MG.cxx \
- $(MISC)$/localedata_pt_BR.cxx \
- $(MISC)$/localedata_pt_PT.cxx \
- $(MISC)$/localedata_ro_RO.cxx \
- $(MISC)$/localedata_rue_SK.cxx \
- $(MISC)$/localedata_ru_RU.cxx \
- $(MISC)$/localedata_rw_RW.cxx \
- $(MISC)$/localedata_sg_CF.cxx \
- $(MISC)$/localedata_sh_ME.cxx \
- $(MISC)$/localedata_sh_RS.cxx \
- $(MISC)$/localedata_sh_YU.cxx \
- $(MISC)$/localedata_shs_CA.cxx \
- $(MISC)$/localedata_sk_SK.cxx \
- $(MISC)$/localedata_sl_SI.cxx \
- $(MISC)$/localedata_so_SO.cxx \
- $(MISC)$/localedata_sr_ME.cxx \
- $(MISC)$/localedata_sr_RS.cxx \
- $(MISC)$/localedata_sr_YU.cxx \
- $(MISC)$/localedata_ss_ZA.cxx \
- $(MISC)$/localedata_st_ZA.cxx \
- $(MISC)$/localedata_sv_FI.cxx \
- $(MISC)$/localedata_sv_SE.cxx \
- $(MISC)$/localedata_sw_TZ.cxx \
- $(MISC)$/localedata_ta_IN.cxx \
- $(MISC)$/localedata_te_IN.cxx \
- $(MISC)$/localedata_tg_TJ.cxx \
- $(MISC)$/localedata_th_TH.cxx \
- $(MISC)$/localedata_ti_ER.cxx \
- $(MISC)$/localedata_tk_TM.cxx \
- $(MISC)$/localedata_tn_ZA.cxx \
- $(MISC)$/localedata_tpi_PG.cxx \
- $(MISC)$/localedata_tr_TR.cxx \
- $(MISC)$/localedata_ts_ZA.cxx \
- $(MISC)$/localedata_ug_CN.cxx \
- $(MISC)$/localedata_uk_UA.cxx \
- $(MISC)$/localedata_uz_UZ.cxx \
- $(MISC)$/localedata_ve_ZA.cxx \
- $(MISC)$/localedata_vi_VN.cxx \
- $(MISC)$/localedata_wa_BE.cxx \
- $(MISC)$/localedata_xh_ZA.cxx \
- $(MISC)$/localedata_zh_CN.cxx \
- $(MISC)$/localedata_zh_HK.cxx \
- $(MISC)$/localedata_zh_MO.cxx \
- $(MISC)$/localedata_zh_SG.cxx \
- $(MISC)$/localedata_zh_TW.cxx \
- $(MISC)$/localedata_zu_ZA.cxx
-
-
# English Locales
SHL1TARGET=localedata_en
.IF "$(GUI)" == "OS2"
@@ -504,13 +328,28 @@ DEPOBJFILES= \
$(SHL3OBJS) \
$(SHL4OBJS)
+# Interim files generated by the saxparser executable, for dependencies
+MY_MISC_CXXFILES := $(foreach,i,$(DEPOBJFILES) $(MISC)/$(i:b).cxx)
+
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
-$(MY_MISC_CXXFILES) : $(BIN)$/saxparser$(EXECPOST)
+$(MY_MISC_CXXFILES) : $(BIN)$/saxparser$(EXECPOST) $(MISC)/saxparser.rdb
$(MISC)$/localedata_%.cxx : %.xml
- $(AUGMENT_LIBRARY_PATH) $(WRAPCMD) $(BIN)$/saxparser $* $< $@ $(BIN)$/$(@:b).rdb $(SOLARBINDIR)$/types.rdb
+ $(AUGMENT_LIBRARY_PATH) $(WRAPCMD) $(BIN)$/saxparser $* $< $@ \
+ $(my_file)$(PWD)/$(MISC)/saxparser.rdb $(SOLARBINDIR)$/types.rdb \
+ -env:OOO_INBUILD_SHAREDLIB_DIR=$(my_file)$(SOLARSHAREDBIN)
$(RM) $(BIN)$/$(@:b).rdb
+$(MISC)/saxparser.rdb .ERRREMOVE : $(SOLARENV)/bin/packcomponents.xslt \
+ $(MISC)/saxparser.input \
+ $(my_components:^"$(SOLARXMLDIR)/":+".component")
+ $(XSLTPROC) --nonet --stringparam prefix $(SOLARXMLDIR)/ -o $@ \
+ $(SOLARENV)/bin/packcomponents.xslt $(MISC)/saxparser.input
+
+$(MISC)/saxparser.input :
+ echo \
+ '<list>$(my_components:^"<filename>":+".component</filename>")</list>' \
+ > $@
diff --git a/i18npool/source/localedata/saxparser.cxx b/i18npool/source/localedata/saxparser.cxx
index 9787b9c810a6..5118a827b260 100644
--- a/i18npool/source/localedata/saxparser.cxx
+++ b/i18npool/source/localedata/saxparser.cxx
@@ -34,7 +34,6 @@
#include "sal/main.h"
-#include <com/sun/star/registry/XImplementationRegistration.hpp>
#include <com/sun/star/lang/XComponent.hpp>
#include <com/sun/star/xml/sax/SAXParseException.hpp>
@@ -339,7 +338,7 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
{
xSMgr = createRegistryServiceFactory(
::rtl::OUString::createFromAscii(argv[4]),
- ::rtl::OUString::createFromAscii(argv[5]) );
+ ::rtl::OUString::createFromAscii(argv[5]), true );
}
catch ( Exception& )
{
@@ -347,38 +346,6 @@ SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
exit(1);
}
- Reference < XImplementationRegistration > xReg;
- try
- {
- // Create registration service
- Reference < XInterface > x = xSMgr->createInstance(
- OUString::createFromAscii( "com.sun.star.registry.ImplementationRegistration" ) );
- xReg = Reference< XImplementationRegistration > ( x , UNO_QUERY );
- }
- catch( Exception & ) {
- printf( "Couldn't create ImplementationRegistration service\n" );
- exit(1);
- }
-
- OString sTestName;
- try
- {
- // Load dll for the tested component
- OUString aDllName =
- OUString::createFromAscii( "sax.uno" SAL_DLLEXTENSION );
- xReg->registerImplementation(
- OUString::createFromAscii( "com.sun.star.loader.SharedLibrary" ),
- aDllName,
- Reference< XSimpleRegistry > () );
- }
- catch( Exception &e ) {
- printf( "Couldn't raise sax.uno library!\n" );
- printf( "%s\n" , OUStringToOString( e.Message , RTL_TEXTENCODING_ASCII_US ).getStr() );
-
- exit(1);
- }
-
-
//--------------------------------
// parser demo
// read xml from a file and count elements
diff --git a/i18npool/source/registerservices/registerservices.cxx b/i18npool/source/registerservices/registerservices.cxx
index 280e12dfe4f7..0671e5669956 100644
--- a/i18npool/source/registerservices/registerservices.cxx
+++ b/i18npool/source/registerservices/registerservices.cxx
@@ -580,29 +580,6 @@ void SAL_CALL component_getImplementationEnvironment( const sal_Char** ppEnvType
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-sal_Bool SAL_CALL component_writeInfo( void* /*_pServiceManager*/, void* _pRegistryKey )
-{
- if (_pRegistryKey)
- {
- ::com::sun::star::registry::XRegistryKey * pRegistryKey =
- reinterpret_cast< ::com::sun::star::registry::XRegistryKey* >(
- _pRegistryKey );
- ::com::sun::star::uno::Reference<
- ::com::sun::star::registry::XRegistryKey > xNewKey;
-
- for( const InstancesArray* pArr = aInstances; pArr->pServiceNm; ++pArr )
- {
- xNewKey = pRegistryKey->createKey(
- ::rtl::OUString::createFromAscii( pArr->pImplementationNm ) );
- xNewKey = xNewKey->createKey(
- ::rtl::OUString::createFromAscii( "/UNO/SERVICES" ) );
- xNewKey->createKey(
- ::rtl::OUString::createFromAscii( pArr->pServiceNm ) );
- }
- }
- return sal_True;
-}
-
void* SAL_CALL component_getFactory( const sal_Char* sImplementationName, void* _pServiceManager, void* /*_pRegistryKey*/ )
{
void* pRet = NULL;
diff --git a/i18npool/source/search/i18nsearch.component b/i18npool/source/search/i18nsearch.component
new file mode 100644
index 000000000000..6288bcd7c840
--- /dev/null
+++ b/i18npool/source/search/i18nsearch.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.util.TextSearch_i18n">
+ <service name="com.sun.star.util.TextSearch"/>
+ </implementation>
+</component>
diff --git a/i18npool/source/search/makefile.mk b/i18npool/source/search/makefile.mk
index aed976edd896..372b32a216d1 100644
--- a/i18npool/source/search/makefile.mk
+++ b/i18npool/source/search/makefile.mk
@@ -76,3 +76,11 @@ DEF1NAME= $(SHL1TARGET)
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/i18nsearch.component
+
+$(MISC)/i18nsearch.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ i18nsearch.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt i18nsearch.component
diff --git a/i18npool/source/search/textsearch.cxx b/i18npool/source/search/textsearch.cxx
index dea4eca2a618..e71e0fc0cd71 100644
--- a/i18npool/source/search/textsearch.cxx
+++ b/i18npool/source/search/textsearch.cxx
@@ -987,25 +987,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-sal_Bool SAL_CALL component_writeInfo(
- void* /*_pServiceManager*/, void* _pRegistryKey )
-{
- if (_pRegistryKey)
- {
- ::com::sun::star::registry::XRegistryKey * pRegistryKey =
- reinterpret_cast< ::com::sun::star::registry::XRegistryKey* >(
- _pRegistryKey );
- ::com::sun::star::uno::Reference<
- ::com::sun::star::registry::XRegistryKey > xNewKey;
-
- xNewKey = pRegistryKey->createKey( getImplementationName_Static() );
- xNewKey = xNewKey->createKey(
- ::rtl::OUString::createFromAscii( "/UNO/SERVICES" ) );
- xNewKey->createKey( getServiceName_Static() );
- }
- return sal_True;
-}
-
void* SAL_CALL component_getFactory( const sal_Char* sImplementationName,
void* _pServiceManager, void* /*_pRegistryKey*/ )
{
diff --git a/i18npool/util/i18npool.component b/i18npool/util/i18npool.component
new file mode 100644
index 000000000000..d11606efb6d4
--- /dev/null
+++ b/i18npool/util/i18npool.component
@@ -0,0 +1,484 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.i18n.BreakIterator">
+ <service name="com.sun.star.i18n.BreakIterator"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.BreakIterator_Unicode">
+ <service name="com.sun.star.i18n.BreakIterator_Unicode"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.BreakIterator_ja">
+ <service name="com.sun.star.i18n.BreakIterator_ja"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.BreakIterator_ko">
+ <service name="com.sun.star.i18n.BreakIterator_ko"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.BreakIterator_th">
+ <service name="com.sun.star.i18n.BreakIterator_th"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.BreakIterator_zh">
+ <service name="com.sun.star.i18n.BreakIterator_zh"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.BreakIterator_zh_TW">
+ <service name="com.sun.star.i18n.BreakIterator_zh_TW"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.CalendarImpl">
+ <service name="com.sun.star.i18n.LocaleCalendar"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Calendar_ROC">
+ <service name="com.sun.star.i18n.Calendar_ROC"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Calendar_buddhist">
+ <service name="com.sun.star.i18n.Calendar_buddhist"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Calendar_gengou">
+ <service name="com.sun.star.i18n.Calendar_gengou"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Calendar_gregorian">
+ <service name="com.sun.star.i18n.Calendar_gregorian"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Calendar_hanja">
+ <service name="com.sun.star.i18n.Calendar_hanja"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Calendar_hanja_yoil">
+ <service name="com.sun.star.i18n.Calendar_hanja_yoil"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Calendar_hijri">
+ <service name="com.sun.star.i18n.Calendar_hijri"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Calendar_jewish">
+ <service name="com.sun.star.i18n.Calendar_jewish"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.ChapterCollator">
+ <service name="com.sun.star.i18n.ChapterCollator"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.CharacterClassification">
+ <service name="com.sun.star.i18n.CharacterClassification"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.CharacterClassification_Unicode">
+ <service name="com.sun.star.i18n.CharacterClassification_Unicode"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Collator">
+ <service name="com.sun.star.i18n.Collator"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Collator_Unicode">
+ <service name="com.sun.star.i18n.Collator_Unicode"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.IndexEntrySupplier">
+ <service name="com.sun.star.i18n.IndexEntrySupplier"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.IndexEntrySupplier_Unicode">
+ <service name="com.sun.star.i18n.IndexEntrySupplier_Unicode"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.IndexEntrySupplier_asian">
+ <service name="com.sun.star.i18n.IndexEntrySupplier_asian"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first)">
+ <service name="com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first)"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first) (grouped by consonant)">
+ <service name="com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first) (grouped by consonant)"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first) (grouped by syllable)">
+ <service name="com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric first) (grouped by syllable)"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last)">
+ <service name="com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last)"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last) (grouped by consonant)">
+ <service name="com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last) (grouped by consonant)"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last) (grouped by syllable)">
+ <service name="com.sun.star.i18n.IndexEntrySupplier_ja_phonetic (alphanumeric last) (grouped by syllable)"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.InputSequenceChecker">
+ <service name="com.sun.star.i18n.InputSequenceChecker"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.InputSequenceChecker_hi">
+ <service name="com.sun.star.i18n.InputSequenceChecker_hi"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.InputSequenceChecker_th">
+ <service name="com.sun.star.i18n.InputSequenceChecker_th"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.LocaleData">
+ <service name="com.sun.star.i18n.LocaleData"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.NativeNumberSupplier">
+ <service name="com.sun.star.i18n.NativeNumberSupplier"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.NumberFormatCodeMapper">
+ <service name="com.sun.star.i18n.NumberFormatMapper"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.OrdinalSuffix">
+ <service name="com.sun.star.i18n.OrdinalSuffix"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.ScriptTypeDetector">
+ <service name="com.sun.star.i18n.ScriptTypeDetector"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.TextConversion">
+ <service name="com.sun.star.i18n.TextConversion"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.TextConversion_ko">
+ <service name="com.sun.star.i18n.TextConversion_ko"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.TextConversion_zh">
+ <service name="com.sun.star.i18n.TextConversion_zh"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration">
+ <service name="com.sun.star.i18n.Transliteration"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.CharToNumEastIndic_ar">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.CharToNumFullwidth">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.CharToNumHangul_ko">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.CharToNumIndic_ar">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.CharToNumIndic_hi">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.CharToNumKanjiShort_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.CharToNumKanjiTraditional_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.CharToNumLower_ko">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.CharToNumLower_zh_CN">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.CharToNumLower_zh_TW">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.CharToNumUpper_ko">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.CharToNumUpper_zh_CN">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.CharToNumUpper_zh_TW">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.CharToNum_th">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.FULLWIDTHKATAKANA_HALFWIDTHKATAKANA">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.FULLWIDTH_HALFWIDTH">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.FULLWIDTH_HALFWIDTH_LIKE_ASC">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.HALFWIDTHKATAKANA_FULLWIDTHKATAKANA">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.HALFWIDTH_FULLWIDTH">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.HALFWIDTH_FULLWIDTH_LIKE_JIS">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.HIRAGANA_KATAKANA">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.IGNORE_CASE">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.IGNORE_KANA">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.IGNORE_WIDTH">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.KATAKANA_HIRAGANA">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.LOWERCASE_UPPERCASE">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToCharEastIndic_ar">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToCharFullwidth">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToCharHalfwidth">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToCharHangul_ko">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToCharIndic_ar">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToCharIndic_hi">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToCharKanjiShort_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToCharKanjiTraditional_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToCharLower_ko">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToCharLower_zh_CN">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToCharLower_zh_TW">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToCharUpper_ko">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToCharUpper_zh_CN">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToCharUpper_zh_TW">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToChar_th">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextAIUFullWidth_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextAIUHalfWidth_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextCircledNumber">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextDate_zh">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextDiZi_zh">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextFormalHangul_ko">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextFormalLower_ko">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextFormalUpper_ko">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextFullwidth_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextFullwidth_ko">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextFullwidth_zh_CN">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextFullwidth_zh_TW">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextHangulCircledJamo_ko">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextHangulCircledSyllable_ko">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextHangulJamo_ko">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextHangulSyllable_ko">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextIROHAFullWidth_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextIROHAHalfWidth_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextInformalHangul_ko">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextInformalLower_ko">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextInformalUpper_ko">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextKanjiLongModern_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextKanjiLongTraditional_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextKanjiShortModern_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextKanjiShortTraditional_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextLower_zh_CN">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextLower_zh_TW">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextTianGan_zh">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextUpper_zh_CN">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.NumToTextUpper_zh_TW">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.SENTENCE_CASE">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.TITLE_CASE">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.TOGGLE_CASE">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.TextToChuyin_zh_TW">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.TextToNumFormalHangul_ko">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.TextToNumFormalLower_ko">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.TextToNumFormalUpper_ko">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.TextToNumInformalHangul_ko">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.TextToNumInformalLower_ko">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.TextToNumInformalUpper_ko">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.TextToNumKanjiLongModern_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.TextToNumKanjiLongTraditional_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.TextToNumLower_zh_CN">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.TextToNumLower_zh_TW">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.TextToNumUpper_zh_CN">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.TextToNumUpper_zh_TW">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.TextToPinyin_zh_CN">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.UPPERCASE_LOWERCASE">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.ignoreBaFa_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.ignoreHyuByu_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.ignoreIandEfollowedByYa_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.ignoreIterationMark_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.ignoreKana">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.ignoreKiKuFollowedBySa_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.ignoreMiddleDot_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.ignoreMinusSign_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.ignoreProlongedSoundMark_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.ignoreSeZe_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.ignoreSeparator_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.ignoreSize_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.ignoreSpace_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.ignoreTiJi_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.ignoreTraditionalKana_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.ignoreTraditionalKanji_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.ignoreZiZu_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.largeToSmall_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.i18n.Transliteration.smallToLarge_ja_JP">
+ <service name="com.sun.star.i18n.Transliteration.l10n"/>
+ </implementation>
+ <implementation name="com.sun.star.text.DefaultNumberingProvider">
+ <service name="com.sun.star.text.DefaultNumberingProvider"/>
+ </implementation>
+</component>
diff --git a/i18npool/util/makefile.mk b/i18npool/util/makefile.mk
index 57f802be62fe..8c9f1a83b2c0 100644
--- a/i18npool/util/makefile.mk
+++ b/i18npool/util/makefile.mk
@@ -79,3 +79,11 @@ SHL1STDLIBS= \
# --- Targets ------------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/i18npool.component
+
+$(MISC)/i18npool.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ i18npool.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt i18npool.component
diff --git a/icu/makefile.mk b/icu/makefile.mk
index 92c5744a67f7..7542aeb1ccd1 100644
--- a/icu/makefile.mk
+++ b/icu/makefile.mk
@@ -78,11 +78,6 @@ CC:=gcc $(EXTRA_CFLAGS)
.ENDIF # "$(EXTRA_CFLAGS)"!=""
.ENDIF # "$(OS)"=="MACOSX"
-# Disable executable stack
-.IF "$(OS)$(COM)"=="LINUXGCC"
-icu_LDFLAGS+=-Wl,-z,noexecstack
-.ENDIF
-
icu_CFLAGS+=-O $(ARCH_FLAGS) $(EXTRA_CDEFS)
icu_LDFLAGS+=$(EXTRA_LINKFLAGS)
icu_CXXFLAGS+=-O $(ARCH_FLAGS) $(EXTRA_CDEFS)
diff --git a/instsetoo_native/util/openoffice.lst b/instsetoo_native/util/openoffice.lst
index 5d83c5f98baa..e1f630ee19b9 100644
--- a/instsetoo_native/util/openoffice.lst
+++ b/instsetoo_native/util/openoffice.lst
@@ -76,7 +76,6 @@ OpenOffice
PACKAGEVERSION 3.4.0
PACKAGEREVISION {milestone}
LICENSENAME LGPL
- SERVICESPROJEKT 1
GLOBALFILEGID gid_File_Lib_Vcl
GLOBALPATCHFILEGID gid_File_Txt_Patchfiles
SPELLCHECKERFILE spellchecker_selection.txt
@@ -140,7 +139,6 @@ OpenOffice_wJRE
PACKAGEVERSION 3.4.0
PACKAGEREVISION {milestone}
LICENSENAME LGPL
- SERVICESPROJEKT 1
WITHJREPRODUCT 1
GLOBALFILEGID gid_File_Lib_Vcl
GLOBALPATCHFILEGID gid_File_Txt_Patchfiles
@@ -211,7 +209,6 @@ OpenOffice_Dev
PACKAGEVERSION 3.4.0
PACKAGEREVISION {milestone}
LICENSENAME LGPL
- SERVICESPROJEKT 1
GLOBALFILEGID gid_File_Lib_Vcl
GLOBALPATCHFILEGID gid_File_Txt_Patchfiles
SPELLCHECKERFILE spellchecker_selection.txt
@@ -264,7 +261,6 @@ URE
LONG_PRODUCTEXTENSION
SHORT_PRODUCTEXTENSION
LICENSENAME LGPL
- SERVICESPROJEKT 1
SETSTATICPATH 1
NOVERSIONINDIRNAME 1
PCPFILENAME ure.pcp
@@ -274,7 +270,6 @@ URE
DOWNLOADBITMAP urebitmap.bmp
DOWNLOADSETUPICO ooosetup.ico
DONTUSESTARTMENUFOLDER 1
- SERVICESPROJEKT 1
RELATIVE_PATHES_IN_DDF 1
STARTCENTER_ADDFEATURE_URL http://tools.services.openoffice.org/forward/OpenOffice.org/extensions.jsp?cid=920794
STARTCENTER_INFO_URL http://tools.services.openoffice.org/forward/OpenOffice.org/homepage.jsp
@@ -287,7 +282,7 @@ URE
active 1
compression 5
script ure
- include {solarenvpath}/{os}/loader2,{solarpath}/bin.{minor}/ure,{solarpath}/bin.{minor},{solarpath}/bin.{minor}/osl,{solarpath}/lib.{minor},{solarenvpath}/{os}/MS
+ include {solarenvpath}/{os}/loader2,{solarpath}/bin.{minor}/ure,{solarpath}/bin.{minor},{solarpath}/bin.{minor}/osl,{solarpath}/lib.{minor},{solarpath}/xml.{minor},{solarenvpath}/{os}/MS
}
}
@@ -421,7 +416,6 @@ BrOffice
PACKAGEVERSION 3.4.0
PACKAGEREVISION {milestone}
LICENSENAME LGPL
- SERVICESPROJEKT 1
SETSTATICPATH 1
GLOBALFILEGID gid_File_Lib_Vcl
GLOBALPATCHFILEGID gid_File_Txt_Patchfiles
@@ -491,7 +485,6 @@ BrOffice_wJRE
PACKAGEVERSION 3.4.0
PACKAGEREVISION {milestone}
LICENSENAME LGPL
- SERVICESPROJEKT 1
WITHJREPRODUCT 1
SETSTATICPATH 1
GLOBALFILEGID gid_File_Lib_Vcl
@@ -563,7 +556,6 @@ BrOffice_Dev
PACKAGEVERSION 3.4.0
PACKAGEREVISION {milestone}
LICENSENAME LGPL
- SERVICESPROJEKT 1
SETSTATICPATH 1
GLOBALFILEGID gid_File_Lib_Vcl
GLOBALPATCHFILEGID gid_File_Txt_Patchfiles
diff --git a/io/prj/d.lst b/io/prj/d.lst
index 9d19e5f8e41b..eaadf64dba11 100644
--- a/io/prj/d.lst
+++ b/io/prj/d.lst
@@ -5,3 +5,8 @@
..\source\stm\stm.xml %_DEST%\xml%_EXT%\streams.uno.xml
..\%__SRC%\lib\*.so %_DEST%\lib%_EXT%\*
..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*
+..\%__SRC%\misc\acceptor.component %_DEST%\xml%_EXT%\acceptor.component
+..\%__SRC%\misc\connector.component %_DEST%\xml%_EXT%\connector.component
+..\%__SRC%\misc\streams.component %_DEST%\xml%_EXT%\streams.component
+..\%__SRC%\misc\textinstream.component %_DEST%\xml%_EXT%\textinstream.component
+..\%__SRC%\misc\textoutstream.component %_DEST%\xml%_EXT%\textoutstream.component
diff --git a/io/source/TextInputStream/TextInputStream.cxx b/io/source/TextInputStream/TextInputStream.cxx
index 1c891f1b839e..bb91337fc40a 100644
--- a/io/source/TextInputStream/TextInputStream.cxx
+++ b/io/source/TextInputStream/TextInputStream.cxx
@@ -521,12 +521,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- return component_writeInfoHelper( pServiceManager, pRegistryKey, g_entries );
-}
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/io/source/TextInputStream/makefile.mk b/io/source/TextInputStream/makefile.mk
index 3c0cd5c5702d..ea476c57c0eb 100644
--- a/io/source/TextInputStream/makefile.mk
+++ b/io/source/TextInputStream/makefile.mk
@@ -59,3 +59,11 @@ DEF1NAME= $(SHL1TARGET)
.ENDIF # L10N_framework
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/textinstream.component
+
+$(MISC)/textinstream.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt textinstream.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_URE_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt textinstream.component
diff --git a/io/source/TextInputStream/textinstream.component b/io/source/TextInputStream/textinstream.component
new file mode 100644
index 000000000000..6ac7d2a9825b
--- /dev/null
+++ b/io/source/TextInputStream/textinstream.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.io.TextInputStream">
+ <service name="com.sun.star.io.TextInputStream"/>
+ </implementation>
+</component>
diff --git a/io/source/TextOutputStream/TextOutputStream.cxx b/io/source/TextOutputStream/TextOutputStream.cxx
index 0497dc65e779..b504941afea7 100644
--- a/io/source/TextOutputStream/TextOutputStream.cxx
+++ b/io/source/TextOutputStream/TextOutputStream.cxx
@@ -319,12 +319,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- return component_writeInfoHelper( pServiceManager, pRegistryKey, g_entries );
-}
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/io/source/TextOutputStream/makefile.mk b/io/source/TextOutputStream/makefile.mk
index ad78178f8bfa..2c9d4eb2efbc 100644
--- a/io/source/TextOutputStream/makefile.mk
+++ b/io/source/TextOutputStream/makefile.mk
@@ -60,3 +60,11 @@ DEF1NAME= $(SHL1TARGET)
.ENDIF # L10N_framework
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/textoutstream.component
+
+$(MISC)/textoutstream.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt textoutstream.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_URE_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt textoutstream.component
diff --git a/io/source/TextOutputStream/textoutstream.component b/io/source/TextOutputStream/textoutstream.component
new file mode 100644
index 000000000000..afbc50ab8502
--- /dev/null
+++ b/io/source/TextOutputStream/textoutstream.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.io.TextOutputStream">
+ <service name="com.sun.star.io.TextOutputStream"/>
+ </implementation>
+</component>
diff --git a/io/source/acceptor/acceptor.component b/io/source/acceptor/acceptor.component
new file mode 100644
index 000000000000..81e0399b2024
--- /dev/null
+++ b/io/source/acceptor/acceptor.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.io.Acceptor">
+ <service name="com.sun.star.connection.Acceptor"/>
+ </implementation>
+</component>
diff --git a/io/source/acceptor/acceptor.cxx b/io/source/acceptor/acceptor.cxx
index 4f973065899a..2d15aa340694 100644
--- a/io/source/acceptor/acceptor.cxx
+++ b/io/source/acceptor/acceptor.cxx
@@ -366,12 +366,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- return component_writeInfoHelper( pServiceManager, pRegistryKey, g_entries );
-}
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/io/source/acceptor/makefile.mk b/io/source/acceptor/makefile.mk
index 3da3fbe18913..bbc7ac6d3836 100644
--- a/io/source/acceptor/makefile.mk
+++ b/io/source/acceptor/makefile.mk
@@ -71,3 +71,11 @@ DEF1NAME= $(SHL1TARGET)
.ENDIF # L10N_framework
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/acceptor.component
+
+$(MISC)/acceptor.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ acceptor.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_URE_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt acceptor.component
diff --git a/io/source/connector/connector.component b/io/source/connector/connector.component
new file mode 100644
index 000000000000..95fa72aa50d7
--- /dev/null
+++ b/io/source/connector/connector.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.io.Connector">
+ <service name="com.sun.star.connection.Connector"/>
+ </implementation>
+</component>
diff --git a/io/source/connector/connector.cxx b/io/source/connector/connector.cxx
index cac3471beed1..2b0e8d66ad34 100644
--- a/io/source/connector/connector.cxx
+++ b/io/source/connector/connector.cxx
@@ -278,12 +278,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- return component_writeInfoHelper( pServiceManager, pRegistryKey, g_entries );
-}
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/io/source/connector/makefile.mk b/io/source/connector/makefile.mk
index 7f12b850f1e3..e3a67abe66ff 100644
--- a/io/source/connector/makefile.mk
+++ b/io/source/connector/makefile.mk
@@ -71,3 +71,11 @@ DEF1NAME= $(SHL1TARGET)
.ENDIF # L10N_framework
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/connector.component
+
+$(MISC)/connector.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ connector.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_URE_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt connector.component
diff --git a/io/source/stm/factreg.cxx b/io/source/stm/factreg.cxx
index 304b353b1dda..364374dc6726 100644
--- a/io/source/stm/factreg.cxx
+++ b/io/source/stm/factreg.cxx
@@ -110,12 +110,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- return component_writeInfoHelper( pServiceManager, pRegistryKey, g_entries );
-}
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/io/source/stm/makefile.mk b/io/source/stm/makefile.mk
index a6a163eca4e2..52dd0c492823 100644
--- a/io/source/stm/makefile.mk
+++ b/io/source/stm/makefile.mk
@@ -75,3 +75,10 @@ DEF1NAME= $(SHL1TARGET)
.INCLUDE : target.mk
+ALLTAR : $(MISC)/streams.component
+
+$(MISC)/streams.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ streams.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_URE_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt streams.component
diff --git a/io/source/stm/streams.component b/io/source/stm/streams.component
new file mode 100644
index 000000000000..76890d360bb3
--- /dev/null
+++ b/io/source/stm/streams.component
@@ -0,0 +1,55 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.io.Pump">
+ <service name="com.sun.star.io.Pump"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.io.stm.DataInputStream">
+ <service name="com.sun.star.io.DataInputStream"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.io.stm.DataOutputStream">
+ <service name="com.sun.star.io.DataOutputStream"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.io.stm.MarkableInputStream">
+ <service name="com.sun.star.io.MarkableInputStream"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.io.stm.MarkableOutputStream">
+ <service name="com.sun.star.io.MarkableOutputStream"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.io.stm.ObjectInputStream">
+ <service name="com.sun.star.io.ObjectInputStream"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.io.stm.ObjectOutputStream">
+ <service name="com.sun.star.io.ObjectOutputStream"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.io.stm.Pipe">
+ <service name="com.sun.star.io.Pipe"/>
+ </implementation>
+</component>
diff --git a/javainstaller2/src/JavaSetup/org/openoffice/setup/InstallData.java b/javainstaller2/src/JavaSetup/org/openoffice/setup/InstallData.java
index 66598a7ca7cb..358ebd489db4 100755
--- a/javainstaller2/src/JavaSetup/org/openoffice/setup/InstallData.java
+++ b/javainstaller2/src/JavaSetup/org/openoffice/setup/InstallData.java
@@ -76,6 +76,7 @@ public class InstallData
static private boolean useRtl = false;
static private boolean installedProductMinorSet = false;
static private boolean isDebianSystem = false;
+ static private boolean useForceDebian = false; /* --force-debian */
static private boolean debianInvestigated = false;
static private String installType; /* custom or typical installation */
static private String osType; /* Linux, SunOS, ... */
@@ -667,6 +668,14 @@ public class InstallData
isDebianSystem = value;
}
+ public boolean useForceDebian() {
+ return useForceDebian;
+ }
+
+ public void setUseForceDebian(boolean value) {
+ useForceDebian = value;
+ }
+
public boolean databaseQueried() {
return databaseQueried;
}
diff --git a/javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java b/javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java
index 74f436f8c375..4383904569c0 100755
--- a/javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java
+++ b/javainstaller2/src/JavaSetup/org/openoffice/setup/Installer/LinuxInstaller.java
@@ -202,12 +202,13 @@ public class LinuxInstaller extends Installer {
}
if ( data.isDebianSystem() ) {
- forceDebianString = "--force-debian";
nodepsString = "--nodeps";
+
+ if ( data.useForceDebian() ) {
+ forceDebianString = "--force-debian";
+ }
}
- String rpmCommand = "";
- String[] rpmCommandArray;
String databasePath = null;
String databaseString = "";
boolean useLocalDatabase = false;
@@ -225,130 +226,57 @@ public class LinuxInstaller extends Installer {
useLocalDatabase = true;
}
- if (useForce) {
- if (useLocalDatabase) {
- if ( relocations != null ) {
- rpmCommand = "rpm --upgrade --ignoresize --force " + forceDebianString + " " + nodepsString + " -vh " +
- "--relocate " + relocations + " " + databaseString +
- " " + databasePath + " " + packageName;
- rpmCommandArray = new String[12];
- rpmCommandArray[0] = "rpm";
- rpmCommandArray[1] = "--upgrade";
- rpmCommandArray[2] = "--ignoresize";
- rpmCommandArray[3] = "--force";
- rpmCommandArray[4] = forceDebianString;
- rpmCommandArray[5] = nodepsString;
- rpmCommandArray[6] = "-vh";
- rpmCommandArray[7] = "--relocate";
- rpmCommandArray[8] = relocations;
- rpmCommandArray[9] = databaseString;
- rpmCommandArray[10] = databasePath;
- rpmCommandArray[11] = packageName;
- } else {
- rpmCommand = "rpm --upgrade --ignoresize --force " + forceDebianString + " " + nodepsString + " -vh " +
- databaseString + " " + databasePath + " " + packageName;
- rpmCommandArray = new String[10];
- rpmCommandArray[0] = "rpm";
- rpmCommandArray[1] = "--upgrade";
- rpmCommandArray[2] = "--ignoresize";
- rpmCommandArray[3] = "--force";
- rpmCommandArray[4] = forceDebianString;
- rpmCommandArray[5] = nodepsString;
- rpmCommandArray[6] = "-vh";
- rpmCommandArray[7] = databaseString;
- rpmCommandArray[8] = databasePath;
- rpmCommandArray[9] = packageName;
- }
- } else {
- if ( relocations != null )
- {
- rpmCommand = "rpm --upgrade --ignoresize --force " + forceDebianString + " " + nodepsString + " -vh " +
- "--relocate " + relocations + " " + packageName;
- rpmCommandArray = new String[10];
- rpmCommandArray[0] = "rpm";
- rpmCommandArray[1] = "--upgrade";
- rpmCommandArray[2] = "--ignoresize";
- rpmCommandArray[3] = "--force";
- rpmCommandArray[4] = forceDebianString;
- rpmCommandArray[5] = nodepsString;
- rpmCommandArray[6] = "-vh";
- rpmCommandArray[7] = "--relocate";
- rpmCommandArray[8] = relocations;
- rpmCommandArray[9] = packageName;
- } else {
- rpmCommand = "rpm --upgrade --ignoresize --force " + forceDebianString + " " + nodepsString + " -vh " + packageName;
- rpmCommandArray = new String[8];
- rpmCommandArray[0] = "rpm";
- rpmCommandArray[1] = "--upgrade";
- rpmCommandArray[2] = "--ignoresize";
- rpmCommandArray[3] = "--force";
- rpmCommandArray[4] = forceDebianString;
- rpmCommandArray[5] = nodepsString;
- rpmCommandArray[6] = "-vh";
- rpmCommandArray[7] = packageName;
- }
- }
- } else {
- if (useLocalDatabase) {
- if ( relocations != null ) {
- rpmCommand = "rpm --upgrade --ignoresize " + forceDebianString + " " + nodepsString + " -vh " +
- "--relocate " + relocations + " " + databaseString +
- " " + databasePath + " " + packageName;
- rpmCommandArray = new String[11];
- rpmCommandArray[0] = "rpm";
- rpmCommandArray[1] = "--upgrade";
- rpmCommandArray[2] = "--ignoresize";
- rpmCommandArray[3] = forceDebianString;
- rpmCommandArray[4] = nodepsString;
- rpmCommandArray[5] = "-vh";
- rpmCommandArray[6] = "--relocate";
- rpmCommandArray[7] = relocations;
- rpmCommandArray[8] = databaseString;
- rpmCommandArray[9] = databasePath;
- rpmCommandArray[10] = packageName;
- } else {
- rpmCommand = "rpm --upgrade --ignoresize " + forceDebianString + " " + nodepsString + " -vh " +
- databaseString + " " + databasePath + " " + packageName;
- rpmCommandArray = new String[9];
- rpmCommandArray[0] = "rpm";
- rpmCommandArray[1] = "--upgrade";
- rpmCommandArray[2] = "--ignoresize";
- rpmCommandArray[3] = forceDebianString;
- rpmCommandArray[4] = nodepsString;
- rpmCommandArray[5] = "-vh";
- rpmCommandArray[6] = databaseString;
- rpmCommandArray[7] = databasePath;
- rpmCommandArray[8] = packageName;
- }
- } else {
- if ( relocations != null )
- {
- rpmCommand = "rpm --upgrade --ignoresize " + forceDebianString + " " + nodepsString + " -vh " +
- "--relocate " + relocations + " " + packageName;
- rpmCommandArray = new String[9];
- rpmCommandArray[0] = "rpm";
- rpmCommandArray[1] = "--upgrade";
- rpmCommandArray[2] = "--ignoresize";
- rpmCommandArray[3] = forceDebianString;
- rpmCommandArray[4] = nodepsString;
- rpmCommandArray[5] = "-vh";
- rpmCommandArray[6] = "--relocate";
- rpmCommandArray[7] = relocations;
- rpmCommandArray[8] = packageName;
- } else {
- rpmCommand = "rpm --upgrade --ignoresize " + forceDebianString + " " + nodepsString + " -vh " + packageName;
- rpmCommandArray = new String[7];
- rpmCommandArray[0] = "rpm";
- rpmCommandArray[1] = "--upgrade";
- rpmCommandArray[2] = "--ignoresize";
- rpmCommandArray[3] = forceDebianString;
- rpmCommandArray[4] = nodepsString;
- rpmCommandArray[5] = "-vh";
- rpmCommandArray[6] = packageName;
- }
- }
+ // Defining a Vector that contains the full rpm command. Then the string array can be
+ // created dynamically. Otherwise there would be too many different scenarios.
+
+ Vector rpmVector = new Vector();
+
+ rpmVector.add("rpm");
+ rpmVector.add("--upgrade");
+ rpmVector.add("--ignoresize");
+
+ if ( useForce ) {
+ rpmVector.add("--force");
+ }
+
+ if ( ! forceDebianString.equals("") ) {
+ rpmVector.add(forceDebianString);
}
+ if ( ! nodepsString.equals("") ) {
+ rpmVector.add(nodepsString);
+ }
+
+ rpmVector.add("-vh");
+
+ if ( relocations != null ) {
+ rpmVector.add("--relocate");
+ rpmVector.add(relocations);
+ }
+
+ if ( useLocalDatabase ) {
+ rpmVector.add(databaseString);
+ rpmVector.add(databasePath);
+ }
+
+ rpmVector.add(packageName);
+
+ // Creating String and StringArray for rpm command
+
+ int capacity = rpmVector.size();
+
+ String rpmCommand = "";
+ String[] rpmCommandArray = new String[capacity];
+
+ for (int i = 0; i < rpmVector.size(); i++) {
+ rpmCommandArray[i] = (String)rpmVector.get(i);
+ rpmCommand = rpmCommand + " " + (String)rpmVector.get(i);
+ }
+
+ rpmCommand = rpmCommand.trim();
+
+ // Staring rpm process
+
Vector returnVector = new Vector();
Vector returnErrorVector = new Vector();
// int returnValue = SystemManager.executeProcessReturnVector(rpmCommand, returnVector, returnErrorVector);
@@ -407,8 +335,6 @@ public class LinuxInstaller extends Installer {
String databasePath = data.getDatabasePath();
String databaseString = "";
boolean useLocalDatabase = false;
- String rpmCommand;
- String[] rpmCommandArray;
if (( databasePath != null ) && (! databasePath.equalsIgnoreCase("null"))) {
databaseString = "--dbpath";
@@ -427,52 +353,53 @@ public class LinuxInstaller extends Installer {
}
if ( data.isDebianSystem() ) {
- forceDebianString = "--force-debian";
nodepsString = "--nodeps";
+
+ if ( data.useForceDebian() ) {
+ forceDebianString = "--force-debian";
+ }
}
- // Code duplication for isDebianSystem is necessary, because there is no valid position
- // for forceDebianString, if it is empty. This is no problem in installPackage.
+ // Defining a Vector that contains the full rpm command. Then the string array can be
+ // created dynamically. Otherwise there would be too many different scenarios.
- if ( data.isDebianSystem() ) {
+ Vector rpmVector = new Vector();
- if (useLocalDatabase) {
- rpmCommand = "rpm " + forceDebianString + " " + nodepsString + " -ev" + " " + databaseString + " " + databasePath + " " + packageName;
- rpmCommandArray = new String[7];
- rpmCommandArray[0] = "rpm";
- rpmCommandArray[1] = forceDebianString;
- rpmCommandArray[2] = nodepsString;
- rpmCommandArray[3] = "-ev";
- rpmCommandArray[4] = databaseString;
- rpmCommandArray[5] = databasePath;
- rpmCommandArray[6] = packageName;
- } else {
- rpmCommand = "rpm " + forceDebianString + " " + nodepsString + " -ev" + " " + packageName;
- rpmCommandArray = new String[5];
- rpmCommandArray[0] = "rpm";
- rpmCommandArray[1] = forceDebianString;
- rpmCommandArray[2] = nodepsString;
- rpmCommandArray[3] = "-ev";
- rpmCommandArray[4] = packageName;
- }
- } else {
- if (useLocalDatabase) {
- rpmCommand = "rpm -ev" + " " + databaseString + " " + databasePath + " " + packageName;
- rpmCommandArray = new String[5];
- rpmCommandArray[0] = "rpm";
- rpmCommandArray[1] = "-ev";
- rpmCommandArray[2] = databaseString;
- rpmCommandArray[3] = databasePath;
- rpmCommandArray[4] = packageName;
- } else {
- rpmCommand = "rpm -ev" + " " + packageName;
- rpmCommandArray = new String[3];
- rpmCommandArray[0] = "rpm";
- rpmCommandArray[1] = "-ev";
- rpmCommandArray[2] = packageName;
- }
+ rpmVector.add("rpm");
+
+ if ( ! forceDebianString.equals("") ) {
+ rpmVector.add(forceDebianString);
+ }
+
+ if ( ! nodepsString.equals("") ) {
+ rpmVector.add(nodepsString);
+ }
+
+ rpmVector.add("-ev");
+
+ if ( useLocalDatabase ) {
+ rpmVector.add(databaseString);
+ rpmVector.add(databasePath);
}
+ rpmVector.add(packageName);
+
+ // Creating String and StringArray for rpm command
+
+ int capacity = rpmVector.size();
+
+ String rpmCommand = "";
+ String[] rpmCommandArray = new String[capacity];
+
+ for (int i = 0; i < rpmVector.size(); i++) {
+ rpmCommandArray[i] = (String)rpmVector.get(i);
+ rpmCommand = rpmCommand + " " + (String)rpmVector.get(i);
+ }
+
+ rpmCommand = rpmCommand.trim();
+
+ // Starting rpm process
+
Vector returnVector = new Vector();
Vector returnErrorVector = new Vector();
int returnValue = ExecuteProcess.executeProcessReturnVector(rpmCommandArray, returnVector, returnErrorVector);
diff --git a/javainstaller2/src/JavaSetup/org/openoffice/setup/InstallerHelper/LinuxHelper.java b/javainstaller2/src/JavaSetup/org/openoffice/setup/InstallerHelper/LinuxHelper.java
index ebf915c6274a..91e8463fdc03 100755
--- a/javainstaller2/src/JavaSetup/org/openoffice/setup/InstallerHelper/LinuxHelper.java
+++ b/javainstaller2/src/JavaSetup/org/openoffice/setup/InstallerHelper/LinuxHelper.java
@@ -383,21 +383,33 @@ import java.util.Vector;public class LinuxHelper {
public void investigateDebian(InstallData data) {
- // String rpmQuery = "rpm --help;
- String[] rpmQueryArray = new String[2];
- rpmQueryArray[0] = "rpm";
- rpmQueryArray[1] = "--help";
+ // First check: Is this a Debian system?
- Vector returnVector = new Vector();
- Vector returnErrorVector = new Vector();
- int returnValue = ExecuteProcess.executeProcessReturnVector(rpmQueryArray, returnVector, returnErrorVector);
+ String dpkgFile = "/usr/bin/dpkg";
- // Checking if the return vector contains the string "force-debian"
+ if ( new File(dpkgFile).exists() ) {
- for (int i = 0; i < returnVector.size(); i++) {
- String line = (String) returnVector.get(i);
- if ( line.indexOf("force-debian") > -1 ) {
- data.setIsDebianSystem(true);
+ data.setIsDebianSystem(true);
+
+ // Second check: If this is a Debian system, is "--force-debian" required? Older
+ // versions do not support "--force-debian".
+
+ // String rpmQuery = "rpm --help;
+ String[] rpmQueryArray = new String[2];
+ rpmQueryArray[0] = "rpm";
+ rpmQueryArray[1] = "--help";
+
+ Vector returnVector = new Vector();
+ Vector returnErrorVector = new Vector();
+ int returnValue = ExecuteProcess.executeProcessReturnVector(rpmQueryArray, returnVector, returnErrorVector);
+
+ // Checking if the return vector contains the string "force-debian"
+
+ for (int i = 0; i < returnVector.size(); i++) {
+ String line = (String) returnVector.get(i);
+ if ( line.indexOf("force-debian") > -1 ) {
+ data.setUseForceDebian(true);
+ }
}
}
}
diff --git a/javaunohelper/com/sun/star/comp/JavaUNOHelperServices.java b/javaunohelper/com/sun/star/comp/JavaUNOHelperServices.java
index ba928eb81c1f..5a5cb7b19b4e 100644
--- a/javaunohelper/com/sun/star/comp/JavaUNOHelperServices.java
+++ b/javaunohelper/com/sun/star/comp/JavaUNOHelperServices.java
@@ -28,7 +28,6 @@ package com.sun.star.comp;
import com.sun.star.lib.uno.helper.Factory;
import com.sun.star.lang.XSingleComponentFactory;
-import com.sun.star.registry.XRegistryKey;
import com.sun.star.comp.juhtest.SmoketestCommandEnvironment;
@@ -62,20 +61,4 @@ public class JavaUNOHelperServices {
return xFactory;
}
-
- /**
- * Writes the service information into the given registry key.
- * This method is called by the <code>JavaLoader</code>
- * <p>
- * @return returns true if the operation succeeded
- * @param regKey the registryKey
- * @see com.sun.star.comp.loader.JavaLoader
- */
- public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
- return Factory.writeRegistryServiceInfo(SmoketestCommandEnvironment.class.getName(),
- SmoketestCommandEnvironment.getServiceNames(),
- regKey);
- }
}
-
-
diff --git a/javaunohelper/prj/d.lst b/javaunohelper/prj/d.lst
index 1fbd9c223bab..d58290843f48 100644
--- a/javaunohelper/prj/d.lst
+++ b/javaunohelper/prj/d.lst
@@ -2,5 +2,6 @@
..\%__SRC%\bin\juh*.dll %_DEST%\bin%_EXT%\juh*.dll
..\%__SRC%\lib\libjuh*.so %_DEST%\lib%_EXT%\libjuh*.so
..\%__SRC%\lib\libjuh*.dylib %_DEST%\lib%_EXT%\libjuh*.dylib
+..\%__SRC%\misc\juh.component %_DEST%\xml%_EXT%\juh.component
..\%__SRC%\bin\juh_src.zip %COMMON_DEST%\bin%_EXT%\juh_src.zip
diff --git a/javaunohelper/util/juh.component b/javaunohelper/util/juh.component
new file mode 100644
index 000000000000..790a2a2b14d3
--- /dev/null
+++ b/javaunohelper/util/juh.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Java2"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.juhtest.SmoketestCommandEnvironment">
+ <service name="com.sun.star.deployment.test.SmoketestCommandEnvironment"/>
+ </implementation>
+</component>
diff --git a/javaunohelper/util/makefile.mk b/javaunohelper/util/makefile.mk
index 22b3a72be288..796280eb3876 100644
--- a/javaunohelper/util/makefile.mk
+++ b/javaunohelper/util/makefile.mk
@@ -50,4 +50,9 @@ ZIP1LIST=com -x "*makefile.mk"
.INCLUDE : target.mk
+ALLTAR : $(MISC)/juh.component
+$(MISC)/juh.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ juh.component
+ $(XSLTPROC) --nonet --stringparam uri '$(COMPONENTPREFIX_URE_JAVA)juh.jar' \
+ -o $@ $(SOLARENV)/bin/createcomponent.xslt juh.component
diff --git a/jurt/com/sun/star/comp/bridgefactory/BridgeFactory.java b/jurt/com/sun/star/comp/bridgefactory/BridgeFactory.java
index a444f1813c3d..1c4819326268 100644
--- a/jurt/com/sun/star/comp/bridgefactory/BridgeFactory.java
+++ b/jurt/com/sun/star/comp/bridgefactory/BridgeFactory.java
@@ -94,18 +94,6 @@ public class BridgeFactory implements XBridgeFactory/*, XEventListener*/ {
}
/**
- * Writes the service information into the given registry key.
- * This method is called by the <code>JavaLoader</code>
- * <p>
- * @return returns true if the operation succeeded
- * @param regKey the registryKey
- * @see com.sun.star.comp.loader.JavaLoader
- */
- public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
- return FactoryHelper.writeRegistryServiceInfo(BridgeFactory.class.getName(), __serviceName, regKey);
- }
-
- /**
* Creates a remote bridge and memorizes it under <code>sName</code>.
* <p>
* @return the bridge
diff --git a/jurt/com/sun/star/comp/connections/Acceptor.java b/jurt/com/sun/star/comp/connections/Acceptor.java
index 3df51e735a1c..2dcfbc507d7b 100644
--- a/jurt/com/sun/star/comp/connections/Acceptor.java
+++ b/jurt/com/sun/star/comp/connections/Acceptor.java
@@ -84,21 +84,6 @@ public final class Acceptor implements XAcceptor {
}
/**
- * Writes the service information into the given registry key.
- *
- * <p>This method is called by the <code>JavaLoader</code>.</p>
- *
- * @param regKey the registry key.
- * @return <code>true</code> if the operation succeeded.
- *
- * @see com.sun.star.comp.loader.JavaLoader
- */
- public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
- return FactoryHelper.writeRegistryServiceInfo(Acceptor.class.getName(),
- __serviceName, regKey);
- }
-
- /**
* Constructs a new <code>Acceptor</code> that uses the given service
* factory to create a specific <code>XAcceptor</code>.
*
diff --git a/jurt/com/sun/star/comp/connections/Connector.java b/jurt/com/sun/star/comp/connections/Connector.java
index c02db5c52b8b..a9e0a2c5cc84 100644
--- a/jurt/com/sun/star/comp/connections/Connector.java
+++ b/jurt/com/sun/star/comp/connections/Connector.java
@@ -84,21 +84,6 @@ public class Connector implements XConnector {
}
/**
- * Writes the service information into the given registry key.
- *
- * <p>This method is called by the <code>JavaLoader</code>.</p>
- *
- * @param regKey the registry key.
- * @return <code>true</code> if the operation succeeded.
- *
- * @see com.sun.star.comp.loader.JavaLoader
- */
- public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
- return FactoryHelper.writeRegistryServiceInfo(Connector.class.getName(),
- __serviceName, regKey);
- }
-
- /**
* Constructs a new <code>Connector</code> that uses the given service
* factory to create a specific <code>XConnector</code>.
*
diff --git a/jurt/com/sun/star/comp/connections/ConstantInstanceProvider.java b/jurt/com/sun/star/comp/connections/ConstantInstanceProvider.java
index f63eeadf10d8..b801cb36d8a5 100644
--- a/jurt/com/sun/star/comp/connections/ConstantInstanceProvider.java
+++ b/jurt/com/sun/star/comp/connections/ConstantInstanceProvider.java
@@ -85,20 +85,6 @@ public class ConstantInstanceProvider implements XInstanceProvider {
return xSingleServiceFactory;
}
- /**
- * Writes the service information into the given registry key.
- * This method is called by the <code>JavaLoader</code>
- * <p>
- * @return returns true if the operation succeeded
- * @param regKey the registryKey
- * @see com.sun.star.comp.loader.JavaLoader
- */
- public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
- return FactoryHelper.writeRegistryServiceInfo(ConstantInstanceProvider.class.getName(), __serviceName, regKey);
- }
-
-
-
protected XMultiServiceFactory _serviceManager;
protected String _serviceName;
protected Object _instance;
diff --git a/jurt/com/sun/star/comp/connections/PipedConnection.java b/jurt/com/sun/star/comp/connections/PipedConnection.java
index 630adf4e223b..f5a839ea78c5 100644
--- a/jurt/com/sun/star/comp/connections/PipedConnection.java
+++ b/jurt/com/sun/star/comp/connections/PipedConnection.java
@@ -86,19 +86,6 @@ public class PipedConnection implements XConnection {
}
/**
- * Writes the service information into the given registry key.
- * This method is called by the <code>JavaLoader</code>
- * <p>
- * @return returns true if the operation succeeded
- * @param regKey the registryKey
- * @see com.sun.star.comp.loader.JavaLoader
- */
- public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
- return FactoryHelper.writeRegistryServiceInfo(PipedConnection.class.getName(), __serviceName, regKey);
- }
-
-
- /**
* The amount of time in milliseconds, to wait to
* see check the buffers.
*/
diff --git a/jurt/com/sun/star/comp/urlresolver/UrlResolver.java b/jurt/com/sun/star/comp/urlresolver/UrlResolver.java
index 3509dfb303f2..538315638553 100644
--- a/jurt/com/sun/star/comp/urlresolver/UrlResolver.java
+++ b/jurt/com/sun/star/comp/urlresolver/UrlResolver.java
@@ -154,18 +154,4 @@ public class UrlResolver {
return xSingleServiceFactory;
}
-
- /**
- * Writes the service information into the given registry key.
- * This method is called by the <code>JavaLoader</code>
- * <p>
- * @return returns true if the operation succeeded
- * @param regKey the registryKey
- * @see com.sun.star.comp.loader.JavaLoader
- */
- public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
- return FactoryHelper.writeRegistryServiceInfo(_UrlResolver.class.getName(), _UrlResolver.__serviceName, regKey);
- }
-
}
-
diff --git a/jurt/com/sun/star/lib/connections/pipe/pipeAcceptor.java b/jurt/com/sun/star/lib/connections/pipe/pipeAcceptor.java
index 4c5bf7f1c979..25b2ec4abfe3 100644
--- a/jurt/com/sun/star/lib/connections/pipe/pipeAcceptor.java
+++ b/jurt/com/sun/star/lib/connections/pipe/pipeAcceptor.java
@@ -84,21 +84,6 @@ public final class pipeAcceptor implements XAcceptor {
}
/**
- * Writes the service information into the given registry key.
- *
- * <p>This method is called by the <code>JavaLoader</code>.</p>
- *
- * @param regKey the registry key.
- * @return <code>true</code> if the operation succeeded.
- *
- * @see com.sun.star.comp.loader.JavaLoader
- */
- public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
- return FactoryHelper.writeRegistryServiceInfo(
- pipeAcceptor.class.getName(), __serviceName, regKey);
- }
-
- /**
* Accepts a connection request via the described pipe.
*
* <p>This call blocks until a connection has been established.</p>
diff --git a/jurt/com/sun/star/lib/connections/pipe/pipeConnector.java b/jurt/com/sun/star/lib/connections/pipe/pipeConnector.java
index 9c0c412ec2bc..9856fb2e116e 100644
--- a/jurt/com/sun/star/lib/connections/pipe/pipeConnector.java
+++ b/jurt/com/sun/star/lib/connections/pipe/pipeConnector.java
@@ -84,21 +84,6 @@ public final class pipeConnector implements XConnector {
}
/**
- * Writes the service information into the given registry key.
- *
- * <p>This method is called by the <code>JavaLoader</code>.</p>
- *
- * @param regKey the registry key.
- * @return <code>true</code> if the operation succeeded.
- *
- * @see com.sun.star.comp.loader.JavaLoader
- */
- public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
- return FactoryHelper.writeRegistryServiceInfo(
- pipeConnector.class.getName(), __serviceName, regKey);
- }
-
- /**
* Connects via the described pipe to a waiting server.
*
* <p>The connection description has the following format:
diff --git a/jurt/com/sun/star/lib/connections/socket/socketAcceptor.java b/jurt/com/sun/star/lib/connections/socket/socketAcceptor.java
index f2119225f029..bf9456d0058a 100644
--- a/jurt/com/sun/star/lib/connections/socket/socketAcceptor.java
+++ b/jurt/com/sun/star/lib/connections/socket/socketAcceptor.java
@@ -89,21 +89,6 @@ public final class socketAcceptor implements XAcceptor {
}
/**
- * Writes the service information into the given registry key.
- *
- * <p>This method is called by the <code>JavaLoader</code>.</p>
- *
- * @param regKey the registry key.
- * @return <code>true</code> if the operation succeeded.
- *
- * @see com.sun.star.comp.loader.JavaLoader
- */
- public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
- return FactoryHelper.writeRegistryServiceInfo(
- socketAcceptor.class.getName(), __serviceName, regKey);
- }
-
- /**
* Accepts a connection request via the described socket.
*
* <p>This call blocks until a connection has been established.</p>
diff --git a/jurt/com/sun/star/lib/connections/socket/socketConnector.java b/jurt/com/sun/star/lib/connections/socket/socketConnector.java
index f85a5ac41bd0..3a7bf183d223 100644
--- a/jurt/com/sun/star/lib/connections/socket/socketConnector.java
+++ b/jurt/com/sun/star/lib/connections/socket/socketConnector.java
@@ -89,21 +89,6 @@ public final class socketConnector implements XConnector {
}
/**
- * Writes the service information into the given registry key.
- *
- * <p>This method is called by the <code>JavaLoader</code>.</p>
- *
- * @param regKey the registry key.
- * @return <code>true</code> if the operation succeeded.
- *
- * @see com.sun.star.comp.loader.JavaLoader
- */
- public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
- return FactoryHelper.writeRegistryServiceInfo(
- socketConnector.class.getName(), __serviceName, regKey);
- }
-
- /**
* Connects via the described socket to a waiting server.
*
* <p>The connection description has the following format:
diff --git a/libegg/source/makefile.mk b/libegg/source/makefile.mk
index 3bc9b808b15a..030140513af5 100644
--- a/libegg/source/makefile.mk
+++ b/libegg/source/makefile.mk
@@ -63,7 +63,4 @@ SHL1LIBS= $(SLB)$/eggtray.lib
# --- Targets ----------------------------------
.ENDIF # L10N_framework
-.IF "$(OS)$(CPU)" == "LINUXX" && "$(LIBRARY_PATH)" != ""
-EXTRALIBPATHS+=-L$(LIBRARY_PATH)
-.ENDIF # "$(OS)$(CPU)" == "LINUXX"
.INCLUDE : target.mk
diff --git a/libxml2/makefile.mk b/libxml2/makefile.mk
index bef2d43aa6e3..453ba3a68406 100644
--- a/libxml2/makefile.mk
+++ b/libxml2/makefile.mk
@@ -90,10 +90,6 @@ xml2_CFLAGS+=$(ARCH_FLAGS) $(C_RESTRICTIONFLAGS)
xml2_LDFLAGS+=-L$(SYSBASE)$/usr$/lib
.ENDIF # "$(SYSBASE)"!=""
-.IF "$(OS)$(COM)"=="LINUXGCC"
-xml2_LDFLAGS+=-Wl,-z,noexecstack
-.ENDIF
-
CONFIGURE_DIR=
.IF "$(OS)"=="OS2"
CONFIGURE_ACTION=sh .$/configure
diff --git a/libxmlsec/makefile.mk b/libxmlsec/makefile.mk
index af695034b9a7..f721db3148a4 100644
--- a/libxmlsec/makefile.mk
+++ b/libxmlsec/makefile.mk
@@ -145,10 +145,6 @@ xmlsec_LDFLAGS+=-Wl,-rpath,'$$$$ORIGIN:$$$$ORIGIN/../ure-link/lib'
xmlsec_LDFLAGS+=-Wl,-R'$$$$ORIGIN:$$$$ORIGIN/../ure-link/lib'
.ENDIF # "$(OS)$(COM)"=="SOLARISC52"
-.IF "$(OS)$(COM)"=="LINUXGCC"
-xmlsec_LDFLAGS+=-Wl,-z,noexecstack
-.ENDIF
-
LDFLAGS:=$(xmlsec_LDFLAGS)
.EXPORT: LDFLAGS
diff --git a/libxslt/makefile.mk b/libxslt/makefile.mk
index fd7273b0c6b9..c4bb5f50977b 100644
--- a/libxslt/makefile.mk
+++ b/libxslt/makefile.mk
@@ -91,7 +91,7 @@ BUILD_DIR=$(CONFIGURE_DIR)
.ELSE
.IF "$(OS)$(COM)"=="LINUXGCC" || "$(OS)$(COM)"=="FREEBSDGCC"
-LDFLAGS:=-Wl,-rpath,'$$$$ORIGIN:$$$$ORIGIN/../ure-link/lib' -Wl,-noinhibit-exec -Wl,-z,noexecstack
+LDFLAGS:=-Wl,-rpath,'$$$$ORIGIN:$$$$ORIGIN/../ure-link/lib' -Wl,-noinhibit-exec
.ENDIF # "$(OS)$(COM)"=="LINUXGCC"
.IF "$(OS)$(COM)"=="SOLARISC52"
LDFLAGS:=-Wl,-R'$$$$ORIGIN:$$$$ORIGIN/../ure-link/lib'
diff --git a/lingucomponent/prj/d.lst b/lingucomponent/prj/d.lst
index 666ee38d5b1d..4760a299c84d 100644
--- a/lingucomponent/prj/d.lst
+++ b/lingucomponent/prj/d.lst
@@ -46,3 +46,8 @@ mkdir: %_DEST%\xml%_EXT%\registry\data\org\openoffice
mkdir: %_DEST%\xml%_EXT%\registry\data\org\openoffice\Office
..\config\*.xcu %_DEST%\xml%_EXT%\registry\data\org\openoffice\Office\*.xcu
+..\%__SRC%\misc\MacOSXSpell.component %_DEST%\xml%_EXT%\MacOSXSpell.component
+..\%__SRC%\misc\guesslang.component %_DEST%\xml%_EXT%\guesslang.component
+..\%__SRC%\misc\hyphen.component %_DEST%\xml%_EXT%\hyphen.component
+..\%__SRC%\misc\lnth.component %_DEST%\xml%_EXT%\lnth.component
+..\%__SRC%\misc\spell.component %_DEST%\xml%_EXT%\spell.component
diff --git a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/exports.dxp b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/exports.dxp
index b0f85bf7bebf..a9861e3ffc0c 100644
--- a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/exports.dxp
+++ b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/exports.dxp
@@ -1,3 +1,2 @@
component_getFactory
component_getImplementationEnvironment
-component_writeInfo
diff --git a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hreg.cxx b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hreg.cxx
index 448ecc529bf0..9d975a83b8ef 100644
--- a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hreg.cxx
+++ b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hreg.cxx
@@ -42,9 +42,6 @@ using namespace com::sun::star::registry;
// declaration of external RegEntry-functions defined by the service objects
//
-extern sal_Bool SAL_CALL Hyphenator_writeInfo(
- void * /*pServiceManager*/, XRegistryKey * pRegistryKey );
-
extern void * SAL_CALL Hyphenator_getFactory(
const sal_Char * pImplName,
XMultiServiceFactory * pServiceManager,
@@ -57,12 +54,6 @@ extern void * SAL_CALL Hyphenator_getFactory(
extern "C"
{
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, XRegistryKey * pRegistryKey )
-{
- return Hyphenator_writeInfo( pServiceManager, pRegistryKey );
-}
-
void SAL_CALL component_getImplementationEnvironment(
const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
{
diff --git a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphen.component b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphen.component
new file mode 100644
index 000000000000..aeae4c577b98
--- /dev/null
+++ b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphen.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="org.openoffice.lingu.LibHnjHyphenator">
+ <service name="com.sun.star.linguistic2.Hyphenator"/>
+ </implementation>
+</component>
diff --git a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx
index 3b0871cc36b6..5d040be72cb9 100755
--- a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx
+++ b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.cxx
@@ -32,7 +32,6 @@
#include <com/sun/star/uno/Reference.h>
#include <com/sun/star/linguistic2/XSearchableDictionaryList.hpp>
-//#include <com/sun/star/linguistic2/SpellFailure.hpp>
#include <cppuhelper/factory.hxx> // helper for factories
#include <com/sun/star/registry/XRegistryKey.hpp>
#include <i18npool/mslangid.hxx>
@@ -43,15 +42,12 @@
#include <osl/mutex.hxx>
#include <hyphen.h>
-
-#ifndef _HYPHENIMP_HXX
#include <hyphenimp.hxx>
-#endif
#include <linguistic/hyphdta.hxx>
#include <rtl/ustring.hxx>
-
#include <rtl/ustrbuf.hxx>
+#include <rtl/textenc.h>
#include <linguistic/lngprops.hxx>
#include <unotools/pathoptions.hxx>
@@ -97,9 +93,8 @@ Hyphenator::Hyphenator() :
{
bDisposing = FALSE;
pPropHelper = NULL;
- aDicts = NULL;
- numdict = 0;
-
+ aDicts = NULL;
+ numdict = 0;
}
@@ -108,21 +103,22 @@ Hyphenator::~Hyphenator()
if (pPropHelper)
pPropHelper->RemoveAsPropListener();
- if ((numdict) && (aDicts)) {
- for (int i=0; i < numdict; i++) {
+ if ((numdict) && (aDicts))
+ {
+ for (int i=0; i < numdict; i++)
+ {
if (aDicts[i].apCC) delete aDicts[i].apCC;
aDicts[i].apCC = NULL;
- }
+ }
}
- if (aDicts) delete[] aDicts;
+ if (aDicts) delete[] aDicts;
aDicts = NULL;
- numdict = 0;
+ numdict = 0;
}
PropertyHelper_Hyphen & Hyphenator::GetPropHelper_Impl()
{
-
if (!pPropHelper)
{
Reference< XPropertySet > xPropSet( GetLinguProperties(), UNO_QUERY );
@@ -212,12 +208,7 @@ Sequence< Locale > SAL_CALL Hyphenator::getLocales()
// add dictionary information
aDicts = new HDInfo[numdict];
-/*
- aTEncs = new rtl_TextEncoding [numdict];
- aTLocs = new Locale [numdict];
- aTNames = new OUString [numdict];
- aCharSetInfo = new CharClass* [numdict];
-*/
+
k = 0;
for (aDictIt = aDics.begin(); aDictIt != aDics.end(); ++aDictIt)
{
@@ -233,7 +224,7 @@ Sequence< Locale > SAL_CALL Hyphenator::getLocales()
for (sal_Int32 i = 0; i < nLocales; ++i)
{
aDicts[k].aPtr = NULL;
- aDicts[k].aEnc = 0;
+ aDicts[k].eEnc = RTL_TEXTENCODING_DONTKNOW;
aDicts[k].aLoc = MsLangId::convertLanguageToLocale(
MsLangId::convertIsoStringToLanguage( aDictIt->aLocaleNames[i] ));
aDicts[k].apCC = new CharClass( aDicts[k].aLoc );
@@ -288,240 +279,268 @@ sal_Bool SAL_CALL Hyphenator::hasLocale(const Locale& rLocale)
}
-Reference< XHyphenatedWord > SAL_CALL
-Hyphenator::hyphenate( const ::rtl::OUString& aWord,
- const ::com::sun::star::lang::Locale& aLocale,
- sal_Int16 nMaxLeading,
- const ::com::sun::star::beans::PropertyValues& aProperties )
- throw (com::sun::star::uno::RuntimeException,
- com::sun::star::lang::IllegalArgumentException)
+Reference< XHyphenatedWord > SAL_CALL Hyphenator::hyphenate( const ::rtl::OUString& aWord,
+ const ::com::sun::star::lang::Locale& aLocale,
+ sal_Int16 nMaxLeading,
+ const ::com::sun::star::beans::PropertyValues& aProperties )
+ throw (com::sun::star::uno::RuntimeException, com::sun::star::lang::IllegalArgumentException)
{
int nHyphenationPos = -1;
- int nHyphenationPosAlt = -1;
- int nHyphenationPosAltHyph = -1;
+ int nHyphenationPosAlt = -1;
+ int nHyphenationPosAltHyph = -1;
int wordlen;
char *hyphens;
- char *lcword;
- int k = 0;
+ char *lcword;
+ int k = 0;
- PropertyHelper_Hyphen & rHelper = GetPropHelper();
- rHelper.SetTmpPropVals(aProperties);
+ PropertyHelper_Hyphen & rHelper = GetPropHelper();
+ rHelper.SetTmpPropVals(aProperties);
sal_Int16 minTrail = rHelper.GetMinTrailing();
sal_Int16 minLead = rHelper.GetMinLeading();
sal_Int16 minLen = rHelper.GetMinWordLength();
HyphenDict *dict = NULL;
- rtl_TextEncoding aEnc = 0;
- CharClass * pCC = NULL;
+ rtl_TextEncoding eEnc = RTL_TEXTENCODING_DONTKNOW;
+ CharClass * pCC = NULL;
Reference< XHyphenatedWord > xRes;
- k = -1;
- for (int j = 0; j < numdict; j++)
- if (aLocale == aDicts[j].aLoc) k = j;
-
-
- // if we have a hyphenation dictionary matching this locale
- if (k != -1) {
+ k = -1;
+ for (int j = 0; j < numdict; j++)
+ {
+ if (aLocale == aDicts[j].aLoc)
+ k = j;
+ }
+ // if we have a hyphenation dictionary matching this locale
+ if (k != -1)
+ {
// if this dictinary has not been loaded yet do that
- if (!aDicts[k].aPtr) {
-
- OUString DictFN = aDicts[k].aName + A2OU(".dic");
- OUString dictpath;
+ if (!aDicts[k].aPtr)
+ {
+ OUString DictFN = aDicts[k].aName + A2OU(".dic");
+ OUString dictpath;
- osl::FileBase::getSystemPathFromFileURL( DictFN, dictpath );
- OString sTmp( OU2ENC( dictpath, osl_getThreadTextEncoding() ) );
+ osl::FileBase::getSystemPathFromFileURL( DictFN, dictpath );
+ OString sTmp( OU2ENC( dictpath, osl_getThreadTextEncoding() ) );
#if defined(WNT)
- // workaround for Windows specifc problem that the
- // path length in calls to 'fopen' is limted to somewhat
- // about 120+ characters which will usually be exceed when
- // using dictionaries as extensions.
- sTmp = Win_GetShortPathName( dictpath );
+ // workaround for Windows specifc problem that the
+ // path length in calls to 'fopen' is limted to somewhat
+ // about 120+ characters which will usually be exceed when
+ // using dictionaries as extensions.
+ sTmp = Win_GetShortPathName( dictpath );
#endif
- if ( ( dict = hnj_hyphen_load ( sTmp.getStr()) ) == NULL )
- {
- fprintf(stderr, "Couldn't find file %s\n", OU2ENC(dictpath, osl_getThreadTextEncoding()) );
- return NULL;
- }
- aDicts[k].aPtr = dict;
- aDicts[k].aEnc = rtl_getTextEncodingFromUnixCharset(dict->cset);
- if (aDicts[k].aEnc == RTL_TEXTENCODING_DONTKNOW) {
- if (strcmp("ISCII-DEVANAGARI", dict->cset) == 0) {
- aDicts[k].aEnc = RTL_TEXTENCODING_ISCII_DEVANAGARI;
- } else if (strcmp("UTF-8", dict->cset) == 0) {
- aDicts[k].aEnc = RTL_TEXTENCODING_UTF8;
- }
- }
+ if ( ( dict = hnj_hyphen_load ( sTmp.getStr()) ) == NULL )
+ {
+ fprintf(stderr, "Couldn't find file %s\n", OU2ENC(dictpath, osl_getThreadTextEncoding()) );
+ return NULL;
+ }
+ aDicts[k].aPtr = dict;
+ aDicts[k].eEnc = getTextEncodingFromCharset(dict->cset);
}
- // other wise hyphenate the word with that dictionary
- dict = aDicts[k].aPtr;
- aEnc = aDicts[k].aEnc;
- pCC = aDicts[k].apCC;
+ // other wise hyphenate the word with that dictionary
+ dict = aDicts[k].aPtr;
+ eEnc = aDicts[k].eEnc;
+ pCC = aDicts[k].apCC;
- sal_uInt16 ct = CAPTYPE_UNKNOWN;
- ct = capitalType(aWord, pCC);
+ // we don't want to work with a default text encoding since following incorrect
+ // results may occur only for specific text and thus may be hard to notice.
+ // Thus better always make a clean exit here if the text encoding is in question.
+ // Hopefully something not working at all will raise proper attention quickly. ;-)
+ DBG_ASSERT( eEnc != RTL_TEXTENCODING_DONTKNOW, "failed to get text encoding! (maybe incorrect encoding string in file)" );
+ if (eEnc == RTL_TEXTENCODING_DONTKNOW)
+ return NULL;
- // first convert any smart quotes or apostrophes to normal ones
+ sal_uInt16 ct = CAPTYPE_UNKNOWN;
+ ct = capitalType(aWord, pCC);
+
+ // first convert any smart quotes or apostrophes to normal ones
OUStringBuffer rBuf(aWord);
- sal_Int32 nc = rBuf.getLength();
- sal_Unicode ch;
- for (sal_Int32 ix=0; ix < nc; ix++) {
+ sal_Int32 nc = rBuf.getLength();
+ sal_Unicode ch;
+ for (sal_Int32 ix=0; ix < nc; ix++)
+ {
ch = rBuf.charAt(ix);
- if ((ch == 0x201C) || (ch == 0x201D)) rBuf.setCharAt(ix,(sal_Unicode)0x0022);
- if ((ch == 0x2018) || (ch == 0x2019)) rBuf.setCharAt(ix,(sal_Unicode)0x0027);
- }
- OUString nWord(rBuf.makeStringAndClear());
+ if ((ch == 0x201C) || (ch == 0x201D))
+ rBuf.setCharAt(ix,(sal_Unicode)0x0022);
+ if ((ch == 0x2018) || (ch == 0x2019))
+ rBuf.setCharAt(ix,(sal_Unicode)0x0027);
+ }
+ OUString nWord(rBuf.makeStringAndClear());
- // now convert word to all lowercase for pattern recognition
- OUString nTerm(makeLowerCase(nWord, pCC));
+ // now convert word to all lowercase for pattern recognition
+ OUString nTerm(makeLowerCase(nWord, pCC));
- // now convert word to needed encoding
- OString encWord(OU2ENC(nTerm,aEnc));
+ // now convert word to needed encoding
+ OString encWord(OU2ENC(nTerm,eEnc));
wordlen = encWord.getLength();
- lcword = new char[wordlen + 1];
+ lcword = new char[wordlen + 1];
hyphens = new char[wordlen + 5];
- char ** rep = NULL; // replacements of discretionary hyphenation
- int * pos = NULL; // array of [hyphenation point] minus [deletion position]
- int * cut = NULL; // length of deletions in original word
-
- // copy converted word into simple char buffer
- strcpy(lcword,encWord.getStr());
-
- // now strip off any ending periods
- int n = wordlen-1;
- while((n >=0) && (lcword[n] == '.')) n--;
- n++;
- if (n > 0) {
- if (hnj_hyphen_hyphenate3(dict, lcword, n, hyphens, NULL, &rep, &pos, &cut,
- minLead, minTrail, Max(dict->clhmin, Max(dict->clhmin, 2) + Max(0, minLead - Max(dict->lhmin, 2))),
- Max(dict->crhmin, Max(dict->crhmin, 2) + Max(0, minTrail - Max(dict->rhmin, 2)))))
- {
- //whoops something did not work
- delete[] hyphens;
- delete[] lcword;
- if (rep) {
- for(int j = 0; j < n; j++) {
+ char ** rep = NULL; // replacements of discretionary hyphenation
+ int * pos = NULL; // array of [hyphenation point] minus [deletion position]
+ int * cut = NULL; // length of deletions in original word
+
+ // copy converted word into simple char buffer
+ strcpy(lcword,encWord.getStr());
+
+ // now strip off any ending periods
+ int n = wordlen-1;
+ while((n >=0) && (lcword[n] == '.'))
+ n--;
+ n++;
+ if (n > 0)
+ {
+ const bool bFailed = 0 != hnj_hyphen_hyphenate3( dict, lcword, n, hyphens, NULL,
+ &rep, &pos, &cut, minLead, minTrail,
+ Max(dict->clhmin, Max(dict->clhmin, 2) + Max(0, minLead - Max(dict->lhmin, 2))),
+ Max(dict->crhmin, Max(dict->crhmin, 2) + Max(0, minTrail - Max(dict->rhmin, 2))) );
+ if (bFailed)
+ {
+ //whoops something did not work
+ delete[] hyphens;
+ delete[] lcword;
+ if (rep)
+ {
+ for(int j = 0; j < n; j++)
+ {
if (rep[j]) free(rep[j]);
}
free(rep);
- }
- if (pos) free(pos);
- if (cut) free(cut);
- return NULL;
- }
+ }
+ if (pos) free(pos);
+ if (cut) free(cut);
+ return NULL;
}
+ }
- // now backfill hyphens[] for any removed trailing periods
- for (int c = n; c < wordlen; c++) hyphens[c] = '0';
- hyphens[wordlen] = '\0';
+ // now backfill hyphens[] for any removed trailing periods
+ for (int c = n; c < wordlen; c++) hyphens[c] = '0';
+ hyphens[wordlen] = '\0';
INT32 Leading = GetPosInWordToCheck( aWord, nMaxLeading );
for (INT32 i = 0; i < n; i++)
{
- int leftrep = 0;
- BOOL hit = (n >= minLen);
- if (!rep || !rep[i] || (i >= n)) {
- hit = hit && (hyphens[i]&1) && (i < Leading);
- hit = hit && (i >= (minLead-1) );
- hit = hit && ((n - i - 1) >= minTrail);
- } else {
- // calculate change character length before hyphenation point signed with '='
- for (char * c = rep[i]; *c && (*c != '='); c++) {
- if (aEnc == RTL_TEXTENCODING_UTF8) {
- if (((unsigned char) *c) >> 6 != 2) leftrep++;
- } else leftrep++;
+ int leftrep = 0;
+ BOOL hit = (n >= minLen);
+ if (!rep || !rep[i] || (i >= n))
+ {
+ hit = hit && (hyphens[i]&1) && (i < Leading);
+ hit = hit && (i >= (minLead-1) );
+ hit = hit && ((n - i - 1) >= minTrail);
+ }
+ else
+ {
+ // calculate change character length before hyphenation point signed with '='
+ for (char * c = rep[i]; *c && (*c != '='); c++)
+ {
+ if (eEnc == RTL_TEXTENCODING_UTF8)
+ {
+ if (((unsigned char) *c) >> 6 != 2)
+ leftrep++;
}
- hit = hit && (hyphens[i]&1) && ((i + leftrep - pos[i]) < Leading);
- hit = hit && ((i + leftrep - pos[i]) >= (minLead-1) );
- hit = hit && ((n - i - 1 + sal::static_int_cast< sal_sSize >(strlen(rep[i])) - leftrep - 1) >= minTrail);
+ else
+ leftrep++;
}
- if (hit) {
- nHyphenationPos = i;
- if (rep && (i < n) && rep[i]) {
- nHyphenationPosAlt = i - pos[i];
- nHyphenationPosAltHyph = i + leftrep - pos[i];
- }
+ hit = hit && (hyphens[i]&1) && ((i + leftrep - pos[i]) < Leading);
+ hit = hit && ((i + leftrep - pos[i]) >= (minLead-1) );
+ hit = hit && ((n - i - 1 + sal::static_int_cast< sal_sSize >(strlen(rep[i])) - leftrep - 1) >= minTrail);
+ }
+ if (hit)
+ {
+ nHyphenationPos = i;
+ if (rep && (i < n) && rep[i])
+ {
+ nHyphenationPosAlt = i - pos[i];
+ nHyphenationPosAltHyph = i + leftrep - pos[i];
}
- }
-
- if (nHyphenationPos == -1) {
- xRes = NULL;
- } else {
- if (rep && rep[nHyphenationPos]) {
- // remove equal sign
- char * s = rep[nHyphenationPos];
- int eq = 0;
- for (; *s; s++) {
- if (*s == '=') eq = 1;
- if (eq) *s = *(s + 1);
- }
- OUString repHyphlow(rep[nHyphenationPos], strlen(rep[nHyphenationPos]), aEnc);
- OUString repHyph;
- switch (ct) {
- case CAPTYPE_ALLCAP:
- {
- repHyph = makeUpperCase(repHyphlow, pCC);
- break;
- }
- case CAPTYPE_INITCAP:
- {
- if (nHyphenationPosAlt == 0) {
- repHyph = makeInitCap(repHyphlow, pCC);
- } else {
- repHyph = repHyphlow;
- }
- break;
- }
- default:
- {
- repHyph = repHyphlow;
- break;
- }
}
+ }
+
+ if (nHyphenationPos == -1)
+ {
+ xRes = NULL;
+ }
+ else
+ {
+ if (rep && rep[nHyphenationPos])
+ {
+ // remove equal sign
+ char * s = rep[nHyphenationPos];
+ int eq = 0;
+ for (; *s; s++)
+ {
+ if (*s == '=') eq = 1;
+ if (eq) *s = *(s + 1);
+ }
+ OUString repHyphlow(rep[nHyphenationPos], strlen(rep[nHyphenationPos]), eEnc);
+ OUString repHyph;
+ switch (ct)
+ {
+ case CAPTYPE_ALLCAP:
+ {
+ repHyph = makeUpperCase(repHyphlow, pCC);
+ break;
+ }
+ case CAPTYPE_INITCAP:
+ {
+ if (nHyphenationPosAlt == 0)
+ repHyph = makeInitCap(repHyphlow, pCC);
+ else
+ repHyph = repHyphlow;
+ break;
+ }
+ default:
+ {
+ repHyph = repHyphlow;
+ break;
+ }
+ }
- // handle shortening
- INT16 nPos = (INT16) ((nHyphenationPosAltHyph < nHyphenationPos) ?
- nHyphenationPosAltHyph : nHyphenationPos);
- // dicretionary hyphenation
+ // handle shortening
+ INT16 nPos = (INT16) ((nHyphenationPosAltHyph < nHyphenationPos) ?
+ nHyphenationPosAltHyph : nHyphenationPos);
+ // dicretionary hyphenation
xRes = new HyphenatedWord( aWord, LocaleToLanguage( aLocale ), nPos,
- aWord.replaceAt(nHyphenationPosAlt + 1, cut[nHyphenationPos], repHyph),
- (INT16) nHyphenationPosAltHyph);
- } else {
+ aWord.replaceAt(nHyphenationPosAlt + 1, cut[nHyphenationPos], repHyph),
+ (INT16) nHyphenationPosAltHyph);
+ }
+ else
+ {
xRes = new HyphenatedWord( aWord, LocaleToLanguage( aLocale ),
- (INT16)nHyphenationPos, aWord, (INT16) nHyphenationPos);
- }
+ (INT16)nHyphenationPos, aWord, (INT16) nHyphenationPos);
+ }
}
- delete[] lcword;
+ delete[] lcword;
delete[] hyphens;
- if (rep) {
- for(int j = 0; j < n; j++) {
- if (rep[j]) free(rep[j]);
- }
- free(rep);
+ if (rep)
+ {
+ for(int j = 0; j < n; j++)
+ {
+ if (rep[j]) free(rep[j]);
}
- if (pos) free(pos);
- if (cut) free(cut);
+ free(rep);
+ }
+ if (pos) free(pos);
+ if (cut) free(cut);
return xRes;
}
- return NULL;
+ return NULL;
}
-Reference < XHyphenatedWord > SAL_CALL
- Hyphenator::queryAlternativeSpelling( const ::rtl::OUString& /*aWord*/,
- const ::com::sun::star::lang::Locale& /*aLocale*/,
- sal_Int16 /*nIndex*/,
- const ::com::sun::star::beans::PropertyValues& /*aProperties*/ )
- throw(::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::uno::RuntimeException)
+Reference < XHyphenatedWord > SAL_CALL Hyphenator::queryAlternativeSpelling(
+ const ::rtl::OUString& /*aWord*/,
+ const ::com::sun::star::lang::Locale& /*aLocale*/,
+ sal_Int16 /*nIndex*/,
+ const ::com::sun::star::beans::PropertyValues& /*aProperties*/ )
+ throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
{
/* alternative spelling isn't supported by tex dictionaries */
/* XXX: OOo's extended libhjn algorithm can support alternative spellings with extended TeX dic. */
@@ -529,251 +548,262 @@ Reference < XHyphenatedWord > SAL_CALL
return NULL;
}
-Reference< XPossibleHyphens > SAL_CALL
- Hyphenator::createPossibleHyphens( const ::rtl::OUString& aWord,
- const ::com::sun::star::lang::Locale& aLocale,
- const ::com::sun::star::beans::PropertyValues& aProperties )
- throw(::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::uno::RuntimeException)
-
+Reference< XPossibleHyphens > SAL_CALL Hyphenator::createPossibleHyphens( const ::rtl::OUString& aWord,
+ const ::com::sun::star::lang::Locale& aLocale,
+ const ::com::sun::star::beans::PropertyValues& aProperties )
+ throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException)
{
- int wordlen;
- char *hyphens;
- char *lcword;
- int k;
+ int wordlen;
+ char *hyphens;
+ char *lcword;
+ int k;
- PropertyHelper_Hyphen & rHelper = GetPropHelper();
- rHelper.SetTmpPropVals(aProperties);
- sal_Int16 minTrail = rHelper.GetMinTrailing();
- sal_Int16 minLead = rHelper.GetMinLeading();
+ PropertyHelper_Hyphen & rHelper = GetPropHelper();
+ rHelper.SetTmpPropVals(aProperties);
+ sal_Int16 minTrail = rHelper.GetMinTrailing();
+ sal_Int16 minLead = rHelper.GetMinLeading();
- HyphenDict *dict = NULL;
- rtl_TextEncoding aEnc = 0;
- CharClass* pCC = NULL;
+ HyphenDict *dict = NULL;
+ rtl_TextEncoding eEnc = RTL_TEXTENCODING_DONTKNOW;
+ CharClass* pCC = NULL;
- Reference< XPossibleHyphens > xRes;
+ Reference< XPossibleHyphens > xRes;
- k = -1;
- for (int j = 0; j < numdict; j++)
- if (aLocale == aDicts[j].aLoc) k = j;
+ k = -1;
+ for (int j = 0; j < numdict; j++)
+ {
+ if (aLocale == aDicts[j].aLoc) k = j;
+ }
+ // if we have a hyphenation dictionary matching this locale
+ if (k != -1)
+ {
+ // if this dictioanry has not been loaded yet do that
+ if (!aDicts[k].aPtr)
+ {
+ OUString DictFN = aDicts[k].aName + A2OU(".dic");
+ OUString dictpath;
- // if we have a hyphenation dictionary matching this locale
- if (k != -1) {
+ osl::FileBase::getSystemPathFromFileURL( DictFN, dictpath );
+ OString sTmp( OU2ENC( dictpath, osl_getThreadTextEncoding() ) );
- // if this dictioanry has not been loaded yet do that
- if (!aDicts[k].aPtr) {
+#if defined(WNT)
+ // workaround for Windows specifc problem that the
+ // path length in calls to 'fopen' is limted to somewhat
+ // about 120+ characters which will usually be exceed when
+ // using dictionaries as extensions.
+ sTmp = Win_GetShortPathName( dictpath );
+#endif
- OUString DictFN = aDicts[k].aName + A2OU(".dic");
- OUString dictpath;
+ if ( ( dict = hnj_hyphen_load ( sTmp.getStr()) ) == NULL )
+ {
+ fprintf(stderr, "Couldn't find file %s and %s\n", sTmp.getStr(), OU2ENC(dictpath, osl_getThreadTextEncoding()) );
+ return NULL;
+ }
+ aDicts[k].aPtr = dict;
+ aDicts[k].eEnc = getTextEncodingFromCharset(dict->cset);
+ }
- osl::FileBase::getSystemPathFromFileURL( DictFN, dictpath );
- OString sTmp( OU2ENC( dictpath, osl_getThreadTextEncoding() ) );
+ // other wise hyphenate the word with that dictionary
+ dict = aDicts[k].aPtr;
+ eEnc = aDicts[k].eEnc;
+ pCC = aDicts[k].apCC;
-#if defined(WNT)
- // workaround for Windows specifc problem that the
- // path length in calls to 'fopen' is limted to somewhat
- // about 120+ characters which will usually be exceed when
- // using dictionaries as extensions.
- sTmp = Win_GetShortPathName( dictpath );
-#endif
+ // we don't want to work with a default text encoding since following incorrect
+ // results may occur only for specific text and thus may be hard to notice.
+ // Thus better always make a clean exit here if the text encoding is in question.
+ // Hopefully something not working at all will raise proper attention quickly. ;-)
+ DBG_ASSERT( eEnc != RTL_TEXTENCODING_DONTKNOW, "failed to get text encoding! (maybe incorrect encoding string in file)" );
+ if (eEnc == RTL_TEXTENCODING_DONTKNOW)
+ return NULL;
- if ( ( dict = hnj_hyphen_load ( sTmp.getStr()) ) == NULL )
+ // first handle smart quotes both single and double
+ OUStringBuffer rBuf(aWord);
+ sal_Int32 nc = rBuf.getLength();
+ sal_Unicode ch;
+ for (sal_Int32 ix=0; ix < nc; ix++)
{
- fprintf(stderr, "Couldn't find file %s and %s\n", sTmp.getStr(), OU2ENC(dictpath, osl_getThreadTextEncoding()) );
- return NULL;
+ ch = rBuf.charAt(ix);
+ if ((ch == 0x201C) || (ch == 0x201D))
+ rBuf.setCharAt(ix,(sal_Unicode)0x0022);
+ if ((ch == 0x2018) || (ch == 0x2019))
+ rBuf.setCharAt(ix,(sal_Unicode)0x0027);
}
- aDicts[k].aPtr = dict;
- aDicts[k].aEnc = rtl_getTextEncodingFromUnixCharset(dict->cset);
- if (aDicts[k].aEnc == RTL_TEXTENCODING_DONTKNOW) {
- if (strcmp("ISCII-DEVANAGARI", dict->cset) == 0) {
- aDicts[k].aEnc = RTL_TEXTENCODING_ISCII_DEVANAGARI;
- } else if (strcmp("UTF-8", dict->cset) == 0) {
- aDicts[k].aEnc = RTL_TEXTENCODING_UTF8;
+ OUString nWord(rBuf.makeStringAndClear());
+
+ // now convert word to all lowercase for pattern recognition
+ OUString nTerm(makeLowerCase(nWord, pCC));
+
+ // now convert word to needed encoding
+ OString encWord(OU2ENC(nTerm,eEnc));
+
+ wordlen = encWord.getLength();
+ lcword = new char[wordlen+1];
+ hyphens = new char[wordlen+5];
+ char ** rep = NULL; // replacements of discretionary hyphenation
+ int * pos = NULL; // array of [hyphenation point] minus [deletion position]
+ int * cut = NULL; // length of deletions in original word
+
+ // copy converted word into simple char buffer
+ strcpy(lcword,encWord.getStr());
+
+ // first remove any trailing periods
+ int n = wordlen-1;
+ while((n >=0) && (lcword[n] == '.'))
+ n--;
+ n++;
+ // fprintf(stderr,"hyphenate... %s\n",lcword); fflush(stderr);
+ if (n > 0)
+ {
+ const bool bFailed = 0 != hnj_hyphen_hyphenate3(dict, lcword, n, hyphens, NULL,
+ &rep, &pos, &cut, minLead, minTrail,
+ Max(dict->clhmin, Max(dict->clhmin, 2) + Max(0, minLead - Max(dict->lhmin, 2))),
+ Max(dict->crhmin, Max(dict->crhmin, 2) + Max(0, minTrail - Max(dict->rhmin, 2))) );
+ if (bFailed)
+ {
+ delete[] hyphens;
+ delete[] lcword;
+
+ if (rep)
+ {
+ for(int j = 0; j < n; j++)
+ {
+ if (rep[j]) free(rep[j]);
+ }
+ free(rep);
+ }
+ if (pos) free(pos);
+ if (cut) free(cut);
+
+ return NULL;
}
- }
- }
-
- // other wise hyphenate the word with that dictionary
- dict = aDicts[k].aPtr;
- aEnc = aDicts[k].aEnc;
- pCC = aDicts[k].apCC;
-
- // first handle smart quotes both single and double
- OUStringBuffer rBuf(aWord);
- sal_Int32 nc = rBuf.getLength();
- sal_Unicode ch;
- for (sal_Int32 ix=0; ix < nc; ix++) {
- ch = rBuf.charAt(ix);
- if ((ch == 0x201C) || (ch == 0x201D)) rBuf.setCharAt(ix,(sal_Unicode)0x0022);
- if ((ch == 0x2018) || (ch == 0x2019)) rBuf.setCharAt(ix,(sal_Unicode)0x0027);
- }
- OUString nWord(rBuf.makeStringAndClear());
-
- // now convert word to all lowercase for pattern recognition
- OUString nTerm(makeLowerCase(nWord, pCC));
-
- // now convert word to needed encoding
- OString encWord(OU2ENC(nTerm,aEnc));
-
- wordlen = encWord.getLength();
- lcword = new char[wordlen+1];
- hyphens = new char[wordlen+5];
- char ** rep = NULL; // replacements of discretionary hyphenation
- int * pos = NULL; // array of [hyphenation point] minus [deletion position]
- int * cut = NULL; // length of deletions in original word
-
- // copy converted word into simple char buffer
- strcpy(lcword,encWord.getStr());
-
- // first remove any trailing periods
- int n = wordlen-1;
- while((n >=0) && (lcword[n] == '.')) n--;
- n++;
- // fprintf(stderr,"hyphenate... %s\n",lcword); fflush(stderr);
- if (n > 0) {
- if (hnj_hyphen_hyphenate3(dict, lcword, n, hyphens, NULL, &rep, &pos, &cut,
- minLead, minTrail, Max(dict->clhmin, Max(dict->clhmin, 2) + Max(0, minLead - Max(dict->lhmin, 2))),
- Max(dict->crhmin, Max(dict->crhmin, 2) + Max(0, minTrail - Max(dict->rhmin, 2)))))
- {
- delete[] hyphens;
- delete[] lcword;
-
- if (rep) {
- for(int j = 0; j < n; j++) {
- if (rep[j]) free(rep[j]);
- }
- free(rep);
- }
- if (pos) free(pos);
- if (cut) free(cut);
-
- return NULL;
- }
- }
- // now backfill hyphens[] for any removed periods
- for (int c = n; c < wordlen; c++) hyphens[c] = '0';
- hyphens[wordlen] = '\0';
- // fprintf(stderr,"... %s\n",hyphens); fflush(stderr);
-
- INT16 nHyphCount = 0;
- INT16 i;
-
- for ( i = 0; i < encWord.getLength(); i++)
- if (hyphens[i]&1 && (!rep || !rep[i]))
- nHyphCount++;
-
- Sequence< INT16 > aHyphPos(nHyphCount);
- INT16 *pPos = aHyphPos.getArray();
- OUStringBuffer hyphenatedWordBuffer;
- OUString hyphenatedWord;
- nHyphCount = 0;
-
- for (i = 0; i < nWord.getLength(); i++) {
- hyphenatedWordBuffer.append(aWord[i]);
- // hyphenation position (not alternative)
- if (hyphens[i]&1 && (!rep || !rep[i])) {
- pPos[nHyphCount] = i;
- hyphenatedWordBuffer.append(sal_Unicode('='));
- nHyphCount++;
- }
- }
-
- hyphenatedWord = hyphenatedWordBuffer.makeStringAndClear();
- //fprintf(stderr,"result is %s\n",OU2A(hyphenatedWord));
- //fflush(stderr);
-
- xRes = new PossibleHyphens( aWord, LocaleToLanguage( aLocale ),
- hyphenatedWord, aHyphPos );
-
- delete[] hyphens;
- delete[] lcword;
-
- if (rep) {
- for(int j = 0; j < n; j++) {
- if (rep[j]) free(rep[j]);
- }
- free(rep);
- }
- if (pos) free(pos);
- if (cut) free(cut);
-
- return xRes;
- }
+ }
+ // now backfill hyphens[] for any removed periods
+ for (int c = n; c < wordlen; c++)
+ hyphens[c] = '0';
+ hyphens[wordlen] = '\0';
+ // fprintf(stderr,"... %s\n",hyphens); fflush(stderr);
- return NULL;
+ INT16 nHyphCount = 0;
+ INT16 i;
+
+ for ( i = 0; i < encWord.getLength(); i++)
+ {
+ if (hyphens[i]&1 && (!rep || !rep[i]))
+ nHyphCount++;
+ }
+
+ Sequence< INT16 > aHyphPos(nHyphCount);
+ INT16 *pPos = aHyphPos.getArray();
+ OUStringBuffer hyphenatedWordBuffer;
+ OUString hyphenatedWord;
+ nHyphCount = 0;
+
+ for (i = 0; i < nWord.getLength(); i++)
+ {
+ hyphenatedWordBuffer.append(aWord[i]);
+ // hyphenation position (not alternative)
+ if (hyphens[i]&1 && (!rep || !rep[i]))
+ {
+ pPos[nHyphCount] = i;
+ hyphenatedWordBuffer.append(sal_Unicode('='));
+ nHyphCount++;
+ }
+ }
+
+ hyphenatedWord = hyphenatedWordBuffer.makeStringAndClear();
+ //fprintf(stderr,"result is %s\n",OU2A(hyphenatedWord));
+ //fflush(stderr);
+
+ xRes = new PossibleHyphens( aWord, LocaleToLanguage( aLocale ),
+ hyphenatedWord, aHyphPos );
+
+ delete[] hyphens;
+ delete[] lcword;
+
+ if (rep)
+ {
+ for(int j = 0; j < n; j++)
+ {
+ if (rep[j]) free(rep[j]);
+ }
+ free(rep);
+ }
+ if (pos) free(pos);
+ if (cut) free(cut);
+ return xRes;
+ }
+
+ return NULL;
}
sal_uInt16 SAL_CALL Hyphenator::capitalType(const OUString& aTerm, CharClass * pCC)
{
- sal_Int32 tlen = aTerm.getLength();
- if ((pCC) && (tlen)) {
- String aStr(aTerm);
- sal_Int32 nc = 0;
- for (xub_StrLen tindex = 0; tindex < tlen; tindex++) {
- if (pCC->getCharacterType(aStr,tindex) &
- ::com::sun::star::i18n::KCharacterType::UPPER) nc++;
- }
-
- if (nc == 0) return (sal_uInt16) CAPTYPE_NOCAP;
-
- if (nc == tlen) return (sal_uInt16) CAPTYPE_ALLCAP;
+ sal_Int32 tlen = aTerm.getLength();
+ if ((pCC) && (tlen))
+ {
+ String aStr(aTerm);
+ sal_Int32 nc = 0;
+ for (xub_StrLen tindex = 0; tindex < tlen; tindex++)
+ {
+ if (pCC->getCharacterType(aStr,tindex) & ::com::sun::star::i18n::KCharacterType::UPPER)
+ nc++;
+ }
- if ((nc == 1) && (pCC->getCharacterType(aStr,0) &
- ::com::sun::star::i18n::KCharacterType::UPPER))
- return (sal_uInt16) CAPTYPE_INITCAP;
+ if (nc == 0)
+ return (sal_uInt16) CAPTYPE_NOCAP;
+ if (nc == tlen)
+ return (sal_uInt16) CAPTYPE_ALLCAP;
+ if ((nc == 1) && (pCC->getCharacterType(aStr,0) & ::com::sun::star::i18n::KCharacterType::UPPER))
+ return (sal_uInt16) CAPTYPE_INITCAP;
- return (sal_uInt16) CAPTYPE_MIXED;
+ return (sal_uInt16) CAPTYPE_MIXED;
}
- return (sal_uInt16) CAPTYPE_UNKNOWN;
+ return (sal_uInt16) CAPTYPE_UNKNOWN;
}
OUString SAL_CALL Hyphenator::makeLowerCase(const OUString& aTerm, CharClass * pCC)
{
- if (pCC)
- return pCC->toLower_rtl(aTerm, 0, aTerm.getLength());
- return aTerm;
+ if (pCC)
+ return pCC->toLower_rtl(aTerm, 0, aTerm.getLength());
+ return aTerm;
}
OUString SAL_CALL Hyphenator::makeUpperCase(const OUString& aTerm, CharClass * pCC)
{
- if (pCC)
- return pCC->toUpper_rtl(aTerm, 0, aTerm.getLength());
- return aTerm;
+ if (pCC)
+ return pCC->toUpper_rtl(aTerm, 0, aTerm.getLength());
+ return aTerm;
}
OUString SAL_CALL Hyphenator::makeInitCap(const OUString& aTerm, CharClass * pCC)
{
- sal_Int32 tlen = aTerm.getLength();
- if ((pCC) && (tlen)) {
- OUString bTemp = aTerm.copy(0,1);
- if (tlen > 1)
- return ( pCC->toUpper_rtl(bTemp, 0, 1)
- + pCC->toLower_rtl(aTerm,1,(tlen-1)) );
-
- return pCC->toUpper_rtl(bTemp, 0, 1);
+ sal_Int32 tlen = aTerm.getLength();
+ if ((pCC) && (tlen))
+ {
+ OUString bTemp = aTerm.copy(0,1);
+ if (tlen > 1)
+ return ( pCC->toUpper_rtl(bTemp, 0, 1) + pCC->toLower_rtl(aTerm,1,(tlen-1)) );
+
+ return pCC->toUpper_rtl(bTemp, 0, 1);
}
- return aTerm;
+ return aTerm;
}
-
-
Reference< XInterface > SAL_CALL Hyphenator_CreateInstance(
- const Reference< XMultiServiceFactory > & /*rSMgr*/ )
+ const Reference< XMultiServiceFactory > & /*rSMgr*/ )
throw(Exception)
{
-
Reference< XInterface > xService = (cppu::OWeakObject*) new Hyphenator;
return xService;
}
-sal_Bool SAL_CALL
- Hyphenator::addLinguServiceEventListener(
- const Reference< XLinguServiceEventListener >& rxLstnr )
+sal_Bool SAL_CALL Hyphenator::addLinguServiceEventListener(
+ const Reference< XLinguServiceEventListener >& rxLstnr )
throw(RuntimeException)
{
MutexGuard aGuard( GetLinguMutex() );
@@ -787,9 +817,8 @@ sal_Bool SAL_CALL
}
-sal_Bool SAL_CALL
- Hyphenator::removeLinguServiceEventListener(
- const Reference< XLinguServiceEventListener >& rxLstnr )
+sal_Bool SAL_CALL Hyphenator::removeLinguServiceEventListener(
+ const Reference< XLinguServiceEventListener >& rxLstnr )
throw(RuntimeException)
{
MutexGuard aGuard( GetLinguMutex() );
@@ -804,8 +833,7 @@ sal_Bool SAL_CALL
}
-OUString SAL_CALL
- Hyphenator::getServiceDisplayName( const Locale& /*rLocale*/ )
+OUString SAL_CALL Hyphenator::getServiceDisplayName( const Locale& /*rLocale*/ )
throw(RuntimeException)
{
MutexGuard aGuard( GetLinguMutex() );
@@ -813,8 +841,7 @@ OUString SAL_CALL
}
-void SAL_CALL
- Hyphenator::initialize( const Sequence< Any >& rArguments )
+void SAL_CALL Hyphenator::initialize( const Sequence< Any >& rArguments )
throw(Exception, RuntimeException)
{
MutexGuard aGuard( GetLinguMutex() );
@@ -836,16 +863,15 @@ void SAL_CALL
xPropHelper = pPropHelper;
pPropHelper->AddAsPropListener(); //! after a reference is established
}
- else {
+ else
+ {
DBG_ERROR( "wrong number of arguments in sequence" );
}
-
}
}
-void SAL_CALL
- Hyphenator::dispose()
+void SAL_CALL Hyphenator::dispose()
throw(RuntimeException)
{
MutexGuard aGuard( GetLinguMutex() );
@@ -859,8 +885,7 @@ void SAL_CALL
}
-void SAL_CALL
- Hyphenator::addEventListener( const Reference< XEventListener >& rxListener )
+void SAL_CALL Hyphenator::addEventListener( const Reference< XEventListener >& rxListener )
throw(RuntimeException)
{
MutexGuard aGuard( GetLinguMutex() );
@@ -870,8 +895,7 @@ void SAL_CALL
}
-void SAL_CALL
- Hyphenator::removeEventListener( const Reference< XEventListener >& rxListener )
+void SAL_CALL Hyphenator::removeEventListener( const Reference< XEventListener >& rxListener )
throw(RuntimeException)
{
MutexGuard aGuard( GetLinguMutex() );
@@ -927,32 +951,6 @@ Sequence< OUString > Hyphenator::getSupportedServiceNames_Static()
return aSNS;
}
-
-sal_Bool SAL_CALL Hyphenator_writeInfo(
- void * /*pServiceManager*/, registry::XRegistryKey * pRegistryKey )
-{
-
- try
- {
- String aImpl( '/' );
- aImpl += Hyphenator::getImplementationName_Static().getStr();
- aImpl.AppendAscii( "/UNO/SERVICES" );
- Reference< registry::XRegistryKey > xNewKey =
- pRegistryKey->createKey( aImpl );
- Sequence< OUString > aServices =
- Hyphenator::getSupportedServiceNames_Static();
- for( INT32 i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- return sal_True;
- }
- catch(Exception &)
- {
- return sal_False;
- }
-}
-
-
void * SAL_CALL Hyphenator_getFactory( const sal_Char * pImplName,
XMultiServiceFactory * pServiceManager, void * )
{
diff --git a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.hxx b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.hxx
index 031217914754..e20b4f58f589 100644..100755
--- a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.hxx
+++ b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/hyphenimp.hxx
@@ -65,7 +65,7 @@ struct HDInfo {
HyphenDict * aPtr;
OUString aName;
Locale aLoc;
- rtl_TextEncoding aEnc;
+ rtl_TextEncoding eEnc;
CharClass * apCC;
};
@@ -83,12 +83,12 @@ class Hyphenator :
>
{
Sequence< Locale > aSuppLocales;
- HDInfo * aDicts;
- sal_Int32 numdict;
+ HDInfo * aDicts;
+ sal_Int32 numdict;
::cppu::OInterfaceContainerHelper aEvtListeners;
Reference< XPropertyChangeListener > xPropHelper;
- Reference< XMultiServiceFactory > rSMgr;
+ Reference< XMultiServiceFactory > rSMgr;
linguistic::PropertyHelper_Hyphen * pPropHelper;
BOOL bDisposing;
@@ -108,88 +108,38 @@ public:
virtual ~Hyphenator();
// XSupportedLocales (for XHyphenator)
- virtual Sequence< Locale > SAL_CALL getLocales()
- throw(RuntimeException);
- virtual sal_Bool SAL_CALL hasLocale( const Locale& rLocale )
- throw(RuntimeException);
+ virtual Sequence< Locale > SAL_CALL getLocales() throw(RuntimeException);
+ virtual sal_Bool SAL_CALL hasLocale( const Locale& rLocale ) throw(RuntimeException);
// XHyphenator
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XHyphenatedWord > SAL_CALL
- hyphenate( const ::rtl::OUString& aWord,
- const ::com::sun::star::lang::Locale& aLocale,
- sal_Int16 nMaxLeading,
- const ::com::sun::star::beans::PropertyValues& aProperties )
- throw(::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::uno::RuntimeException);
-
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XHyphenatedWord > SAL_CALL
- queryAlternativeSpelling( const ::rtl::OUString& aWord,
- const ::com::sun::star::lang::Locale& aLocale,
- sal_Int16 nIndex,
- const ::com::sun::star::beans::PropertyValues& aProperties )
- throw(::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::uno::RuntimeException);
-
- virtual ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XPossibleHyphens > SAL_CALL
- createPossibleHyphens( const ::rtl::OUString& aWord,
- const ::com::sun::star::lang::Locale& aLocale,
- const ::com::sun::star::beans::PropertyValues& aProperties )
- throw(::com::sun::star::lang::IllegalArgumentException,
- ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XHyphenatedWord > SAL_CALL hyphenate( const ::rtl::OUString& aWord, const ::com::sun::star::lang::Locale& aLocale, sal_Int16 nMaxLeading, const ::com::sun::star::beans::PropertyValues& aProperties ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XHyphenatedWord > SAL_CALL queryAlternativeSpelling( const ::rtl::OUString& aWord, const ::com::sun::star::lang::Locale& aLocale, sal_Int16 nIndex, const ::com::sun::star::beans::PropertyValues& aProperties ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XPossibleHyphens > SAL_CALL createPossibleHyphens( const ::rtl::OUString& aWord, const ::com::sun::star::lang::Locale& aLocale, const ::com::sun::star::beans::PropertyValues& aProperties ) throw(::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
// XLinguServiceEventBroadcaster
- virtual sal_Bool SAL_CALL
- addLinguServiceEventListener(
- const Reference< XLinguServiceEventListener >& rxLstnr )
- throw(RuntimeException);
- virtual sal_Bool SAL_CALL
- removeLinguServiceEventListener(
- const Reference< XLinguServiceEventListener >& rxLstnr )
- throw(RuntimeException);
+ virtual sal_Bool SAL_CALL addLinguServiceEventListener( const Reference< XLinguServiceEventListener >& rxLstnr ) throw(RuntimeException);
+ virtual sal_Bool SAL_CALL removeLinguServiceEventListener( const Reference< XLinguServiceEventListener >& rxLstnr ) throw(RuntimeException);
// XServiceDisplayName
- virtual OUString SAL_CALL
- getServiceDisplayName( const Locale& rLocale )
- throw(RuntimeException);
+ virtual OUString SAL_CALL getServiceDisplayName( const Locale& rLocale ) throw(RuntimeException);
// XInitialization
- virtual void SAL_CALL
- initialize( const Sequence< Any >& rArguments )
- throw(Exception, RuntimeException);
+ virtual void SAL_CALL initialize( const Sequence< Any >& rArguments ) throw(Exception, RuntimeException);
// XComponent
- virtual void SAL_CALL
- dispose()
- throw(RuntimeException);
- virtual void SAL_CALL
- addEventListener( const Reference< XEventListener >& rxListener )
- throw(RuntimeException);
- virtual void SAL_CALL
- removeEventListener( const Reference< XEventListener >& rxListener )
- throw(RuntimeException);
-
- ////////////////////////////////////////////////////////////
- // Service specific part
- //
+ virtual void SAL_CALL dispose() throw(RuntimeException);
+ virtual void SAL_CALL addEventListener( const Reference< XEventListener >& rxListener ) throw(RuntimeException);
+ virtual void SAL_CALL removeEventListener( const Reference< XEventListener >& rxListener ) throw(RuntimeException);
// XServiceInfo
- virtual OUString SAL_CALL
- getImplementationName()
- throw(RuntimeException);
- virtual sal_Bool SAL_CALL
- supportsService( const OUString& rServiceName )
- throw(RuntimeException);
- virtual Sequence< OUString > SAL_CALL
- getSupportedServiceNames()
- throw(RuntimeException);
-
-
- static inline OUString
- getImplementationName_Static() throw();
- static Sequence< OUString >
- getSupportedServiceNames_Static() throw();
+ virtual OUString SAL_CALL getImplementationName() throw(RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) throw(RuntimeException);
+ virtual Sequence< OUString > SAL_CALL getSupportedServiceNames() throw(RuntimeException);
+ static inline OUString getImplementationName_Static() throw();
+ static Sequence< OUString > getSupportedServiceNames_Static() throw();
+
private:
sal_uInt16 SAL_CALL capitalType(const OUString&, CharClass *);
diff --git a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk
index f3626c70312b..6f767d8bfa9e 100644
--- a/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk
+++ b/lingucomponent/source/hyphenator/altlinuxhyph/hyphen/makefile.mk
@@ -91,3 +91,11 @@ DEF1EXPORTFILE= exports.dxp
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/hyphen.component
+
+$(MISC)/hyphen.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ hyphen.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt hyphen.component
diff --git a/lingucomponent/source/languageguessing/guesslang.component b/lingucomponent/source/languageguessing/guesslang.component
new file mode 100644
index 000000000000..633a489c38fa
--- /dev/null
+++ b/lingucomponent/source/languageguessing/guesslang.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.lingu2.LanguageGuessing">
+ <service name="com.sun.star.linguistic2.LanguageGuessing"/>
+ </implementation>
+</component>
diff --git a/lingucomponent/source/languageguessing/guesslang.cxx b/lingucomponent/source/languageguessing/guesslang.cxx
index c8486c1bc471..baac0fd7e856 100644
--- a/lingucomponent/source/languageguessing/guesslang.cxx
+++ b/lingucomponent/source/languageguessing/guesslang.cxx
@@ -465,13 +465,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-sal_Bool SAL_CALL component_writeInfo(
- XMultiServiceFactory * xMgr, registry::XRegistryKey * xRegistry )
-{
- return ::cppu::component_writeInfoHelper(
- xMgr, xRegistry, s_component_entries );
-}
-
void * SAL_CALL component_getFactory(
sal_Char const * implName, lang::XMultiServiceFactory * xMgr,
registry::XRegistryKey * xRegistry )
diff --git a/lingucomponent/source/languageguessing/makefile.mk b/lingucomponent/source/languageguessing/makefile.mk
index ebad4076b3ed..624ccba3c334 100644
--- a/lingucomponent/source/languageguessing/makefile.mk
+++ b/lingucomponent/source/languageguessing/makefile.mk
@@ -78,3 +78,11 @@ DEF1NAME =$(SHL1TARGET)
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/guesslang.component
+
+$(MISC)/guesslang.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ guesslang.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt guesslang.component
diff --git a/lingucomponent/source/lingutil/lingutil.cxx b/lingucomponent/source/lingutil/lingutil.cxx
index ee7d71de4435..14253fca5cd3 100644..100755
--- a/lingucomponent/source/lingutil/lingutil.cxx
+++ b/lingucomponent/source/lingutil/lingutil.cxx
@@ -50,6 +50,7 @@
#include <unotools/pathoptions.hxx>
#include <rtl/ustring.hxx>
#include <rtl/string.hxx>
+#include <rtl/tencinfo.h>
#include <linguistic/misc.hxx>
#include <set>
@@ -268,5 +269,25 @@ void MergeNewStyleDicsAndOldStyleDics(
}
}
+
+rtl_TextEncoding getTextEncodingFromCharset(const sal_Char* pCharset)
+{
+ // default result: used to indicate that we failed to get the proper encoding
+ rtl_TextEncoding eRet = RTL_TEXTENCODING_DONTKNOW;
+
+ if (pCharset)
+ {
+ eRet = rtl_getTextEncodingFromMimeCharset(pCharset);
+ if (eRet == RTL_TEXTENCODING_DONTKNOW)
+ eRet = rtl_getTextEncodingFromUnixCharset(pCharset);
+ if (eRet == RTL_TEXTENCODING_DONTKNOW)
+ {
+ if (strcmp("ISCII-DEVANAGARI", pCharset) == 0)
+ eRet = RTL_TEXTENCODING_ISCII_DEVANAGARI;
+ }
+ }
+ return eRet;
+}
+
//////////////////////////////////////////////////////////////////////
diff --git a/lingucomponent/source/lingutil/lingutil.hxx b/lingucomponent/source/lingutil/lingutil.hxx
index 8b45b1f509ad..82d2e646edfc 100644
--- a/lingucomponent/source/lingutil/lingutil.hxx
+++ b/lingucomponent/source/lingutil/lingutil.hxx
@@ -101,5 +101,13 @@ void MergeNewStyleDicsAndOldStyleDics( std::list< SvtLinguConfigDictionaryEntry
///////////////////////////////////////////////////////////////////////////
+
+//Find an encoding from a charset string, using
+//rtl_getTextEncodingFromMimeCharset and falling back to
+//rtl_getTextEncodingFromUnixCharset with the addition of
+//ISCII-DEVANAGARI. On failure will return final fallback of
+//RTL_TEXTENCODING_ISO_8859_1
+rtl_TextEncoding getTextEncodingFromCharset(const sal_Char* pCharset);
+
#endif
diff --git a/lingucomponent/source/spellcheck/macosxspell/MacOSXSpell.component b/lingucomponent/source/spellcheck/macosxspell/MacOSXSpell.component
new file mode 100644
index 000000000000..2f2f9e102087
--- /dev/null
+++ b/lingucomponent/source/spellcheck/macosxspell/MacOSXSpell.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="org.openoffice.lingu.MacOSXSpellChecker">
+ <service name="com.sun.star.linguistic2.SpellChecker"/>
+ </implementation>
+</component>
diff --git a/lingucomponent/source/spellcheck/macosxspell/macreg.cxx b/lingucomponent/source/spellcheck/macosxspell/macreg.cxx
index b60ffffe42e9..9df90f79cca7 100644
--- a/lingucomponent/source/spellcheck/macosxspell/macreg.cxx
+++ b/lingucomponent/source/spellcheck/macosxspell/macreg.cxx
@@ -42,9 +42,6 @@ using namespace com::sun::star::registry;
// declaration of external RegEntry-functions defined by the service objects
//
-extern sal_Bool SAL_CALL MacSpellChecker_writeInfo(
- void * /*pServiceManager*/, XRegistryKey * pRegistryKey );
-
extern void * SAL_CALL MacSpellChecker_getFactory(
const sal_Char * pImplName,
XMultiServiceFactory * pServiceManager,
@@ -57,12 +54,6 @@ extern void * SAL_CALL MacSpellChecker_getFactory(
extern "C"
{
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, XRegistryKey * pRegistryKey )
-{
- return MacSpellChecker_writeInfo( pServiceManager, pRegistryKey );
-}
-
void SAL_CALL component_getImplementationEnvironment(
const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
{
diff --git a/lingucomponent/source/spellcheck/macosxspell/macspellimp.cxx b/lingucomponent/source/spellcheck/macosxspell/macspellimp.cxx
index 70996793c186..002f1dec0b36 100644
--- a/lingucomponent/source/spellcheck/macosxspell/macspellimp.cxx
+++ b/lingucomponent/source/spellcheck/macosxspell/macspellimp.cxx
@@ -644,32 +644,6 @@ Sequence< OUString > MacSpellChecker::getSupportedServiceNames_Static()
return aSNS;
}
-
-sal_Bool SAL_CALL MacSpellChecker_writeInfo(
- void * /*pServiceManager*/, registry::XRegistryKey * pRegistryKey )
-{
-
- try
- {
- String aImpl( '/' );
- aImpl += MacSpellChecker::getImplementationName_Static().getStr();
- aImpl.AppendAscii( "/UNO/SERVICES" );
- Reference< registry::XRegistryKey > xNewKey =
- pRegistryKey->createKey( aImpl );
- Sequence< OUString > aServices =
- MacSpellChecker::getSupportedServiceNames_Static();
- for( INT32 i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- return sal_True;
- }
- catch(Exception &)
- {
- return sal_False;
- }
-}
-
-
void * SAL_CALL MacSpellChecker_getFactory( const sal_Char * pImplName,
XMultiServiceFactory * pServiceManager, void * )
{
diff --git a/lingucomponent/source/spellcheck/macosxspell/macspellimp.hxx b/lingucomponent/source/spellcheck/macosxspell/macspellimp.hxx
index b3cfce92fd8b..fc1906e18025 100644..100755
--- a/lingucomponent/source/spellcheck/macosxspell/macspellimp.hxx
+++ b/lingucomponent/source/spellcheck/macosxspell/macspellimp.hxx
@@ -75,14 +75,14 @@ class MacSpellChecker :
XServiceDisplayName
>
{
- Sequence< Locale > aSuppLocales;
+ Sequence< Locale > aSuppLocales;
// Hunspell ** aDicts;
- rtl_TextEncoding * aDEncs;
- Locale * aDLocs;
- OUString * aDNames;
- sal_Int32 numdict;
- NSSpellChecker * macSpell;
- int macTag; //unique tag for this doc
+ rtl_TextEncoding * aDEncs;
+ Locale * aDLocs;
+ OUString * aDNames;
+ sal_Int32 numdict;
+ NSSpellChecker * macSpell;
+ int macTag; //unique tag for this doc
::cppu::OInterfaceContainerHelper aEvtListeners;
Reference< XPropertyChangeListener > xPropHelper;
@@ -100,84 +100,43 @@ class MacSpellChecker :
}
INT16 GetSpellFailure( const OUString &rWord, const Locale &rLocale );
- Reference< XSpellAlternatives >
- GetProposals( const OUString &rWord, const Locale &rLocale );
+ Reference< XSpellAlternatives > GetProposals( const OUString &rWord, const Locale &rLocale );
public:
MacSpellChecker();
virtual ~MacSpellChecker();
// XSupportedLocales (for XSpellChecker)
- virtual Sequence< Locale > SAL_CALL
- getLocales()
- throw(RuntimeException);
- virtual sal_Bool SAL_CALL
- hasLocale( const Locale& rLocale )
- throw(RuntimeException);
+ virtual Sequence< Locale > SAL_CALL getLocales() throw(RuntimeException);
+ virtual sal_Bool SAL_CALL hasLocale( const Locale& rLocale ) throw(RuntimeException);
// XSpellChecker
- virtual sal_Bool SAL_CALL
- isValid( const OUString& rWord, const Locale& rLocale,
- const PropertyValues& rProperties )
- throw(IllegalArgumentException,
- RuntimeException);
- virtual Reference< XSpellAlternatives > SAL_CALL
- spell( const OUString& rWord, const Locale& rLocale,
- const PropertyValues& rProperties )
- throw(IllegalArgumentException,
- RuntimeException);
+ virtual sal_Bool SAL_CALL isValid( const OUString& rWord, const Locale& rLocale, const PropertyValues& rProperties ) throw(IllegalArgumentException, RuntimeException);
+ virtual Reference< XSpellAlternatives > SAL_CALL spell( const OUString& rWord, const Locale& rLocale, const PropertyValues& rProperties ) throw(IllegalArgumentException, RuntimeException);
// XLinguServiceEventBroadcaster
- virtual sal_Bool SAL_CALL
- addLinguServiceEventListener(
- const Reference< XLinguServiceEventListener >& rxLstnr )
- throw(RuntimeException);
- virtual sal_Bool SAL_CALL
- removeLinguServiceEventListener(
- const Reference< XLinguServiceEventListener >& rxLstnr )
- throw(RuntimeException);
+ virtual sal_Bool SAL_CALL addLinguServiceEventListener( const Reference< XLinguServiceEventListener >& rxLstnr ) throw(RuntimeException);
+ virtual sal_Bool SAL_CALL removeLinguServiceEventListener( const Reference< XLinguServiceEventListener >& rxLstnr ) throw(RuntimeException);
// XServiceDisplayName
- virtual OUString SAL_CALL
- getServiceDisplayName( const Locale& rLocale )
- throw(RuntimeException);
+ virtual OUString SAL_CALL getServiceDisplayName( const Locale& rLocale ) throw(RuntimeException);
// XInitialization
- virtual void SAL_CALL
- initialize( const Sequence< Any >& rArguments )
- throw(Exception, RuntimeException);
+ virtual void SAL_CALL initialize( const Sequence< Any >& rArguments ) throw(Exception, RuntimeException);
// XComponent
- virtual void SAL_CALL
- dispose()
- throw(RuntimeException);
- virtual void SAL_CALL
- addEventListener( const Reference< XEventListener >& rxListener )
- throw(RuntimeException);
- virtual void SAL_CALL
- removeEventListener( const Reference< XEventListener >& rxListener )
- throw(RuntimeException);
-
- ////////////////////////////////////////////////////////////
- // Service specific part
- //
+ virtual void SAL_CALL dispose() throw(RuntimeException);
+ virtual void SAL_CALL addEventListener( const Reference< XEventListener >& rxListener ) throw(RuntimeException);
+ virtual void SAL_CALL removeEventListener( const Reference< XEventListener >& rxListener ) throw(RuntimeException);
// XServiceInfo
- virtual OUString SAL_CALL
- getImplementationName()
- throw(RuntimeException);
- virtual sal_Bool SAL_CALL
- supportsService( const OUString& rServiceName )
- throw(RuntimeException);
- virtual Sequence< OUString > SAL_CALL
- getSupportedServiceNames()
- throw(RuntimeException);
-
-
- static inline OUString
- getImplementationName_Static() throw();
- static Sequence< OUString >
- getSupportedServiceNames_Static() throw();
+ virtual OUString SAL_CALL getImplementationName() throw(RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) throw(RuntimeException);
+ virtual Sequence< OUString > SAL_CALL getSupportedServiceNames() throw(RuntimeException);
+
+
+ static inline OUString getImplementationName_Static() throw();
+ static Sequence< OUString > getSupportedServiceNames_Static() throw();
};
inline OUString MacSpellChecker::getImplementationName_Static() throw()
diff --git a/lingucomponent/source/spellcheck/macosxspell/makefile.mk b/lingucomponent/source/spellcheck/macosxspell/makefile.mk
index 6414560e0f4a..4e88b808ddc0 100644
--- a/lingucomponent/source/spellcheck/macosxspell/makefile.mk
+++ b/lingucomponent/source/spellcheck/macosxspell/makefile.mk
@@ -91,3 +91,11 @@ SHL1VERSIONMAP=$(SOLARENV)/src/component.map
dummy:
@echo " Nothing to build for GUIBASE=$(GUIBASE)"
.ENDIF
+
+ALLTAR : $(MISC)/MacOSXSpell.component
+
+$(MISC)/MacOSXSpell.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt MacOSXSpell.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt MacOSXSpell.component
diff --git a/lingucomponent/source/spellcheck/spell/exports.dxp b/lingucomponent/source/spellcheck/spell/exports.dxp
index b0f85bf7bebf..a9861e3ffc0c 100644
--- a/lingucomponent/source/spellcheck/spell/exports.dxp
+++ b/lingucomponent/source/spellcheck/spell/exports.dxp
@@ -1,3 +1,2 @@
component_getFactory
component_getImplementationEnvironment
-component_writeInfo
diff --git a/lingucomponent/source/spellcheck/spell/makefile.mk b/lingucomponent/source/spellcheck/spell/makefile.mk
index 4173d4dbae22..56dd79939b40 100644
--- a/lingucomponent/source/spellcheck/spell/makefile.mk
+++ b/lingucomponent/source/spellcheck/spell/makefile.mk
@@ -85,3 +85,11 @@ DEF1EXPORTFILE= exports.dxp
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/spell.component
+
+$(MISC)/spell.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ spell.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt spell.component
diff --git a/lingucomponent/source/spellcheck/spell/spell.component b/lingucomponent/source/spellcheck/spell/spell.component
new file mode 100644
index 000000000000..9f951a8a8f76
--- /dev/null
+++ b/lingucomponent/source/spellcheck/spell/spell.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="org.openoffice.lingu.MySpellSpellChecker">
+ <service name="com.sun.star.linguistic2.SpellChecker"/>
+ </implementation>
+</component>
diff --git a/lingucomponent/source/spellcheck/spell/sreg.cxx b/lingucomponent/source/spellcheck/spell/sreg.cxx
index bd97403c89d6..4c6375698de6 100644
--- a/lingucomponent/source/spellcheck/spell/sreg.cxx
+++ b/lingucomponent/source/spellcheck/spell/sreg.cxx
@@ -42,9 +42,6 @@ using namespace com::sun::star::registry;
// declaration of external RegEntry-functions defined by the service objects
//
-extern sal_Bool SAL_CALL SpellChecker_writeInfo(
- void * /*pServiceManager*/, XRegistryKey * pRegistryKey );
-
extern void * SAL_CALL SpellChecker_getFactory(
const sal_Char * pImplName,
XMultiServiceFactory * pServiceManager,
@@ -56,12 +53,6 @@ extern void * SAL_CALL SpellChecker_getFactory(
extern "C"
{
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, XRegistryKey * pRegistryKey )
-{
- return SpellChecker_writeInfo( pServiceManager, pRegistryKey );
-}
-
void SAL_CALL component_getImplementationEnvironment(
const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
{
diff --git a/lingucomponent/source/spellcheck/spell/sspellimp.cxx b/lingucomponent/source/spellcheck/spell/sspellimp.cxx
index 0cb6ad8ec3da..05ae1ab1a6e9 100644..100755
--- a/lingucomponent/source/spellcheck/spell/sspellimp.cxx
+++ b/lingucomponent/source/spellcheck/spell/sspellimp.cxx
@@ -27,6 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_lingucomponent.hxx"
+
#include <com/sun/star/uno/Reference.h>
#include <com/sun/star/linguistic2/XSearchableDictionaryList.hpp>
@@ -37,12 +38,10 @@
#include <unotools/processfactory.hxx>
#include <osl/mutex.hxx>
+#include <lingutil.hxx>
#include <hunspell.hxx>
#include <dictmgr.hxx>
-
-#ifndef _SPELLIMP_HXX
#include <sspellimp.hxx>
-#endif
#include <linguistic/lngprops.hxx>
#include <linguistic/spelldta.hxx>
@@ -52,8 +51,7 @@
#include <unotools/useroptions.hxx>
#include <osl/file.hxx>
#include <rtl/ustrbuf.hxx>
-
-#include <lingutil.hxx>
+#include <rtl/textenc.h>
#include <list>
#include <set>
@@ -77,35 +75,37 @@ using namespace linguistic;
SpellChecker::SpellChecker() :
aEvtListeners ( GetLinguMutex() )
{
- aDicts = NULL;
+ aDicts = NULL;
aDEncs = NULL;
aDLocs = NULL;
aDNames = NULL;
bDisposing = FALSE;
pPropHelper = NULL;
- numdict = 0;
+ numdict = 0;
}
SpellChecker::~SpellChecker()
{
- if (aDicts) {
- for (int i = 0; i < numdict; i++) {
+ if (aDicts)
+ {
+ for (int i = 0; i < numdict; i++)
+ {
if (aDicts[i]) delete aDicts[i];
aDicts[i] = NULL;
- }
- delete[] aDicts;
- }
- aDicts = NULL;
- numdict = 0;
- if (aDEncs) delete[] aDEncs;
- aDEncs = NULL;
- if (aDLocs) delete[] aDLocs;
- aDLocs = NULL;
- if (aDNames) delete[] aDNames;
- aDNames = NULL;
- if (pPropHelper)
- pPropHelper->RemoveAsPropListener();
+ }
+ delete[] aDicts;
+ }
+ aDicts = NULL;
+ numdict = 0;
+ if (aDEncs) delete[] aDEncs;
+ aDEncs = NULL;
+ if (aDLocs) delete[] aDLocs;
+ aDLocs = NULL;
+ if (aDNames) delete[] aDNames;
+ aDNames = NULL;
+ if (pPropHelper)
+ pPropHelper->RemoveAsPropListener();
}
@@ -217,7 +217,7 @@ Sequence< Locale > SAL_CALL SpellChecker::getLocales()
for (sal_Int32 i = 0; i < nLocales; ++i)
{
aDicts[k] = NULL;
- aDEncs[k] = 0;
+ aDEncs[k] = RTL_TEXTENCODING_DONTKNOW;
aDLocs[k] = MsLangId::convertLanguageToLocale(
MsLangId::convertIsoStringToLanguage( aLocaleNames[i] ));
// also both files have to be in the same directory and the
@@ -272,84 +272,86 @@ sal_Bool SAL_CALL SpellChecker::hasLocale(const Locale& rLocale)
return bRes;
}
+
INT16 SpellChecker::GetSpellFailure( const OUString &rWord, const Locale &rLocale )
{
- Hunspell * pMS;
- rtl_TextEncoding aEnc;
+ Hunspell * pMS = NULL;
+ rtl_TextEncoding eEnc = RTL_TEXTENCODING_DONTKNOW;
// initialize a myspell object for each dictionary once
- // (note: mutex is held higher up in isValid)
-
+ // (note: mutex is held higher up in isValid)
INT16 nRes = -1;
- // first handle smart quotes both single and double
+ // first handle smart quotes both single and double
OUStringBuffer rBuf(rWord);
- sal_Int32 n = rBuf.getLength();
- sal_Unicode c;
- for (sal_Int32 ix=0; ix < n; ix++) {
+ sal_Int32 n = rBuf.getLength();
+ sal_Unicode c;
+ for (sal_Int32 ix=0; ix < n; ix++)
+ {
c = rBuf.charAt(ix);
- if ((c == 0x201C) || (c == 0x201D)) rBuf.setCharAt(ix,(sal_Unicode)0x0022);
- if ((c == 0x2018) || (c == 0x2019)) rBuf.setCharAt(ix,(sal_Unicode)0x0027);
- }
- OUString nWord(rBuf.makeStringAndClear());
+ if ((c == 0x201C) || (c == 0x201D))
+ rBuf.setCharAt(ix,(sal_Unicode)0x0022);
+ if ((c == 0x2018) || (c == 0x2019))
+ rBuf.setCharAt(ix,(sal_Unicode)0x0027);
+ }
+ OUString nWord(rBuf.makeStringAndClear());
if (n)
{
- for (sal_Int32 i = 0; i < numdict; ++i) {
+ for (sal_Int32 i = 0; i < numdict; ++i)
+ {
pMS = NULL;
- aEnc = 0;
+ eEnc = RTL_TEXTENCODING_DONTKNOW;
if (rLocale == aDLocs[i])
{
- if (!aDicts[i])
- {
- OUString dicpath = aDNames[i] + A2OU(".dic");
- OUString affpath = aDNames[i] + A2OU(".aff");
- OUString dict;
- OUString aff;
- osl::FileBase::getSystemPathFromFileURL(dicpath,dict);
- osl::FileBase::getSystemPathFromFileURL(affpath,aff);
- OString aTmpaff(OU2ENC(aff,osl_getThreadTextEncoding()));
- OString aTmpdict(OU2ENC(dict,osl_getThreadTextEncoding()));
+ if (!aDicts[i])
+ {
+ OUString dicpath = aDNames[i] + A2OU(".dic");
+ OUString affpath = aDNames[i] + A2OU(".aff");
+ OUString dict;
+ OUString aff;
+ osl::FileBase::getSystemPathFromFileURL(dicpath,dict);
+ osl::FileBase::getSystemPathFromFileURL(affpath,aff);
+ OString aTmpaff(OU2ENC(aff,osl_getThreadTextEncoding()));
+ OString aTmpdict(OU2ENC(dict,osl_getThreadTextEncoding()));
#if defined(WNT)
- // workaround for Windows specifc problem that the
- // path length in calls to 'fopen' is limted to somewhat
- // about 120+ characters which will usually be exceed when
- // using dictionaries as extensions.
- aTmpaff = Win_GetShortPathName( aff );
- aTmpdict = Win_GetShortPathName( dict );
+ // workaround for Windows specifc problem that the
+ // path length in calls to 'fopen' is limted to somewhat
+ // about 120+ characters which will usually be exceed when
+ // using dictionaries as extensions.
+ aTmpaff = Win_GetShortPathName( aff );
+ aTmpdict = Win_GetShortPathName( dict );
#endif
- aDicts[i] = new Hunspell(aTmpaff.getStr(),aTmpdict.getStr());
- aDEncs[i] = 0;
- if (aDicts[i]) {
- char * dic_encoding = aDicts[i]->get_dic_encoding();
- aDEncs[i] = rtl_getTextEncodingFromUnixCharset(aDicts[i]->get_dic_encoding());
- if (aDEncs[i] == RTL_TEXTENCODING_DONTKNOW) {
- if (strcmp("ISCII-DEVANAGARI", dic_encoding) == 0) {
- aDEncs[i] = RTL_TEXTENCODING_ISCII_DEVANAGARI;
- } else if (strcmp("UTF-8", dic_encoding) == 0) {
- aDEncs[i] = RTL_TEXTENCODING_UTF8;
- }
- }
- }
- }
- pMS = aDicts[i];
- aEnc = aDEncs[i];
- }
+ aDicts[i] = new Hunspell(aTmpaff.getStr(),aTmpdict.getStr());
+ aDEncs[i] = RTL_TEXTENCODING_DONTKNOW;
+ if (aDicts[i])
+ aDEncs[i] = getTextEncodingFromCharset(aDicts[i]->get_dic_encoding());
+ }
+ pMS = aDicts[i];
+ eEnc = aDEncs[i];
+ }
+
if (pMS)
- {
- OString aWrd(OU2ENC(nWord,aEnc));
+ {
+ // we don't want to work with a default text encoding since following incorrect
+ // results may occur only for specific text and thus may be hard to notice.
+ // Thus better always make a clean exit here if the text encoding is in question.
+ // Hopefully something not working at all will raise proper attention quickly. ;-)
+ DBG_ASSERT( eEnc != RTL_TEXTENCODING_DONTKNOW, "failed to get text encoding! (maybe incorrect encoding string in file)" );
+ if (eEnc == RTL_TEXTENCODING_DONTKNOW)
+ return -1;
+
+ OString aWrd(OU2ENC(nWord,eEnc));
int rVal = pMS->spell((char*)aWrd.getStr());
- if (rVal != 1)
- {
- nRes = SpellFailure::SPELLING_ERROR;
- } else {
- return -1;
- }
- pMS = NULL;
+ if (rVal != 1)
+ nRes = SpellFailure::SPELLING_ERROR;
+ else
+ return -1;
+ pMS = NULL;
}
}
}
@@ -358,8 +360,7 @@ INT16 SpellChecker::GetSpellFailure( const OUString &rWord, const Locale &rLocal
}
-sal_Bool SAL_CALL
- SpellChecker::isValid( const OUString& rWord, const Locale& rLocale,
+sal_Bool SAL_CALL SpellChecker::isValid( const OUString& rWord, const Locale& rLocale,
const PropertyValues& rProperties )
throw(IllegalArgumentException, RuntimeException)
{
@@ -390,11 +391,11 @@ sal_Bool SAL_CALL
{
INT16 nLang = LocaleToLanguage( rLocale );
// postprocess result for errors that should be ignored
- if ( (!rHelper.IsSpellUpperCase() && IsUpper( rWord, nLang ))
- || (!rHelper.IsSpellWithDigits() && HasDigits( rWord ))
- || (!rHelper.IsSpellCapitalization()
- && nFailure == SpellFailure::CAPTION_ERROR)
- )
+ const bool bIgnoreError =
+ (!rHelper.IsSpellUpperCase() && IsUpper( rWord, nLang )) ||
+ (!rHelper.IsSpellWithDigits() && HasDigits( rWord )) ||
+ (!rHelper.IsSpellCapitalization() && nFailure == SpellFailure::CAPTION_ERROR);
+ if (bIgnoreError)
nFailure = -1;
}
@@ -410,23 +411,26 @@ Reference< XSpellAlternatives >
// Especially it may give a list of suggested (correct) words:
Reference< XSpellAlternatives > xRes;
- // note: mutex is held by higher up by spell which covers both
+ // note: mutex is held by higher up by spell which covers both
- Hunspell* pMS;
- rtl_TextEncoding aEnc;
- int count;
- int numsug = 0;
+ Hunspell* pMS = NULL;
+ rtl_TextEncoding eEnc = RTL_TEXTENCODING_DONTKNOW;
+ int count = 0;
+ int numsug = 0;
- // first handle smart quotes (single and double)
+ // first handle smart quotes (single and double)
OUStringBuffer rBuf(rWord);
- sal_Int32 n = rBuf.getLength();
- sal_Unicode c;
- for (sal_Int32 ix=0; ix < n; ix++) {
- c = rBuf.charAt(ix);
- if ((c == 0x201C) || (c == 0x201D)) rBuf.setCharAt(ix,(sal_Unicode)0x0022);
- if ((c == 0x2018) || (c == 0x2019)) rBuf.setCharAt(ix,(sal_Unicode)0x0027);
- }
- OUString nWord(rBuf.makeStringAndClear());
+ sal_Int32 n = rBuf.getLength();
+ sal_Unicode c;
+ for (sal_Int32 ix=0; ix < n; ix++)
+ {
+ c = rBuf.charAt(ix);
+ if ((c == 0x201C) || (c == 0x201D))
+ rBuf.setCharAt(ix,(sal_Unicode)0x0022);
+ if ((c == 0x2018) || (c == 0x2019))
+ rBuf.setCharAt(ix,(sal_Unicode)0x0027);
+ }
+ OUString nWord(rBuf.makeStringAndClear());
if (n)
{
@@ -434,56 +438,55 @@ Reference< XSpellAlternatives >
Sequence< OUString > aStr( 0 );
- for (int i =0; i < numdict; i++) {
+ for (int i =0; i < numdict; i++)
+ {
pMS = NULL;
- aEnc = 0;
- count = 0;
+ eEnc = RTL_TEXTENCODING_DONTKNOW;
+ count = 0;
if (rLocale == aDLocs[i])
{
- pMS = aDicts[i];
- aEnc = aDEncs[i];
- }
+ pMS = aDicts[i];
+ eEnc = aDEncs[i];
+ }
if (pMS)
{
char ** suglst = NULL;
- OString aWrd(OU2ENC(nWord,aEnc));
- count = pMS->suggest(&suglst, (const char *) aWrd.getStr());
-
- if (count) {
- aStr.realloc( numsug + count );
- OUString *pStr = aStr.getArray();
- for (int ii=0; ii < count; ++ii)
- {
- OUString cvtwrd(suglst[ii],strlen(suglst[ii]),aEnc);
- pStr[numsug + ii] = cvtwrd;
- }
- pMS->free_list(&suglst, count);
- numsug += count;
+ OString aWrd(OU2ENC(nWord,eEnc));
+ count = pMS->suggest(&suglst, (const char *) aWrd.getStr());
+
+ if (count)
+ {
+ aStr.realloc( numsug + count );
+ OUString *pStr = aStr.getArray();
+ for (int ii=0; ii < count; ++ii)
+ {
+ OUString cvtwrd(suglst[ii],strlen(suglst[ii]),eEnc);
+ pStr[numsug + ii] = cvtwrd;
}
- }
+ pMS->free_list(&suglst, count);
+ numsug += count;
+ }
+ }
}
- // now return an empty alternative for no suggestions or the list of alternatives if some found
+ // now return an empty alternative for no suggestions or the list of alternatives if some found
SpellAlternatives *pAlt = new SpellAlternatives;
- String aTmp(rWord);
+ String aTmp(rWord);
pAlt->SetWordLanguage( aTmp, nLang );
pAlt->SetFailureType( SpellFailure::SPELLING_ERROR );
pAlt->SetAlternatives( aStr );
xRes = pAlt;
- return xRes;
-
- }
return xRes;
+ }
+ return xRes;
}
-
-
-Reference< XSpellAlternatives > SAL_CALL
- SpellChecker::spell( const OUString& rWord, const Locale& rLocale,
- const PropertyValues& rProperties )
+Reference< XSpellAlternatives > SAL_CALL SpellChecker::spell(
+ const OUString& rWord, const Locale& rLocale,
+ const PropertyValues& rProperties )
throw(IllegalArgumentException, RuntimeException)
{
MutexGuard aGuard( GetLinguMutex() );
@@ -508,7 +511,7 @@ Reference< XSpellAlternatives > SAL_CALL
Reference< XInterface > SAL_CALL SpellChecker_CreateInstance(
- const Reference< XMultiServiceFactory > & /*rSMgr*/ )
+ const Reference< XMultiServiceFactory > & /*rSMgr*/ )
throw(Exception)
{
@@ -517,9 +520,8 @@ Reference< XInterface > SAL_CALL SpellChecker_CreateInstance(
}
-sal_Bool SAL_CALL
- SpellChecker::addLinguServiceEventListener(
- const Reference< XLinguServiceEventListener >& rxLstnr )
+sal_Bool SAL_CALL SpellChecker::addLinguServiceEventListener(
+ const Reference< XLinguServiceEventListener >& rxLstnr )
throw(RuntimeException)
{
MutexGuard aGuard( GetLinguMutex() );
@@ -533,9 +535,8 @@ sal_Bool SAL_CALL
}
-sal_Bool SAL_CALL
- SpellChecker::removeLinguServiceEventListener(
- const Reference< XLinguServiceEventListener >& rxLstnr )
+sal_Bool SAL_CALL SpellChecker::removeLinguServiceEventListener(
+ const Reference< XLinguServiceEventListener >& rxLstnr )
throw(RuntimeException)
{
MutexGuard aGuard( GetLinguMutex() );
@@ -550,8 +551,7 @@ sal_Bool SAL_CALL
}
-OUString SAL_CALL
- SpellChecker::getServiceDisplayName( const Locale& /*rLocale*/ )
+OUString SAL_CALL SpellChecker::getServiceDisplayName( const Locale& /*rLocale*/ )
throw(RuntimeException)
{
MutexGuard aGuard( GetLinguMutex() );
@@ -559,8 +559,7 @@ OUString SAL_CALL
}
-void SAL_CALL
- SpellChecker::initialize( const Sequence< Any >& rArguments )
+void SAL_CALL SpellChecker::initialize( const Sequence< Any >& rArguments )
throw(Exception, RuntimeException)
{
MutexGuard aGuard( GetLinguMutex() );
@@ -582,16 +581,15 @@ void SAL_CALL
xPropHelper = pPropHelper;
pPropHelper->AddAsPropListener(); //! after a reference is established
}
- else {
+ else
+ {
DBG_ERROR( "wrong number of arguments in sequence" );
}
-
}
}
-void SAL_CALL
- SpellChecker::dispose()
+void SAL_CALL SpellChecker::dispose()
throw(RuntimeException)
{
MutexGuard aGuard( GetLinguMutex() );
@@ -605,8 +603,7 @@ void SAL_CALL
}
-void SAL_CALL
- SpellChecker::addEventListener( const Reference< XEventListener >& rxListener )
+void SAL_CALL SpellChecker::addEventListener( const Reference< XEventListener >& rxListener )
throw(RuntimeException)
{
MutexGuard aGuard( GetLinguMutex() );
@@ -616,8 +613,7 @@ void SAL_CALL
}
-void SAL_CALL
- SpellChecker::removeEventListener( const Reference< XEventListener >& rxListener )
+void SAL_CALL SpellChecker::removeEventListener( const Reference< XEventListener >& rxListener )
throw(RuntimeException)
{
MutexGuard aGuard( GetLinguMutex() );
@@ -673,32 +669,6 @@ Sequence< OUString > SpellChecker::getSupportedServiceNames_Static()
return aSNS;
}
-
-sal_Bool SAL_CALL SpellChecker_writeInfo(
- void * /*pServiceManager*/, registry::XRegistryKey * pRegistryKey )
-{
-
- try
- {
- String aImpl( '/' );
- aImpl += SpellChecker::getImplementationName_Static().getStr();
- aImpl.AppendAscii( "/UNO/SERVICES" );
- Reference< registry::XRegistryKey > xNewKey =
- pRegistryKey->createKey( aImpl );
- Sequence< OUString > aServices =
- SpellChecker::getSupportedServiceNames_Static();
- for( INT32 i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- return sal_True;
- }
- catch(Exception &)
- {
- return sal_False;
- }
-}
-
-
void * SAL_CALL SpellChecker_getFactory( const sal_Char * pImplName,
XMultiServiceFactory * pServiceManager, void * )
{
diff --git a/lingucomponent/source/spellcheck/spell/sspellimp.hxx b/lingucomponent/source/spellcheck/spell/sspellimp.hxx
index 94c57fa8b742..9bcbdec5250b 100644..100755
--- a/lingucomponent/source/spellcheck/spell/sspellimp.hxx
+++ b/lingucomponent/source/spellcheck/spell/sspellimp.hxx
@@ -69,11 +69,11 @@ class SpellChecker :
>
{
Sequence< Locale > aSuppLocales;
- Hunspell ** aDicts;
- rtl_TextEncoding * aDEncs;
- Locale * aDLocs;
- OUString * aDNames;
- sal_Int32 numdict;
+ Hunspell ** aDicts;
+ rtl_TextEncoding * aDEncs;
+ Locale * aDLocs;
+ OUString * aDNames;
+ sal_Int32 numdict;
::cppu::OInterfaceContainerHelper aEvtListeners;
Reference< XPropertyChangeListener > xPropHelper;
@@ -91,84 +91,43 @@ class SpellChecker :
}
INT16 GetSpellFailure( const OUString &rWord, const Locale &rLocale );
- Reference< XSpellAlternatives >
- GetProposals( const OUString &rWord, const Locale &rLocale );
+ Reference< XSpellAlternatives > GetProposals( const OUString &rWord, const Locale &rLocale );
public:
SpellChecker();
virtual ~SpellChecker();
// XSupportedLocales (for XSpellChecker)
- virtual Sequence< Locale > SAL_CALL
- getLocales()
- throw(RuntimeException);
- virtual sal_Bool SAL_CALL
- hasLocale( const Locale& rLocale )
- throw(RuntimeException);
+ virtual Sequence< Locale > SAL_CALL getLocales() throw(RuntimeException);
+ virtual sal_Bool SAL_CALL hasLocale( const Locale& rLocale ) throw(RuntimeException);
// XSpellChecker
- virtual sal_Bool SAL_CALL
- isValid( const OUString& rWord, const Locale& rLocale,
- const PropertyValues& rProperties )
- throw(IllegalArgumentException,
- RuntimeException);
- virtual Reference< XSpellAlternatives > SAL_CALL
- spell( const OUString& rWord, const Locale& rLocale,
- const PropertyValues& rProperties )
- throw(IllegalArgumentException,
- RuntimeException);
+ virtual sal_Bool SAL_CALL isValid( const OUString& rWord, const Locale& rLocale, const PropertyValues& rProperties ) throw(IllegalArgumentException, RuntimeException);
+ virtual Reference< XSpellAlternatives > SAL_CALL spell( const OUString& rWord, const Locale& rLocale, const PropertyValues& rProperties ) throw(IllegalArgumentException, RuntimeException);
// XLinguServiceEventBroadcaster
- virtual sal_Bool SAL_CALL
- addLinguServiceEventListener(
- const Reference< XLinguServiceEventListener >& rxLstnr )
- throw(RuntimeException);
- virtual sal_Bool SAL_CALL
- removeLinguServiceEventListener(
- const Reference< XLinguServiceEventListener >& rxLstnr )
- throw(RuntimeException);
+ virtual sal_Bool SAL_CALL addLinguServiceEventListener( const Reference< XLinguServiceEventListener >& rxLstnr ) throw(RuntimeException);
+ virtual sal_Bool SAL_CALL removeLinguServiceEventListener( const Reference< XLinguServiceEventListener >& rxLstnr ) throw(RuntimeException);
// XServiceDisplayName
- virtual OUString SAL_CALL
- getServiceDisplayName( const Locale& rLocale )
- throw(RuntimeException);
+ virtual OUString SAL_CALL getServiceDisplayName( const Locale& rLocale ) throw(RuntimeException);
// XInitialization
- virtual void SAL_CALL
- initialize( const Sequence< Any >& rArguments )
- throw(Exception, RuntimeException);
+ virtual void SAL_CALL initialize( const Sequence< Any >& rArguments ) throw(Exception, RuntimeException);
// XComponent
- virtual void SAL_CALL
- dispose()
- throw(RuntimeException);
- virtual void SAL_CALL
- addEventListener( const Reference< XEventListener >& rxListener )
- throw(RuntimeException);
- virtual void SAL_CALL
- removeEventListener( const Reference< XEventListener >& rxListener )
- throw(RuntimeException);
-
- ////////////////////////////////////////////////////////////
- // Service specific part
- //
+ virtual void SAL_CALL dispose() throw(RuntimeException);
+ virtual void SAL_CALL addEventListener( const Reference< XEventListener >& rxListener ) throw(RuntimeException);
+ virtual void SAL_CALL removeEventListener( const Reference< XEventListener >& rxListener ) throw(RuntimeException);
// XServiceInfo
- virtual OUString SAL_CALL
- getImplementationName()
- throw(RuntimeException);
- virtual sal_Bool SAL_CALL
- supportsService( const OUString& rServiceName )
- throw(RuntimeException);
- virtual Sequence< OUString > SAL_CALL
- getSupportedServiceNames()
- throw(RuntimeException);
-
-
- static inline OUString
- getImplementationName_Static() throw();
- static Sequence< OUString >
- getSupportedServiceNames_Static() throw();
+ virtual OUString SAL_CALL getImplementationName() throw(RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) throw(RuntimeException);
+ virtual Sequence< OUString > SAL_CALL getSupportedServiceNames() throw(RuntimeException);
+
+
+ static inline OUString getImplementationName_Static() throw();
+ static Sequence< OUString > getSupportedServiceNames_Static() throw();
};
inline OUString SpellChecker::getImplementationName_Static() throw()
@@ -177,7 +136,6 @@ inline OUString SpellChecker::getImplementationName_Static() throw()
}
-
///////////////////////////////////////////////////////////////////////////
#endif
diff --git a/lingucomponent/source/thesaurus/libnth/exports.dxp b/lingucomponent/source/thesaurus/libnth/exports.dxp
index b0f85bf7bebf..a9861e3ffc0c 100644
--- a/lingucomponent/source/thesaurus/libnth/exports.dxp
+++ b/lingucomponent/source/thesaurus/libnth/exports.dxp
@@ -1,3 +1,2 @@
component_getFactory
component_getImplementationEnvironment
-component_writeInfo
diff --git a/lingucomponent/source/thesaurus/libnth/lnth.component b/lingucomponent/source/thesaurus/libnth/lnth.component
new file mode 100644
index 000000000000..bea91b94c1fe
--- /dev/null
+++ b/lingucomponent/source/thesaurus/libnth/lnth.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="org.openoffice.lingu.new.Thesaurus">
+ <service name="com.sun.star.linguistic2.Thesaurus"/>
+ </implementation>
+</component>
diff --git a/lingucomponent/source/thesaurus/libnth/makefile.mk b/lingucomponent/source/thesaurus/libnth/makefile.mk
index 58e4d97e5561..91d39d2d3eeb 100644
--- a/lingucomponent/source/thesaurus/libnth/makefile.mk
+++ b/lingucomponent/source/thesaurus/libnth/makefile.mk
@@ -105,3 +105,11 @@ DEF1EXPORTFILE= exports.dxp
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/lnth.component
+
+$(MISC)/lnth.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ lnth.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt lnth.component
diff --git a/lingucomponent/source/thesaurus/libnth/nthesdta.hxx b/lingucomponent/source/thesaurus/libnth/nthesdta.hxx
index 259bf5454359..23804d54f60f 100644..100755
--- a/lingucomponent/source/thesaurus/libnth/nthesdta.hxx
+++ b/lingucomponent/source/thesaurus/libnth/nthesdta.hxx
@@ -48,11 +48,11 @@ class Meaning :
{
::com::sun::star::uno::Sequence< ::rtl::OUString > aSyn; // list of synonyms, may be empty.
::rtl::OUString aTerm;
- INT16 nLanguage;
+ INT16 nLanguage;
#if 0
// this is for future use by a German thesaurus
- BOOL bIsGermanPreReform;
+ BOOL bIsGermanPreReform;
#endif
// disallow copy-constructor and assignment-operator for now
@@ -68,22 +68,12 @@ public:
virtual ~Meaning();
// XMeaning
- virtual ::rtl::OUString SAL_CALL
- getMeaning()
- throw(::com::sun::star::uno::RuntimeException);
-
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL
- querySynonyms()
- throw(::com::sun::star::uno::RuntimeException);
+ virtual ::rtl::OUString SAL_CALL getMeaning() throw(::com::sun::star::uno::RuntimeException);
+ virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL querySynonyms() throw(::com::sun::star::uno::RuntimeException);
// non-interface specific functions
- void SetSynonyms(
- const ::com::sun::star::uno::Sequence< ::rtl::OUString >
- &rSyn );
-
- void SetMeaning(const ::rtl::OUString &rTerm );
-
-
+ void SetSynonyms( const ::com::sun::star::uno::Sequence< ::rtl::OUString > &rSyn );
+ void SetMeaning( const ::rtl::OUString &rTerm );
};
diff --git a/lingucomponent/source/thesaurus/libnth/nthesimp.cxx b/lingucomponent/source/thesaurus/libnth/nthesimp.cxx
index bd6afffdbd6a..02d469514593 100644..100755
--- a/lingucomponent/source/thesaurus/libnth/nthesimp.cxx
+++ b/lingucomponent/source/thesaurus/libnth/nthesimp.cxx
@@ -28,9 +28,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_lingucomponent.hxx"
-// include <stdio.h>
#include <com/sun/star/uno/Reference.h>
-
#include <cppuhelper/factory.hxx> // helper for factories
#include <com/sun/star/registry/XRegistryKey.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
@@ -43,6 +41,8 @@
#include <rtl/string.hxx>
#include <rtl/ustrbuf.hxx>
+#include <rtl/textenc.h>
+
#include "nthesimp.hxx"
#include <linguistic/misc.hxx>
#include <linguistic/lngprops.hxx>
@@ -100,23 +100,27 @@ Thesaurus::Thesaurus() :
aTEncs = NULL;
aTLocs = NULL;
aTNames = NULL;
- numthes = 0;
+ numthes = 0;
}
Thesaurus::~Thesaurus()
{
- if (aThes) {
- for (int i = 0; i < numthes; i++) {
+ if (aThes)
+ {
+ for (int i = 0; i < numthes; i++)
+ {
if (aThes[i]) delete aThes[i];
aThes[i] = NULL;
}
delete[] aThes;
}
aThes = NULL;
- if (aCharSetInfo) {
- for (int i = 0; i < numthes; i++) {
+ if (aCharSetInfo)
+ {
+ for (int i = 0; i < numthes; i++)
+ {
if (aCharSetInfo[i]) delete aCharSetInfo[i];
aCharSetInfo[i] = NULL;
}
@@ -244,7 +248,7 @@ Sequence< Locale > SAL_CALL Thesaurus::getLocales()
for (sal_Int32 i = 0; i < nLocales; ++i)
{
aThes[k] = NULL;
- aTEncs[k] = 0;
+ aTEncs[k] = RTL_TEXTENCODING_DONTKNOW;
aTLocs[k] = MsLangId::convertLanguageToLocale(
MsLangId::convertIsoStringToLanguage( aDictIt->aLocaleNames[i] ));
aCharSetInfo[k] = new CharClass( aTLocs[k] );
@@ -302,28 +306,28 @@ sal_Bool SAL_CALL Thesaurus::hasLocale(const Locale& rLocale)
}
-Sequence < Reference < ::com::sun::star::linguistic2::XMeaning > > SAL_CALL
- Thesaurus::queryMeanings( const OUString& qTerm, const Locale& rLocale,
- const PropertyValues& rProperties)
- throw(IllegalArgumentException, RuntimeException)
+Sequence < Reference < ::com::sun::star::linguistic2::XMeaning > > SAL_CALL Thesaurus::queryMeanings(
+ const OUString& qTerm, const Locale& rLocale,
+ const PropertyValues& rProperties)
+ throw(IllegalArgumentException, RuntimeException)
{
- MutexGuard aGuard( GetLinguMutex() );
+ MutexGuard aGuard( GetLinguMutex() );
- uno::Sequence< Reference< XMeaning > > aMeanings( 1 );
- uno::Sequence< Reference< XMeaning > > noMeanings( 0 );
- uno::Reference< XLinguServiceManager > xLngSvcMgr( GetLngSvcMgr_Impl() );
- uno::Reference< XSpellChecker1 > xSpell;
+ uno::Sequence< Reference< XMeaning > > aMeanings( 1 );
+ uno::Sequence< Reference< XMeaning > > noMeanings( 0 );
+ uno::Reference< XLinguServiceManager > xLngSvcMgr( GetLngSvcMgr_Impl() );
+ uno::Reference< XSpellChecker1 > xSpell;
- OUString rTerm(qTerm);
- OUString pTerm(qTerm);
- sal_uInt16 ct = CAPTYPE_UNKNOWN;
- sal_Int32 stem = 0;
- sal_Int32 stem2 = 0;
+ OUString rTerm(qTerm);
+ OUString pTerm(qTerm);
+ sal_uInt16 ct = CAPTYPE_UNKNOWN;
+ sal_Int32 stem = 0;
+ sal_Int32 stem2 = 0;
- INT16 nLanguage = LocaleToLanguage( rLocale );
+ INT16 nLanguage = LocaleToLanguage( rLocale );
- if (nLanguage == LANGUAGE_NONE || !rTerm.getLength())
- return noMeanings;
+ if (nLanguage == LANGUAGE_NONE || !rTerm.getLength())
+ return noMeanings;
if (!hasLocale( rLocale ))
#ifdef LINGU_EXCEPTIONS
@@ -332,195 +336,202 @@ Sequence < Reference < ::com::sun::star::linguistic2::XMeaning > > SAL_CALL
return noMeanings;
#endif
- if (prevTerm == qTerm && prevLocale == nLanguage) return prevMeanings;
+ if (prevTerm == qTerm && prevLocale == nLanguage)
+ return prevMeanings;
- mentry * pmean = NULL;
+ mentry * pmean = NULL;
sal_Int32 nmean = 0;
- PropertyHelper_Thes &rHelper = GetPropHelper();
- rHelper.SetTmpPropVals( rProperties );
+ PropertyHelper_Thes &rHelper = GetPropHelper();
+ rHelper.SetTmpPropVals( rProperties );
- MyThes * pTH = NULL;
- rtl_TextEncoding aEnc = 0;
- CharClass * pCC = NULL;
+ MyThes * pTH = NULL;
+ rtl_TextEncoding eEnc = RTL_TEXTENCODING_DONTKNOW;
+ CharClass * pCC = NULL;
- // find the first thesaurus that matches the locale
- for (int i =0; i < numthes; i++) {
- if (rLocale == aTLocs[i])
+ // find the first thesaurus that matches the locale
+ for (int i =0; i < numthes; i++)
+ {
+ if (rLocale == aTLocs[i])
+ {
+ // open up and intialize this thesaurus if need be
+ if (!aThes[i])
{
- // open up and intialize this thesaurus if need be
- if (!aThes[i])
- {
- OUString datpath = aTNames[i] + A2OU(".dat");
- OUString idxpath = aTNames[i] + A2OU(".idx");
- OUString ndat;
- OUString nidx;
- osl::FileBase::getSystemPathFromFileURL(datpath,ndat);
- osl::FileBase::getSystemPathFromFileURL(idxpath,nidx);
- OString aTmpidx(OU2ENC(nidx,osl_getThreadTextEncoding()));
- OString aTmpdat(OU2ENC(ndat,osl_getThreadTextEncoding()));
+ OUString datpath = aTNames[i] + A2OU(".dat");
+ OUString idxpath = aTNames[i] + A2OU(".idx");
+ OUString ndat;
+ OUString nidx;
+ osl::FileBase::getSystemPathFromFileURL(datpath,ndat);
+ osl::FileBase::getSystemPathFromFileURL(idxpath,nidx);
+ OString aTmpidx(OU2ENC(nidx,osl_getThreadTextEncoding()));
+ OString aTmpdat(OU2ENC(ndat,osl_getThreadTextEncoding()));
#if defined(WNT)
- // workaround for Windows specifc problem that the
- // path length in calls to 'fopen' is limted to somewhat
- // about 120+ characters which will usually be exceed when
- // using dictionaries as extensions.
- aTmpidx = Win_GetShortPathName( nidx );
- aTmpdat = Win_GetShortPathName( ndat );
+ // workaround for Windows specifc problem that the
+ // path length in calls to 'fopen' is limted to somewhat
+ // about 120+ characters which will usually be exceed when
+ // using dictionaries as extensions.
+ aTmpidx = Win_GetShortPathName( nidx );
+ aTmpdat = Win_GetShortPathName( ndat );
#endif
- aThes[i] = new MyThes(aTmpidx.getStr(),aTmpdat.getStr());
- if (aThes[i]) {
- const char * enc_string = aThes[i]->get_th_encoding();
- if (!enc_string) {
- aTEncs[i] = rtl_getTextEncodingFromUnixCharset("ISO8859-1");
- } else {
- aTEncs[i] = rtl_getTextEncodingFromUnixCharset(enc_string);
- if (aTEncs[i] == RTL_TEXTENCODING_DONTKNOW) {
- if (strcmp("ISCII-DEVANAGARI", enc_string) == 0) {
- aTEncs[i] = RTL_TEXTENCODING_ISCII_DEVANAGARI;
- } else if (strcmp("UTF-8", enc_string) == 0) {
- aTEncs[i] = RTL_TEXTENCODING_UTF8;
- }
- }
- }
- }
- }
- pTH = aThes[i];
- aEnc = aTEncs[i];
- pCC = aCharSetInfo[i];
-
- if (pTH)
- break;
+ aThes[i] = new MyThes(aTmpidx.getStr(),aTmpdat.getStr());
+ if (aThes[i])
+ aTEncs[i] = getTextEncodingFromCharset(aThes[i]->get_th_encoding());
+ }
+ pTH = aThes[i];
+ eEnc = aTEncs[i];
+ pCC = aCharSetInfo[i];
+
+ if (pTH)
+ break;
}
}
- while (pTH) {
- // convert word to all lower case for searching
- if (!stem) ct = capitalType(rTerm, pCC);
- OUString nTerm(makeLowerCase(rTerm, pCC));
- OString aTmp( OU2ENC(nTerm, aEnc) );
- nmean = pTH->Lookup(aTmp.getStr(),aTmp.getLength(),&pmean);
+ // we don't want to work with a default text encoding since following incorrect
+ // results may occur only for specific text and thus may be hard to notice.
+ // Thus better always make a clean exit here if the text encoding is in question.
+ // Hopefully something not working at all will raise proper attention quickly. ;-)
+ DBG_ASSERT( eEnc != RTL_TEXTENCODING_DONTKNOW, "failed to get text encoding! (maybe incorrect encoding string in file)" );
+ if (eEnc == RTL_TEXTENCODING_DONTKNOW)
+ return noMeanings;
- if (nmean) aMeanings.realloc( nmean );
+ while (pTH)
+ {
+ // convert word to all lower case for searching
+ if (!stem)
+ ct = capitalType(rTerm, pCC);
+ OUString nTerm(makeLowerCase(rTerm, pCC));
+ OString aTmp( OU2ENC(nTerm, eEnc) );
+ nmean = pTH->Lookup(aTmp.getStr(),aTmp.getLength(),&pmean);
- mentry * pe = pmean;
- OUString codeTerm = qTerm;
- Reference< XSpellAlternatives > xTmpRes2;
+ if (nmean)
+ aMeanings.realloc( nmean );
- if (stem) {
- xTmpRes2 = xSpell->spell( A2OU("<?xml?><query type='analyze'><word>") +
+ mentry * pe = pmean;
+ OUString codeTerm = qTerm;
+ Reference< XSpellAlternatives > xTmpRes2;
+
+ if (stem)
+ {
+ xTmpRes2 = xSpell->spell( A2OU("<?xml?><query type='analyze'><word>") +
pTerm + A2OU("</word></query>"), nLanguage, rProperties );
- if (xTmpRes2.is()) {
- Sequence<OUString>seq = xTmpRes2->getAlternatives();
- if (seq.getLength() > 0) {
+ if (xTmpRes2.is())
+ {
+ Sequence<OUString>seq = xTmpRes2->getAlternatives();
+ if (seq.getLength() > 0)
+ {
codeTerm = seq[0];
stem2 = 1;
- }
+ }
#if 0
- OString o = OUStringToOString(codeTerm, rtl_getTextEncodingFromUnixCharset("UTF-8"));
- fprintf(stderr, "CODETERM: %s\n", o.pData->buffer);
+ OString o = OUStringToOString(codeTerm, RTL_TEXTENCODING_UTF8);
+ fprintf(stderr, "CODETERM: %s\n", o.pData->buffer);
#endif
- }
- }
-
- for (int j = 0; j < nmean; j++) {
- int count = pe->count;
- if (count) {
- Sequence< OUString > aStr( count );
- OUString *pStr = aStr.getArray();
-
- for (int i=0; i < count; i++) {
- OUString sTerm(pe->psyns[i],strlen(pe->psyns[i]),aEnc );
- sal_Int32 catpos = sTerm.indexOf('(');
- sal_Int32 catpos2 = 0;
- OUString catst;
- OUString catst2;
- if (catpos > 2) {
- // remove category name for affixation and casing
- catst = A2OU(" ") + sTerm.copy(catpos);
- sTerm = sTerm.copy(0, catpos);
- sTerm = sTerm.trim();
- }
- // generate synonyms with affixes
- if (stem && stem2) {
- Reference< XSpellAlternatives > xTmpRes;
- xTmpRes = xSpell->spell( A2OU("<?xml?><query type='generate'><word>") +
- sTerm + A2OU("</word>") + codeTerm + A2OU("</query>"), nLanguage, rProperties );
- if (xTmpRes.is()) {
- Sequence<OUString>seq = xTmpRes->getAlternatives();
- for (int k = 0; k < seq.getLength(); k++) {
- OString o = OUStringToOString(seq[k], rtl_getTextEncodingFromUnixCharset("UTF-8"));
- }
- if (seq.getLength() > 0) sTerm = seq[0];
- }
- }
- if (catpos2) sTerm = catst2 + sTerm;
-
- sal_uInt16 ct1 = capitalType(sTerm, pCC);
- if (CAPTYPE_MIXED == ct1)
- ct = ct1;
- OUString cTerm;
- switch (ct) {
- case CAPTYPE_ALLCAP:
- {
- cTerm = makeUpperCase(sTerm, pCC);
- break;
- }
- case CAPTYPE_INITCAP:
- {
- cTerm = makeInitCap(sTerm, pCC);
- break;
- }
- default:
- {
- cTerm = sTerm;
- break;
- }
- }
- OUString aAlt( cTerm + catst);
- pStr[i] = aAlt;
- }
+ }
+ }
+
+ for (int j = 0; j < nmean; j++)
+ {
+ int count = pe->count;
+ if (count)
+ {
+ Sequence< OUString > aStr( count );
+ OUString *pStr = aStr.getArray();
+
+ for (int i=0; i < count; i++)
+ {
+ OUString sTerm(pe->psyns[i],strlen(pe->psyns[i]),eEnc );
+ sal_Int32 catpos = sTerm.indexOf('(');
+ sal_Int32 catpos2 = 0;
+ OUString catst;
+ OUString catst2;
+ if (catpos > 2)
+ {
+ // remove category name for affixation and casing
+ catst = A2OU(" ") + sTerm.copy(catpos);
+ sTerm = sTerm.copy(0, catpos);
+ sTerm = sTerm.trim();
+ }
+ // generate synonyms with affixes
+ if (stem && stem2)
+ {
+ Reference< XSpellAlternatives > xTmpRes;
+ xTmpRes = xSpell->spell( A2OU("<?xml?><query type='generate'><word>") +
+ sTerm + A2OU("</word>") + codeTerm + A2OU("</query>"), nLanguage, rProperties );
+ if (xTmpRes.is())
+ {
+ Sequence<OUString>seq = xTmpRes->getAlternatives();
+ if (seq.getLength() > 0)
+ sTerm = seq[0];
+ }
+ }
+ if (catpos2)
+ sTerm = catst2 + sTerm;
+
+ sal_uInt16 ct1 = capitalType(sTerm, pCC);
+ if (CAPTYPE_MIXED == ct1)
+ ct = ct1;
+ OUString cTerm;
+ switch (ct)
+ {
+ case CAPTYPE_ALLCAP:
+ cTerm = makeUpperCase(sTerm, pCC);
+ break;
+ case CAPTYPE_INITCAP:
+ cTerm = makeInitCap(sTerm, pCC);
+ break;
+ default:
+ cTerm = sTerm;
+ break;
+ }
+ OUString aAlt( cTerm + catst);
+ pStr[i] = aAlt;
+ }
#if 0
- Meaning * pMn = new Meaning(rTerm,nLanguage,rHelper);
+ Meaning * pMn = new Meaning(rTerm,nLanguage,rHelper);
#endif
- Meaning * pMn = new Meaning(rTerm,nLanguage);
- OUString dTerm(pe->defn,strlen(pe->defn),aEnc );
- pMn->SetMeaning(dTerm);
- pMn->SetSynonyms(aStr);
- Reference<XMeaning>* pMeaning = aMeanings.getArray();
- pMeaning[j] = pMn;
- }
- pe++;
- }
- pTH->CleanUpAfterLookup(&pmean,nmean);
-
- if (nmean) {
+ Meaning * pMn = new Meaning(rTerm,nLanguage);
+ OUString dTerm(pe->defn,strlen(pe->defn),eEnc );
+ pMn->SetMeaning(dTerm);
+ pMn->SetSynonyms(aStr);
+ Reference<XMeaning>* pMeaning = aMeanings.getArray();
+ pMeaning[j] = pMn;
+ }
+ pe++;
+ }
+ pTH->CleanUpAfterLookup(&pmean,nmean);
+
+ if (nmean)
+ {
prevTerm = qTerm;
prevMeanings = aMeanings;
prevLocale = nLanguage;
return aMeanings;
- }
+ }
- if (stem || !xLngSvcMgr.is()) return noMeanings;
+ if (stem || !xLngSvcMgr.is())
+ return noMeanings;
stem = 1;
xSpell = uno::Reference< XSpellChecker1 >( xLngSvcMgr->getSpellChecker(), UNO_QUERY );
- if (!xSpell.is() || !xSpell->isValid( A2OU(SPELLML_SUPPORT), nLanguage, rProperties )) {
+ if (!xSpell.is() || !xSpell->isValid( A2OU(SPELLML_SUPPORT), nLanguage, rProperties ))
return noMeanings;
- }
Reference< XSpellAlternatives > xTmpRes;
xTmpRes = xSpell->spell( A2OU("<?xml?><query type='stem'><word>") +
rTerm + A2OU("</word></query>"), nLanguage, rProperties );
- if (xTmpRes.is()) {
+ if (xTmpRes.is())
+ {
Sequence<OUString>seq = xTmpRes->getAlternatives();
#if 0
- for (int i = 0; i < seq.getLength(); i++) {
- OString o = OUStringToOString(seq[i], rtl_getTextEncodingFromUnixCharset("UTF-8"));
+ for (int i = 0; i < seq.getLength(); i++)
+ {
+ OString o = OUStringToOString(seq[i], RTL_TEXTENCODING_UTF8);
fprintf(stderr, "%d: %s\n", i + 1, o.pData->buffer);
}
#endif
- if (seq.getLength() > 0) {
+ if (seq.getLength() > 0)
+ {
rTerm = seq[0]; // XXX Use only the first stem
continue;
}
@@ -529,17 +540,21 @@ Sequence < Reference < ::com::sun::star::linguistic2::XMeaning > > SAL_CALL
// stem the last word of the synonym (for categories after affixation)
rTerm = rTerm.trim();
sal_Int32 pos = rTerm.lastIndexOf(' ');
- if (!pos) return noMeanings;
+ if (!pos)
+ return noMeanings;
xTmpRes = xSpell->spell( A2OU("<?xml?><query type='stem'><word>") +
rTerm.copy(pos + 1) + A2OU("</word></query>"), nLanguage, rProperties );
- if (xTmpRes.is()) {
+ if (xTmpRes.is())
+ {
Sequence<OUString>seq = xTmpRes->getAlternatives();
- if (seq.getLength() > 0) {
+ if (seq.getLength() > 0)
+ {
pTerm = rTerm.copy(pos + 1);
rTerm = rTerm.copy(0, pos + 1) + seq[0];
-#if 0
- for (int i = 0; i < seq.getLength(); i++) {
- OString o = OUStringToOString(seq[i], rtl_getTextEncodingFromUnixCharset("UTF-8"));
+#if 0
+ for (int i = 0; i < seq.getLength(); i++)
+ {
+ OString o = OUStringToOString(seq[i], RTL_TEXTENCODING_UTF8);
fprintf(stderr, "%d: %s\n", i + 1, o.pData->buffer);
}
#endif
@@ -547,12 +562,11 @@ Sequence < Reference < ::com::sun::star::linguistic2::XMeaning > > SAL_CALL
}
}
break;
- }
+ }
return noMeanings;
}
-
Reference< XInterface > SAL_CALL Thesaurus_CreateInstance(
const Reference< XMultiServiceFactory > & /*rSMgr*/ )
throw(Exception)
@@ -562,8 +576,7 @@ Reference< XInterface > SAL_CALL Thesaurus_CreateInstance(
}
-OUString SAL_CALL
- Thesaurus::getServiceDisplayName( const Locale& /*rLocale*/ )
+OUString SAL_CALL Thesaurus::getServiceDisplayName( const Locale& /*rLocale*/ )
throw(RuntimeException)
{
MutexGuard aGuard( GetLinguMutex() );
@@ -571,8 +584,7 @@ OUString SAL_CALL
}
-void SAL_CALL
- Thesaurus::initialize( const Sequence< Any >& rArguments )
+void SAL_CALL Thesaurus::initialize( const Sequence< Any >& rArguments )
throw(Exception, RuntimeException)
{
MutexGuard aGuard( GetLinguMutex() );
@@ -603,24 +615,26 @@ void SAL_CALL
sal_uInt16 SAL_CALL Thesaurus::capitalType(const OUString& aTerm, CharClass * pCC)
{
sal_Int32 tlen = aTerm.getLength();
- if ((pCC) && (tlen)) {
- String aStr(aTerm);
- sal_Int32 nc = 0;
- for (USHORT tindex = 0; tindex < tlen; tindex++) {
- if (pCC->getCharacterType(aStr,tindex) &
- ::com::sun::star::i18n::KCharacterType::UPPER) nc++;
- }
-
- if (nc == 0) return (sal_uInt16) CAPTYPE_NOCAP;
-
- if (nc == tlen) return (sal_uInt16) CAPTYPE_ALLCAP;
+ if ((pCC) && (tlen))
+ {
+ String aStr(aTerm);
+ sal_Int32 nc = 0;
+ for (USHORT tindex = 0; tindex < tlen; tindex++)
+ {
+ if (pCC->getCharacterType(aStr,tindex) &
+ ::com::sun::star::i18n::KCharacterType::UPPER) nc++;
+ }
- if ((nc == 1) && (pCC->getCharacterType(aStr,0) &
- ::com::sun::star::i18n::KCharacterType::UPPER))
- return (sal_uInt16) CAPTYPE_INITCAP;
+ if (nc == 0)
+ return (sal_uInt16) CAPTYPE_NOCAP;
+ if (nc == tlen)
+ return (sal_uInt16) CAPTYPE_ALLCAP;
+ if ((nc == 1) && (pCC->getCharacterType(aStr,0) &
+ ::com::sun::star::i18n::KCharacterType::UPPER))
+ return (sal_uInt16) CAPTYPE_INITCAP;
- return (sal_uInt16) CAPTYPE_MIXED;
- }
+ return (sal_uInt16) CAPTYPE_MIXED;
+ }
return (sal_uInt16) CAPTYPE_UNKNOWN;
}
@@ -628,38 +642,40 @@ sal_uInt16 SAL_CALL Thesaurus::capitalType(const OUString& aTerm, CharClass * pC
OUString SAL_CALL Thesaurus::makeLowerCase(const OUString& aTerm, CharClass * pCC)
{
- if (pCC)
- return pCC->toLower_rtl(aTerm, 0, aTerm.getLength());
- return aTerm;
+ if (pCC)
+ return pCC->toLower_rtl(aTerm, 0, aTerm.getLength());
+ return aTerm;
}
OUString SAL_CALL Thesaurus::makeUpperCase(const OUString& aTerm, CharClass * pCC)
{
- if (pCC)
- return pCC->toUpper_rtl(aTerm, 0, aTerm.getLength());
- return aTerm;
+ if (pCC)
+ return pCC->toUpper_rtl(aTerm, 0, aTerm.getLength());
+ return aTerm;
}
OUString SAL_CALL Thesaurus::makeInitCap(const OUString& aTerm, CharClass * pCC)
{
- sal_Int32 tlen = aTerm.getLength();
- if ((pCC) && (tlen)) {
- OUString bTemp = aTerm.copy(0,1);
- if (tlen > 1)
- return ( pCC->toUpper_rtl(bTemp, 0, 1)
- + pCC->toLower_rtl(aTerm,1,(tlen-1)) );
+ sal_Int32 tlen = aTerm.getLength();
+ if ((pCC) && (tlen))
+ {
+ OUString bTemp = aTerm.copy(0,1);
+ if (tlen > 1)
+ {
+ return ( pCC->toUpper_rtl(bTemp, 0, 1)
+ + pCC->toLower_rtl(aTerm,1,(tlen-1)) );
+ }
- return pCC->toUpper_rtl(bTemp, 0, 1);
+ return pCC->toUpper_rtl(bTemp, 0, 1);
}
- return aTerm;
+ return aTerm;
}
-void SAL_CALL
- Thesaurus::dispose()
+void SAL_CALL Thesaurus::dispose()
throw(RuntimeException)
{
MutexGuard aGuard( GetLinguMutex() );
@@ -673,8 +689,7 @@ void SAL_CALL
}
-void SAL_CALL
- Thesaurus::addEventListener( const Reference< XEventListener >& rxListener )
+void SAL_CALL Thesaurus::addEventListener( const Reference< XEventListener >& rxListener )
throw(RuntimeException)
{
MutexGuard aGuard( GetLinguMutex() );
@@ -684,8 +699,7 @@ void SAL_CALL
}
-void SAL_CALL
- Thesaurus::removeEventListener( const Reference< XEventListener >& rxListener )
+void SAL_CALL Thesaurus::removeEventListener( const Reference< XEventListener >& rxListener )
throw(RuntimeException)
{
MutexGuard aGuard( GetLinguMutex() );
@@ -739,31 +753,6 @@ Sequence< OUString > Thesaurus::getSupportedServiceNames_Static()
return aSNS;
}
-
-sal_Bool SAL_CALL Thesaurus_writeInfo(
- void * /*pServiceManager*/, registry::XRegistryKey * pRegistryKey )
-{
- try
- {
- String aImpl( '/' );
- aImpl += Thesaurus::getImplementationName_Static().getStr();
- aImpl.AppendAscii( "/UNO/SERVICES" );
- Reference< registry::XRegistryKey > xNewKey =
- pRegistryKey->createKey( aImpl );
- Sequence< OUString > aServices =
- Thesaurus::getSupportedServiceNames_Static();
- for( INT32 i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- return sal_True;
- }
- catch(Exception &)
- {
- return sal_False;
- }
-}
-
-
void * SAL_CALL Thesaurus_getFactory( const sal_Char * pImplName,
XMultiServiceFactory * pServiceManager, void * )
{
diff --git a/lingucomponent/source/thesaurus/libnth/nthesimp.hxx b/lingucomponent/source/thesaurus/libnth/nthesimp.hxx
index 94bbb6fb3ea6..e6d447879701 100644..100755
--- a/lingucomponent/source/thesaurus/libnth/nthesimp.hxx
+++ b/lingucomponent/source/thesaurus/libnth/nthesimp.hxx
@@ -116,55 +116,27 @@ public:
virtual ~Thesaurus();
// XSupportedLocales (for XThesaurus)
- virtual Sequence< Locale > SAL_CALL
- getLocales()
- throw(RuntimeException);
- virtual sal_Bool SAL_CALL
- hasLocale( const Locale& rLocale )
- throw(RuntimeException);
+ virtual Sequence< Locale > SAL_CALL getLocales() throw(RuntimeException);
+ virtual sal_Bool SAL_CALL hasLocale( const Locale& rLocale ) throw(RuntimeException);
// XThesaurus
- virtual Sequence< Reference < ::com::sun::star::linguistic2::XMeaning > > SAL_CALL
- queryMeanings( const OUString& rTerm, const Locale& rLocale,
- const PropertyValues& rProperties )
- throw(IllegalArgumentException,
- RuntimeException);
+ virtual Sequence< Reference < ::com::sun::star::linguistic2::XMeaning > > SAL_CALL queryMeanings( const OUString& rTerm, const Locale& rLocale, const PropertyValues& rProperties ) throw(IllegalArgumentException, RuntimeException);
// XServiceDisplayName
- virtual OUString SAL_CALL
- getServiceDisplayName( const Locale& rLocale )
- throw(RuntimeException);
+ virtual OUString SAL_CALL getServiceDisplayName( const Locale& rLocale ) throw(RuntimeException);
// XInitialization
- virtual void SAL_CALL
- initialize( const Sequence< Any >& rArguments )
- throw(Exception, RuntimeException);
+ virtual void SAL_CALL initialize( const Sequence< Any >& rArguments ) throw(Exception, RuntimeException);
// XComponent
- virtual void SAL_CALL
- dispose()
- throw(RuntimeException);
- virtual void SAL_CALL
- addEventListener( const Reference< XEventListener >& rxListener )
- throw(RuntimeException);
- virtual void SAL_CALL
- removeEventListener( const Reference< XEventListener >& rxListener )
- throw(RuntimeException);
-
- ////////////////////////////////////////////////////////////
- // Service specific part
- //
+ virtual void SAL_CALL dispose() throw(RuntimeException);
+ virtual void SAL_CALL addEventListener( const Reference< XEventListener >& rxListener ) throw(RuntimeException);
+ virtual void SAL_CALL removeEventListener( const Reference< XEventListener >& rxListener ) throw(RuntimeException);
// XServiceInfo
- virtual OUString SAL_CALL
- getImplementationName()
- throw(RuntimeException);
- virtual sal_Bool SAL_CALL
- supportsService( const OUString& rServiceName )
- throw(RuntimeException);
- virtual Sequence< OUString > SAL_CALL
- getSupportedServiceNames()
- throw(RuntimeException);
+ virtual OUString SAL_CALL getImplementationName() throw(RuntimeException);
+ virtual sal_Bool SAL_CALL supportsService( const OUString& rServiceName ) throw(RuntimeException);
+ virtual Sequence< OUString > SAL_CALL getSupportedServiceNames() throw(RuntimeException);
static inline OUString
@@ -183,8 +155,7 @@ private:
static ::com::sun::star::uno::Reference<
::com::sun::star::linguistic2::XSpellChecker1 > xSpell;
*/
- static ::com::sun::star::uno::Reference<
- ::com::sun::star::linguistic2::XLinguServiceManager > GetLngSvcMgr();
+ static ::com::sun::star::uno::Reference< ::com::sun::star::linguistic2::XLinguServiceManager > GetLngSvcMgr();
};
diff --git a/lingucomponent/source/thesaurus/libnth/ntreg.cxx b/lingucomponent/source/thesaurus/libnth/ntreg.cxx
index 14b3b3c896d4..f622e1e094c8 100644
--- a/lingucomponent/source/thesaurus/libnth/ntreg.cxx
+++ b/lingucomponent/source/thesaurus/libnth/ntreg.cxx
@@ -41,9 +41,6 @@ using namespace com::sun::star::registry;
// declaration of external RegEntry-functions defined by the service objects
//
-extern sal_Bool SAL_CALL Thesaurus_writeInfo(
- void * /*pServiceManager*/, XRegistryKey * pRegistryKey );
-
extern void * SAL_CALL Thesaurus_getFactory(
const sal_Char * pImplName,
XMultiServiceFactory * pServiceManager,
@@ -56,12 +53,6 @@ extern void * SAL_CALL Thesaurus_getFactory(
extern "C"
{
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, XRegistryKey * pRegistryKey )
-{
- return Thesaurus_writeInfo( pServiceManager, pRegistryKey );
-}
-
void SAL_CALL component_getImplementationEnvironment(
const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
{
diff --git a/linguistic/prj/d.lst b/linguistic/prj/d.lst
index 01a755e53cc6..0e0534feafd8 100644
--- a/linguistic/prj/d.lst
+++ b/linguistic/prj/d.lst
@@ -8,3 +8,4 @@
mkdir: %_DEST%\inc%_EXT%\linguistic
..\inc\*.hxx %_DEST%\inc%_EXT%\linguistic\*.hxx
+..\%__SRC%\misc\lng.component %_DEST%\xml%_EXT%\lng.component
diff --git a/linguistic/source/convdiclist.cxx b/linguistic/source/convdiclist.cxx
index 2916b2ee6eec..c842893d66f1 100644
--- a/linguistic/source/convdiclist.cxx
+++ b/linguistic/source/convdiclist.cxx
@@ -692,31 +692,6 @@ uno::Reference< uno::XInterface > SAL_CALL ConvDicList_CreateInstance(
return StaticConvDicList::get();
}
-
-sal_Bool SAL_CALL ConvDicList_writeInfo(
- void * /*pServiceManager*/, registry::XRegistryKey * pRegistryKey )
-{
- try
- {
- String aImpl( '/' );
- aImpl += ConvDicList::getImplementationName_Static().getStr();
- aImpl.AppendAscii( "/UNO/SERVICES" );
- uno::Reference< registry::XRegistryKey > xNewKey =
- pRegistryKey->createKey(aImpl );
- uno::Sequence< OUString > aServices =
- ConvDicList::getSupportedServiceNames_Static();
- for( INT32 i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i]);
-
- return sal_True;
- }
- catch(Exception &)
- {
- return sal_False;
- }
-}
-
-
void * SAL_CALL ConvDicList_getFactory(
const sal_Char * pImplName,
XMultiServiceFactory * pServiceManager, void * )
diff --git a/linguistic/source/dicimp.cxx b/linguistic/source/dicimp.cxx
index fe53bf344ac3..01c6838a4d3d 100755
--- a/linguistic/source/dicimp.cxx
+++ b/linguistic/source/dicimp.cxx
@@ -438,101 +438,48 @@ ULONG DictionaryNeo::saveEntries(const OUString &rURL)
return static_cast< ULONG >(-1);
SvStreamPtr pStream = SvStreamPtr( utl::UcbStreamHelper::CreateStream( xStream ) );
-
ULONG nErr = sal::static_int_cast< ULONG >(-1);
- rtl_TextEncoding eEnc = osl_getThreadTextEncoding();
- if (nDicVersion >= DIC_VERSION_6)
- eEnc = RTL_TEXTENCODING_UTF8;
-
- if (nDicVersion == DIC_VERSION_7)
+ //
+ // Always write as the latest version, i.e. DIC_VERSION_7
+ //
+ rtl_TextEncoding eEnc = RTL_TEXTENCODING_UTF8;
+ pStream->WriteLine(ByteString (pVerOOo7));
+ if (0 != (nErr = pStream->GetError()))
+ return nErr;
+ if (nLanguage == LANGUAGE_NONE)
+ pStream->WriteLine(ByteString("lang: <none>"));
+ else
{
- pStream->WriteLine(ByteString (pVerOOo7));
- if (0 != (nErr = pStream->GetError()))
- return nErr;
-
- if (nLanguage == LANGUAGE_NONE)
- pStream->WriteLine(ByteString("lang: <none>"));
- else
- {
- ByteString aLine("lang: ");
- aLine += ByteString( String( MsLangId::convertLanguageToIsoString( nLanguage ) ), eEnc);
- pStream->WriteLine( aLine );
- }
- if (0 != (nErr = pStream->GetError()))
- return nErr;
-
- if (eDicType == DictionaryType_POSITIVE)
- pStream->WriteLine(ByteString("type: positive"));
- else
- pStream->WriteLine(ByteString("type: negative"));
- if (0 != (nErr = pStream->GetError()))
- return nErr;
-
- pStream->WriteLine(ByteString("---"));
- if (0 != (nErr = pStream->GetError()))
- return nErr;
-
- const uno::Reference< XDictionaryEntry > *pEntry = aEntries.getConstArray();
- for (INT32 i = 0; i < nCount; i++)
- {
- ByteString aOutStr = formatForSave(pEntry[i], eEnc);
- pStream->WriteLine (aOutStr);
- if (0 != (nErr = pStream->GetError()))
- return nErr;
- }
+ ByteString aLine("lang: ");
+ aLine += ByteString( String( MsLangId::convertLanguageToIsoString( nLanguage ) ), eEnc);
+ pStream->WriteLine( aLine );
}
+ if (0 != (nErr = pStream->GetError()))
+ return nErr;
+ if (eDicType == DictionaryType_POSITIVE)
+ pStream->WriteLine(ByteString("type: positive"));
else
+ pStream->WriteLine(ByteString("type: negative"));
+ if (0 != (nErr = pStream->GetError()))
+ return nErr;
+ pStream->WriteLine(ByteString("---"));
+ if (0 != (nErr = pStream->GetError()))
+ return nErr;
+ const uno::Reference< XDictionaryEntry > *pEntry = aEntries.getConstArray();
+ for (INT32 i = 0; i < nCount; i++)
{
- sal_Char aWordBuf[BUFSIZE];
-
- // write version
- const sal_Char *pVerStr = NULL;
- if (DIC_VERSION_6 == nDicVersion)
- pVerStr = pVerStr6;
- else
- pVerStr = eDicType == DictionaryType_POSITIVE ? pVerStr2 : pVerStr5;
- strcpy( aWordBuf, pVerStr ); // #100211# - checked
- USHORT nLen = sal::static_int_cast< USHORT >(strlen( aWordBuf ));
- *pStream << nLen;
+ ByteString aOutStr = formatForSave(pEntry[i], eEnc);
+ pStream->WriteLine (aOutStr);
if (0 != (nErr = pStream->GetError()))
return nErr;
- pStream->Write(aWordBuf, nLen);
- if (0 != (nErr = pStream->GetError()))
- return nErr;
-
- *pStream << nLanguage;
- if (0 != (nErr = pStream->GetError()))
- return nErr;
- *pStream << (sal_Char) (eDicType == DictionaryType_NEGATIVE ? TRUE : FALSE);
- if (0 != (nErr = pStream->GetError()))
- return nErr;
-
- const uno::Reference< XDictionaryEntry > *pEntry = aEntries.getConstArray();
- for (INT32 i = 0; i < nCount; i++)
- {
- ByteString aOutStr = formatForSave(pEntry[i], eEnc);
-
- // the old format would fail (mis-calculation of nLen) and write
- // uninitialized junk for combined len >= BUFSIZE - we truncate
- // silently here, but BUFSIZE is large anyway.
- nLen = aOutStr.Len();
- if (nLen >= BUFSIZE)
- nLen = BUFSIZE - 1;
-
- *pStream << nLen;
- if (0 != (nErr = pStream->GetError()))
- return nErr;
- pStream->Write(aOutStr.GetBuffer(), nLen);
- if (0 != (nErr = pStream->GetError()))
- return nErr;
- }
}
- //! get return value before Stream is destroyed
- ULONG nError = pStream->GetError();
+ //If we are migrating from an older version, then on first successful
+ //write, we're now converted to the latest version, i.e. DIC_VERSION_7
+ nDicVersion = DIC_VERSION_7;
- return nError;
+ return nErr;
}
void DictionaryNeo::launchEvent(INT16 nEvent,
diff --git a/linguistic/source/dlistimp.cxx b/linguistic/source/dlistimp.cxx
index 817dbeb311ca..0e1a045bb98e 100644
--- a/linguistic/source/dlistimp.cxx
+++ b/linguistic/source/dlistimp.cxx
@@ -796,31 +796,6 @@ uno::Sequence< rtl::OUString > DicList::getSupportedServiceNames_Static() throw(
return aSNS;
}
-
-sal_Bool SAL_CALL DicList_writeInfo(
- void * /*pServiceManager*/, registry::XRegistryKey * pRegistryKey )
-{
- try
- {
- String aImpl( '/' );
- aImpl += DicList::getImplementationName_Static().getStr();
- aImpl.AppendAscii( "/UNO/SERVICES" );
- uno::Reference< registry::XRegistryKey > xNewKey =
- pRegistryKey->createKey(aImpl );
- uno::Sequence< rtl::OUString > aServices =
- DicList::getSupportedServiceNames_Static();
- for( INT32 i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i]);
-
- return sal_True;
- }
- catch(Exception &)
- {
- return sal_False;
- }
-}
-
-
void * SAL_CALL DicList_getFactory( const sal_Char * pImplName,
XMultiServiceFactory * pServiceManager, void * )
{
diff --git a/linguistic/source/gciterator.cxx b/linguistic/source/gciterator.cxx
index 6485e6e841b7..afcf1503bbe9 100644
--- a/linguistic/source/gciterator.cxx
+++ b/linguistic/source/gciterator.cxx
@@ -1333,27 +1333,3 @@ void * SAL_CALL GrammarCheckingIterator_getFactory(
}
return pRet;
}
-
-
-sal_Bool SAL_CALL GrammarCheckingIterator_writeInfo(
- void * /*pServiceManager*/,
- registry::XRegistryKey * pRegistryKey )
-{
- try
- {
- OUString aImpl( '/' );
- aImpl += GrammarCheckingIterator_getImplementationName().getStr();
- aImpl += A2OU( "/UNO/SERVICES" );
- uno::Reference< registry::XRegistryKey > xNewKey = pRegistryKey->createKey( aImpl );
- uno::Sequence< OUString > aServices = GrammarCheckingIterator_getSupportedServiceNames();
- for( sal_Int32 i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- return sal_True;
- }
- catch (uno::Exception &)
- {
- return sal_False;
- }
-}
-
diff --git a/linguistic/source/grammarchecker.cxx b/linguistic/source/grammarchecker.cxx
index 21e1b7a58a3c..57041b7c1e4a 100644
--- a/linguistic/source/grammarchecker.cxx
+++ b/linguistic/source/grammarchecker.cxx
@@ -276,27 +276,6 @@ OUString SAL_CALL GrammarChecker::getImplementationName( ) throw(uno::RuntimeEx
return getImplementationName_Static();
}
-sal_Bool SAL_CALL GrammarChecker_writeInfo( void * /*pServiceManager*/, registry::XRegistryKey * pRegistryKey )
-{
- try
- {
- String aImpl( '/' );
- aImpl += GrammarChecker::getImplementationName_Static().getStr();
- aImpl.AppendAscii( "/UNO/SERVICES" );
- uno::Reference< registry::XRegistryKey > xNewKey =
- pRegistryKey->createKey( aImpl );
- uno::Sequence< OUString > aServices = GrammarChecker::getSupportedServiceNames_Static();
- for( INT32 i = 0; i < aServices.getLength(); ++i )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- return sal_True;
- }
- catch(uno::Exception &)
- {
- return sal_False;
- }
-}
-
uno::Reference< uno::XInterface > SAL_CALL GrammarChecker_CreateInstance(
const uno::Reference< lang::XMultiServiceFactory > & /*rSMgr*/ )
throw(uno::Exception)
diff --git a/linguistic/source/lng.component b/linguistic/source/lng.component
new file mode 100644
index 000000000000..f4f3ca603a88
--- /dev/null
+++ b/linguistic/source/lng.component
@@ -0,0 +1,46 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.lingu2.ConvDicList">
+ <service name="com.sun.star.linguistic2.ConversionDictionaryList"/>
+ </implementation>
+ <implementation name="com.sun.star.lingu2.DicList">
+ <service name="com.sun.star.linguistic2.DictionaryList"/>
+ </implementation>
+ <implementation name="com.sun.star.lingu2.LinguProps">
+ <service name="com.sun.star.linguistic2.LinguProperties"/>
+ </implementation>
+ <implementation name="com.sun.star.lingu2.LngSvcMgr">
+ <service name="com.sun.star.linguistic2.LinguServiceManager"/>
+ </implementation>
+ <implementation name="com.sun.star.lingu2.ProofreadingIterator">
+ <service name="com.sun.star.linguistic2.ProofreadingIterator"/>
+ </implementation>
+</component>
diff --git a/linguistic/source/lngopt.cxx b/linguistic/source/lngopt.cxx
index 77a1fcbd57b0..9cefa6179316 100644
--- a/linguistic/source/lngopt.cxx
+++ b/linguistic/source/lngopt.cxx
@@ -665,29 +665,6 @@ uno::Sequence< OUString > LinguProps::getSupportedServiceNames_Static()
return aSNS;
}
-
-sal_Bool SAL_CALL LinguProps_writeInfo( void * /*pServiceManager*/,
- XRegistryKey * pRegistryKey )
-{
- try
- {
- String aImpl( '/' );
- aImpl += LinguProps::getImplementationName_Static().getStr();
- aImpl.AppendAscii( "/UNO/SERVICES" );
- Reference< XRegistryKey > xNewKey =
- pRegistryKey->createKey(aImpl );
- uno::Sequence< OUString > aServices = LinguProps::getSupportedServiceNames_Static();
- for( INT32 i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i]);
-
- return sal_True;
- }
- catch(Exception &)
- {
- return sal_False;
- }
-}
-
void * SAL_CALL LinguProps_getFactory( const sal_Char * pImplName,
XMultiServiceFactory *pServiceManager, void * )
{
diff --git a/linguistic/source/lngreg.cxx b/linguistic/source/lngreg.cxx
index 6ab3db60d268..0f6add07b466 100644
--- a/linguistic/source/lngreg.cxx
+++ b/linguistic/source/lngreg.cxx
@@ -38,42 +38,6 @@ using namespace com::sun::star::lang;
using namespace com::sun::star::registry;
-////////////////////////////////////////
-// declaration of external RegEntry-functions defined by the service objects
-//
-
-extern sal_Bool SAL_CALL LngSvcMgr_writeInfo
-(
- void * /*pServiceManager*/,
- XRegistryKey * pRegistryKey
-);
-
-extern sal_Bool SAL_CALL DicList_writeInfo
-(
- void * /*pServiceManager*/, XRegistryKey * pRegistryKey
-);
-
-extern sal_Bool SAL_CALL LinguProps_writeInfo
-(
- void * /*pServiceManager*/,
- XRegistryKey * pRegistryKey
-);
-
-extern sal_Bool SAL_CALL ConvDicList_writeInfo
-(
- void * /*pServiceManager*/, XRegistryKey * pRegistryKey
-);
-
-extern sal_Bool SAL_CALL GrammarCheckingIterator_writeInfo
-(
- void * /*pServiceManager*/, XRegistryKey * pRegistryKey
-);
-
-//extern sal_Bool SAL_CALL GrammarChecker_writeInfo
-//(
-// void * /*pServiceManager*/, XRegistryKey * pRegistryKey
-//);
-
extern void * SAL_CALL LngSvcMgr_getFactory
(
const sal_Char * pImplName,
@@ -129,28 +93,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-sal_Bool SAL_CALL component_writeInfo
-(
- void * pServiceManager,
- XRegistryKey * pRegistryKey
-)
-{
- sal_Bool bRet = LngSvcMgr_writeInfo( pServiceManager, pRegistryKey );
- if(bRet)
- bRet = LinguProps_writeInfo( pServiceManager, pRegistryKey );
- if(bRet)
- bRet = DicList_writeInfo( pServiceManager, pRegistryKey );
- if(bRet)
- bRet = ConvDicList_writeInfo( pServiceManager, pRegistryKey );
- if(bRet)
- bRet = GrammarCheckingIterator_writeInfo( pServiceManager, pRegistryKey );
-/*
- if(bRet)
- bRet = GrammarChecker_writeInfo( pServiceManager, pRegistryKey );
-*/
- return bRet;
-}
-
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/linguistic/source/lngsvcmgr.cxx b/linguistic/source/lngsvcmgr.cxx
index 90e433f50f07..9a9f680b4ea2 100644
--- a/linguistic/source/lngsvcmgr.cxx
+++ b/linguistic/source/lngsvcmgr.cxx
@@ -45,6 +45,8 @@
#include <cppuhelper/extract.hxx>
#include <rtl/logfile.hxx>
+#include <boost/checked_delete.hpp>
+
#include "lngsvcmgr.hxx"
#include "lngopt.hxx"
#include "misc.hxx"
@@ -605,6 +607,14 @@ LngSvcMgr::LngSvcMgr() :
EnableNotification( aNames );
}
+void LngSvcMgr::clearSvcInfoArray(SvcInfoArray* pInfo)
+{
+ if (pInfo)
+ {
+ std::for_each(pInfo->begin(), pInfo->end(), boost::checked_deleter<SvcInfo>());
+ delete pInfo;
+ }
+}
LngSvcMgr::~LngSvcMgr()
{
@@ -612,10 +622,10 @@ LngSvcMgr::~LngSvcMgr()
// will be freed in the destructor of the respective Reference's
// xSpellDsp, xGrammarDsp, xHyphDsp, xThesDsp
- delete pAvailSpellSvcs;
- delete pAvailGrammarSvcs;
- delete pAvailHyphSvcs;
- delete pAvailThesSvcs;
+ clearSvcInfoArray(pAvailSpellSvcs);
+ clearSvcInfoArray(pAvailGrammarSvcs);
+ clearSvcInfoArray(pAvailHyphSvcs);
+ clearSvcInfoArray(pAvailThesSvcs);
}
@@ -652,7 +662,7 @@ void LngSvcMgr::Notify( const uno::Sequence< OUString > &rPropertyNames )
if (0 == rName.compareTo( aSpellCheckerList, aSpellCheckerList.getLength() ))
{
// delete old cached data, needs to be acquired new on demand
- delete pAvailSpellSvcs; pAvailSpellSvcs = 0;
+ clearSvcInfoArray(pAvailSpellSvcs); pAvailSpellSvcs = 0;
OUString aNode( aSpellCheckerList );
if (lcl_SeqHasString( aSpellCheckerListEntries, aKeyText ))
@@ -677,7 +687,7 @@ void LngSvcMgr::Notify( const uno::Sequence< OUString > &rPropertyNames )
else if (0 == rName.compareTo( aGrammarCheckerList, aGrammarCheckerList.getLength() ))
{
// delete old cached data, needs to be acquired new on demand
- delete pAvailGrammarSvcs; pAvailGrammarSvcs = 0;
+ clearSvcInfoArray(pAvailGrammarSvcs); pAvailGrammarSvcs = 0;
OUString aNode( aGrammarCheckerList );
if (lcl_SeqHasString( aGrammarCheckerListEntries, aKeyText ))
@@ -705,7 +715,7 @@ void LngSvcMgr::Notify( const uno::Sequence< OUString > &rPropertyNames )
else if (0 == rName.compareTo( aHyphenatorList, aHyphenatorList.getLength() ))
{
// delete old cached data, needs to be acquired new on demand
- delete pAvailHyphSvcs; pAvailHyphSvcs = 0;
+ clearSvcInfoArray(pAvailHyphSvcs); pAvailHyphSvcs = 0;
OUString aNode( aHyphenatorList );
if (lcl_SeqHasString( aHyphenatorListEntries, aKeyText ))
@@ -730,7 +740,7 @@ void LngSvcMgr::Notify( const uno::Sequence< OUString > &rPropertyNames )
else if (0 == rName.compareTo( aThesaurusList, aThesaurusList.getLength() ))
{
// delete old cached data, needs to be acquired new on demand
- delete pAvailThesSvcs; pAvailThesSvcs = 0;
+ clearSvcInfoArray(pAvailThesSvcs); pAvailThesSvcs = 0;
OUString aNode( aThesaurusList );
if (lcl_SeqHasString( aThesaurusListEntries, aKeyText ))
@@ -1402,7 +1412,7 @@ uno::Sequence< OUString > SAL_CALL
{
// don't used cached data here (force re-evaluation in order to have downloaded dictionaries
// already found without the need to restart the office
- delete pAvailSpellSvcs; pAvailSpellSvcs = 0;
+ clearSvcInfoArray(pAvailSpellSvcs); pAvailSpellSvcs = 0;
GetAvailableSpellSvcs_Impl();
pInfoArray = pAvailSpellSvcs;
}
@@ -1410,7 +1420,7 @@ uno::Sequence< OUString > SAL_CALL
{
// don't used cached data here (force re-evaluation in order to have downloaded dictionaries
// already found without the need to restart the office
- delete pAvailGrammarSvcs; pAvailGrammarSvcs = 0;
+ clearSvcInfoArray(pAvailGrammarSvcs); pAvailGrammarSvcs = 0;
GetAvailableGrammarSvcs_Impl();
pInfoArray = pAvailGrammarSvcs;
}
@@ -1418,7 +1428,7 @@ uno::Sequence< OUString > SAL_CALL
{
// don't used cached data here (force re-evaluation in order to have downloaded dictionaries
// already found without the need to restart the office
- delete pAvailHyphSvcs; pAvailHyphSvcs = 0;
+ clearSvcInfoArray(pAvailHyphSvcs); pAvailHyphSvcs = 0;
GetAvailableHyphSvcs_Impl();
pInfoArray = pAvailHyphSvcs;
}
@@ -1426,7 +1436,7 @@ uno::Sequence< OUString > SAL_CALL
{
// don't used cached data here (force re-evaluation in order to have downloaded dictionaries
// already found without the need to restart the office
- delete pAvailThesSvcs; pAvailThesSvcs = 0;
+ clearSvcInfoArray(pAvailThesSvcs); pAvailThesSvcs = 0;
GetAvailableThesSvcs_Impl();
pInfoArray = pAvailThesSvcs;
}
@@ -1990,31 +2000,6 @@ uno::Reference< uno::XInterface > SAL_CALL LngSvcMgr_CreateInstance(
return xService;
}
-
-
-sal_Bool SAL_CALL LngSvcMgr_writeInfo(
- void * /*pServiceManager*/,
- registry::XRegistryKey * pRegistryKey )
-{
- try
- {
- String aImpl( '/' );
- aImpl += LngSvcMgr::getImplementationName_Static().getStr();
- aImpl.AppendAscii( "/UNO/SERVICES" );
- uno::Reference< registry::XRegistryKey > xNewKey =
- pRegistryKey->createKey( aImpl );
- uno::Sequence< OUString > aServices = LngSvcMgr::getSupportedServiceNames_Static();
- for( INT32 i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- return sal_True;
- }
- catch(uno::Exception &)
- {
- return sal_False;
- }
-}
-
void * SAL_CALL LngSvcMgr_getFactory(
const sal_Char * pImplName,
lang::XMultiServiceFactory * pServiceManager,
diff --git a/linguistic/source/lngsvcmgr.hxx b/linguistic/source/lngsvcmgr.hxx
index 953e531960bf..bb6f6cf93732 100644
--- a/linguistic/source/lngsvcmgr.hxx
+++ b/linguistic/source/lngsvcmgr.hxx
@@ -143,6 +143,8 @@ class LngSvcMgr :
void SetAvailableCfgServiceLists( LinguDispatcher &rDispatcher,
const SvcInfoArray &rAvailSvcs );
+ static void clearSvcInfoArray(SvcInfoArray *pInfo);
+
// utl::ConfigItem (to allow for listening of changes of relevant properties)
virtual void Notify( const com::sun::star::uno::Sequence< rtl::OUString > &rPropertyNames );
virtual void Commit();
diff --git a/linguistic/source/makefile.mk b/linguistic/source/makefile.mk
index 3f68afb30575..9bbd456ce89d 100644
--- a/linguistic/source/makefile.mk
+++ b/linguistic/source/makefile.mk
@@ -91,9 +91,8 @@ DEF1DES =Linguistic main DLL
.IF "$(GUI)"=="WNT"
-DEF1EXPORT1 = component_writeInfo
-DEF1EXPORT2 = component_getFactory
-DEF1EXPORT3 = component_getImplementationEnvironment
+DEF1EXPORT1 = component_getFactory
+DEF1EXPORT2 = component_getImplementationEnvironment
.ENDIF
# --- Targets ------------------------------------------------------
@@ -109,3 +108,11 @@ $(MISC)$/$(SHL1TARGET).flt: makefile.mk
@echo component >> $@
@echo __CT >> $@
+
+ALLTAR : $(MISC)/lng.component
+
+$(MISC)/lng.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ lng.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt lng.component
diff --git a/np_sdk/prj/build.lst b/np_sdk/prj/build.lst
index 01dbd7b0095b..7aa9a6d88a1e 100644
--- a/np_sdk/prj/build.lst
+++ b/np_sdk/prj/build.lst
@@ -1,3 +1,3 @@
-np np_sdk : soltools NULL
+np np_sdk : soltools stlport NULL
np np_sdk usr1 - all np_sdk NULL
np np_sdk\mozsrc nmake - all np_mozsrc NULL
diff --git a/odk/examples/DevelopersGuide/Config/ConfigExamples.java b/odk/examples/DevelopersGuide/Config/ConfigExamples.java
index a88127ef1053..2e4f3d06504b 100644
--- a/odk/examples/DevelopersGuide/Config/ConfigExamples.java
+++ b/odk/examples/DevelopersGuide/Config/ConfigExamples.java
@@ -78,7 +78,7 @@ import com.sun.star.util.ChangesEvent;
/* These examples show how to use the following features of the Config API:
o Accessing data
- o Updating data synchronously and asynchronously
+ o Updating data
o Updating properties in groups
o Adding and removing items in sets
o Resetting data to their defaults
@@ -144,20 +144,6 @@ public class ConfigExamples
mxProvider = null;
}
- /** Run the examples with an AdministrationProvider
- */
- public void runForAdmin(Object [] aAdminArgs)
- throws com.sun.star.uno.Exception
- {
- mxProvider = createAdminProvider(aAdminArgs);
-
- runExamples( );
-
- // this is not the default ConfigurationProvider, so we can dispose it
- ((XComponent)UnoRuntime.queryInterface( XComponent.class, mxProvider )).dispose();
- mxProvider = null;
- }
-
/** Run the examples with a given ConfigurationProvider
*/
public void runExamples( )
@@ -170,11 +156,11 @@ public class ConfigExamples
browseDataExample();
- updateGroupSyncExample();
+ updateGroupExample();
resetGroupExample();
- updateSetAsyncExample();
+ updateSetExample();
System.out.println("\nAll Examples completed.");
}
@@ -245,25 +231,6 @@ public class ConfigExamples
return xProvider;
}
- /** Create an administration provider
-
- @param aAdminArguments
- An array of extra arguments to be used to create the provider
- */
- public XMultiServiceFactory createAdminProvider(Object[] aAdminArguments)
- throws com.sun.star.uno.Exception
- {
- final String sAdminService = "com.sun.star.configuration.AdministrationProvider";
-
- // create the provider and remember it as a XMultiServiceFactory
- XMultiServiceFactory xAdminProvider = (XMultiServiceFactory)
- UnoRuntime.queryInterface(XMultiServiceFactory.class,
- mxServiceManager.createInstanceWithArgumentsAndContext(
- sAdminService, aAdminArguments, mxContext));
-
- return xAdminProvider;
- }
-
/** Create a specified read-only configuration view
*/
public Object createConfigurationView( String sPath )
@@ -288,7 +255,7 @@ public class ConfigExamples
return xViewRoot;
}
- /** Create a specified updatable configuration view using default synchronicity
+ /** Create a specified updatable configuration view
*/
Object createUpdatableView( String sPath )
throws com.sun.star.uno.Exception
@@ -312,36 +279,6 @@ public class ConfigExamples
return xViewRoot;
}
- /** Create a specified updatable configuration view
- */
- Object createUpdatableView( String sPath, boolean bAsync )
- throws com.sun.star.uno.Exception
- {
- XMultiServiceFactory xProvider = getProvider();
-
- // The service name: Need update access:
- final String cUpdatableView = "com.sun.star.configuration.ConfigurationUpdateAccess";
-
- // creation arguments: nodepath
- com.sun.star.beans.PropertyValue aPathArgument = new com.sun.star.beans.PropertyValue();
- aPathArgument.Name = "nodepath";
- aPathArgument.Value = sPath;
-
- // creation arguments: commit mode - write-through or write-back
- com.sun.star.beans.PropertyValue aModeArgument = new com.sun.star.beans.PropertyValue();
- aModeArgument.Name = "lazywrite";
- aModeArgument.Value = new Boolean(bAsync);
-
- Object[] aArguments = new Object[2];
- aArguments[0] = aPathArgument;
- aArguments[1] = aModeArgument;
-
- // create the view
- Object xViewRoot = xProvider.createInstanceWithArguments(cUpdatableView, aArguments);
-
- return xViewRoot;
- }
-
/** This method demonstrates read access to data
*/
protected void readDataExample ()
@@ -374,13 +311,13 @@ public class ConfigExamples
}
}
- /** This method demonstrates synchronous update access to group data
+ /** This method demonstrates update access to group data
*/
- protected void updateGroupSyncExample ()
+ protected void updateGroupExample ()
{
try
{
- System.out.println("\n--- starting example: update group data synchronously --------------");
+ System.out.println("\n--- starting example: update group data --------------");
editGridOptions( );
}
catch ( Exception e )
@@ -408,13 +345,13 @@ public class ConfigExamples
}
}
- /** This method demonstrates asynchronous update access to set data
+ /** This method demonstrates update access to set data
*/
- protected void updateSetAsyncExample ()
+ protected void updateSetExample ()
{
try
{
- System.out.println("\n--- starting example: update set data asynchronously ---------------");
+ System.out.println("\n--- starting example: update set data ---------------");
storeSampleDataSource( );
}
catch ( Exception e )
@@ -639,8 +576,8 @@ public class ConfigExamples
// The path to the root element
final String cGridOptionsPath = "/org.openoffice.Office.Calc/Grid";
- // create the SYNCHRONOUS view for better error handling
- Object xViewRoot = createUpdatableView( cGridOptionsPath, false);
+ // create the view
+ Object xViewRoot = createUpdatableView( cGridOptionsPath );
// the 'editor'
GridOptionsEditor dialog = new GridOptionsEditor();
@@ -816,7 +753,7 @@ public class ConfigExamples
{
try
{
- Object xOtherViewRoot = createUpdatableView(xKey, false);
+ Object xOtherViewRoot = createUpdatableView(xKey);
XNameReplace aReplace = (XNameReplace)UnoRuntime.queryInterface(XNameReplace.class, xOtherViewRoot);
@@ -1002,9 +939,6 @@ public class ConfigExamples
/** This method gets the DataSourceDescription for a data source.
It either gets the existing entry or creates a new instance.
-
- The method attempts to keep the view used as small as possible. In particular there
- is no view created, that contains data for all data source that are registered.
*/
Object createDataSourceDescription(XMultiServiceFactory xProvider, String sDataSourceName )
throws com.sun.star.uno.Exception
@@ -1020,22 +954,10 @@ public class ConfigExamples
aPathArgument.Name = "nodepath";
aPathArgument.Value = cDataSourcesPath ;
- // creation arguments: commit mode
- com.sun.star.beans.PropertyValue aModeArgument = new com.sun.star.beans.PropertyValue();
- aModeArgument.Name = "lazywrite";
- aModeArgument.Value = new Boolean( true );
-
- // creation arguments: depth
- com.sun.star.beans.PropertyValue aDepthArgument = new com.sun.star.beans.PropertyValue();
- aDepthArgument.Name = "depth";
- aDepthArgument.Value = new Integer( 1 );
-
- Object[] aArguments = new Object[3];
+ Object[] aArguments = new Object[1];
aArguments[0] = aPathArgument;
- aArguments[1] = aModeArgument;
- aArguments[2] = aDepthArgument;
- // create the view: asynchronously updatable, with depth 1
+ // create the view
Object xViewRoot =
xProvider.createInstanceWithArguments(cUpdatableView, aArguments);
@@ -1045,7 +967,7 @@ public class ConfigExamples
Object xDataSourceDescriptor = null; // the result
if ( xSetOfDataSources .hasByName( sDataSourceName ))
{
- // the element is there, but it is loaded only with depth zero !
+ // the element is there
try
{
// the view should point to the element directly, so we need to extend the path
@@ -1057,12 +979,11 @@ public class ConfigExamples
// use the name of the element now
aPathArgument.Value = sElementPath;
- // create another view now (without depth limit)
- Object[] aDeepArguments = new Object[2];
+ // create another view now
+ Object[] aDeepArguments = new Object[1];
aDeepArguments[0] = aPathArgument;
- aDeepArguments[1] = aModeArgument;
- // create the view: asynchronously updatable, with unlimited depth
+ // create the view
xDataSourceDescriptor =
xProvider.createInstanceWithArguments(cUpdatableView, aDeepArguments);
diff --git a/odk/pack/copying/idl_chapter_refs.txt b/odk/pack/copying/idl_chapter_refs.txt
index e1a15de0a62c..58d93cce9c1b 100644
--- a/odk/pack/copying/idl_chapter_refs.txt
+++ b/odk/pack/copying/idl_chapter_refs.txt
@@ -2462,7 +2462,6 @@ LINK:Documentation/DevGuide/Config/Using_a_Data_Source
DESCR:Config - Using a Data Source
REF:
com.sun.star.configuration.ConfigurationUpdateAccess
-com.sun.star.configuration.AdministrationProvider
com.sun.star.configuration.ConfigurationAccess
TOPIC:
@@ -2504,17 +2503,10 @@ com.sun.star.frame.XFrame
LINK:Documentation/DevGuide/Config/Connecting_to_a_Data_Source
DESCR:Config - Connecting to a Data Source
REF:
-com.sun.star.configuration.backend.LocalSingleBackend
-com.sun.star.configuration.AdministrationProvider
com.sun.star.lang.XMultiServiceFactory
-com.sun.star.configuration.backend.SingleBackendAdapter
-com.sun.star.configuration.backend.Backend
-com.sun.star.configuration.backend.BackendAdapter
com.sun.star.configuration.ConfigurationProvider
-com.sun.star.configuration.backend.SingleBackend
com.sun.star.lang.ServiceManager
TOPIC:
-com.sun.star.configuration.AdministrationProvider
com.sun.star.configuration.ConfigurationProvider
LINK:Documentation/DevGuide/Spreadsheets/Creating_a_New_DataPilot_Table
@@ -2924,7 +2916,6 @@ LINK:Documentation/DevGuide/Config/Configuration_Data_Sources
DESCR:Config - Configuration Data Sources
REF:
com.sun.star.configuration.ConfigurationUpdateAccess
-com.sun.star.configuration.AdministrationProvider
com.sun.star.configuration.ConfigurationProvider
com.sun.star.configuration.ConfigurationAccess
TOPIC:
@@ -5128,18 +5119,6 @@ com.sun.star.document.XExporter
TOPIC:
com.sun.star.drawing.GraphicExportFilter
-LINK:Documentation/DevGuide/Config/Installing_a_Custom_Configuration_Schema
-DESCR:Config - Installing a Custom Configuration Schema
-REF:
-com.sun.star.configuration.backend.MergeImporter
-com.sun.star.configuration.backend.LocalDataImporter
-com.sun.star.configuration.backend.CopyImporter
-com.sun.star.configuration.ConfigurationProvider
-TOPIC:
-com.sun.star.configuration.backend.MergeImporter
-com.sun.star.configuration.backend.LocalDataImporter
-com.sun.star.configuration.backend.CopyImporter
-
LINK:Documentation/DevGuide/OfficeDev/Component/Getting_Frames%2C_Controllers_and_Models_from_Each_Other
DESCR:OfficeDev - Component - Getting Frames, Controllers and Models from Each Other
REF:
@@ -5571,12 +5550,10 @@ LINK:Documentation/DevGuide/Config/Object_Model
DESCR:Config - Object Model
REF:
com.sun.star.configuration.ConfigurationUpdateAccess
-com.sun.star.configuration.AdministrationProvider
com.sun.star.configuration.ConfigurationProvider
com.sun.star.configuration.ConfigurationAccess
TOPIC:
com.sun.star.configuration.ConfigurationUpdateAccess
-com.sun.star.configuration.AdministrationProvider
com.sun.star.configuration.ConfigurationProvider
com.sun.star.configuration.ConfigurationAccess
@@ -7178,18 +7155,6 @@ com.sun.star.util.XModifiable
com.sun.star.util.XCloseable
TOPIC:
-LINK:Documentation/DevGuide/Config/Adding_a_Backend_Data_Store
-DESCR:Config - Adding a Backend Data Store
-REF:
-com.sun.star.configuration.backend.SingleBackendAdapter
-com.sun.star.configuration.backend.Backend
-com.sun.star.configuration.ConfigurationProvider
-com.sun.star.configuration.backend.BackendAdapter
-com.sun.star.configuration.backend.SingleBackend
-TOPIC:
-com.sun.star.configuration.backend.Backend
-com.sun.star.configuration.backend.SingleBackend
-
LINK:Documentation/DevGuide/Charts/Chart_Document_Controller
DESCR:Charts - Chart Document Controller
REF:
diff --git a/offapi/com/sun/star/text/PrintPreviewSettings.idl b/offapi/com/sun/star/text/PrintPreviewSettings.idl
index 392143d061a7..e282cf76536f 100644..100755
--- a/offapi/com/sun/star/text/PrintPreviewSettings.idl
+++ b/offapi/com/sun/star/text/PrintPreviewSettings.idl
@@ -39,6 +39,8 @@
//=============================================================================
/** These properties describe the printing of the content of a text document.
+ *
+ * @deprecated since OOo 3.3
*/
published service PrintPreviewSettings
{
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/MathCommands.xcu b/officecfg/registry/data/org/openoffice/Office/UI/MathCommands.xcu
index 7570fda066ca..4ed9be5a3d27 100644..100755
--- a/officecfg/registry/data/org/openoffice/Office/UI/MathCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/MathCommands.xcu
@@ -38,7 +38,7 @@
<value xml:lang="en-US">~Text Mode</value>
</prop>
</node>
- <node oor:name=".uno:InsertFormula" oor:op="replace">
+ <node oor:name=".uno:ImportFormula" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">~Import Formula...</value>
</prop>
diff --git a/oox/prj/d.lst b/oox/prj/d.lst
index f20db064d7b2..ff13b324d65c 100644
--- a/oox/prj/d.lst
+++ b/oox/prj/d.lst
@@ -40,3 +40,4 @@ mkdir: %_DEST%\inc%_EXT%\oox\xls
dos: sh -c "if test %OS% = MACOSX; then create-bundle %_DEST%\lib%_EXT%\*.dylib; fi"
..\xml\components.xml %_DEST%\xml%_EXT%\components.xml
+..\%__SRC%\misc\oox.component %_DEST%\xml%_EXT%\oox.component
diff --git a/oox/source/core/facreg.cxx b/oox/source/core/facreg.cxx
index de6212984093..ed54ae81e7e5 100644
--- a/oox/source/core/facreg.cxx
+++ b/oox/source/core/facreg.cxx
@@ -77,45 +77,6 @@ OOX_DLLPUBLIC void SAL_CALL component_getImplementationEnvironment( const sal_Ch
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-void SAL_CALL writeInfo( registry::XRegistryKey * pRegistryKey, const OUString& rImplementationName, const uno::Sequence< OUString >& rServices )
-{
- uno::Reference< registry::XRegistryKey > xNewKey(
- pRegistryKey->createKey(
- OUString( sal_Unicode( '/' ) ) + rImplementationName + OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) ) );
-
- for( sal_Int32 i = 0; i < rServices.getLength(); i++ )
- xNewKey->createKey( rServices.getConstArray()[i]);
-}
-
-#define WRITEINFO(className)\
- writeInfo( pKey, className##_getImplementationName(), className##_getSupportedServiceNames() )
-
-OOX_DLLPUBLIC sal_Bool SAL_CALL component_writeInfo( void * , void * pRegistryKey )
-{
- if( pRegistryKey )
- {
- try
- {
- registry::XRegistryKey *pKey = reinterpret_cast< registry::XRegistryKey * >( pRegistryKey );
-
- WRITEINFO( ::oox::core::FilterDetect );
- WRITEINFO( ::oox::ppt::PowerPointImport );
- WRITEINFO( ::oox::xls::BiffDetector );
- WRITEINFO( ::oox::xls::ExcelFilter );
- WRITEINFO( ::oox::xls::ExcelBiffFilter );
- WRITEINFO( ::oox::shape::ShapeContextHandler );
- WRITEINFO( ::oox::shape::FastTokenHandlerService );
- WRITEINFO( ::oox::docprop::OOXMLDocPropImportImpl );
- WRITEINFO( ::oox::xls::OOXMLFormulaParser );
- }
- catch (registry::InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_True;
-}
-
#define SINGLEFACTORY(classname)\
if( classname##_getImplementationName().equalsAsciiL( pImplName, nImplNameLen ) )\
{\
diff --git a/oox/util/makefile.mk b/oox/util/makefile.mk
index 8bbf8a3650f2..329ced792164 100644
--- a/oox/util/makefile.mk
+++ b/oox/util/makefile.mk
@@ -94,3 +94,11 @@ DEFLIB1NAME =$(TARGET)
.ENDIF # L10N_framework
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/oox.component
+
+$(MISC)/oox.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ oox.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt oox.component
diff --git a/oox/util/oox.component b/oox/util/oox.component
new file mode 100644
index 000000000000..686ee6f1728e
--- /dev/null
+++ b/oox/util/oox.component
@@ -0,0 +1,58 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.Impress.oox.PowerPointImport">
+ <service name="com.sun.star.comp.ooxpptx"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.oox.BiffDetector">
+ <service name="com.sun.star.frame.ExtendedTypeDetection"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.oox.ExcelBiffFilter">
+ <service name="com.sun.star.comp.oox.ExcelBiffFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.oox.ExcelFilter">
+ <service name="com.sun.star.comp.oox.ExcelFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.oox.FastTokenHandlerService">
+ <service name="com.sun.star.xml.sax.FastTokenHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.oox.FormatDetector">
+ <service name="com.sun.star.frame.ExtendedTypeDetection"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.oox.OOXMLFormulaParser">
+ <service name="com.sun.star.sheet.FilterFormulaParser"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.oox.ShapeContextHandler">
+ <service name="com.sun.star.xml.sax.FastShapeContextHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.oox.docprop.OOXMLDocumentPropertiesImporter">
+ <service name="com.sun.star.document.OOXMLDocumentPropertiesImporter"/>
+ </implementation>
+</component>
diff --git a/openssl/openssllnx.patch b/openssl/openssllnx.patch
index abd10061ff5c..449ebce2cae1 100644
--- a/openssl/openssllnx.patch
+++ b/openssl/openssllnx.patch
@@ -10,6 +10,17 @@
"nextstep", "cc:-O -Wall:<libc.h>:(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::",
"nextstep3.3", "cc:-O3 -Wall:<libc.h>:(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:::",
+--- misc/build/openssl-0.9.8o/Makefile.org 2010-01-27 17:06:36.000000000 +0100
++++ misc/build/openssl-0.9.8o/Makefile.org 2010-09-20 09:24:00.000000000 +0100
+@@ -199,7 +199,7 @@
+
+ BUILDENV= PLATFORM='${PLATFORM}' PROCESSOR='${PROCESSOR}' \
+ CC='${CC}' CFLAG='${CFLAG}' \
+- AS='${CC}' ASFLAG='${CFLAG} -c' \
++ AS='${CC}' ASFLAG='${CFLAG} -c -Wa,--noexecstack' \
+ AR='${AR}' PERL='${PERL}' RANLIB='${RANLIB}' \
+ SDIRS='${SDIRS}' LIBRPATH='${INSTALLTOP}/$(LIBDIR)' \
+ INSTALL_PREFIX='${INSTALL_PREFIX}' \
--- misc/openssl-0.9.8o/config 2009-02-16 09:43:41.000000000 +0100
+++ misc/build/openssl-0.9.8o/config 2009-03-30 08:59:09.588448000 +0200
@@ -399,27 +399,21 @@
diff --git a/package/prj/d.lst b/package/prj/d.lst
index 23966d0cfeae..919a1719aa09 100644
--- a/package/prj/d.lst
+++ b/package/prj/d.lst
@@ -3,3 +3,5 @@
..\%__SRC%\lib\lib*.so %_DEST%\lib%_EXT%\lib*.so
..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
..\dtd\*.dtd %_DEST%\bin%_EXT%\*.*
+..\%__SRC%\misc\package2.component %_DEST%\xml%_EXT%\package2.component
+..\%__SRC%\misc\xstor.component %_DEST%\xml%_EXT%\xstor.component
diff --git a/package/source/manifest/UnoRegister.cxx b/package/source/manifest/UnoRegister.cxx
index 2405495f321f..34dd874206e1 100644
--- a/package/source/manifest/UnoRegister.cxx
+++ b/package/source/manifest/UnoRegister.cxx
@@ -46,43 +46,6 @@ using namespace ::com::sun::star::registry;
using namespace ::com::sun::star::packages;
using namespace ::com::sun::star::packages::manifest;
-static sal_Bool writeInfo( void * pRegistryKey,
- const OUString & rImplementationName,
- Sequence< OUString > const & rServiceNames )
-{
- OUString aKeyName( OUString::createFromAscii( "/" ) );
- aKeyName += rImplementationName;
- aKeyName += OUString::createFromAscii( "/UNO/SERVICES" );
-
- Reference< XRegistryKey > xKey;
- try
- {
- xKey = static_cast< XRegistryKey * >(
- pRegistryKey )->createKey( aKeyName );
- }
- catch ( InvalidRegistryException const & )
- {
- }
-
- if ( !xKey.is() )
- return sal_False;
-
- sal_Bool bSuccess = sal_True;
-
- for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
- {
- try
- {
- xKey->createKey( rServiceNames[ n ] );
- }
- catch ( InvalidRegistryException const & )
- {
- bSuccess = sal_False;
- break;
- }
- }
- return bSuccess;
-}
// C functions to implement this as a component
extern "C" void SAL_CALL component_getImplementationEnvironment(
@@ -92,32 +55,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment(
}
/**
- * This function creates an implementation section in the registry and another subkey
- * for each supported service.
- * @param pServiceManager generic uno interface providing a service manager
- * @param pRegistryKey generic uno interface providing registry key to write
- */
-extern "C" sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey )
-{
- return pRegistryKey &&
- writeInfo (pRegistryKey,
- ManifestReader::static_getImplementationName(),
- ManifestReader::static_getSupportedServiceNames() ) &&
- writeInfo (pRegistryKey,
- ManifestWriter::static_getImplementationName(),
- ManifestWriter::static_getSupportedServiceNames() ) &&
- writeInfo (pRegistryKey,
- ZipPackage::static_getImplementationName(),
- ZipPackage::static_getSupportedServiceNames() ) &&
-
- writeInfo (pRegistryKey,
- OZipFileAccess::impl_staticGetImplementationName(),
- OZipFileAccess::impl_staticGetSupportedServiceNames() );
-
-}
-
-
-/**
* This function is called to get service factories for an implementation.
* @param pImplName name of implementation
* @param pServiceManager generic uno interface providing a service manager to instantiate components
diff --git a/package/source/xstor/makefile.mk b/package/source/xstor/makefile.mk
index 76494cb7dbe7..5c381ba4c803 100644
--- a/package/source/xstor/makefile.mk
+++ b/package/source/xstor/makefile.mk
@@ -73,3 +73,11 @@ DEF1EXPORTFILE=$(SHL1TARGET).dxp
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/xstor.component
+
+$(MISC)/xstor.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ xstor.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt xstor.component
diff --git a/package/source/xstor/register.cxx b/package/source/xstor/register.cxx
index 1e3ae15fe383..808788345bfc 100644
--- a/package/source/xstor/register.cxx
+++ b/package/source/xstor/register.cxx
@@ -69,33 +69,5 @@ void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServic
return pRet;
}
-sal_Bool SAL_CALL component_writeInfo( void * /*pServiceManager*/, void * pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- uno::Reference< registry::XRegistryKey > xKey( reinterpret_cast< registry::XRegistryKey* >( pRegistryKey ) );
-
- uno::Reference< registry::XRegistryKey > xNewKey;
-
- xNewKey = xKey->createKey( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
- OStorageFactory::impl_staticGetImplementationName() +
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) );
-
- const uno::Sequence< ::rtl::OUString > aServices = OStorageFactory::impl_staticGetSupportedServiceNames();
- for( sal_Int32 ind = 0; ind < aServices.getLength(); ind++ )
- xNewKey->createKey( aServices.getConstArray()[ind] );
-
- return sal_True;
- }
- catch (registry::InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
-
} // extern "C"
diff --git a/package/source/xstor/xstor.component b/package/source/xstor/xstor.component
new file mode 100644
index 000000000000..f338d6a546cb
--- /dev/null
+++ b/package/source/xstor/xstor.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.embed.StorageFactory">
+ <service name="com.sun.star.comp.embed.StorageFactory"/>
+ <service name="com.sun.star.embed.StorageFactory"/>
+ </implementation>
+</component>
diff --git a/package/source/xstor/xstor.dxp b/package/source/xstor/xstor.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/package/source/xstor/xstor.dxp
+++ b/package/source/xstor/xstor.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/package/util/exports.dxp b/package/util/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/package/util/exports.dxp
+++ b/package/util/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/package/util/makefile.mk b/package/util/makefile.mk
index 20732c102007..344b2cf1346f 100644
--- a/package/util/makefile.mk
+++ b/package/util/makefile.mk
@@ -75,3 +75,11 @@ DEF1NAME=$(SHL1TARGET)
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/package2.component
+
+$(MISC)/package2.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ package2.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt package2.component
diff --git a/package/util/package2.component b/package/util/package2.component
new file mode 100644
index 000000000000..cdfa842d0db6
--- /dev/null
+++ b/package/util/package2.component
@@ -0,0 +1,44 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.package.zip.ZipFileAccess">
+ <service name="com.sun.star.comp.packages.zip.ZipFileAccess"/>
+ <service name="com.sun.star.packages.zip.ZipFileAccess"/>
+ </implementation>
+ <implementation name="com.sun.star.packages.comp.ZipPackage">
+ <service name="com.sun.star.packages.Package"/>
+ </implementation>
+ <implementation name="com.sun.star.packages.manifest.comp.ManifestReader">
+ <service name="com.sun.star.packages.manifest.ManifestReader"/>
+ </implementation>
+ <implementation name="com.sun.star.packages.manifest.comp.ManifestWriter">
+ <service name="com.sun.star.packages.manifest.ManifestWriter"/>
+ </implementation>
+</component>
diff --git a/postprocess/packcomponents/makefile.mk b/postprocess/packcomponents/makefile.mk
new file mode 100644
index 000000000000..876302681568
--- /dev/null
+++ b/postprocess/packcomponents/makefile.mk
@@ -0,0 +1,382 @@
+#*************************************************************************
+#
+# 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 = postprocess
+TARGET = packcomponents
+
+.INCLUDE: settings.mk
+
+#TODO (copied from scp2/source/ooo/makefile.mk):
+.IF "$(OS)" != "MACOSX" && "$(OS)" != "WNT" && "$(ENABLE_GTK)" != ""
+PKGCONFIG_MODULES=gtk+-2.0
+.INCLUDE: pkg_config.mk
+GTK_TWO_FOUR=$(shell @+-$(PKG_CONFIG) --exists 'gtk+-2.0 >= 2.4.0' && echo YES)
+.END
+
+my_components = \
+ abp \
+ adabasui \
+ analysis \
+ animcore \
+ avmedia \
+ basctl \
+ basprov \
+ bib \
+ cached1 \
+ calc \
+ canvasfactory \
+ chartcontroller \
+ chartmodel \
+ charttools \
+ chartview \
+ comphelp4 \
+ configmgr \
+ ctl \
+ date \
+ dba \
+ dbacfg \
+ dbase \
+ dbaxml \
+ dbmm \
+ dbp \
+ dbpool2 \
+ dbtools \
+ dbu \
+ deployment \
+ deploymentgui \
+ dlgprov \
+ embobj \
+ evtatt \
+ fastsax \
+ fileacc \
+ filterconfig1 \
+ flash \
+ flat \
+ for \
+ fpicker \
+ fps_office \
+ frm \
+ fsstorage \
+ fwk \
+ fwl \
+ fwm \
+ guesslang \
+ hatchwindowfactory \
+ hwp \
+ hyphen \
+ i18npool \
+ i18nsearch \
+ lng \
+ lnth \
+ localebe1 \
+ log \
+ mcnttype \
+ migrationoo2 \
+ msforms \
+ mysql \
+ odbc \
+ offacc \
+ oooimprovecore \
+ oox \
+ package2 \
+ passwordcontainer \
+ pcr \
+ pdffilter \
+ placeware \
+ preload \
+ productregistration.uno \
+ protocolhandler \
+ pythonloader \
+ pythonscript \
+ res \
+ rpt \
+ rptui \
+ rptxml \
+ sax \
+ sb \
+ sc \
+ scd \
+ scn \
+ scriptframe \
+ sd \
+ sdbc2 \
+ sdbt \
+ sdd \
+ sfx \
+ simplecanvas \
+ slideshow \
+ sm \
+ smd \
+ solver \
+ sot \
+ spell \
+ spl \
+ srtrs1 \
+ stringresource \
+ svgfilter \
+ svl \
+ svt \
+ svx \
+ svxcore \
+ sw \
+ swd \
+ syssh \
+ t602filter \
+ textconversiondlgs \
+ tk \
+ tvhlp1 \
+ ucb1 \
+ ucpchelp1 \
+ ucpexpand1 \
+ ucpext \
+ ucpfile1 \
+ ucpftp1 \
+ ucphier1 \
+ ucppkg1 \
+ ucptdoc1 \
+ unordf \
+ unoxml \
+ updatefeed \
+ updchk \
+ updchk.uno \
+ utl \
+ uui \
+ vbaobj \
+ vbaswobj \
+ vcl \
+ vclcanvas \
+ wpft \
+ writerfilter \
+ xcr \
+ xmlfa \
+ xmlfd \
+ xmx \
+ xo \
+ xof \
+ xsltdlg \
+ xsltfilter \
+ xstor
+
+.IF "$(BUILD_SPECIAL)" != ""
+my_components += oooimprovement
+.END
+
+.IF "$(DISABLE_ATL)" == ""
+my_components += emboleobj
+.END
+
+.IF "$(DISABLE_NEON)" != "TRUE"
+my_components += ucpdav1
+.END
+
+.IF "$(ENABLE_CAIRO)" == "TRUE"
+my_components += cairocanvas
+.END
+
+.IF "$(ENABLE_GCONF)" != ""
+my_components += gconfbe1
+.END
+
+.IF "$(ENABLE_GIO)" != ""
+my_components += ucpgio1
+.END
+
+.IF "$(ENABLE_GNOMEVFS)" != ""
+my_components += ucpgvfs
+.END
+
+.IF "$(ENABLE_KAB)" != ""
+my_components += kab1
+.END
+
+.IF "$(ENABLE_KDE)" != ""
+my_components += kdebe1
+.END
+
+.IF "$(ENABLE_KDE4)" != ""
+my_components += kde4be1
+.END
+
+.IF "$(ENABLE_OGL)" == "TRUE"
+my_components += ogltrans
+.END
+
+.IF "$(ENABLE_SVCTAGS)" == "YES"
+my_components += productregistration.jar
+.END
+
+.IF "$(ENABLE_VBA)" == "YES"
+my_components += vbaevents
+.END
+
+.IF "$(SOLAR_JAVA)" == "TRUE"
+my_components += \
+ LuceneHelpWrapper \
+ ScriptFramework \
+ ScriptProviderForBeanShell \
+ ScriptProviderForJava \
+ ScriptProviderForJavaScript \
+ XMergeBridge \
+ XSLTFilter.jar \
+ XSLTValidate \
+ agenda \
+ fax \
+ form \
+ hsqldb \
+ jdbc \
+ letter \
+ query \
+ report \
+ table \
+ web
+.END
+
+.IF "$(WITH_BINFILTER)" != "NO"
+my_components += \
+ bf_migratefilter \
+ bindet
+.END
+
+.IF "$(WITH_LDAP)" == "YES"
+my_components += ldapbe2
+.END
+
+.IF "$(WITH_MOZILLA)" != "NO"
+my_components += \
+ xmlsecurity \
+ xsec_fw \
+ xsec_xmlsec \
+ pl
+.END
+
+.IF "$(OS)" == "MACOSX"
+my_components += \
+ MacOSXSpell \
+ avmediaQuickTime \
+ fps_aqua \
+ macab1 \
+ macbe1
+.END
+
+.IF "$(OS)" == "WNT"
+my_components += \
+ ado \
+ dnd \
+ dtrans \
+ fop \
+ fps \
+ ftransl \
+ java_uno_accessbridge \
+ smplmail \
+ sysdtrans \
+ wininetbe1
+.END
+
+.IF "$(OS)" == "WNT" && "$(DISABLE_ATL)" == ""
+my_components += \
+ emser \
+ oleautobridge
+.END
+
+.IF "$(OS)" == "WNT" && "$(ENABLE_DIRECTX)" != ""
+my_components += \
+ avmediawin \
+ directx9canvas \
+ gdipluscanvas
+.END
+
+.IF "$(OS)" == "WNT" && "$(ENABLE_DIRECTX)" != "" && "$(USE_DIRECTX5)" != ""
+my_components += directx5canvas
+.END
+
+.IF "$(OS)" == "LINUX" || "$(OS)" == "NETBSD" || \
+ ("$(OS)" == "SOLARIS" && "$(CPU)" == "S") || "$(OS)" == "WNT"
+my_components += adabas
+.END
+
+.IF "$(OS)" != "MACOSX" && "$(SYSTEM_MOZILLA)" != "YES" && \
+ "$(WITH_MOZILLA)" != "NO"
+my_components += mozab
+.ELSE
+my_components += mozbootstrap
+.END
+
+.IF "$(OS)" != "MACOSX" && "$(OS)" != "WNT"
+my_components += desktopbe1
+.END
+
+.IF "$(GTK_TWO_FOUR)" != ""
+my_components += fps_gnome
+.END
+
+.IF "$(OS)" != "MACOSX" && "$(OS)" != "WNT" && "$(ENABLE_KDE4)" != ""
+my_components += fps_kde4
+.END
+
+.IF "$(OS)" != "WNT"
+my_components += cmdmail
+.END
+
+.IF "$(OS)" != "WNT" && "$(ENABLE_EVOAB2)" != ""
+my_components += evoab
+.END
+
+.IF "$(OS)" != "WNT" && "$(ENABLE_GSTREAMER)" != ""
+my_components += avmediagst
+.END
+
+.IF "$(OS)" != "WNT" && "$(SOLAR_JAVA)" == "TRUE"
+my_components += avmedia.jar
+.END
+
+my_ooo_components = mailmerge
+
+.INCLUDE: target.mk
+
+ALLTAR : $(MISC)/services.rdb $(MISC)/ooo-services.rdb
+
+$(MISC)/services.rdb .ERRREMOVE : $(SOLARENV)/bin/packcomponents.xslt \
+ $(MISC)/services.input $(my_components:^"$(SOLARXMLDIR)/":+".component")
+ $(XSLTPROC) --nonet --stringparam prefix $(SOLARXMLDIR)/ -o $@ \
+ $(SOLARENV)/bin/packcomponents.xslt $(MISC)/services.input
+
+$(MISC)/services.input :
+ echo \
+ '<list>$(my_components:^"<filename>":+".component</filename>")</list>' \
+ > $@
+
+$(MISC)/ooo-services.rdb .ERRREMOVE : $(SOLARENV)/bin/packcomponents.xslt \
+ $(MISC)/ooo-services.input \
+ $(my_ooo_components:^"$(SOLARXMLDIR)/":+".component")
+ $(XSLTPROC) --nonet --stringparam prefix $(SOLARXMLDIR)/ -o $@ \
+ $(SOLARENV)/bin/packcomponents.xslt $(MISC)/ooo-services.input
+
+$(MISC)/ooo-services.input :
+ echo '<list>' \
+ '$(my_ooo_components:^"<filename>":+".component</filename>")' \
+ '</list>' > $@
diff --git a/postprocess/prj/build.lst b/postprocess/prj/build.lst
index c40d98458025..4ac374f91a07 100644
--- a/postprocess/prj/build.lst
+++ b/postprocess/prj/build.lst
@@ -4,5 +4,6 @@ po postprocess\checkxml nmake - all po_checkxml NULL
po postprocess\checkdeliver nmake - all po_checkdlv NULL
po postprocess\packconfig nmake - all po_packconfig po_checkxml NULL
po postprocess\packregistry nmake - all po_packregistry NULL
+po postprocess\packcomponents nmake - all po_packcomponents NULL
po postprocess\rebase nmake - w po_rebase NULL
po postprocess\signing nmake - w,sign po_signing po_rebase.w NULL
diff --git a/postprocess/prj/d.lst b/postprocess/prj/d.lst
index fd8a49d4f8a0..9bfe12b9ac8f 100644
--- a/postprocess/prj/d.lst
+++ b/postprocess/prj/d.lst
@@ -1,3 +1,7 @@
+mkdir: %_DEST%\xml%_EXT%\ooo
..\%__SRC%\bin\uiconfig.zip %_DEST%\bin%_EXT%\uiconfig.zip
..\%__SRC%\misc\*.xcd %_DEST%\xml%_EXT%\
..\%__SRC%\misc\lang\*.xcd %_DEST%\xml%_EXT%\
+..\%__SRC%\misc\ooo-services.rdb %_DEST%\xml%_EXT%\ooo\services.rdb
+..\%__SRC%\misc\services.input %_DEST%\xml%_EXT%\services.input
+..\%__SRC%\misc\services.rdb %_DEST%\xml%_EXT%\services.rdb
diff --git a/python/makefile.mk b/python/makefile.mk
index a35e596669a0..5caa7ac1d601 100644
--- a/python/makefile.mk
+++ b/python/makefile.mk
@@ -66,10 +66,6 @@ CC+:=$(C_RESTRICTIONFLAGS)
.ENDIF # "$(COMNAME)"=="sunpro5"
.ENDIF # "$(SYSBASE)"!=""
-.IF "$(OS)$(COM)"=="LINUXGCC"
-python_LDFLAGS+=-Wl,-z,noexecstack
-.ENDIF
-
.IF "$(OS)$(CPU)"=="SOLARISU"
CC+:=$(ARCH_FLAGS)
python_LDFLAGS+=$(ARCH_FLAGS)
diff --git a/pyuno/prj/d.lst b/pyuno/prj/d.lst
index 5fe7400a8d58..1dd212ea9cf4 100644
--- a/pyuno/prj/d.lst
+++ b/pyuno/prj/d.lst
@@ -9,12 +9,11 @@ mkdir: %_DEST%\lib%_EXT%\pyuno
..\%__SRC%\lib\unohelper.py %_DEST%\lib%_EXT%\pyuno\unohelper.py
..\%__SRC%\lib\pythonloader.py %_DEST%\lib%_EXT%\pyuno\pythonloader.py
..\%__SRC%\lib\uno.py %_DEST%\lib%_EXT%\pyuno\uno.py
-..\%__SRC%\lib\pyuno_services.rdb %_DEST%\bin%_EXT%\pyuno_services.rdb
+..\%__SRC%\misc\pythonloader.component %_DEST%\xml\pythonloader.component
..\%__SRC%\bin\unohelper.py %_DEST%\bin%_EXT%\pyuno\unohelper.py
..\%__SRC%\bin\pythonloader.py %_DEST%\bin%_EXT%\pyuno\pythonloader.py
..\%__SRC%\bin\uno.py %_DEST%\bin%_EXT%\pyuno\uno.py
-..\%__SRC%\bin\pyuno_services.rdb %_DEST%\bin%_EXT%\pyuno_services.rdb
..\%__SRC%\bin\pyuno.pyd %_DEST%\bin%_EXT%\pyuno.pyd
..\%__SRC%\bin\pyuno.dll %_DEST%\bin%_EXT%\pyuno.dll
..\%__SRC%\bin\pythonl*.dll %_DEST%\bin%_EXT%\pythonl*.dll
diff --git a/pyuno/source/loader/makefile.mk b/pyuno/source/loader/makefile.mk
index 6f8648ce598e..65ec8116f9c5 100644
--- a/pyuno/source/loader/makefile.mk
+++ b/pyuno/source/loader/makefile.mk
@@ -73,40 +73,22 @@ SHL1DEF= $(MISC)$/$(SHL1TARGET).def
DEF1NAME= $(SHL1TARGET)
SLOFILES= $(SLO)$/pyuno_loader.obj
-#COMPONENTS= \
-# tcv \
-# inv \
-# corefl \
-# insp \
-# invadp \
-# proxyfac \
-# pythonloader.uno \
-
-
-COMPONENTS= \
- stocservices.uno \
- invocation.uno \
- introspection.uno \
- invocadapt.uno \
- proxyfac.uno \
- reflection.uno \
- .$/pythonloader.uno
-
# --- Targets ------------------------------------------------------
ALL : ALLTAR \
- $(DLLDEST)$/pythonloader.py \
- $(DLLDEST)$/pyuno_services.rdb
+ $(DLLDEST)$/pythonloader.py
.ENDIF # L10N_framework
.INCLUDE : target.mk
.IF "$(L10N_framework)"==""
$(DLLDEST)$/%.py: %.py
cp $? $@
-
-$(DLLDEST)$/pyuno_services.rdb : makefile.mk $(DLLDEST)$/$(DLLPRE)$(TARGET)$(DLLPOST)
- -rm -f $@ $(DLLDEST)$/pyuno_services.tmp $(DLLDEST)$/pyuno_services.rdb
- cd $(DLLDEST) && $(REGCOMP) -register -r pyuno_services.tmp -wop $(foreach,i,$(COMPONENTS) -c $(i))
- cd $(DLLDEST) && mv pyuno_services.tmp pyuno_services.rdb
.ENDIF # L10N_framework
+ALLTAR : $(MISC)/pythonloader.component
+
+$(MISC)/pythonloader.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt pythonloader.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ 'vnd.sun.star.expand:$$OOO_BASE_DIR/program/$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt pythonloader.component
diff --git a/pyuno/source/loader/pythonloader.component b/pyuno/source/loader/pythonloader.component
new file mode 100644
index 000000000000..583b6ed38771
--- /dev/null
+++ b/pyuno/source/loader/pythonloader.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="org.openoffice.comp.pyuno.Loader">
+ <service name="com.sun.star.loader.Python"/>
+ </implementation>
+</component>
diff --git a/pyuno/source/loader/pyuno_loader.cxx b/pyuno/source/loader/pyuno_loader.cxx
index 98d328b14a0f..c69132e51e3d 100644
--- a/pyuno/source/loader/pyuno_loader.cxx
+++ b/pyuno/source/loader/pyuno_loader.cxx
@@ -229,12 +229,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- return cppu::component_writeInfoHelper( pServiceManager, pRegistryKey, g_entries );
-}
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/qadevOOo/runner/graphical/EnhancedComplexTestCase.java b/qadevOOo/runner/graphical/EnhancedComplexTestCase.java
index c3ec2b3e8336..3d496826f5f2 100644
--- a/qadevOOo/runner/graphical/EnhancedComplexTestCase.java
+++ b/qadevOOo/runner/graphical/EnhancedComplexTestCase.java
@@ -45,7 +45,7 @@ abstract public class EnhancedComplexTestCase extends ComplexTestCase implements
private void callEntry(String _sEntry, ParameterHelper _aParam)
{
// log.println("- next file is: ------------------------------");
- log.println("File: " + _sEntry);
+ log.println(" File: " + _sEntry);
// TODO: check if 'sEntry' is a guilty document.
File aFile = new File(_aParam.getInputPath());
String sPath = _aParam.getInputPath();
@@ -254,8 +254,15 @@ private void callEntry(String _sEntry, ParameterHelper _aParam)
for (int i=0;i<aList.size();i++)
{
String sEntry = aList.get(i);
- callEntry(sEntry, _aParam);
-
+ try
+ {
+ callEntry(sEntry, _aParam);
+ }
+ catch (AssureException e)
+ {
+ // we only need to catch the assure()
+ // nOkStatus += 2;
+ }
// we want to know the current status of the run through
// if the status is greater (more bad) then the current,
// we will remember this. Only the very bad status will
@@ -469,9 +476,13 @@ private void callEntry(String _sEntry, ParameterHelper _aParam)
{
String sPSFile = aList.get(i);
- // TODO: this information has to come out of the ini files
- String sStatusRunThrough = "";
- String sStatusMessage = "";
+ // Read information out of the ini files
+ String sIndexFile2 = FileHelper.appendPath(sPath, sPSFile + ".ini");
+ IniFile aIniFile2 = new IniFile(sIndexFile2);
+ String sStatusRunThrough = aIniFile2.getValue("global", "state");
+ String sStatusMessage = ""; // aIniFile2.getValue("global", "info");
+ aIniFile2.close();
+
String sHTMLFile = sPSFile + ".html";
aOutputter.indexLine(sHTMLFile, sPSFile, sStatusRunThrough, sStatusMessage);
diff --git a/qadevOOo/runner/graphical/JPEGCreator.java b/qadevOOo/runner/graphical/JPEGCreator.java
index a4336229e448..7deee0d0d8f6 100644
--- a/qadevOOo/runner/graphical/JPEGCreator.java
+++ b/qadevOOo/runner/graphical/JPEGCreator.java
@@ -61,7 +61,8 @@ public class JPEGCreator extends EnhancedComplexTestCase
public void checkOneFile(String _sDocumentName, String _sResult, ParameterHelper _aParams) throws OfficeException
{
- GlobalLogWriter.println("Document: " + _sDocumentName + " results: " + _sResult);
+ GlobalLogWriter.println(" Document: " + _sDocumentName);
+ GlobalLogWriter.println(" results: " + _sResult);
// IOffice aOffice = new Office(_aParams, _sResult);
// aOffice.start();
// aOffice.load(_sDocumentName);
diff --git a/qadevOOo/runner/graphical/JPEGEvaluator.java b/qadevOOo/runner/graphical/JPEGEvaluator.java
index 07b265b62355..049e96b15999 100644
--- a/qadevOOo/runner/graphical/JPEGEvaluator.java
+++ b/qadevOOo/runner/graphical/JPEGEvaluator.java
@@ -51,6 +51,8 @@ public class JPEGEvaluator extends EnhancedComplexTestCase
GlobalLogWriter.set(log);
ParameterHelper aParam = new ParameterHelper(param);
+ // aParam.getTestParameters().put("current_ok_status", -1);
+
// run through all documents found in Inputpath
foreachResultCreateHTML(aParam);
}
diff --git a/qadevOOo/runner/graphical/Office.java b/qadevOOo/runner/graphical/Office.java
index 8ecee36cc742..59eeb160f2d9 100644
--- a/qadevOOo/runner/graphical/Office.java
+++ b/qadevOOo/runner/graphical/Office.java
@@ -48,6 +48,7 @@ public class Office implements IOffice
m_sResult = _sResult;
if (_aParam.getReferenceType().toLowerCase().equals("ooo") ||
+ _aParam.getReferenceType().toLowerCase().equals("o3") ||
_aParam.getReferenceType().toLowerCase().equals("ps") ||
_aParam.getReferenceType().toLowerCase().equals("pdf"))
{
diff --git a/qadevOOo/runner/graphical/OpenOfficePostscriptCreator.java b/qadevOOo/runner/graphical/OpenOfficePostscriptCreator.java
index d918634f8d30..7111d5e0f794 100644
--- a/qadevOOo/runner/graphical/OpenOfficePostscriptCreator.java
+++ b/qadevOOo/runner/graphical/OpenOfficePostscriptCreator.java
@@ -102,6 +102,7 @@ public class OpenOfficePostscriptCreator implements IOffice
{
String sDocumentName = FileHelper.appendPath(m_sOutputURL, m_sBasename);
if (m_aParameterHelper.getReferenceType().toLowerCase().equals("ooo") ||
+ m_aParameterHelper.getReferenceType().toLowerCase().equals("o3") ||
m_aParameterHelper.getReferenceType().toLowerCase().equals("ps") )
{
String sPrintURL = sDocumentName + ".ps";
@@ -1380,9 +1381,9 @@ public class OpenOfficePostscriptCreator implements IOffice
// Watcher Object is need in log object to give a simple way to say if a running office is alive.
// As long as a log comes, it pings the Watcher and says the office is alive, if not an
// internal counter increase and at a given point (300 seconds) the office is killed.
- GlobalLogWriter.println("Set office watcher");
if (GlobalLogWriter.get().getWatcher() == null)
{
+ GlobalLogWriter.println("Set office watcher");
OfficeWatcher aWatcher = (OfficeWatcher)m_aParameterHelper.getTestParameters().get("Watcher");
GlobalLogWriter.get().setWatcher(aWatcher);
}
diff --git a/qadevOOo/runner/graphical/ParameterHelper.java b/qadevOOo/runner/graphical/ParameterHelper.java
index 598ee6c53007..a3608b191f63 100644
--- a/qadevOOo/runner/graphical/ParameterHelper.java
+++ b/qadevOOo/runner/graphical/ParameterHelper.java
@@ -267,7 +267,8 @@ public class ParameterHelper
// check if MultiServiceFactory is given
if (getReferenceType().toLowerCase().equals("pdf") ||
getReferenceType().toLowerCase().equals("ps") ||
- getReferenceType().toLowerCase().equals("ooo"))
+ getReferenceType().toLowerCase().equals("ooo") ||
+ getReferenceType().toLowerCase().equals("o3") )
{
if (xMSF == null)
{
diff --git a/qadevOOo/runner/graphical/PostscriptCreator.java b/qadevOOo/runner/graphical/PostscriptCreator.java
index ab7ad4536fa6..7109b4851b1b 100644
--- a/qadevOOo/runner/graphical/PostscriptCreator.java
+++ b/qadevOOo/runner/graphical/PostscriptCreator.java
@@ -59,7 +59,8 @@ public class PostscriptCreator extends EnhancedComplexTestCase
public void checkOneFile(String _sDocumentName, String _sResult, ParameterHelper _aParams) throws OfficeException
{
- GlobalLogWriter.println("Document: " + _sDocumentName + " results: " + _sResult);
+ GlobalLogWriter.println(" Document: " + _sDocumentName);
+ GlobalLogWriter.println(" results: " + _sResult);
IOffice aOffice = new Office(_aParams, _sResult);
PerformanceContainer a = new PerformanceContainer();
diff --git a/qadevOOo/runner/helper/OfficeProvider.java b/qadevOOo/runner/helper/OfficeProvider.java
index 8589de47ea82..1d4950ee5404 100644
--- a/qadevOOo/runner/helper/OfficeProvider.java
+++ b/qadevOOo/runner/helper/OfficeProvider.java
@@ -59,7 +59,7 @@ import util.utils;
public class OfficeProvider implements AppProvider
{
- protected static boolean debug = false;
+ private static boolean debug = false;
/**
* copy the user layer to a safe place, usualy to $TMP/user_backup$USER
@@ -355,7 +355,7 @@ public class OfficeProvider implements AppProvider
if (rInitialObject != null)
{
- debug = true;
+ // debug = true;
dbg("resolved url");
xMSF = UnoRuntime.queryInterface(XMultiServiceFactory.class, rInitialObject);
@@ -434,7 +434,7 @@ public class OfficeProvider implements AppProvider
{
XMultiServiceFactory msf = null;
String exc = "";
- debug = true;
+ // debug = true;
dbg("trying to connect to " + cncstr);
diff --git a/qadevOOo/runner/helper/ProcessHandler.java b/qadevOOo/runner/helper/ProcessHandler.java
index c414accd44ac..8e37a58a370e 100644
--- a/qadevOOo/runner/helper/ProcessHandler.java
+++ b/qadevOOo/runner/helper/ProcessHandler.java
@@ -26,6 +26,7 @@
************************************************************************/
package helper;
+import java.io.BufferedReader;
import java.io.InputStream;
import java.io.File;
import java.io.PrintWriter;
@@ -33,10 +34,12 @@ import java.io.PrintStream;
import java.io.LineNumberReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
+import java.io.Writer;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import lib.TestParameters;
+import share.LogWriter;
import util.PropertyName;
import util.utils;
@@ -58,6 +61,7 @@ class Pump extends Thread
private String pref;
private StringBuffer buf = new StringBuffer(256);
private PrintWriter log;
+ private boolean bOutput;
/**
* Creates Pump for specified <code>InputStream</code>.
@@ -70,11 +74,12 @@ class Pump extends Thread
* @param outPrefix A prefix which is printed at the
* beginning of each output line.
*/
- public Pump(InputStream is, PrintWriter log, String outPrefix)
+ public Pump(InputStream is, PrintWriter log, String outPrefix, boolean _bOutput)
{
this.pref = (outPrefix == null) ? "" : outPrefix;
reader = new LineNumberReader(new InputStreamReader(is));
this.log = log;
+ this.bOutput = _bOutput;
start();
}
@@ -85,8 +90,11 @@ class Pump extends Thread
String line = reader.readLine();
while (line != null)
{
- log.println(pref + line);
- log.flush();
+ if (bOutput)
+ {
+ log.println(pref + line);
+ log.flush();
+ }
buf.append(line).append('\n');
line = reader.readLine();
}
@@ -133,6 +141,11 @@ public class ProcessHandler
private Process m_aProcess = null;
private TestParameters param = null;
private boolean debug = false;
+ private boolean bUseOutput = true;
+
+ private int m_nProcessTimeout = 0;
+ private String m_sProcessKiller;
+ private ProcessWatcher m_aWatcher;
/**
* Creates instance with specified external command.
@@ -348,6 +361,24 @@ public class ProcessHandler
}
/**
+ * If not equal 0, the time to maximal wait.
+ * @param _n
+ */
+ public void setProcessTimeout(int _n)
+ {
+ m_nProcessTimeout = _n;
+ }
+
+ /**
+ * This command will call after ProcessTimeout is arrived.
+ * @param _s
+ */
+ public void setProcessKiller(String _s)
+ {
+ m_sProcessKiller = _s;
+ }
+
+ /**
* This method do an asynchronous execution of the commands. To avoid a interruption on long running processes
* caused by <CODE>OfficeWatcher</CODE>, the OfficeWatcher get frequently a ping.
* @see helper.OfficeWatcher
@@ -395,7 +426,7 @@ public class ProcessHandler
if (sOutputText.length() == memText.length())
{
changedText = false;
- // dbg("runCommand Could not detect changes in output stream!!!");
+ // dbg("runCommand Could not detect changes in output stream!!!");
}
hangcheck = 10;
memText = this.getOutputText();
@@ -515,6 +546,21 @@ public class ProcessHandler
return m_nExactStartTimeInMillisec;
}
+ private void showEnvVars()
+ {
+ if (envVars != null)
+ {
+ for (int i = 0; i < envVars.length; i++)
+ {
+ log.println("env: " + envVars[i]);
+ }
+ }
+ else
+ {
+ log.println("env: null");
+ }
+ }
+
protected void execute()
{
if (isStarted())
@@ -527,27 +573,32 @@ public class ProcessHandler
{
if (cmdLine == null)
{
- log.print(utils.getDateTime() + "execute: Starting command from array: ");
+ log.println(utils.getDateTime() + "execute: Starting command from array: ");
for (int i = 0; i < cmdLineArray.length; i++)
{
- log.print(cmdLineArray[i]);
- log.print(" ");
+ log.println(cmdLineArray[i]);
+ // log.print(" ");
}
+ showEnvVars();
log.println("");
initialExactStartTime();
+ initializeProcessKiller();
m_aProcess = runtime.exec(cmdLineArray, envVars);
}
else
{
if (workDir != null)
{
- log.println(utils.getDateTime() + "execute: Starting command: " + cmdLine + " " +
- workDir.getAbsolutePath());
+ log.println(utils.getDateTime() + "execute: Starting command: ");
+ log.println(cmdLine + " path=" + workDir.getAbsolutePath());
+ showEnvVars();
m_aProcess = runtime.exec(cmdLine, envVars, workDir);
}
else
{
- log.println(utils.getDateTime() + "execute: Starting command: " + cmdLine);
+ log.println(utils.getDateTime() + "execute: Starting command: ");
+ log.println(cmdLine);
+ showEnvVars();
m_aProcess = runtime.exec(cmdLine, envVars);
}
}
@@ -566,8 +617,8 @@ public class ProcessHandler
return;
}
dbg("execute: pump io-streams");
- stdout = new Pump(m_aProcess.getInputStream(), log, "out > ");
- stderr = new Pump(m_aProcess.getErrorStream(), log, "err > ");
+ stdout = new Pump(m_aProcess.getInputStream(), log, "out > ", bUseOutput);
+ stderr = new Pump(m_aProcess.getErrorStream(), log, "err > ", bUseOutput);
stdIn = new PrintStream(m_aProcess.getOutputStream());
// int nExitValue = m_aProcess.exitValue();
@@ -821,4 +872,139 @@ public class ProcessHandler
log.println(utils.getDateTime() + "PH." + message);
}
}
+
+ public void noOutput()
+ {
+ bUseOutput = false;
+ }
+ // -------------------------------------------------------------------------
+ class ProcessWatcher extends Thread
+ {
+
+ private int m_nTimeoutInSec;
+ private String m_sProcessToStart;
+ private boolean m_bInterrupt;
+
+ public ProcessWatcher(int _nTimeOut, String _sProcess)
+ {
+ m_nTimeoutInSec = _nTimeOut;
+ m_sProcessToStart = _sProcess;
+ m_bInterrupt = false;
+ }
+
+ /**
+ * returns true, if the thread should hold on
+ * @return
+ */
+ public synchronized boolean isInHoldOn()
+ {
+ return m_bInterrupt;
+ }
+ /**
+ * Marks the thread to hold on, next time
+ * STUPID: The thread must poll this flag itself.
+ *
+ * Reason: interrupt() seems not to work as expected.
+ */
+ public synchronized void holdOn()
+ {
+ m_bInterrupt = true;
+ interrupt();
+ }
+
+ public void run()
+ {
+ while (m_nTimeoutInSec > 0)
+ {
+ m_nTimeoutInSec--;
+ try
+ {
+ sleep(1000);
+ }
+ catch(java.lang.InterruptedException e)
+ {
+ // interrupt flag is set back to 'not interrupted' :-(
+ }
+ if (isInHoldOn())
+ {
+ break;
+ }
+ }
+ if (m_nTimeoutInSec <= 0 && !isInHoldOn()) // not zero, so we are interrupted.
+ {
+ system(m_sProcessToStart);
+ }
+ }
+
+ /**
+ * Start an external Process
+ * @param _sProcess
+ */
+ private void system(String _sProcess)
+ {
+ if (_sProcess == null)
+ {
+ return;
+ }
+
+ try
+ {
+
+ // run a _sProcess command
+ // using the Runtime exec method:
+ Process p = Runtime.getRuntime().exec(_sProcess);
+
+ BufferedReader stdInput = new BufferedReader(new InputStreamReader(p.getInputStream()));
+
+ BufferedReader stdError = new BufferedReader(new InputStreamReader(p.getErrorStream()));
+
+ // read the output from the command
+ String s;
+ while ((s = stdInput.readLine()) != null)
+ {
+ System.out.println("out:" + s);
+ }
+
+ // read any errors from the attempted command
+ while ((s = stdError.readLine()) != null)
+ {
+ System.out.println("err:" + s);
+ }
+
+ }
+ catch (java.io.IOException e)
+ {
+ System.out.println("exception caught: ");
+ e.printStackTrace();
+ }
+
+ }
+ }
+
+ /**
+ * If the timeout only given by setProcessTimeout(int seconds) function is != 0,
+ * a extra thread is created and after time has run out, the ProcessKiller string
+ * given by function setProcessKiller(string) will execute.
+ * So it is possible to kill a running office after a given time of seconds.
+ */
+ private void initializeProcessKiller()
+ {
+ if (m_nProcessTimeout != 0)
+ {
+ m_aWatcher = new ProcessWatcher(m_nProcessTimeout, m_sProcessKiller);
+ m_aWatcher.start();
+ }
+ }
+
+ /**
+ * to stop the extra thread, before he will kill a running office. This will stop the thread.
+ */
+ public void stopWatcher()
+ {
+ if (m_aWatcher != null)
+ {
+ m_aWatcher.holdOn();
+ shortWait(5000);
+ }
+ }
}
diff --git a/qadevOOo/runner/org/openoffice/Runner.java b/qadevOOo/runner/org/openoffice/Runner.java
index a3741774917e..f6397deb3e2b 100644
--- a/qadevOOo/runner/org/openoffice/Runner.java
+++ b/qadevOOo/runner/org/openoffice/Runner.java
@@ -184,7 +184,7 @@ public class Runner
public static boolean run(String... args)
{
- System.out.println("OOoRunner Main() version from 20100323 (yyyymmdd)");
+ System.out.println("OOoRunner Main() version from 20100922 (yyyymmdd)");
setStartTime(getTime());
diff --git a/redland/raptor/makefile.mk b/redland/raptor/makefile.mk
index 62d4f704d0e4..b67f6ef314ce 100644
--- a/redland/raptor/makefile.mk
+++ b/redland/raptor/makefile.mk
@@ -93,7 +93,7 @@ BUILD_DIR=$(CONFIGURE_DIR)$/src
.ELSE # "WNT"
.IF "$(OS)$(COM)"=="LINUXGCC" || "$(OS)$(COM)"=="FREEBSDGCC"
-LDFLAGS:=-Wl,-rpath,'$$$$ORIGIN:$$$$ORIGIN/../ure-link/lib' -Wl,-noinhibit-exec -Wl,-z,noexecstack
+LDFLAGS:=-Wl,-rpath,'$$$$ORIGIN:$$$$ORIGIN/../ure-link/lib' -Wl,-noinhibit-exec
.ENDIF # "$(OS)$(COM)"=="LINUXGCC"
.IF "$(OS)$(COM)"=="SOLARISC52"
LDFLAGS:=-Wl,-R'$$$$ORIGIN:$$$$ORIGIN/../ure-link/lib'
diff --git a/redland/rasqal/makefile.mk b/redland/rasqal/makefile.mk
index efe099c88049..66fca99d1600 100644
--- a/redland/rasqal/makefile.mk
+++ b/redland/rasqal/makefile.mk
@@ -89,7 +89,7 @@ BUILD_DIR=$(CONFIGURE_DIR)$/src
.ELSE # "WNT"
.IF "$(OS)$(COM)"=="LINUXGCC" || "$(OS)$(COM)"=="FREEBSDGCC"
-LDFLAGS:=-Wl,-rpath,'$$$$ORIGIN:$$$$ORIGIN/../ure-link/lib' -Wl,-noinhibit-exec -Wl,-z,noexecstack
+LDFLAGS:=-Wl,-rpath,'$$$$ORIGIN:$$$$ORIGIN/../ure-link/lib' -Wl,-noinhibit-exec
.ENDIF # "$(OS)$(COM)"=="LINUXGCC"
.IF "$(OS)$(COM)"=="SOLARISC52"
LDFLAGS:=-Wl,-R'$$$$ORIGIN:$$$$ORIGIN/../ure-link/lib'
diff --git a/redland/redland/makefile.mk b/redland/redland/makefile.mk
index 3db7c0559d2e..20b1210dd2f9 100644
--- a/redland/redland/makefile.mk
+++ b/redland/redland/makefile.mk
@@ -89,7 +89,7 @@ BUILD_DIR=$(CONFIGURE_DIR)$/librdf
.ELSE # "WNT"
.IF "$(OS)$(COM)"=="LINUXGCC" || "$(OS)$(COM)"=="FREEBSDGCC"
-LDFLAGS:=-Wl,-rpath,'$$$$ORIGIN:$$$$ORIGIN/../ure-link/lib' -Wl,-noinhibit-exec -Wl,-z,noexecstack
+LDFLAGS:=-Wl,-rpath,'$$$$ORIGIN:$$$$ORIGIN/../ure-link/lib' -Wl,-noinhibit-exec
.ENDIF # "$(OS)$(COM)"=="LINUXGCC"
.IF "$(OS)$(COM)"=="SOLARISC52"
LDFLAGS:=-Wl,-R'$$$$ORIGIN:$$$$ORIGIN/../ure-link/lib'
diff --git a/remotebridges/prj/d.lst b/remotebridges/prj/d.lst
index 04b8bf4f7a61..b304680e2d6e 100644
--- a/remotebridges/prj/d.lst
+++ b/remotebridges/prj/d.lst
@@ -15,3 +15,6 @@
..\%__SRC%\lib\dynamicloader.uno.so %_DEST%\lib%_EXT%\dynamicloader.uno.so
..\%__SRC%\lib\uuresolver.uno.so %_DEST%\lib%_EXT%\uuresolver.uno.so
..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*
+..\%__SRC%\misc\bridgefac.component %_DEST%\xml%_EXT%\bridgefac.component
+..\%__SRC%\misc\remotebridge.component %_DEST%\xml%_EXT%\remotebridge.component
+..\%__SRC%\misc\uuresolver.component %_DEST%\xml%_EXT%\uuresolver.component
diff --git a/remotebridges/source/bridge/makefile.mk b/remotebridges/source/bridge/makefile.mk
index 1b712bef1913..2a5ea130d744 100644
--- a/remotebridges/source/bridge/makefile.mk
+++ b/remotebridges/source/bridge/makefile.mk
@@ -62,3 +62,11 @@ DEF1NAME= $(SHL1TARGET)
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/remotebridge.component
+
+$(MISC)/remotebridge.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt remotebridge.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_URE_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt remotebridge.component
diff --git a/remotebridges/source/bridge/remote_bridge.cxx b/remotebridges/source/bridge/remote_bridge.cxx
index 8a849e7e4423..5f2c9ce3bc0e 100644
--- a/remotebridges/source/bridge/remote_bridge.cxx
+++ b/remotebridges/source/bridge/remote_bridge.cxx
@@ -457,12 +457,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- return component_writeInfoHelper( pServiceManager, pRegistryKey, g_entries );
-}
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/remotebridges/source/bridge/remotebridge.component b/remotebridges/source/bridge/remotebridge.component
new file mode 100644
index 000000000000..bbc6bede1360
--- /dev/null
+++ b/remotebridges/source/bridge/remotebridge.component
@@ -0,0 +1,36 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.remotebridges.Bridge.various">
+ <service name="com.sun.star.bridge.Bridge"/>
+ <service name="com.sun.star.bridge.IiopBridge"/>
+ <service name="com.sun.star.bridge.UrpBridge"/>
+ </implementation>
+</component>
diff --git a/remotebridges/source/dynamicloader/dynamicloader.cxx b/remotebridges/source/dynamicloader/dynamicloader.cxx
index 96a0fc7c2a9c..d6c46531346e 100644
--- a/remotebridges/source/dynamicloader/dynamicloader.cxx
+++ b/remotebridges/source/dynamicloader/dynamicloader.cxx
@@ -381,34 +381,6 @@ extern "C" {
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
- sal_Bool SAL_CALL component_writeInfo(XMultiServiceFactory *, XRegistryKey * pRegistryKey) {
- sal_Bool bRes = sal_False;
-
- if (pRegistryKey) {
- try {
- OUString x = OUString::createFromAscii("/");
- x += ::dynamic_loader::DynamicLoader::implname;
- x += OUString::createFromAscii("/UNO/SERVICES");
-
-
- Reference<XRegistryKey> xNewKey(pRegistryKey->createKey(x));
-
- const Sequence<OUString> rSNL = ::dynamic_loader::DynamicLoader::getSupportedServiceNames_Static();
- const OUString * pArray = rSNL.getConstArray();
- for (sal_Int32 nPos = rSNL.getLength(); nPos--;)
- xNewKey->createKey(pArray[nPos]);
-
-
- bRes = sal_True;
- }
- catch (InvalidRegistryException &) {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
-
- return bRes;
- }
-
void * SAL_CALL component_getFactory(const sal_Char * pImplName, XMultiServiceFactory * pServiceManager, XRegistryKey *) {
void * pRet = 0;
diff --git a/remotebridges/source/factory/bridgefac.component b/remotebridges/source/factory/bridgefac.component
new file mode 100644
index 000000000000..e20bc34250ca
--- /dev/null
+++ b/remotebridges/source/factory/bridgefac.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.remotebridges.BridgeFactory">
+ <service name="com.sun.star.bridge.BridgeFactory"/>
+ </implementation>
+</component>
diff --git a/remotebridges/source/factory/bridgefactory.cxx b/remotebridges/source/factory/bridgefactory.cxx
index 71ab9630033c..c5bfd9a46d79 100644
--- a/remotebridges/source/factory/bridgefactory.cxx
+++ b/remotebridges/source/factory/bridgefactory.cxx
@@ -481,12 +481,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- return component_writeInfoHelper( pServiceManager, pRegistryKey, g_entries );
-}
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/remotebridges/source/factory/makefile.mk b/remotebridges/source/factory/makefile.mk
index 7cd3875bcfb3..b47207077fff 100644
--- a/remotebridges/source/factory/makefile.mk
+++ b/remotebridges/source/factory/makefile.mk
@@ -64,3 +64,10 @@ DEF1NAME= $(SHL1TARGET)
.INCLUDE : target.mk
+ALLTAR : $(MISC)/bridgefac.component
+
+$(MISC)/bridgefac.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ bridgefac.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_URE_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt bridgefac.component
diff --git a/remotebridges/source/unourl_resolver/makefile.mk b/remotebridges/source/unourl_resolver/makefile.mk
index a3e4af7f0d91..edf5aa72c128 100644
--- a/remotebridges/source/unourl_resolver/makefile.mk
+++ b/remotebridges/source/unourl_resolver/makefile.mk
@@ -62,3 +62,11 @@ DEF1NAME= $(SHL1TARGET)
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/uuresolver.component
+
+$(MISC)/uuresolver.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ uuresolver.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_URE_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt uuresolver.component
diff --git a/remotebridges/source/unourl_resolver/unourl_resolver.cxx b/remotebridges/source/unourl_resolver/unourl_resolver.cxx
index 0abf7f80f8a1..33077795bf4d 100644
--- a/remotebridges/source/unourl_resolver/unourl_resolver.cxx
+++ b/remotebridges/source/unourl_resolver/unourl_resolver.cxx
@@ -239,12 +239,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- return component_writeInfoHelper( pServiceManager, pRegistryKey, g_entries );
-}
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/remotebridges/source/unourl_resolver/uuresolver.component b/remotebridges/source/unourl_resolver/uuresolver.component
new file mode 100644
index 000000000000..f9dcd71d8956
--- /dev/null
+++ b/remotebridges/source/unourl_resolver/uuresolver.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.bridge.UnoUrlResolver">
+ <service name="com.sun.star.bridge.UnoUrlResolver"/>
+ </implementation>
+</component>
diff --git a/reportdesign/prj/d.lst b/reportdesign/prj/d.lst
index b531c0eed8f0..d7cc5fad6396 100644
--- a/reportdesign/prj/d.lst
+++ b/reportdesign/prj/d.lst
@@ -19,3 +19,6 @@ dos: sh -c "if test %OS% = MACOSX; then create-bundle %_DEST%\lib%_EXT%\*.dylib;
..\uiconfig\dbreport\statusbar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\dbreport\statusbar\*.xml
..\uiconfig\dbreport\toolbar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\dbreport\toolbar\*.xml
+..\%__SRC%\misc\rpt.component %_DEST%\xml%_EXT%\rpt.component
+..\%__SRC%\misc\rptui.component %_DEST%\xml%_EXT%\rptui.component
+..\%__SRC%\misc\rptxml.component %_DEST%\xml%_EXT%\rptxml.component
diff --git a/reportdesign/source/core/api/services.cxx b/reportdesign/source/core/api/services.cxx
index c8251800afad..7598bc5d1ace 100644
--- a/reportdesign/source/core/api/services.cxx
+++ b/reportdesign/source/core/api/services.cxx
@@ -90,10 +90,4 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
*envTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void * serviceManager, void * registryKey)
-{
- return cppu::component_writeInfoHelper(
- serviceManager, registryKey, entries);
-}
} // extern "C"
diff --git a/reportdesign/source/filter/xml/xmlservices.cxx b/reportdesign/source/filter/xml/xmlservices.cxx
index bebf5f69a05b..3d7a36c3ffaf 100644
--- a/reportdesign/source/filter/xml/xmlservices.cxx
+++ b/reportdesign/source/filter/xml/xmlservices.cxx
@@ -92,10 +92,3 @@ extern "C" void SAL_CALL component_getImplementationEnvironment(
{
*envTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-
-extern "C" sal_Bool SAL_CALL component_writeInfo(
- void * serviceManager, void * registryKey)
-{
- return cppu::component_writeInfoHelper(
- serviceManager, registryKey, entries);
-}
diff --git a/reportdesign/source/ui/misc/rptuiservices.cxx b/reportdesign/source/ui/misc/rptuiservices.cxx
index efa58dc3ebae..312abfbddd5f 100644
--- a/reportdesign/source/ui/misc/rptuiservices.cxx
+++ b/reportdesign/source/ui/misc/rptuiservices.cxx
@@ -80,10 +80,3 @@ extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnviron
{
*envTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void * serviceManager, void * registryKey)
-{
- return cppu::component_writeInfoHelper(
- serviceManager, registryKey, entries);
-}
diff --git a/reportdesign/util/makefile.mk b/reportdesign/util/makefile.mk
index 32fe4eb2a5d6..4f09018437e3 100644
--- a/reportdesign/util/makefile.mk
+++ b/reportdesign/util/makefile.mk
@@ -231,3 +231,23 @@ DEF3NAME=$(SHL3TARGET)
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/rpt.component $(MISC)/rptui.component $(MISC)/rptxml.component
+
+$(MISC)/rpt.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ rpt.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt rpt.component
+
+$(MISC)/rptui.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ rptui.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL2TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt rptui.component
+
+$(MISC)/rptxml.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ rptxml.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL3TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt rptxml.component
diff --git a/reportdesign/util/rpt.component b/reportdesign/util/rpt.component
new file mode 100644
index 000000000000..ef5b2cc4c78d
--- /dev/null
+++ b/reportdesign/util/rpt.component
@@ -0,0 +1,58 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.report.OFixedLine">
+ <service name="com.sun.star.report.FixedLine"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.report.OFixedText">
+ <service name="com.sun.star.report.FixedText"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.report.OFormatCondition">
+ <service name="com.sun.star.report.FormatCondition"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.report.OFormattedField">
+ <service name="com.sun.star.report.FormattedField"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.report.OFunction">
+ <service name="com.sun.star.report.Function"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.report.OImageControl">
+ <service name="com.sun.star.report.ImageControl"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.report.OReportDefinition">
+ <service name="com.sun.star.report.ReportDefinition"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.report.OReportEngineJFree">
+ <service name="com.sun.star.report.ReportEngine"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.report.Shape">
+ <service name="com.sun.star.report.Shape"/>
+ </implementation>
+</component>
diff --git a/reportdesign/util/rptui.component b/reportdesign/util/rptui.component
new file mode 100644
index 000000000000..593f06d0b582
--- /dev/null
+++ b/reportdesign/util/rptui.component
@@ -0,0 +1,52 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.report.DataProviderHandler">
+ <service name="com.sun.star.report.inspection.DataProviderHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.report.DefaultComponentInspectorModel">
+ <service name="com.sun.star.report.inspection.DefaultComponentInspectorModel"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.report.GeometryHandler">
+ <service name="com.sun.star.report.inspection.GeometryHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.report.ReportComponentHandler">
+ <service name="com.sun.star.report.inspection.ReportComponentHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.report.comp.ReportDesign">
+ <service name="com.sun.star.sdb.ReportDesign"/>
+ </implementation>
+ <implementation name="com.sun.star.report.comp.ReportToolboxController">
+ <service name="com.sun.star.report.ReportToolboxController"/>
+ </implementation>
+ <implementation name="com.sun.star.report.comp.StatusbarController">
+ <service name="com.sun.star.frame.StatusbarController"/>
+ </implementation>
+</component>
diff --git a/reportdesign/util/rptxml.component b/reportdesign/util/rptxml.component
new file mode 100644
index 000000000000..8a0021ecdf9a
--- /dev/null
+++ b/reportdesign/util/rptxml.component
@@ -0,0 +1,73 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.Report.XMLOasisContentImporter">
+ <service name="com.sun.star.comp.document.ImportFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Report.XMLOasisMetaImporter">
+ <service name="com.sun.star.comp.document.ImportFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Report.XMLOasisSettingsImporter">
+ <service name="com.sun.star.comp.document.ImportFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Report.XMLOasisStylesImporter">
+ <service name="com.sun.star.comp.document.ImportFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.report.ExportDocumentHandler">
+ <service name="com.sun.star.report.ExportDocumentHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.report.ExportFilter">
+ <service name="com.sun.star.document.ExportFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.report.ImportDocumentHandler">
+ <service name="com.sun.star.report.ImportDocumentHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.report.OReportFilter">
+ <service name="com.sun.star.comp.document.ImportFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.report.ORptTypeDetection">
+ <service name="com.sun.star.document.ExtendedTypeDetection"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.report.XMLContentExporter">
+ <service name="com.sun.star.document.ExportFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.report.XMLFullExporter">
+ <service name="com.sun.star.document.ExportFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.report.XMLMetaExporter">
+ <service name="com.sun.star.document.ExportFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.report.XMLSettingsExporter">
+ <service name="com.sun.star.document.ExportFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.report.XMLStylesExporter">
+ <service name="com.sun.star.document.ExportFilter"/>
+ </implementation>
+</component>
diff --git a/sal/prj/build.lst b/sal/prj/build.lst
index 638252ad4ee8..c96c3977f725 100644
--- a/sal/prj/build.lst
+++ b/sal/prj/build.lst
@@ -18,4 +18,5 @@ sa sal\cppunittester nmake - all sa_cppunittester sa_cpprt.u sa_util NULL
sa sal\qa\ByteSequence nmake - all sa_qa_ByteSequence sa_cppunittester sa_util NULL
sa sal\qa\OStringBuffer nmake - all sa_qa_OStringBuffer sa_cppunittester sa_util NULL
sa sal\qa\osl\mutex nmake - all sa_qa_osl_mutex sa_cppunittester sa_util NULL
+sa sal\qa\osl\pipe nmake - all sa_qa_osl_pipe sa_cppunittester sa_util NULL
sa sal\qa\osl\profile nmake - all sa_qa_osl_profile sa_cppunittester sa_util NULL
diff --git a/sal/qa/osl/pipe/makefile.mk b/sal/qa/osl/pipe/makefile.mk
index 6350cdba0233..85452eac8655 100644
--- a/sal/qa/osl/pipe/makefile.mk
+++ b/sal/qa/osl/pipe/makefile.mk
@@ -51,7 +51,7 @@ SHL1OBJS= \
$(SLO)$/osl_Pipe.obj
SHL1TARGET= osl_Pipe
-SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB)
+SHL1STDLIBS= $(SALLIB) $(CPPUNITLIB) $(TESTLIB)
SHL1IMPLIB= i$(SHL1TARGET)
# SHL1DEF= $(MISC)$/$(SHL1TARGET).def
diff --git a/sal/qa/osl/pipe/osl_Pipe.cxx b/sal/qa/osl/pipe/osl_Pipe.cxx
index 6371ad3b5250..ffb9f314a5bf 100644
--- a/sal/qa/osl/pipe/osl_Pipe.cxx
+++ b/sal/qa/osl/pipe/osl_Pipe.cxx
@@ -36,6 +36,7 @@
#include "cppunit/TestFixture.h"
#include "cppunit/extensions/HelperMacros.h"
#include "cppunit/plugin/TestPlugIn.h"
+#include "test/uniquepipename.hxx"
#include <sal/types.h>
#include <rtl/ustring.hxx>
@@ -186,8 +187,8 @@ namespace osl_Pipe
void ctors_name_option( )
{
/// create a named pipe.
- ::osl::Pipe aPipe( aTestPipeName, osl_Pipe_CREATE );
- ::osl::Pipe aAssignPipe( aTestPipeName, osl_Pipe_OPEN );
+ ::osl::Pipe aPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
+ ::osl::Pipe aAssignPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_OPEN );
bRes = aPipe.is( ) && aAssignPipe.is( );
@@ -199,7 +200,7 @@ namespace osl_Pipe
{
/// create a security pipe.
const ::osl::Security rSecurity;
- ::osl::Pipe aSecurityPipe( aTestPipeName, osl_Pipe_CREATE, rSecurity );
+ ::osl::Pipe aSecurityPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE, rSecurity );
bRes = aSecurityPipe.is( );
@@ -210,7 +211,7 @@ namespace osl_Pipe
void ctors_copy( )
{
/// create a pipe.
- ::osl::Pipe aPipe( aTestPipeName, osl_Pipe_CREATE );
+ ::osl::Pipe aPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
/// create a pipe using copy constructor.
::osl::Pipe aCopyPipe( aPipe );
@@ -233,7 +234,7 @@ namespace osl_Pipe
void ctors_no_acquire( )
{
/// create a pipe.
- ::osl::Pipe aPipe( aTestPipeName, osl_Pipe_CREATE );
+ ::osl::Pipe aPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
/// constructs a pipe reference without acquiring the handle.
::osl::Pipe aNoAcquirePipe( aPipe.getHandle( ), SAL_NO_ACQUIRE );
@@ -249,7 +250,7 @@ namespace osl_Pipe
void ctors_acquire( )
{
/// create a base pipe.
- ::osl::Pipe aPipe( aTestPipeName, osl_Pipe_CREATE );
+ ::osl::Pipe aPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
/// constructs two pipes without acquiring the handle on the base pipe.
::osl::Pipe aAcquirePipe( aPipe.getHandle( ) );
::osl::Pipe aAcquirePipe1( NULL );
@@ -287,14 +288,14 @@ namespace osl_Pipe
void is_002( )
{
- ::osl::Pipe aPipe( aTestPipeName, osl_Pipe_CREATE );
+ ::osl::Pipe aPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
CPPUNIT_ASSERT_MESSAGE( "#test comment#: test is(), a normal pipe creation.", sal_True == aPipe.is( ) );
}
void is_003( )
{
- ::osl::Pipe aPipe( aTestPipeName, osl_Pipe_CREATE );
+ ::osl::Pipe aPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
aPipe.clear( );
CPPUNIT_ASSERT_MESSAGE( "#test comment#: test is(), an invalid case.", sal_False == aPipe.is( ) );
@@ -337,8 +338,8 @@ namespace osl_Pipe
{
const Security rSec;
::osl::Pipe aPipe;
- bRes = aPipe.create( aTestPipeName, osl_Pipe_CREATE, rSec );
- bRes1 = aPipe.create( aTestPipeName, osl_Pipe_CREATE, rSec );
+ bRes = aPipe.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE, rSec );
+ bRes1 = aPipe.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE, rSec );
aPipe.clear( );
CPPUNIT_ASSERT_MESSAGE( "#test comment#: test creation.",
@@ -349,8 +350,8 @@ namespace osl_Pipe
{
const Security rSec;
::osl::Pipe aPipe, aPipe1;
- bRes = aPipe.create( aTestPipeName, osl_Pipe_CREATE, rSec );
- bRes1 = aPipe1.create( aTestPipeName, osl_Pipe_OPEN, rSec );
+ bRes = aPipe.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE, rSec );
+ bRes1 = aPipe1.create( test::uniquePipeName(aTestPipeName), osl_Pipe_OPEN, rSec );
aPipe.clear( );
CPPUNIT_ASSERT_MESSAGE( "#test comment#: test creation and open.",
@@ -360,8 +361,8 @@ namespace osl_Pipe
void create_named_001( )
{
::osl::Pipe aPipe;
- bRes = aPipe.create( aTestPipeName, osl_Pipe_CREATE );
- bRes1 = aPipe.create( aTestPipeName, osl_Pipe_CREATE );
+ bRes = aPipe.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
+ bRes1 = aPipe.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
aPipe.clear( );
CPPUNIT_ASSERT_MESSAGE( "#test comment#: test creation.",
@@ -371,8 +372,8 @@ namespace osl_Pipe
void create_named_002( )
{
::osl::Pipe aPipe, aPipe1;
- bRes = aPipe.create( aTestPipeName, osl_Pipe_CREATE );
- bRes1 = aPipe1.create( aTestPipeName, osl_Pipe_OPEN );
+ bRes = aPipe.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
+ bRes1 = aPipe1.create( test::uniquePipeName(aTestPipeName), osl_Pipe_OPEN );
aPipe.clear( );
CPPUNIT_ASSERT_MESSAGE( "#test comment#: test creation and open.",
@@ -382,7 +383,7 @@ namespace osl_Pipe
void create_named_003( )
{
::osl::Pipe aPipe;
- bRes = aPipe.create( aTestPipeName );
+ bRes = aPipe.create( test::uniquePipeName(aTestPipeName) );
aPipe.clear( );
CPPUNIT_ASSERT_MESSAGE( "#test comment#: test default option is open.",
@@ -410,7 +411,7 @@ namespace osl_Pipe
void clear_001( )
{
::osl::Pipe aPipe;
- aPipe.create( aTestPipeName, osl_Pipe_CREATE );
+ aPipe.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
aPipe.clear( );
bRes = aPipe.is( );
@@ -436,7 +437,7 @@ namespace osl_Pipe
void assign_ref( )
{
::osl::Pipe aPipe, aPipe1;
- aPipe.create( aTestPipeName, osl_Pipe_CREATE );
+ aPipe.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
aPipe1 = aPipe;
bRes = aPipe1.is( );
bRes1 = aPipe == aPipe1;
@@ -450,7 +451,7 @@ namespace osl_Pipe
void assign_handle( )
{
::osl::Pipe aPipe, aPipe1;
- aPipe.create( aTestPipeName, osl_Pipe_CREATE );
+ aPipe.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
aPipe1 = aPipe.getHandle( );
bRes = aPipe1.is( );
bRes1 = aPipe == aPipe1;
@@ -500,7 +501,7 @@ namespace osl_Pipe
void isEqual_001( )
{
::osl::Pipe aPipe;
- aPipe.create( aTestPipeName, osl_Pipe_CREATE );
+ aPipe.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
bRes = aPipe == aPipe;
aPipe.close( );
@@ -511,10 +512,10 @@ namespace osl_Pipe
void isEqual_002( )
{
::osl::Pipe aPipe, aPipe1, aPipe2;
- aPipe.create( aTestPipeName, osl_Pipe_CREATE );
+ aPipe.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
aPipe1 = aPipe;
- aPipe2.create( aTestPipeName, osl_Pipe_CREATE );
+ aPipe2.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
bRes = aPipe == aPipe1;
bRes1 = aPipe == aPipe2;
@@ -543,7 +544,7 @@ namespace osl_Pipe
void close_001( )
{
- ::osl::Pipe aPipe( aTestPipe1, osl_Pipe_CREATE );
+ ::osl::Pipe aPipe( test::uniquePipeName(aTestPipe1), osl_Pipe_CREATE );
aPipe.close( );
bRes = aPipe.is( );
@@ -556,7 +557,7 @@ namespace osl_Pipe
void close_002( )
{
- ::osl::StreamPipe aPipe( aTestPipe1, osl_Pipe_CREATE );
+ ::osl::StreamPipe aPipe( test::uniquePipeName(aTestPipe1), osl_Pipe_CREATE );
aPipe.close( );
int nRet = aPipe.send( m_pTestString1.getStr(), 3 );
@@ -624,7 +625,7 @@ namespace osl_Pipe
void getError_001( )
{
- ::osl::Pipe aPipe( aTestPipeName, osl_Pipe_OPEN );
+ ::osl::Pipe aPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_OPEN );
oslPipeError nError = aPipe.getError( );
printPipeError( aPipe );
aPipe.clear( );
@@ -635,8 +636,8 @@ namespace osl_Pipe
void getError_002( )
{
- ::osl::Pipe aPipe( aTestPipeName, osl_Pipe_CREATE );
- ::osl::Pipe aPipe1( aTestPipeName, osl_Pipe_CREATE );
+ ::osl::Pipe aPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
+ ::osl::Pipe aPipe1( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
oslPipeError nError = aPipe.getError( );
printPipeError( aPipe );
aPipe.clear( );
@@ -663,7 +664,7 @@ namespace osl_Pipe
void getHandle_001( )
{
- ::osl::Pipe aPipe( aTestPipeName, osl_Pipe_OPEN );
+ ::osl::Pipe aPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_OPEN );
bRes = aPipe == aPipe.getHandle( );
aPipe.clear( );
@@ -673,7 +674,7 @@ namespace osl_Pipe
void getHandle_002( )
{
- ::osl::Pipe aPipe( aTestPipeName, osl_Pipe_CREATE );
+ ::osl::Pipe aPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
::osl::Pipe aPipe1( aPipe.getHandle( ) );
bRes = aPipe == aPipe1;
aPipe.clear( );
@@ -726,7 +727,7 @@ namespace osl_StreamPipe
void ctors_none( )
{
// create a pipe.
- ::osl::StreamPipe aStreamPipe( aTestPipeName, osl_Pipe_CREATE );
+ ::osl::StreamPipe aStreamPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
// create an unattached pipe.
::osl::StreamPipe aStreamPipe1;
bRes = aStreamPipe1.is( );
@@ -744,7 +745,7 @@ namespace osl_StreamPipe
void ctors_handle( )
{
// create a pipe.
- ::osl::StreamPipe aStreamPipe( aTestPipeName, osl_Pipe_CREATE );
+ ::osl::StreamPipe aStreamPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
// create a pipe with last handle.
::osl::StreamPipe aStreamPipe1( aStreamPipe.getHandle( ) );
bRes = aStreamPipe1.is( ) && aStreamPipe == aStreamPipe1;
@@ -758,7 +759,7 @@ namespace osl_StreamPipe
void ctors_copy( )
{
// create a pipe.
- ::osl::StreamPipe aStreamPipe( aTestPipeName, osl_Pipe_CREATE );
+ ::osl::StreamPipe aStreamPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
// create an unattached pipe.
::osl::StreamPipe aStreamPipe1( aStreamPipe );
bRes = aStreamPipe1.is( ) && aStreamPipe == aStreamPipe1;
@@ -772,9 +773,9 @@ namespace osl_StreamPipe
void ctors_name_option( )
{
// create a pipe.
- ::osl::StreamPipe aStreamPipe( aTestPipeName, osl_Pipe_CREATE );
+ ::osl::StreamPipe aStreamPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
// create an unattached pipe.
- ::osl::StreamPipe aStreamPipe1( aTestPipeName, osl_Pipe_OPEN );
+ ::osl::StreamPipe aStreamPipe1( test::uniquePipeName(aTestPipeName), osl_Pipe_OPEN );
bRes = aStreamPipe1.is( ) && aStreamPipe.is( );
aStreamPipe.clear( );
aStreamPipe1.clear( );
@@ -787,7 +788,7 @@ namespace osl_StreamPipe
{
/// create a security pipe.
const ::osl::Security rSecurity;
- ::osl::StreamPipe aSecurityPipe( aTestPipeName, osl_Pipe_CREATE, rSecurity );
+ ::osl::StreamPipe aSecurityPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE, rSecurity );
bRes = aSecurityPipe.is( );
aSecurityPipe.clear( );
@@ -809,7 +810,7 @@ namespace osl_StreamPipe
void ctors_no_acquire( )
{
// create a pipe.
- ::osl::StreamPipe aPipe( aTestPipeName, osl_Pipe_CREATE );
+ ::osl::StreamPipe aPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
// constructs a pipe reference without acquiring the handle.
::osl::StreamPipe aNoAcquirePipe( aPipe.getHandle( ), SAL_NO_ACQUIRE );
@@ -846,7 +847,7 @@ namespace osl_StreamPipe
void assign_ref( )
{
::osl::StreamPipe aPipe, aPipe1;
- aPipe.create( aTestPipeName, osl_Pipe_CREATE );
+ aPipe.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
aPipe1 = aPipe;
bRes = aPipe1.is( );
bRes1 = aPipe == aPipe1;
@@ -859,7 +860,7 @@ namespace osl_StreamPipe
void assign_handle( )
{
- ::osl::StreamPipe * pPipe = new ::osl::StreamPipe( aTestPipeName, osl_Pipe_CREATE );
+ ::osl::StreamPipe * pPipe = new ::osl::StreamPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
::osl::StreamPipe * pAssignPipe = new ::osl::StreamPipe;
*pAssignPipe = pPipe->getHandle( );
@@ -914,7 +915,7 @@ namespace osl_StreamPipe
sal_Int32 nChars = 0;
printf("open pipe\n");
- ::osl::StreamPipe aSenderPipe( aTestPipeName, osl_Pipe_OPEN ); // aTestPipeName is a string = "TestPipe"
+ ::osl::StreamPipe aSenderPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_OPEN ); // test::uniquePipeName(aTestPipeName) is a string = "TestPipe"
if ( aSenderPipe.is() == sal_False )
{
printf("pipe open failed! \n");
@@ -947,13 +948,13 @@ namespace osl_StreamPipe
{
public:
sal_Char buf[256];
- //::osl::StreamPipe aListenPipe; //( aTestPipeName, osl_Pipe_CREATE );
+ //::osl::StreamPipe aListenPipe; //( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
::osl::Pipe aListenPipe;
::osl::StreamPipe aConnectionPipe;
Pipe_DataSource_Thread( )
{
printf("create pipe\n");
- aListenPipe.create( aTestPipeName, osl_Pipe_CREATE );
+ aListenPipe.create( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
}
~Pipe_DataSource_Thread( )
{
@@ -964,7 +965,7 @@ namespace osl_StreamPipe
{
//create pipe.
sal_Int32 nChars;
- //::osl::StreamPipe aListenPipe( aTestPipeName, osl_Pipe_CREATE );
+ //::osl::StreamPipe aListenPipe( test::uniquePipeName(aTestPipeName), osl_Pipe_CREATE );
printf("listen\n");
if ( aListenPipe.is() == sal_False )
{
diff --git a/sax/prj/d.lst b/sax/prj/d.lst
index 87f01348163c..76177f554909 100644
--- a/sax/prj/d.lst
+++ b/sax/prj/d.lst
@@ -2,6 +2,9 @@
..\%__SRC%\lib\*.so %_DEST%\lib%_EXT%\*.so
..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
..\%__SRC%\lib\*.lib %_DEST%\lib%_EXT%\*.lib
+..\%__SRC%\misc\fastsax.component %_DEST%\xml%_EXT%\fastsax.component
+..\%__SRC%\misc\sax.component %_DEST%\xml%_EXT%\sax.component
+..\%__SRC%\misc\sax.inbuild.component %_DEST%\xml%_EXT%\sax.inbuild.component
mkdir: %_DEST%\inc%_EXT%\sax
mkdir: %_DEST%\inc%_EXT%\sax\tools
diff --git a/sax/source/expatwrap/makefile.mk b/sax/source/expatwrap/makefile.mk
index bcb73b0443ac..6e1348c0d403 100644
--- a/sax/source/expatwrap/makefile.mk
+++ b/sax/source/expatwrap/makefile.mk
@@ -72,5 +72,16 @@ DEF1NAME= $(SHL1TARGET)
.INCLUDE : target.mk
+ALLTAR : $(MISC)/sax.component $(MISC)/sax.inbuild.component
+$(MISC)/sax.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ sax.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt sax.component
+$(MISC)/sax.inbuild.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt sax.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_INBUILD_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt sax.component
diff --git a/sax/source/expatwrap/sax.component b/sax/source/expatwrap/sax.component
new file mode 100644
index 000000000000..5e6699d9dd33
--- /dev/null
+++ b/sax/source/expatwrap/sax.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.extensions.xml.sax.ParserExpat">
+ <service name="com.sun.star.xml.sax.Parser"/>
+ </implementation>
+ <implementation name="com.sun.star.extensions.xml.sax.Writer">
+ <service name="com.sun.star.xml.sax.Writer"/>
+ </implementation>
+</component>
diff --git a/sax/source/expatwrap/sax_expat.cxx b/sax/source/expatwrap/sax_expat.cxx
index 4ffebfa3590d..aaaac6bd564e 100644
--- a/sax/source/expatwrap/sax_expat.cxx
+++ b/sax/source/expatwrap/sax_expat.cxx
@@ -1034,37 +1034,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-
-sal_Bool SAL_CALL component_writeInfo(
- void * /*pServiceManager*/, void * pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- Reference< XRegistryKey > xKey(
- reinterpret_cast< XRegistryKey * >( pRegistryKey ) );
-
- Reference< XRegistryKey > xNewKey = xKey->createKey(
- OUString::createFromAscii( "/" IMPLEMENTATION_NAME "/UNO/SERVICES" ) );
- xNewKey->createKey( OUString::createFromAscii( SERVICE_NAME ) );
-
- xNewKey = xKey->createKey( OUString::createFromAscii("/") +
- SaxWriter_getImplementationName()+
- OUString::createFromAscii( "/UNO/SERVICES" ) );
- xNewKey->createKey( SaxWriter_getServiceName() );
-
- return sal_True;
- }
- catch (InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
-
-
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ )
{
diff --git a/sax/source/fastparser/facreg.cxx b/sax/source/fastparser/facreg.cxx
index 1916a9740f1a..98a55823271e 100644
--- a/sax/source/fastparser/facreg.cxx
+++ b/sax/source/fastparser/facreg.cxx
@@ -40,34 +40,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-
-sal_Bool SAL_CALL component_writeInfo(
- void * /*pServiceManager*/, void * pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- Reference< XRegistryKey > xKey( reinterpret_cast< XRegistryKey * >( pRegistryKey ) );
-
- Reference< XRegistryKey > xNewKey( xKey->createKey(
- OUString::createFromAscii( "/" PARSER_IMPLEMENTATION_NAME "/UNO/SERVICES" ) ) );
- xNewKey->createKey( OUString::createFromAscii( PARSER_SERVICE_NAME ) );
-
- Reference< XRegistryKey > xNewKey1( xKey->createKey(
- OUString::createFromAscii( "/" SERIALIZER_IMPLEMENTATION_NAME "/UNO/SERVICES" ) ) );
- xNewKey1->createKey( OUString::createFromAscii( SERIALIZER_SERVICE_NAME ) );
-
- return sal_True;
- }
- catch (InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
-
void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ )
{
void * pRet = 0;
diff --git a/sax/source/fastparser/fastsax.component b/sax/source/fastparser/fastsax.component
new file mode 100644
index 000000000000..a184a76d2d83
--- /dev/null
+++ b/sax/source/fastparser/fastsax.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.extensions.xml.sax.FastParser">
+ <service name="com.sun.star.xml.sax.FastParser"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.extensions.xml.sax.FastSerializer">
+ <service name="com.sun.star.xml.sax.FastSerializer"/>
+ </implementation>
+</component>
diff --git a/sax/source/fastparser/makefile.mk b/sax/source/fastparser/makefile.mk
index 7f70b7aee7bf..d8f9378c19b9 100644
--- a/sax/source/fastparser/makefile.mk
+++ b/sax/source/fastparser/makefile.mk
@@ -70,5 +70,10 @@ DEF1NAME= $(SHL1TARGET)
.INCLUDE : target.mk
+ALLTAR : $(MISC)/fastsax.component
-
+$(MISC)/fastsax.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ fastsax.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt fastsax.component
diff --git a/sc/prj/d.lst b/sc/prj/d.lst
index 6f4e95203bed..a0d4c1290bf9 100644
--- a/sc/prj/d.lst
+++ b/sc/prj/d.lst
@@ -32,3 +32,6 @@ mkdir: %_DEST%\xml%_EXT%\uiconfig\modules\scalc\statusbar
..\uiconfig\scalc\statusbar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\scalc\statusbar\*.xml
..\%__SRC%\bin\*-layout.zip %_DEST%\pck%_EXT%\*.*
+..\%__SRC%\misc\sc.component %_DEST%\xml%_EXT%\sc.component
+..\%__SRC%\misc\scd.component %_DEST%\xml%_EXT%\scd.component
+..\%__SRC%\misc\vbaobj.component %_DEST%\xml%_EXT%\vbaobj.component
diff --git a/sc/source/ui/unoobj/appluno.cxx b/sc/source/ui/unoobj/appluno.cxx
index 8b20d9849f47..437c220ba1c3 100644
--- a/sc/source/ui/unoobj/appluno.cxx
+++ b/sc/source/ui/unoobj/appluno.cxx
@@ -184,21 +184,6 @@ SC_SIMPLE_SERVICE_INFO( ScSpreadsheetSettings, "ScSpreadsheetSettings", SCSPREAD
//------------------------------------------------------------------------
-static void lcl_WriteInfo( registry::XRegistryKey* pRegistryKey,
- const rtl::OUString& rImplementationName,
- const uno::Sequence< rtl::OUString >& rServices )
- throw( registry::InvalidRegistryException )
-{
- rtl::OUString aImpl(rtl::OUString::createFromAscii( "/" ));
- aImpl += rImplementationName;
- aImpl += rtl::OUString::createFromAscii( "/UNO/SERVICES" );
- uno::Reference<registry::XRegistryKey> xNewKey(pRegistryKey->createKey(aImpl));
-
- const rtl::OUString* pArray = rServices.getConstArray();
- for( sal_Int32 i = 0; i < rServices.getLength(); i++ )
- xNewKey->createKey( pArray[i]);
-}
-
extern "C" {
SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
@@ -207,111 +192,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void * /* pServiceManager */, registry::XRegistryKey * pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- lcl_WriteInfo( pRegistryKey,
- ScSpreadsheetSettings::getImplementationName_Static(),
- ScSpreadsheetSettings::getSupportedServiceNames_Static() );
-
- lcl_WriteInfo( pRegistryKey,
- ScRecentFunctionsObj::getImplementationName_Static(),
- ScRecentFunctionsObj::getSupportedServiceNames_Static() );
-
- lcl_WriteInfo( pRegistryKey,
- ScFunctionListObj::getImplementationName_Static(),
- ScFunctionListObj::getSupportedServiceNames_Static() );
-
- lcl_WriteInfo( pRegistryKey,
- ScAutoFormatsObj::getImplementationName_Static(),
- ScAutoFormatsObj::getSupportedServiceNames_Static() );
-
- lcl_WriteInfo( pRegistryKey,
- ScFunctionAccess::getImplementationName_Static(),
- ScFunctionAccess::getSupportedServiceNames_Static() );
-
- lcl_WriteInfo( pRegistryKey,
- ScFilterOptionsObj::getImplementationName_Static(),
- ScFilterOptionsObj::getSupportedServiceNames_Static() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLImport_getImplementationName(),
- ScXMLImport_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLImport_Meta_getImplementationName(),
- ScXMLImport_Meta_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLImport_Styles_getImplementationName(),
- ScXMLImport_Styles_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLImport_Content_getImplementationName(),
- ScXMLImport_Content_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLImport_Settings_getImplementationName(),
- ScXMLImport_Settings_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLOOoExport_getImplementationName(),
- ScXMLOOoExport_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLOOoExport_Meta_getImplementationName(),
- ScXMLOOoExport_Meta_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLOOoExport_Styles_getImplementationName(),
- ScXMLOOoExport_Styles_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLOOoExport_Content_getImplementationName(),
- ScXMLOOoExport_Content_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLOOoExport_Settings_getImplementationName(),
- ScXMLOOoExport_Settings_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLOasisExport_getImplementationName(),
- ScXMLOasisExport_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLOasisExport_Meta_getImplementationName(),
- ScXMLOasisExport_Meta_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLOasisExport_Styles_getImplementationName(),
- ScXMLOasisExport_Styles_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLOasisExport_Content_getImplementationName(),
- ScXMLOasisExport_Content_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScXMLOasisExport_Settings_getImplementationName(),
- ScXMLOasisExport_Settings_getSupportedServiceNames() );
-
- lcl_WriteInfo( pRegistryKey,
- ScDocument_getImplementationName(),
- ScDocument_getSupportedServiceNames() );
-
- return sal_True;
- }
- catch (registry::InvalidRegistryException&)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
-
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * /* pRegistryKey */ )
{
diff --git a/sc/source/ui/unoobj/detreg.cxx b/sc/source/ui/unoobj/detreg.cxx
index 498d0fc886ec..e1e77e5deac9 100644
--- a/sc/source/ui/unoobj/detreg.cxx
+++ b/sc/source/ui/unoobj/detreg.cxx
@@ -49,27 +49,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
*ppEnvironmentTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
}
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( void* /* pServiceManager */ ,
- void* pRegistryKey )
-{
- Reference< ::registry::XRegistryKey >
- xKey( reinterpret_cast< ::registry::XRegistryKey* >( pRegistryKey ) ) ;
-
- OUString aDelimiter( RTL_CONSTASCII_USTRINGPARAM("/") );
- OUString aUnoServices( RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") );
-
- // Eigentliche Implementierung und ihre Services registrieren
- sal_Int32 i;
- Reference< ::registry::XRegistryKey > xNewKey(xKey->createKey( aDelimiter + ScFilterDetect::impl_getStaticImplementationName() +
- aUnoServices ));
-
- Sequence< OUString > aServices(ScFilterDetect::impl_getStaticSupportedServiceNames());
- for(i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- return sal_True;
-}
-
SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( const sal_Char* pImplementationName,
void* pServiceManager,
void* /* pRegistryKey */ )
diff --git a/sc/source/ui/vba/service.cxx b/sc/source/ui/vba/service.cxx
index 2b1f14cf154a..7e986338e7d1 100644
--- a/sc/source/ui/vba/service.cxx
+++ b/sc/source/ui/vba/service.cxx
@@ -84,41 +84,6 @@ extern "C"
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
- SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- lang::XMultiServiceFactory * pServiceManager, registry::XRegistryKey * pRegistryKey )
- {
- OSL_TRACE("In component_writeInfo");
-#if 0
- // Component registration
- if ( component_writeInfoHelper( pServiceManager, pRegistryKey,
- range::serviceDecl, workbook::serviceDecl, worksheet::serviceDecl, globals::serviceDecl, window::serviceDecl, hyperlink::serviceDecl, application::serviceDecl ) && component_writeInfoHelper( pServiceManager, pRegistryKey, vbaeventshelper::serviceDecl ) )
- {
- // Singleton registration
- try
- {
- registry::XRegistryKey * pKey =
- reinterpret_cast< registry::XRegistryKey * >(pRegistryKey);
-
- Reference< registry::XRegistryKey >xKey = pKey->createKey(
- rtl::OUString::createFromAscii( ("ooo.vba.Globals/UNO/SINGLETONS/ooo.vba.theGlobals") ) );
- xKey->setStringValue( ::rtl::OUString::createFromAscii(
- ("ooo.vba.Globals") ) );
- return sal_True;
- }
- catch( uno::Exception& /*e*/ )
- {
- //recomp & friends will detect false returned and fail
- }
- }
- return sal_False;
-#else
- // Component registration
- return component_writeInfoHelper( pServiceManager, pRegistryKey,
- range::serviceDecl, workbook::serviceDecl, worksheet::serviceDecl, globals::serviceDecl, window::serviceDecl, hyperlink::serviceDecl, application::serviceDecl ) && component_writeInfoHelper( pServiceManager, pRegistryKey, vbaeventshelper::serviceDecl, textframe::serviceDecl );
-#endif
-
- }
-
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
const sal_Char * pImplName, lang::XMultiServiceFactory * pServiceManager,
registry::XRegistryKey * pRegistryKey )
diff --git a/sc/util/makefile.mk b/sc/util/makefile.mk
index 980d271ae7c0..09578f6ef6a8 100644
--- a/sc/util/makefile.mk
+++ b/sc/util/makefile.mk
@@ -342,3 +342,23 @@ ALLTAR: $(MISC)$/linkinc.ls $(COMP)
build_extn : $(SHL9TARGETN)
$(PERL) createExtPackage.pl $(COMMONBIN)$/vbaapi.oxt $(SOLARBINDIR)$/oovbaapi.rdb $(LIBCOMPNAME)
+
+ALLTAR : $(MISC)/sc.component $(MISC)/scd.component $(MISC)/vbaobj.component
+
+$(MISC)/sc.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ sc.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt sc.component
+
+$(MISC)/scd.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ scd.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL2TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt scd.component
+
+$(MISC)/vbaobj.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ vbaobj.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL9TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt vbaobj.component
diff --git a/sc/util/sc.component b/sc/util/sc.component
new file mode 100644
index 000000000000..abd05aa579f2
--- /dev/null
+++ b/sc/util/sc.component
@@ -0,0 +1,97 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.Calc.FilterOptionsDialog">
+ <service name="com.sun.star.ui.dialogs.FilterOptionsDialog"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.SpreadsheetDocument">
+ <service name="com.sun.star.sheet.SpreadsheetDocument"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLContentExporter">
+ <service name="com.sun.star.comp.Calc.XMLContentExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLExporter">
+ <service name="com.sun.star.comp.Calc.XMLExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLMetaExporter">
+ <service name="com.sun.star.comp.Calc.XMLMetaExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLOasisContentExporter">
+ <service name="com.sun.star.comp.Calc.XMLOasisContentExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLOasisContentImporter">
+ <service name="com.sun.star.comp.Calc.XMLOasisContentImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLOasisExporter">
+ <service name="com.sun.star.comp.Calc.XMLOasisExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLOasisImporter">
+ <service name="com.sun.star.comp.Calc.XMLOasisImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLOasisMetaExporter">
+ <service name="com.sun.star.comp.Calc.XMLOasisMetaExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLOasisMetaImporter">
+ <service name="com.sun.star.comp.Calc.XMLOasisMetaImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLOasisSettingsExporter">
+ <service name="com.sun.star.comp.Calc.XMLOasisSettingsExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLOasisSettingsImporter">
+ <service name="com.sun.star.comp.Calc.XMLOasisSettingsImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLOasisStylesExporter">
+ <service name="com.sun.star.comp.Calc.XMLOasisStylesExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLOasisStylesImporter">
+ <service name="com.sun.star.comp.Calc.XMLOasisStylesImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLSettingsExporter">
+ <service name="com.sun.star.comp.Calc.XMLSettingsExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLStylesExporter">
+ <service name="com.sun.star.comp.Calc.XMLStylesExporter"/>
+ </implementation>
+ <implementation name="stardiv.StarCalc.ScAutoFormatsObj">
+ <service name="com.sun.star.sheet.TableAutoFormats"/>
+ </implementation>
+ <implementation name="stardiv.StarCalc.ScFunctionAccess">
+ <service name="com.sun.star.sheet.FunctionAccess"/>
+ </implementation>
+ <implementation name="stardiv.StarCalc.ScFunctionListObj">
+ <service name="com.sun.star.sheet.FunctionDescriptions"/>
+ </implementation>
+ <implementation name="stardiv.StarCalc.ScRecentFunctionsObj">
+ <service name="com.sun.star.sheet.RecentFunctions"/>
+ </implementation>
+ <implementation name="stardiv.StarCalc.ScSpreadsheetSettings">
+ <service name="com.sun.star.sheet.GlobalSheetSettings"/>
+ </implementation>
+</component>
diff --git a/sc/util/scd.component b/sc/util/scd.component
new file mode 100644
index 000000000000..df2e2f77e25f
--- /dev/null
+++ b/sc/util/scd.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.calc.FormatDetector">
+ <service name="com.sun.star.frame.ExtendedTypeDetection"/>
+ </implementation>
+</component>
diff --git a/sc/util/vbaobj.component b/sc/util/vbaobj.component
new file mode 100644
index 000000000000..52ad691822d0
--- /dev/null
+++ b/sc/util/vbaobj.component
@@ -0,0 +1,58 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="ScVbaApplication">
+ <service name="ooo.vba.excel.Application"/>
+ </implementation>
+ <implementation name="ScVbaEventsHelper">
+ <service name="com.sun.star.script.vba.VBASpreadsheetEventProcessor"/>
+ </implementation>
+ <implementation name="ScVbaGlobals">
+ <service name="ooo.vba.excel.Globals"/>
+ </implementation>
+ <implementation name="ScVbaHyperlink">
+ <service name="ooo.vba.excel.Hyperlink"/>
+ </implementation>
+ <implementation name="ScVbaTextFrame">
+ <service name="ooo.vba.excel.TextFrame"/>
+ </implementation>
+ <implementation name="ScVbaWindow">
+ <service name="ooo.vba.excel.Window"/>
+ </implementation>
+ <implementation name="ScVbaWorkbook">
+ <service name="ooo.vba.excel.Workbook"/>
+ </implementation>
+ <implementation name="ScVbaWorksheet">
+ <service name="ooo.vba.excel.Worksheet"/>
+ </implementation>
+ <implementation name="SvVbaRange">
+ <service name="ooo.vba.excel.Range"/>
+ </implementation>
+</component>
diff --git a/scaddins/prj/d.lst b/scaddins/prj/d.lst
index f31644cf5e8c..c1463ef39cbc 100644
--- a/scaddins/prj/d.lst
+++ b/scaddins/prj/d.lst
@@ -7,3 +7,5 @@ mkdir: %COMMON_DEST%\bin%_EXT%\hid
..\%__SRC%\lib\*.sl %_DEST%\lib%_EXT%\*.sl
..\%__SRC%\bin\*.bin %_DEST%\bin%_EXT%\*.bin
..\%__SRC%\bin\*.res %_DEST%\bin%_EXT%\*.res
+..\%__SRC%\misc\analysis.component %_DEST%\xml%_EXT%\analysis.component
+..\%__SRC%\misc\date.component %_DEST%\xml%_EXT%\date.component
diff --git a/scaddins/source/analysis/analysis.component b/scaddins/source/analysis/analysis.component
new file mode 100644
index 000000000000..af4d13fa43b9
--- /dev/null
+++ b/scaddins/source/analysis/analysis.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.sheet.addin.AnalysisImpl">
+ <service name="com.sun.star.sheet.AddIn"/>
+ <service name="com.sun.star.sheet.addin.Analysis"/>
+ </implementation>
+</component>
diff --git a/scaddins/source/analysis/analysis.cxx b/scaddins/source/analysis/analysis.cxx
index 0d206d0286dd..2302bd9432c6 100644
--- a/scaddins/source/analysis/analysis.cxx
+++ b/scaddins/source/analysis/analysis.cxx
@@ -59,37 +59,6 @@ void SAL_CALL component_getImplementationEnvironment( const sal_Char** ppEnvType
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-
-sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, registry::XRegistryKey* pRegistryKey )
-{
- if( pRegistryKey )
- {
- try
- {
- STRING aImpl = STRFROMASCII( "/" );
- aImpl += AnalysisAddIn::getImplementationName_Static();
- aImpl += STRFROMASCII( "/UNO/SERVICES" );
-
- REF( registry::XRegistryKey ) xNewKey(
- reinterpret_cast< registry::XRegistryKey* >( pRegistryKey )->createKey( aImpl ) );
-
- SEQ( STRING ) aSequ = AnalysisAddIn::getSupportedServiceNames_Static();
- const STRING* pArray = aSequ.getConstArray();
-
- for( sal_Int32 i = 0 ; i < aSequ.getLength() ; i++ )
- xNewKey->createKey( pArray[ i ] );
-
- return sal_True;
- }
- catch( registry::InvalidRegistryException& )
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
-
-
void* SAL_CALL component_getFactory( const sal_Char* pImplName, void* pServiceManager, void* /*pRegistryKey*/ )
{
void* pRet = 0;
diff --git a/scaddins/source/analysis/makefile.mk b/scaddins/source/analysis/makefile.mk
index a23f9886b9b1..774e9506b01a 100644
--- a/scaddins/source/analysis/makefile.mk
+++ b/scaddins/source/analysis/makefile.mk
@@ -133,3 +133,11 @@ $(BIN)$/analysisadd.rdb: $(ALLIDLFILES)
touch $@
+
+ALLTAR : $(MISC)/analysis.component
+
+$(MISC)/analysis.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ analysis.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt analysis.component
diff --git a/scaddins/source/datefunc/date.component b/scaddins/source/datefunc/date.component
new file mode 100644
index 000000000000..47e73d891017
--- /dev/null
+++ b/scaddins/source/datefunc/date.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.sheet.addin.DateFunctionsImpl">
+ <service name="com.sun.star.sheet.AddIn"/>
+ <service name="com.sun.star.sheet.addin.DateFunctions"/>
+ </implementation>
+</component>
diff --git a/scaddins/source/datefunc/datefunc.cxx b/scaddins/source/datefunc/datefunc.cxx
index 988f132ff9f4..b1c38d83d6b5 100644
--- a/scaddins/source/datefunc/datefunc.cxx
+++ b/scaddins/source/datefunc/datefunc.cxx
@@ -244,35 +244,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-sal_Bool SAL_CALL component_writeInfo(
- void * /*pServiceManager*/, registry::XRegistryKey * pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- OUString aImpl = OUString::createFromAscii( "/" );
- aImpl += ScaDateAddIn::getImplementationName_Static();
- aImpl += OUString::createFromAscii( "/UNO/SERVICES" );
-
- uno::Reference< registry::XRegistryKey > xNewKey(
- reinterpret_cast< registry::XRegistryKey* >( pRegistryKey )->createKey( aImpl ) );
-
- uno::Sequence< OUString > aSequ = ScaDateAddIn::getSupportedServiceNames_Static();
- const OUString * pArray = aSequ.getConstArray();
- for( sal_Int32 i = 0; i < aSequ.getLength(); i++ )
- xNewKey->createKey( pArray[i] );
-
- return sal_True;
- }
- catch (registry::InvalidRegistryException&)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
-
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ )
{
diff --git a/scaddins/source/datefunc/datefunc.def b/scaddins/source/datefunc/datefunc.def
index cc1b3562a3ef..17573d6f5e44 100644
--- a/scaddins/source/datefunc/datefunc.def
+++ b/scaddins/source/datefunc/datefunc.def
@@ -3,5 +3,4 @@ DESCRIPTION 'StarView 3.00 Uno BE Reflection data 551 '
HEAPSIZE 0
EXPORTS
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/scaddins/source/datefunc/makefile.mk b/scaddins/source/datefunc/makefile.mk
index 8a2805d76f7d..afb221bd3be9 100644
--- a/scaddins/source/datefunc/makefile.mk
+++ b/scaddins/source/datefunc/makefile.mk
@@ -119,3 +119,11 @@ $(BIN)$/dateadd.rdb: $(ALLIDLFILES)
touch $@
+
+ALLTAR : $(MISC)/date.component
+
+$(MISC)/date.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ date.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt date.component
diff --git a/sccomp/prj/d.lst b/sccomp/prj/d.lst
index f31644cf5e8c..2af1e70a9424 100644
--- a/sccomp/prj/d.lst
+++ b/sccomp/prj/d.lst
@@ -7,3 +7,4 @@ mkdir: %COMMON_DEST%\bin%_EXT%\hid
..\%__SRC%\lib\*.sl %_DEST%\lib%_EXT%\*.sl
..\%__SRC%\bin\*.bin %_DEST%\bin%_EXT%\*.bin
..\%__SRC%\bin\*.res %_DEST%\bin%_EXT%\*.res
+..\%__SRC%\misc\solver.component %_DEST%\xml%_EXT%\solver.component
diff --git a/sccomp/source/solver/makefile.mk b/sccomp/source/solver/makefile.mk
index 6b25f60c8762..b1c65e88c64c 100644
--- a/sccomp/source/solver/makefile.mk
+++ b/sccomp/source/solver/makefile.mk
@@ -75,3 +75,11 @@ RESLIB1SRSFILES=$(RESLIB1LIST)
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/solver.component
+
+$(MISC)/solver.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ solver.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt solver.component
diff --git a/sccomp/source/solver/solver.component b/sccomp/source/solver/solver.component
new file mode 100644
index 000000000000..de9cb3bd511d
--- /dev/null
+++ b/sccomp/source/solver/solver.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.Calc.Solver">
+ <service name="com.sun.star.sheet.Solver"/>
+ </implementation>
+</component>
diff --git a/sccomp/source/solver/solver.cxx b/sccomp/source/solver/solver.cxx
index 6c04f79d7cf5..a4dd69cc4847 100644
--- a/sccomp/source/solver/solver.cxx
+++ b/sccomp/source/solver/solver.cxx
@@ -603,34 +603,6 @@ extern "C"
// -------------------------------------------------------------------------
- SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey )
- {
- if (pRegistryKey)
- {
- try
- {
- uno::Reference<registry::XRegistryKey> xNewKey;
- sal_Int32 nPos;
-
- xNewKey = reinterpret_cast< registry::XRegistryKey * >( pRegistryKey )->createKey( SolverComponent_getImplementationName() );
- xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) );
- const uno::Sequence< OUString > & rSNL1 = SolverComponent_getSupportedServiceNames();
- const OUString * pArray1 = rSNL1.getConstArray();
- for ( nPos = rSNL1.getLength(); nPos--; )
- xNewKey->createKey( pArray1[nPos] );
-
- return sal_True;
- }
- catch (registry::InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
- }
-
- // -------------------------------------------------------------------------
-
SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ )
{
OUString aImplName( OUString::createFromAscii( pImplName ) );
diff --git a/scp2/inc/macros.inc b/scp2/inc/macros.inc
index 91c74499a916..5388fe8d105d 100755
--- a/scp2/inc/macros.inc
+++ b/scp2/inc/macros.inc
@@ -290,24 +290,6 @@
Styles = (PACKED,DONT_OVERWRITE,PATCH); \
End
-#define UNO_JAR_FILE(id,name) \
- File id \
- TXT_FILE_BODY; \
- Name = STRING(CONCAT2(name,.jar)); \
- RegistryID = gid_Starregistry_Services_Rdb; \
- Dir = gid_Dir_Classes; \
- Styles = (PACKED,DONT_OVERWRITE, UNO_COMPONENT); \
- End
-
-#define UNO_JAR_FILE_PATCH(id,name) \
- File id \
- TXT_FILE_BODY; \
- Name = STRING(CONCAT2(name,.jar)); \
- RegistryID = gid_Starregistry_Services_Rdb; \
- Dir = gid_Dir_Classes; \
- Styles = (PACKED,DONT_OVERWRITE,UNO_COMPONENT,PATCH); \
- End
-
#define JARFILENAME(name) STRING(CONCAT2(name,.jar))
#define PACKED_SHELLNEW_FILE_BODY \
@@ -322,52 +304,16 @@
Name = STRING(name) ; \
End
-#define PACKED_UNO_LIB_FILE_BODY \
- TXT_FILE_BODY; \
- Styles = (PACKED,UNO_COMPONENT); \
- Dir = SCP2_OOO_BIN_DIR; \
- RegistryID = gid_Starregistry_Services_Rdb
-
-#define PACKED_UNO_LIB_FILE_BODY_PATCH \
- TXT_FILE_BODY; \
- Styles = (PACKED,UNO_COMPONENT,PATCH); \
- Dir = SCP2_OOO_BIN_DIR; \
- RegistryID = gid_Starregistry_Services_Rdb
-
-#define STD_UNO_LIB_FILE(id,name) \
- File id \
- Name = LIBNAME(name); \
- PACKED_UNO_LIB_FILE_BODY; \
- End
-
-#define STD_UNO_LIB_FILE_PATCH(id,name) \
- File id \
- Name = LIBNAME(name); \
- PACKED_UNO_LIB_FILE_BODY_PATCH; \
- End
-
-#define SPECIAL_UNO_LIB_FILE(id,name) \
- File id \
- Name = SPECIAL_NAME(name); \
- PACKED_UNO_LIB_FILE_BODY; \
- End
-
-#define SPECIAL_UNO_LIB_FILE_PATCH(id,name) \
- File id \
- Name = SPECIAL_NAME(name); \
- PACKED_UNO_LIB_FILE_BODY_PATCH; \
- End
-
-#define SPECIAL_UNO_COMPONENT_LIB_FILE(id,name) \
+#define SPECIAL_COMPONENT_LIB_FILE(id,name) \
File id \
Name = SPECIAL_COMPONENT_LIB_NAME(name); \
- PACKED_UNO_LIB_FILE_BODY; \
+ PACKED_LIB_FILE_BODY; \
End
-#define SPECIAL_UNO_COMPONENT_LIB_FILE_PATCH(id,name) \
+#define SPECIAL_COMPONENT_LIB_FILE_PATCH(id,name) \
File id \
Name = SPECIAL_COMPONENT_LIB_NAME(name); \
- PACKED_UNO_LIB_FILE_BODY_PATCH; \
+ PACKED_LIB_FILE_BODY_PATCH; \
End
#define WINW4WFILTERFILENAME(name) STRING(CONCAT2(name,f32w.dll))
@@ -396,15 +342,6 @@
Styles = (PACKED, NO_WARNING_IF_NOT_EXISTS); \
End
-#define SPECIAL_UNO_NO_WARNING_IF_NOT_EXISTS_FILE(id,name) \
- File id \
- TXT_FILE_BODY; \
- Name = LIBNAME(name); \
- Dir = SCP2_OOO_BIN_DIR; \
- Styles = (PACKED, NO_WARNING_IF_NOT_EXISTS, UNO_COMPONENT); \
- RegistryID = gid_Starregistry_Services_Rdb; \
- End
-
// ---------------------------------------
#define CONDITIONAL_MODULE_ENTRY(name,modid) \
Module gid_Module_Root_Reg_##name \
diff --git a/scp2/source/base/file_base.scp b/scp2/source/base/file_base.scp
index 3d209912479c..4c934c429d13 100644
--- a/scp2/source/base/file_base.scp
+++ b/scp2/source/base/file_base.scp
@@ -48,29 +48,29 @@ File gid_File_Exe_Odbcconfig
End
#endif
-STD_UNO_LIB_FILE( gid_File_Lib_Abp, abp)
+STD_LIB_FILE( gid_File_Lib_Abp, abp)
STD_RES_FILE( gid_File_Res_Abp, abp)
-STD_UNO_LIB_FILE( gid_File_Lib_Dbp, dbp)
+STD_LIB_FILE( gid_File_Lib_Dbp, dbp)
STD_RES_FILE( gid_File_Res_Dbp, dbp)
-STD_UNO_LIB_FILE( gid_File_Lib_Dbu, dbu )
+STD_LIB_FILE( gid_File_Lib_Dbu, dbu )
STD_RES_FILE( gid_File_Res_Dbu, dbu)
-STD_UNO_LIB_FILE( gid_File_Lib_Adabasui, adabasui )
+STD_LIB_FILE( gid_File_Lib_Adabasui, adabasui )
STD_RES_FILE( gid_File_Res_Adabasui, adabasui)
STD_RES_FILE( gid_File_Res_Cnr, cnr)
STD_RES_FILE( gid_File_Res_Sdbcl, sdbcl)
STD_RES_FILE( gid_File_Res_Sdberr, sdberr)
-STD_UNO_LIB_FILE( gid_File_Lib_Rpt, rpt )
+STD_LIB_FILE( gid_File_Lib_Rpt, rpt )
STD_RES_FILE( gid_File_Res_Rpt, rpt)
-STD_UNO_LIB_FILE( gid_File_Lib_Rptui, rptui )
+STD_LIB_FILE( gid_File_Lib_Rptui, rptui )
STD_RES_FILE( gid_File_Res_Rptui, rptui)
-STD_UNO_LIB_FILE( gid_File_Lib_Rptxml, rptxml )
+STD_LIB_FILE( gid_File_Lib_Rptxml, rptxml )
File gid_File_Help_Sdatabase_Zip
Dir = gid_Dir_Help_Isolanguage;
diff --git a/scp2/source/binfilter/file_binfilter.scp b/scp2/source/binfilter/file_binfilter.scp
index be66b907a25d..951caadf69fb 100644
--- a/scp2/source/binfilter/file_binfilter.scp
+++ b/scp2/source/binfilter/file_binfilter.scp
@@ -39,7 +39,7 @@ File gid_Starregistry_Legacy_Binfilters_Rdb
TXT_FILE_BODY;
Name = "legacy_binfilters.rdb";
Dir = gid_Dir_Program;
- Styles = (PACKED, STARREGISTRY);
+ Styles = (PACKED);
End
@@ -59,8 +59,8 @@ STD_LIB_FILE( gid_File_Lib_Bf_Sw, bf_sw)
STD_LIB_FILE( gid_File_Lib_Bf_Wrapper, bf_wrapper)
STD_LIB_FILE( gid_File_Lib_Legacy_Binfilters, legacy_binfilters)
-STD_UNO_LIB_FILE( gid_File_Lib_Bf_Migratefilter, bf_migratefilter)
-STD_UNO_LIB_FILE( gid_File_Lib_Bindet, bindet)
+STD_LIB_FILE( gid_File_Lib_Bf_Migratefilter, bf_migratefilter)
+STD_LIB_FILE( gid_File_Lib_Bindet, bindet)
STD_RES_FILE( gid_File_Res_Bf_Sch, bf_sch )
STD_RES_FILE( gid_File_Res_Bf_Svx, bf_svx )
diff --git a/scp2/source/calc/file_calc.scp b/scp2/source/calc/file_calc.scp
index 7b392f173378..59d7a5aac90e 100644
--- a/scp2/source/calc/file_calc.scp
+++ b/scp2/source/calc/file_calc.scp
@@ -27,7 +27,7 @@
#include "macros.inc"
-STD_UNO_LIB_FILE( gid_File_Lib_Solver, solver)
+STD_LIB_FILE( gid_File_Lib_Solver, solver)
#ifndef SYSTEM_LPSOLVE
File gid_File_Lib_Lpsolve
@@ -36,7 +36,7 @@ File gid_File_Lib_Lpsolve
End
#endif
-STD_UNO_LIB_FILE( gid_File_Lib_Analysis, analysis)
+STD_LIB_FILE( gid_File_Lib_Analysis, analysis)
File gid_File_Share_Registry_Calc_Xcd
TXT_FILE_BODY;
@@ -45,17 +45,17 @@ File gid_File_Share_Registry_Calc_Xcd
Name = "calc.xcd";
End
-STD_UNO_LIB_FILE( gid_File_Lib_Calc, calc)
+STD_LIB_FILE( gid_File_Lib_Calc, calc)
-STD_UNO_LIB_FILE( gid_File_Lib_Date, date)
+STD_LIB_FILE( gid_File_Lib_Date, date)
-STD_UNO_LIB_FILE( gid_File_Lib_Sc, sc)
+STD_LIB_FILE( gid_File_Lib_Sc, sc)
STD_LIB_FILE( gid_File_Lib_Scui, scui)
STD_LIB_FILE( gid_File_Lib_Scfilt, scfilt)
-STD_UNO_LIB_FILE( gid_File_Lib_Scd, scd)
+STD_LIB_FILE( gid_File_Lib_Scd, scd)
STD_RES_FILE( gid_File_Res_Solver, solver)
diff --git a/scp2/source/canvas/cairocanvas.scp b/scp2/source/canvas/cairocanvas.scp
index 435cef4304f8..2d7af5321f35 100644
--- a/scp2/source/canvas/cairocanvas.scp
+++ b/scp2/source/canvas/cairocanvas.scp
@@ -29,8 +29,7 @@
File gid_File_Lib_CairoCanvas
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(cairocanvas.uno,UNXSUFFIX));
diff --git a/scp2/source/canvas/canvascommons.scp b/scp2/source/canvas/canvascommons.scp
index f095eff9f23e..9788a90c7f3a 100644
--- a/scp2/source/canvas/canvascommons.scp
+++ b/scp2/source/canvas/canvascommons.scp
@@ -36,5 +36,5 @@ STD_LIB_FILE(gid_File_Lib_Agg, agg)
#endif
#endif
-SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_CanvasFactory, canvasfactory.uno)
-SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_SimpleCanvas, simplecanvas.uno)
+SPECIAL_COMPONENT_LIB_FILE(gid_File_CanvasFactory, canvasfactory.uno)
+SPECIAL_COMPONENT_LIB_FILE(gid_File_SimpleCanvas, simplecanvas.uno)
diff --git a/scp2/source/canvas/directxcanvas.scp b/scp2/source/canvas/directxcanvas.scp
index febdb8428c8b..e79f711aaacd 100644
--- a/scp2/source/canvas/directxcanvas.scp
+++ b/scp2/source/canvas/directxcanvas.scp
@@ -29,8 +29,8 @@
#ifdef WNT
# ifdef USE_DIRECTX5
-SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Lib_DirectX5Canvas,directx5canvas.uno)
+SPECIAL_COMPONENT_LIB_FILE(gid_File_Lib_DirectX5Canvas,directx5canvas.uno)
# endif
-SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Lib_DirectX9Canvas, directx9canvas.uno)
-SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Lib_GdiPlusCanvas, gdipluscanvas.uno)
+SPECIAL_COMPONENT_LIB_FILE(gid_File_Lib_DirectX9Canvas, directx9canvas.uno)
+SPECIAL_COMPONENT_LIB_FILE(gid_File_Lib_GdiPlusCanvas, gdipluscanvas.uno)
#endif
diff --git a/scp2/source/canvas/vclcanvas.scp b/scp2/source/canvas/vclcanvas.scp
index 5f69de34fee9..c17301f56d76 100644
--- a/scp2/source/canvas/vclcanvas.scp
+++ b/scp2/source/canvas/vclcanvas.scp
@@ -27,4 +27,4 @@
#include "macros.inc"
-SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Lib_VCLCanvas, vclcanvas.uno)
+SPECIAL_COMPONENT_LIB_FILE(gid_File_Lib_VCLCanvas, vclcanvas.uno)
diff --git a/scp2/source/gnome/file_gnome.scp b/scp2/source/gnome/file_gnome.scp
index 9d10261843d2..d48915072742 100644
--- a/scp2/source/gnome/file_gnome.scp
+++ b/scp2/source/gnome/file_gnome.scp
@@ -32,8 +32,6 @@ File gid_File_Lib_GIO
Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = STRING(CONCAT2(ucpgio1.uno,UNXSUFFIX));
- RegistryID = gid_Starregistry_Services_Rdb;
- Regmergefile = "ucpgio-ucd.txt";
End
#endif
@@ -43,8 +41,6 @@ File gid_File_Lib_Gnomevfs
Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = STRING(CONCAT2(ucpgvfs1.uno,UNXSUFFIX));
- RegistryID = gid_Starregistry_Services_Rdb;
- Regmergefile = "ucpgvfs-ucd.txt";
End
#endif
@@ -63,7 +59,5 @@ File gid_File_Lib_Gconfbe
Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = STRING(CONCAT2(gconfbe1.uno,UNXSUFFIX));
- RegistryID = gid_Starregistry_Services_Rdb;
- Regmergefile = "gconfbe1-ucd.txt";
End
#endif
diff --git a/scp2/source/graphicfilter/file_graphicfilter.scp b/scp2/source/graphicfilter/file_graphicfilter.scp
index 2cd0f53f9e56..be1d35ed84cc 100644
--- a/scp2/source/graphicfilter/file_graphicfilter.scp
+++ b/scp2/source/graphicfilter/file_graphicfilter.scp
@@ -34,7 +34,7 @@ File gid_File_Share_Registry_Graphicfilter_Xcd
Name = "graphicfilter.xcd";
End
-STD_UNO_LIB_FILE( gid_File_Lib_Flash, flash )
+STD_LIB_FILE( gid_File_Lib_Flash, flash )
-STD_UNO_LIB_FILE( gid_File_Lib_Svg, svgfilter )
+STD_LIB_FILE( gid_File_Lib_Svg, svgfilter )
diff --git a/scp2/source/impress/file_impress.scp b/scp2/source/impress/file_impress.scp
index 00dde2ca9162..35f934da962e 100644
--- a/scp2/source/impress/file_impress.scp
+++ b/scp2/source/impress/file_impress.scp
@@ -29,12 +29,12 @@
File gid_File_Lib_Placeware
Name = LIBNAME(placeware);
- PACKED_UNO_LIB_FILE_BODY;
+ PACKED_LIB_FILE_BODY;
End
File gid_File_Lib_Animcore
Name = SPECIAL_NAME(animcore);
- PACKED_UNO_LIB_FILE_BODY;
+ PACKED_LIB_FILE_BODY;
End
File gid_File_Share_Registry_Impress_Xcd
diff --git a/scp2/source/impress/module_ogltrans.scp b/scp2/source/impress/module_ogltrans.scp
index 06fbb4bfcc1a..300deca7aa34 100644
--- a/scp2/source/impress/module_ogltrans.scp
+++ b/scp2/source/impress/module_ogltrans.scp
@@ -38,8 +38,7 @@ End
File gid_File_Lib_OpenGLTransitions
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(OGLTrans.uno,UNXSUFFIX));
diff --git a/scp2/source/javafilter/file_javafilter.scp b/scp2/source/javafilter/file_javafilter.scp
index d7a902dbf00f..a6d3f3329b25 100644
--- a/scp2/source/javafilter/file_javafilter.scp
+++ b/scp2/source/javafilter/file_javafilter.scp
@@ -76,6 +76,6 @@ STD_JAR_FILE( gid_File_Jar_Aportisdoc, aportisdoc )
STD_JAR_FILE( gid_File_Jar_Pexcel, pexcel )
STD_JAR_FILE( gid_File_Jar_Pocketword, pocketword )
STD_JAR_FILE( gid_File_Jar_Xmerge, xmerge )
-UNO_JAR_FILE( gid_File_Jar_Xmergebridge, XMergeBridge )
+STD_JAR_FILE( gid_File_Jar_Xmergebridge, XMergeBridge )
#endif
diff --git a/scp2/source/kde/file_kde.scp b/scp2/source/kde/file_kde.scp
index 0e0b3d1b73bb..3d139b797d67 100644
--- a/scp2/source/kde/file_kde.scp
+++ b/scp2/source/kde/file_kde.scp
@@ -32,8 +32,6 @@ File gid_File_Lib_Kdebe
Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = STRING(CONCAT2(kdebe1.uno,UNXSUFFIX));
- RegistryID = gid_Starregistry_Services_Rdb;
- Regmergefile = "kdebe1-ucd.txt";
End
#endif
@@ -43,7 +41,5 @@ File gid_File_Lib_Kde4be
Styles = (PACKED);
Dir = gid_Dir_Program;
Name = STRING(CONCAT2(kde4be1.uno,UNXSUFFIX));
- RegistryID = gid_Starregistry_Services_Rdb;
- Regmergefile = "kde4be1-ucd.txt";
End
#endif
diff --git a/scp2/source/math/file_math.scp b/scp2/source/math/file_math.scp
index 4da9f1a23bbc..6ab010baaf31 100644
--- a/scp2/source/math/file_math.scp
+++ b/scp2/source/math/file_math.scp
@@ -37,9 +37,9 @@ End
#endif
-STD_UNO_LIB_FILE( gid_File_Lib_Sm , sm)
+STD_LIB_FILE( gid_File_Lib_Sm , sm)
-STD_UNO_LIB_FILE( gid_File_Lib_Smd , smd)
+STD_LIB_FILE( gid_File_Lib_Smd , smd)
STD_RES_FILE( gid_File_Res_Sm, sm )
diff --git a/scp2/source/onlineupdate/file_onlineupdate.scp b/scp2/source/onlineupdate/file_onlineupdate.scp
index e33eb6fa35c7..2a7ddd376b6f 100644
--- a/scp2/source/onlineupdate/file_onlineupdate.scp
+++ b/scp2/source/onlineupdate/file_onlineupdate.scp
@@ -27,7 +27,7 @@
#include "macros.inc"
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Updchk , updchk.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Updchk , updchk.uno )
File gid_File_Share_Registry_Onlineupdate_Xcd
TXT_FILE_BODY;
diff --git a/scp2/source/ooo/common_brand.scp b/scp2/source/ooo/common_brand.scp
index 5ed8c9739f9c..7c306e19f427 100644
--- a/scp2/source/ooo/common_brand.scp
+++ b/scp2/source/ooo/common_brand.scp
@@ -86,6 +86,7 @@ Module gid_Module_Root_Brand
gid_Brand_File_Msvcm80crt_Manifest,
gid_Brand_File_Lib_Npsoplugin,
gid_Brand_File_Lib_Subscrib_C05,
+ gid_Brand_File_ServicesRdb,
gid_Brand_File_Share_Registry_Brand_Xcd,
gid_Brand_File_Share_Registry_O5oo_Xcd,
gid_Brand_File_Script_Unopkg,
@@ -1294,7 +1295,7 @@ ProfileItem gid_Brand_Profileitem_Fundamental_Ure_More_Services
ProfileID = gid_Brand_Profile_Fundamental_Ini;
Section = "Bootstrap";
Key = "URE_MORE_SERVICES";
- Value = "${${OOO_BASE_DIR}/program/" PROFILENAME(fundamentalbasis) ":URE_MORE_SERVICES}";
+ Value = "${${OOO_BASE_DIR}/program/" PROFILENAME(fundamentalbasis) ":URE_MORE_SERVICES} $ORIGIN/services.rdb";
End
ProfileItem gid_Brand_Profileitem_Fundamental_Ure_More_Java_Types
diff --git a/scp2/source/ooo/file_improvement.scp b/scp2/source/ooo/file_improvement.scp
index 224d26de6a0d..cd6cfe715d64 100644
--- a/scp2/source/ooo/file_improvement.scp
+++ b/scp2/source/ooo/file_improvement.scp
@@ -37,5 +37,5 @@ End
#endif
#if defined(BUILD_SPECIAL)
-STD_UNO_LIB_FILE( gid_File_Lib_Oooimprovement , oooimprovement)
+STD_LIB_FILE( gid_File_Lib_Oooimprovement , oooimprovement)
#endif
diff --git a/scp2/source/ooo/file_library_ooo.scp b/scp2/source/ooo/file_library_ooo.scp
index 0d50e685d449..cacfb19cad6b 100644..100755
--- a/scp2/source/ooo/file_library_ooo.scp
+++ b/scp2/source/ooo/file_library_ooo.scp
@@ -35,19 +35,18 @@ File gid_File_Lib_Accessbridge
End
#endif
#if ((defined(WNT)) || (defined(LINUX)) || ((defined(SOLARIS)) && (defined(SPARC)))|| defined(NETBSD) )
-STD_UNO_LIB_FILE( gid_File_Lib_Adabas, adabas)
+STD_LIB_FILE( gid_File_Lib_Adabas, adabas)
#endif
#if defined(WNT)
-STD_UNO_LIB_FILE( gid_File_Lib_Ado, ado)
+STD_LIB_FILE( gid_File_Lib_Ado, ado)
#endif
-STD_UNO_LIB_FILE( gid_File_Lib_Basctl, basctl)
+STD_LIB_FILE( gid_File_Lib_Basctl, basctl)
File gid_File_Lib_Basprov
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT4(basprov,DLLPOSTFIX,.uno,UNXSUFFIX));
@@ -59,8 +58,7 @@ End
#ifdef ENABLE_VBA
File gid_File_Lib_Vbaevent
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT4(vbaevents,DLLPOSTFIX,.uno,UNXSUFFIX));
@@ -70,12 +68,11 @@ File gid_File_Lib_Vbaevent
End
#endif // ENABLE_VBA
-STD_UNO_LIB_FILE( gid_File_Lib_Bib , bib)
+STD_LIB_FILE( gid_File_Lib_Bib , bib)
File gid_File_Lib_Cached1
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(libcached1,UNXSUFFIX));
@@ -84,13 +81,12 @@ File gid_File_Lib_Cached1
#endif
End
-SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Lib_Configmgr, configmgr.uno)
+SPECIAL_COMPONENT_LIB_FILE(gid_File_Lib_Configmgr, configmgr.uno)
#ifdef WITH_LDAP
File gid_File_Lib_Ldapbe2
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(ldapbe2.uno,UNXSUFFIX));
@@ -100,10 +96,10 @@ File gid_File_Lib_Ldapbe2
End
#endif
-STD_UNO_LIB_FILE(gid_File_Lib_Chartcontroller, chartcontroller)
-STD_UNO_LIB_FILE(gid_File_Lib_Chartmodel, chartmodel)
-STD_UNO_LIB_FILE(gid_File_Lib_Charttools, charttools)
-STD_UNO_LIB_FILE(gid_File_Lib_Chartview, chartview)
+STD_LIB_FILE(gid_File_Lib_Chartcontroller, chartcontroller)
+STD_LIB_FILE(gid_File_Lib_Chartmodel, chartmodel)
+STD_LIB_FILE(gid_File_Lib_Charttools, charttools)
+STD_LIB_FILE(gid_File_Lib_Chartview, chartview)
#if defined WNT && defined _MSC
@@ -157,7 +153,7 @@ End
#if ! defined WNT // no longer supported on Windows
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Cmdmail, cmdmail.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Cmdmail, cmdmail.uno )
#endif
@@ -169,11 +165,10 @@ File gid_File_Lib_Comphelper2
Name = STRING(CONCAT3(comphelp4,COMID,.dll));
#endif
Dir = SCP2_OOO_BIN_DIR;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
End
-STD_UNO_LIB_FILE( gid_File_Lib_Ctl , ctl)
+STD_LIB_FILE( gid_File_Lib_Ctl , ctl)
STD_LIB_FILE( gid_File_Lib_Cui, cui)
@@ -235,15 +230,15 @@ End
#endif
#endif
-STD_UNO_LIB_FILE( gid_File_Lib_Dba, dba)
+STD_LIB_FILE( gid_File_Lib_Dba, dba)
-STD_UNO_LIB_FILE( gid_File_Lib_Sdbt, sdbt)
+STD_LIB_FILE( gid_File_Lib_Sdbt, sdbt)
-STD_UNO_LIB_FILE( gid_File_Lib_Dbmm, dbmm)
+STD_LIB_FILE( gid_File_Lib_Dbmm, dbmm)
-STD_UNO_LIB_FILE( gid_File_Lib_Dbacfg, dbacfg)
+STD_LIB_FILE( gid_File_Lib_Dbacfg, dbacfg)
-STD_UNO_LIB_FILE( gid_File_Lib_Dbase2, dbase )
+STD_LIB_FILE( gid_File_Lib_Dbase2, dbase )
STD_LIB_FILE( gid_File_Lib_Dbfile , file)
STD_LIB_FILE( gid_File_Lib_Odbcbase,odbcbase)
@@ -251,8 +246,7 @@ STD_LIB_FILE( gid_File_Lib_Odbcbase,odbcbase)
File gid_File_Lib_Dbpool
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(libdbpool2,UNXSUFFIX));
@@ -261,9 +255,9 @@ File gid_File_Lib_Dbpool
#endif
End
-STD_UNO_LIB_FILE( gid_File_Lib_Dbt, dbtools )
+STD_LIB_FILE( gid_File_Lib_Dbt, dbtools )
-STD_UNO_LIB_FILE( gid_File_Lib_Dbaxml, dbaxml )
+STD_LIB_FILE( gid_File_Lib_Dbaxml, dbaxml )
File gid_File_Lib_Dict_Ja
TXT_FILE_BODY;
@@ -322,8 +316,7 @@ End
File gid_File_Lib_Dlgprov
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT4(dlgprov,DLLPOSTFIX,.uno,UNXSUFFIX));
@@ -334,8 +327,7 @@ End
File gid_File_Lib_Stringresource
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT4(stringresource,DLLPOSTFIX,.uno,UNXSUFFIX));
@@ -349,8 +341,7 @@ End
File gid_File_Lib_Vbaobj
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT4(libvbaobj,DLLPOSTFIX,.uno,UNXSUFFIX));
@@ -361,8 +352,7 @@ End
File gid_File_Lib_Vbaswobj
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT4(libvbaswobj,DLLPOSTFIX,.uno,UNXSUFFIX));
@@ -373,8 +363,7 @@ End
File gid_File_Lib_Vbamsforms
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT4(libmsforms,DLLPOSTFIX,.uno,UNXSUFFIX));
@@ -387,7 +376,6 @@ End
File gid_File_Lib_Vbahelper
TXT_FILE_BODY;
Styles = (PACKED);
- RegistryID = gid_Starregistry_Services_Rdb;
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT3(libvbahelper,DLLPOSTFIX,UNXSUFFIX));
@@ -402,8 +390,7 @@ End
File gid_File_Lib_Dnd
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = "dnd.dll";
End
@@ -416,23 +403,22 @@ File gid_File_Lib_Dtrans
TXT_FILE_BODY;
Name = "dtrans.dll";
Dir = SCP2_OOO_BIN_DIR;
- Styles = (PACKED, UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
End
#endif
STD_LIB_FILE(gid_File_Lib_Drawinglayer,drawinglayer)
-SPECIAL_UNO_LIB_FILE(gid_File_Lib_Embobj,embobj)
+SPECIAL_LIB_FILE(gid_File_Lib_Embobj,embobj)
#ifndef DISABLE_ATL
-SPECIAL_UNO_LIB_FILE(gid_File_Lib_Emboleobj,emboleobj)
+SPECIAL_LIB_FILE(gid_File_Lib_Emboleobj,emboleobj)
#endif
#if defined(WNT) && !defined(DISABLE_ATL)
-STD_UNO_LIB_FILE( gid_File_Lib_Emser, emser )
+STD_LIB_FILE( gid_File_Lib_Emser, emser )
File gid_File_Lib_Inprocserv
TXT_FILE_BODY;
@@ -448,8 +434,7 @@ End
#ifdef ENABLE_KAB
File gid_File_Lib_Kab_1
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = STRING(CONCAT2(libkab1,UNXSUFFIX));
End
@@ -466,8 +451,7 @@ End
#ifdef MACOSX
File gid_File_Lib_Macab_1
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = STRING(CONCAT2(libmacab1,UNXSUFFIX));
End
@@ -483,7 +467,7 @@ End
#ifdef ENABLE_EVOAB2
-STD_UNO_LIB_FILE( gid_File_Lib_Evoab , evoab)
+STD_LIB_FILE( gid_File_Lib_Evoab , evoab)
#endif // #ifdef ENABLE_EVOAB2
@@ -491,8 +475,7 @@ STD_UNO_LIB_FILE( gid_File_Lib_Evoab , evoab)
File gid_File_Lib_Evtatt
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(libevtatt,UNXSUFFIX));
@@ -501,24 +484,22 @@ File gid_File_Lib_Evtatt
#endif
End
-SPECIAL_UNO_LIB_FILE(gid_File_Lib_Fileacc,fileacc)
+SPECIAL_LIB_FILE(gid_File_Lib_Fileacc,fileacc)
File gid_File_Lib_Filterconfig1
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
- RegistryID = gid_Starregistry_Services_Rdb;
Name = SPECIAL_NAME(filterconfig1);
End
-STD_UNO_LIB_FILE( gid_File_Lib_Flat, flat)
+STD_LIB_FILE( gid_File_Lib_Flat, flat)
#ifdef WNT
File gid_File_Lib_Fop
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = "fop.dll";
End
@@ -529,8 +510,7 @@ End
File gid_File_Lib_Fps
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = "fps.dll";
End
@@ -544,8 +524,6 @@ File gid_File_Lib_Desktopbe
Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = STRING(CONCAT2(desktopbe1.uno,UNXSUFFIX));
- RegistryID = gid_Starregistry_Services_Rdb;
- Regmergefile = "desktopbe1-ucd.txt";
End
#ifdef ENABLE_GTK
@@ -553,10 +531,8 @@ End
File gid_File_Lib_Fps_Gnome
TXT_FILE_BODY;
Styles = (PACKED);
- RegistryID = gid_Starregistry_Services_Rdb;
Dir = SCP2_OOO_BIN_DIR;
Name = SPECIAL_COMPONENT_LIB_NAME(fps_gnome.uno);
- Regmergefile = "fps-gnome-ucd.txt";
End
#endif
#endif
@@ -564,11 +540,9 @@ End
#ifndef MACOSX
File gid_File_Lib_Fps_Kde4
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = gid_Dir_Program;
Name = SPECIAL_COMPONENT_LIB_NAME(fps_kde4.uno);
- Regmergefile = "fps-kde4-ucd.txt";
End
#endif
#endif
@@ -579,32 +553,28 @@ End
File gid_File_Lib_Fps_Aqua
TXT_FILE_BODY;
Styles = (PACKED);
- RegistryID = gid_Starregistry_Services_Rdb;
Dir = SCP2_OOO_BIN_DIR;
Name = SPECIAL_COMPONENT_LIB_NAME(fps_aqua.uno);
- Regmergefile = "fps-aqua-ucd.txt";
End
File gid_File_Lib_MacOSXSpell
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Name = LIBNAME(MacOSXSpell);
Dir = SCP2_OOO_BIN_DIR;
End
File gid_File_Lib_avmediaQuickTime
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Name = LIBNAME(avmediaQuickTime);
Dir = SCP2_OOO_BIN_DIR;
End
#endif
#endif
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Fps_Office, fps_office.uno )
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Fpicker, fpicker.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Fps_Office, fps_office.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Fpicker, fpicker.uno )
#if (defined(ENABLE_CAIRO) && ! defined (SYSTEM_CAIRO))
@@ -630,16 +600,15 @@ End
#endif
-STD_UNO_LIB_FILE( gid_File_Lib_Frm , frm)
+STD_LIB_FILE( gid_File_Lib_Frm , frm)
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Fsstorage, fsstorage.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Fsstorage, fsstorage.uno )
#ifdef WNT
File gid_File_Lib_Ftransl
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = "ftransl.dll";
End
@@ -653,14 +622,13 @@ STD_LIB_FILE( gid_File_Lib_Fwi , fwi)
File gid_File_Lib_Fwk
Name = LIBNAME(fwk);
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
- RegistryID = gid_Starregistry_Services_Rdb;
End
-STD_UNO_LIB_FILE( gid_File_Lib_Fwl , fwl)
+STD_LIB_FILE( gid_File_Lib_Fwl , fwl)
-STD_UNO_LIB_FILE( gid_File_Lib_Fwm , fwm)
+STD_LIB_FILE( gid_File_Lib_Fwm , fwm)
#ifdef WNT
File gid_File_Lib_Gdiplus
@@ -671,14 +639,13 @@ File gid_File_Lib_Gdiplus
End
#endif
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Hatchwindowfactory, hatchwindowfactory.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Hatchwindowfactory, hatchwindowfactory.uno )
STD_LIB_FILE( gid_File_Lib_Helplinker, helplinker)
File gid_File_Lib_I18npool
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(i18npool.uno,UNXSUFFIX));
@@ -700,8 +667,7 @@ End
File gid_File_Lib_I18nsearch
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(i18nsearch.uno,UNXSUFFIX));
@@ -782,15 +748,14 @@ End
#ifdef SOLAR_JAVA
-STD_UNO_LIB_FILE( gid_File_Lib_Jdbc, jdbc)
+STD_LIB_FILE( gid_File_Lib_Jdbc, jdbc)
#endif
#ifdef SOLAR_JAVA
File gid_File_Lib_Hsqldb_2
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(libhsqldb,UNXSUFFIX));
@@ -856,7 +821,7 @@ End
#endif
-STD_UNO_LIB_FILE( gid_File_Lib_Lng, lng)
+STD_LIB_FILE( gid_File_Lib_Lng, lng)
File gid_File_Lib_Localedata_En
TXT_FILE_BODY;
@@ -904,8 +869,7 @@ End
File gid_File_Lib_Mcnttype
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(libmcnttype,UNXSUFFIX));
@@ -916,15 +880,14 @@ End
#if !defined(SYSTEM_MOZILLA) && !defined(WITHOUT_MOZILLA) && !defined(MACOSX)
// #i91209#
-STD_UNO_LIB_FILE(gid_File_Lib_Mozab,mozab)
+STD_LIB_FILE(gid_File_Lib_Mozab,mozab)
STD_LIB_FILE(gid_File_Lib_Mozabdrv,mozabdrv)
#else
File gid_File_Lib_Mozbootstrap
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(libmozbootstrap,UNXSUFFIX));
@@ -935,11 +898,11 @@ End
#endif
-STD_UNO_LIB_FILE(gid_File_Lib_Wpft,wpft)
+STD_LIB_FILE(gid_File_Lib_Wpft,wpft)
-STD_UNO_LIB_FILE(gid_File_Lib_T602Filter,t602filter)
+STD_LIB_FILE(gid_File_Lib_T602Filter,t602filter)
-STD_UNO_LIB_FILE(gid_File_Lib_Writerfilter,writerfilter)
+STD_LIB_FILE(gid_File_Lib_Writerfilter,writerfilter)
#ifdef WNT
#if defined(_gcc3)
@@ -1048,12 +1011,12 @@ End
#endif
#endif
-STD_UNO_LIB_FILE(gid_File_Lib_Mysql,mysql)
-STD_UNO_LIB_FILE(gid_File_Lib_Odbc,odbc)
+STD_LIB_FILE(gid_File_Lib_Mysql,mysql)
+STD_LIB_FILE(gid_File_Lib_Odbc,odbc)
// STD_LIB_FILE( gid_File_Lib_Ofa , ofa)
-STD_UNO_LIB_FILE( gid_File_Lib_Offacc, offacc)
+STD_LIB_FILE( gid_File_Lib_Offacc, offacc)
#ifdef SOLAR_JAVA
#ifndef MACOSX
@@ -1076,23 +1039,22 @@ End
File gid_File_Lib_Ole
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = "oleautobridge.uno.dll";
End
#endif
-SPECIAL_UNO_LIB_FILE(gid_File_Lib_Package2,package2)
+SPECIAL_LIB_FILE(gid_File_Lib_Package2,package2)
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Passwordcontainer, passwordcontainer.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Passwordcontainer, passwordcontainer.uno )
-STD_UNO_LIB_FILE( gid_File_Lib_Pcr, pcr)
+STD_LIB_FILE( gid_File_Lib_Pcr, pcr)
-STD_UNO_LIB_FILE( gid_File_Lib_Log, log)
+STD_LIB_FILE( gid_File_Lib_Log, log)
-STD_UNO_LIB_FILE( gid_File_Lib_Pdffilter, pdffilter)
+STD_LIB_FILE( gid_File_Lib_Pdffilter, pdffilter)
File gid_File_Lib_Deployment
#if defined UNX
@@ -1100,7 +1062,7 @@ File gid_File_Lib_Deployment
#else
Name = STRING(CONCAT3(deployment,DLLPOSTFIX,.uno.dll));
#endif
- PACKED_UNO_LIB_FILE_BODY;
+ PACKED_LIB_FILE_BODY;
End
File gid_File_Lib_DeploymentGui
@@ -1109,18 +1071,18 @@ File gid_File_Lib_DeploymentGui
#else
Name = STRING(CONCAT3(deploymentgui,DLLPOSTFIX,.uno.dll));
#endif
- PACKED_UNO_LIB_FILE_BODY;
+ PACKED_LIB_FILE_BODY;
End
STD_LIB_FILE(gid_File_Lib_DeploymentMisc, deploymentmisc)
#ifndef WITHOUT_MOZILLA
-STD_UNO_LIB_FILE( gid_File_Lib_Pl , pl)
+STD_LIB_FILE( gid_File_Lib_Pl , pl)
#endif
-STD_UNO_LIB_FILE( gid_File_Lib_Preload, preload)
+STD_LIB_FILE( gid_File_Lib_Preload, preload)
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Productregistration, productregistration.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Productregistration, productregistration.uno )
#if defined(UNX) && ! defined(QUARTZ)
File gid_File_Lib_Desktop_Detector
@@ -1238,15 +1200,13 @@ End
File gid_File_Lib_Res
Name = LIBNAME(res);
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
- RegistryID = gid_Starregistry_Services_Rdb;
End
File gid_File_Lib_Sax_Uno
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT,DONT_OVERWRITE);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED,DONT_OVERWRITE);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(sax.uno,UNXSUFFIX));
@@ -1257,8 +1217,7 @@ End
File gid_File_Lib_Fastsax_Uno
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT,DONT_OVERWRITE);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED,DONT_OVERWRITE);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(fastsax.uno,UNXSUFFIX));
@@ -1269,11 +1228,11 @@ End
STD_LIB_FILE( gid_File_Lib_Sax , sax)
-STD_UNO_LIB_FILE( gid_File_Lib_Oox , oox)
+STD_LIB_FILE( gid_File_Lib_Oox , oox)
-STD_UNO_LIB_FILE( gid_File_Lib_Sb , sb)
+STD_LIB_FILE( gid_File_Lib_Sb , sb)
-STD_UNO_LIB_FILE( gid_File_Lib_Scn, scn)
+STD_LIB_FILE( gid_File_Lib_Scn, scn)
File gid_File_Lib_Scriptframe
TXT_FILE_BODY;
@@ -1286,18 +1245,16 @@ File gid_File_Lib_Scriptframe
#else
Name = "scriptframe.dll";
#endif
- RegistryID = gid_Starregistry_Services_Rdb;
Dir = SCP2_OOO_BIN_DIR;
- Styles = (PACKED,UNO_COMPONENT);
+ Styles = (PACKED);
End
-STD_UNO_LIB_FILE( gid_File_Lib_Sd , sd)
+STD_LIB_FILE( gid_File_Lib_Sd , sd)
STD_LIB_FILE( gid_File_Lib_Sdui, sdui)
File gid_File_Lib_Slideshow
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(slideshow.uno,UNXSUFFIX));
@@ -1308,8 +1265,7 @@ End
File gid_File_Lib_Sdbc_2
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(libsdbc2,UNXSUFFIX));
@@ -1318,16 +1274,15 @@ File gid_File_Lib_Sdbc_2
#endif
End
-STD_UNO_LIB_FILE( gid_File_Lib_Sdd , sdd)
+STD_LIB_FILE( gid_File_Lib_Sdd , sdd)
-STD_UNO_LIB_FILE( gid_File_Lib_Sf_Prothdlr, protocolhandler )
+STD_LIB_FILE( gid_File_Lib_Sf_Prothdlr, protocolhandler )
File gid_File_Lib_Sfx
Name = LIBNAME(sfx);
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
- RegistryID = gid_Starregistry_Services_Rdb;
End
#ifdef WNT
@@ -1345,15 +1300,14 @@ End
File gid_File_Lib_Smplmail
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = "smplmail.uno.dll";
End
#endif
-STD_UNO_LIB_FILE( gid_File_Lib_Sot, sot )
+STD_LIB_FILE( gid_File_Lib_Sot, sot )
#if defined(UNX) && !defined(QUARTZ)
@@ -1368,29 +1322,28 @@ End
File gid_File_Lib_Spell
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Name = LIBNAME(spell);
Dir = SCP2_OOO_BIN_DIR;
End
-STD_UNO_LIB_FILE( gid_File_Lib_Spl, spl)
+STD_LIB_FILE( gid_File_Lib_Spl, spl)
-SPECIAL_UNO_LIB_FILE(gid_File_Lib_Srtrs1,srtrs1)
+SPECIAL_LIB_FILE(gid_File_Lib_Srtrs1,srtrs1)
STD_LIB_FILE( gid_File_Lib_Sts , sts)
-STD_UNO_LIB_FILE( gid_File_Lib_Svl, svl )
-STD_UNO_LIB_FILE( gid_File_Lib_Svtools, svt )
+STD_LIB_FILE( gid_File_Lib_Svl, svl )
+STD_LIB_FILE( gid_File_Lib_Svtools, svt )
-STD_UNO_LIB_FILE( gid_File_Lib_Svx_Core, svxcore)
-STD_UNO_LIB_FILE( gid_File_Lib_Svx, svx)
-STD_UNO_LIB_FILE( gid_File_Lib_TextConversionDlgs, textconversiondlgs)
+STD_LIB_FILE( gid_File_Lib_Svx_Core, svxcore)
+STD_LIB_FILE( gid_File_Lib_Svx, svx)
+STD_LIB_FILE( gid_File_Lib_TextConversionDlgs, textconversiondlgs)
STD_LIB_FILE( gid_File_Lib_Editeng, editeng)
STD_LIB_FILE( gid_File_Lib_Msfilter, msfilter)
-STD_UNO_LIB_FILE( gid_File_Lib_Sw , sw)
+STD_LIB_FILE( gid_File_Lib_Sw , sw)
STD_LIB_FILE( gid_File_Lib_Swui, swui)
STD_LIB_FILE( gid_File_Lib_Msword, msword )
@@ -1398,33 +1351,31 @@ STD_LIB_FILE( gid_File_Lib_Msword, msword )
#if ! defined UNX
File gid_File_Lib_Sysdtrans
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
Name = "sysdtrans.dll";
End
#endif
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Syssh, syssh.uno )
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Localebe, localebe1.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Syssh, syssh.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Localebe, localebe1.uno )
#ifdef WNT
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Wininetbe, wininetbe1.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Wininetbe, wininetbe1.uno )
#endif
#ifdef MACOSX
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Macbe, macbe1.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Macbe, macbe1.uno )
#endif
-STD_UNO_LIB_FILE( gid_File_Lib_Tk, tk )
+STD_LIB_FILE( gid_File_Lib_Tk, tk )
STD_LIB_FILE( gid_File_Lib_Acc, acc )
STD_LIB_FILE( gid_File_Lib_Tools, tl )
File gid_File_Lib_Tvhlp1
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(libtvhlp1,UNXSUFFIX));
@@ -1435,8 +1386,7 @@ End
File gid_File_Lib_Ucb1
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(libucb1,UNXSUFFIX));
@@ -1464,59 +1414,55 @@ File gid_File_Lib_Ucpchelp1
Name = "ucpchelp1.dll";
#endif
Dir = SCP2_OOO_BIN_DIR;
- Styles = (PACKED, UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
End
#ifndef DISABLE_NEON
-SPECIAL_UNO_LIB_FILE(gid_File_Lib_Ucpdav1,ucpdav1)
+SPECIAL_LIB_FILE(gid_File_Lib_Ucpdav1,ucpdav1)
#ifndef SYSTEM_NEON
SPECIAL_LIB_FILE(gid_File_Lib_Neon,neon)
#endif
#endif
-SPECIAL_UNO_LIB_FILE(gid_File_Lib_Ucpfile1,ucpfile1)
+SPECIAL_LIB_FILE(gid_File_Lib_Ucpfile1,ucpfile1)
-SPECIAL_UNO_LIB_FILE(gid_File_Lib_Ucpftp1,ucpftp1)
+SPECIAL_LIB_FILE(gid_File_Lib_Ucpftp1,ucpftp1)
-SPECIAL_UNO_LIB_FILE(gid_File_Lib_Ucphier1,ucphier1)
+SPECIAL_LIB_FILE(gid_File_Lib_Ucphier1,ucphier1)
-SPECIAL_UNO_LIB_FILE(gid_File_Lib_Ucppkg1,ucppkg1)
+SPECIAL_LIB_FILE(gid_File_Lib_Ucppkg1,ucppkg1)
-SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Ucptdoc1, ucptdoc1.uno)
+SPECIAL_COMPONENT_LIB_FILE(gid_File_Ucptdoc1, ucptdoc1.uno)
-SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Ucpext, ucpext.uno)
+SPECIAL_COMPONENT_LIB_FILE(gid_File_Ucpext, ucpext.uno)
-SPECIAL_UNO_COMPONENT_LIB_FILE(gid_File_Ucpexpand1, ucpexpand1.uno)
+SPECIAL_COMPONENT_LIB_FILE(gid_File_Ucpexpand1, ucpexpand1.uno)
File gid_File_Lib_Lnth
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Name = LIBNAME(lnth);
Dir = SCP2_OOO_BIN_DIR;
End
File gid_File_Lib_Hyph
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Name = LIBNAME(hyphen);
Dir = SCP2_OOO_BIN_DIR;
End
-STD_UNO_LIB_FILE( gid_File_Lib_Utl , utl)
+STD_LIB_FILE( gid_File_Lib_Utl , utl)
-STD_UNO_LIB_FILE( gid_File_Lib_Uui, uui )
+STD_LIB_FILE( gid_File_Lib_Uui, uui )
STD_LIB_FILE( gid_File_Lib_BaseGfx, basegfx )
File gid_File_Lib_Vcl
Name = LIBNAME(vcl);
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
- RegistryID = gid_Starregistry_Services_Rdb;
End
File gid_File_Lib_Vos
@@ -1530,30 +1476,27 @@ File gid_File_Lib_Vos
Styles = (PACKED);
End
-// STD_UNO_LIB_FILE( gid_File_Lib_Wrp, wrp)
-
-STD_UNO_LIB_FILE( gid_File_Lib_Xcr, xcr)
-STD_UNO_LIB_FILE( gid_File_Lib_Xmx , xmx)
-STD_UNO_LIB_FILE( gid_File_Lib_Xof , xof)
+STD_LIB_FILE( gid_File_Lib_Xcr, xcr)
+STD_LIB_FILE( gid_File_Lib_Xmx , xmx)
+STD_LIB_FILE( gid_File_Lib_Xof , xof)
File gid_File_Lib_Xo
Name = LIBNAME(xo);
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
- RegistryID = gid_Starregistry_Services_Rdb;
End
-SPECIAL_UNO_LIB_FILE(gid_File_Lib_Xstor,xstor)
+SPECIAL_LIB_FILE(gid_File_Lib_Xstor,xstor)
-STD_UNO_LIB_FILE( gid_File_Lib_Xsltdlg, xsltdlg )
-STD_UNO_LIB_FILE( gid_File_Lib_Xsltfilter, xsltfilter )
-STD_UNO_LIB_FILE( gid_File_Lib_Xmlfa, xmlfa )
-STD_UNO_LIB_FILE( gid_File_Lib_Xmlfd, xmlfd )
+STD_LIB_FILE( gid_File_Lib_Xsltdlg, xsltdlg )
+STD_LIB_FILE( gid_File_Lib_Xsltfilter, xsltfilter )
+STD_LIB_FILE( gid_File_Lib_Xmlfa, xmlfa )
+STD_LIB_FILE( gid_File_Lib_Xmlfd, xmlfd )
#ifdef SOLAR_JAVA
-UNO_JAR_FILE( gid_File_Jar_Xsltfilter, XSLTFilter )
-UNO_JAR_FILE( gid_File_Jar_Xsltvalidate, XSLTValidate )
+STD_JAR_FILE( gid_File_Jar_Xsltfilter, XSLTFilter )
+STD_JAR_FILE( gid_File_Jar_Xsltvalidate, XSLTValidate )
#endif
#ifndef SYSTEM_LIBXSLT
@@ -1578,21 +1521,21 @@ End
#endif
-STD_UNO_LIB_FILE( gid_File_Lib_Unoxml, unoxml )
+STD_LIB_FILE( gid_File_Lib_Unoxml, unoxml )
// AVMedia
-STD_UNO_LIB_FILE( gid_File_Lib_AVMedia, avmedia )
+STD_LIB_FILE( gid_File_Lib_AVMedia, avmedia )
#if defined UNX
#if defined ENABLE_GSTREAMER
-SPECIAL_UNO_LIB_FILE( gid_File_Lib_AVMediaGst, avmediagst )
+SPECIAL_LIB_FILE( gid_File_Lib_AVMediaGst, avmediagst )
#endif
#ifdef SOLAR_JAVA
-UNO_JAR_FILE( gid_File_Jar_AVmedia, avmedia )
+STD_JAR_FILE( gid_File_Jar_AVmedia, avmedia )
#endif
#elif defined WNT
#ifdef ENABLE_DIRECTX
-SPECIAL_UNO_LIB_FILE( gid_File_Lib_AVMediaWin, avmediawin )
+SPECIAL_LIB_FILE( gid_File_Lib_AVMediaWin, avmediawin )
#endif
#endif
@@ -1605,8 +1548,7 @@ File gid_File_Lib_XSec_Framework
Name = "xsec_fw.dll";
#endif
Dir = SCP2_OOO_BIN_DIR;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
End
File gid_File_Lib_XSec_XmlSec
@@ -1617,8 +1559,7 @@ File gid_File_Lib_XSec_XmlSec
Name = "xsec_xmlsec.dll";
#endif
Dir = SCP2_OOO_BIN_DIR;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
End
File gid_File_Lib_XSec_XMLSecurity
@@ -1629,8 +1570,7 @@ File gid_File_Lib_XSec_XMLSecurity
Name = "xmlsecurity.dll";
#endif
Dir = SCP2_OOO_BIN_DIR;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
End
#ifdef WNT
@@ -1662,8 +1602,7 @@ End
File gid_File_Lib_Migrationoo2
TXT_FILE_BODY;
- Styles = (PACKED,UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
+ Styles = (PACKED);
Dir = SCP2_OOO_BIN_DIR;
#ifdef UNX
Name = STRING(CONCAT2(migrationoo2.uno,UNXSUFFIX));
@@ -1685,11 +1624,11 @@ File gid_File_Lib_Libtextcat
End
#endif
-STD_UNO_LIB_FILE( gid_File_Lib_Guesslang, guesslang )
+STD_LIB_FILE( gid_File_Lib_Guesslang, guesslang )
-STD_UNO_LIB_FILE( gid_File_Lib_Updchkui , updchk )
+STD_LIB_FILE( gid_File_Lib_Updchkui , updchk )
-SPECIAL_UNO_COMPONENT_LIB_FILE( gid_File_Lib_Updatefeed , updatefeed.uno )
+SPECIAL_COMPONENT_LIB_FILE( gid_File_Lib_Updatefeed , updatefeed.uno )
#ifdef WNT
File gid_File_Lib_Onlinecheck
@@ -1737,7 +1676,7 @@ File gid_File_Lib_Unopkgapp
Styles = (PACKED);
End
-STD_UNO_LIB_FILE( gid_File_Lib_Oooimprovecore , oooimprovecore)
+STD_LIB_FILE( gid_File_Lib_Oooimprovecore , oooimprovecore)
#if defined WNT && !defined _gcc3 && !defined SYSTEM_MOZILLA && !defined WITHOUT_MOZILLA && \
!(defined M1400 && defined PROF_EDITION && !defined _STLP_DEBUG)
@@ -1816,8 +1755,8 @@ File gid_File_Lib_Rdf
End
#endif // SYSTEM_REDLAND
-STD_UNO_LIB_FILE(gid_File_Lib_Unordf, unordf)
+STD_LIB_FILE(gid_File_Lib_Unordf, unordf)
-STD_UNO_LIB_FILE( gid_File_Lib_For, for)
+STD_LIB_FILE( gid_File_Lib_For, for)
STD_LIB_FILE( gid_File_Lib_Forui, forui)
diff --git a/scp2/source/ooo/file_ooo.scp b/scp2/source/ooo/file_ooo.scp
index ed8c67d5e736..972c371ce489 100644
--- a/scp2/source/ooo/file_ooo.scp
+++ b/scp2/source/ooo/file_ooo.scp
@@ -417,14 +417,13 @@ File gid_File_Help_Schart_Zip
EXTRA_ALL_GOOD_HELP_LOCALIZATIONS_LANG(schart);
End
-#if defined INCLUDE_JAVA_ACCESSBRIDGE && defined WNT
+#if defined WNT
File gid_File_Jar_Accessbridge
TXT_FILE_BODY;
Name = "java_uno_accessbridge.jar";
- RegistryID = gid_Starregistry_Services_Rdb;
Dir = gid_Dir_Classes;
- Styles = (PACKED,DONT_OVERWRITE,UNO_COMPONENT);
+ Styles = (PACKED,DONT_OVERWRITE);
End
#endif
@@ -443,7 +442,7 @@ STD_JAR_FILE( gid_File_Jar_Lucene_Analyzers, lucene-analyzers-2.3 )
#endif
#ifdef SOLAR_JAVA
-UNO_JAR_FILE( gid_File_Jar_Lucenehelpwrapper, LuceneHelpWrapper )
+STD_JAR_FILE( gid_File_Jar_Lucenehelpwrapper, LuceneHelpWrapper )
#endif
#ifdef SOLAR_JAVA
@@ -467,14 +466,14 @@ End
#ifdef SOLAR_JAVA
-UNO_JAR_FILE( gid_File_Jar_Report, report )
-UNO_JAR_FILE( gid_File_Jar_Table, table )
-UNO_JAR_FILE( gid_File_Jar_Letter, letter )
-UNO_JAR_FILE( gid_File_Jar_Form, form )
-UNO_JAR_FILE( gid_File_Jar_Fax, fax )
-UNO_JAR_FILE( gid_File_Jar_Agenda, agenda )
-UNO_JAR_FILE( gid_File_Jar_Query, query )
-UNO_JAR_FILE( gid_File_Jar_Web, web )
+STD_JAR_FILE( gid_File_Jar_Report, report )
+STD_JAR_FILE( gid_File_Jar_Table, table )
+STD_JAR_FILE( gid_File_Jar_Letter, letter )
+STD_JAR_FILE( gid_File_Jar_Form, form )
+STD_JAR_FILE( gid_File_Jar_Fax, fax )
+STD_JAR_FILE( gid_File_Jar_Agenda, agenda )
+STD_JAR_FILE( gid_File_Jar_Query, query )
+STD_JAR_FILE( gid_File_Jar_Web, web )
#endif
#ifdef SOLAR_JAVA
@@ -494,10 +493,10 @@ End
#endif
#ifdef SOLAR_JAVA
-UNO_JAR_FILE( gid_File_Jar_Scriptframework, ScriptFramework )
-UNO_JAR_FILE( gid_File_Jar_Scriptproviderforbeanshell, ScriptProviderForBeanShell )
-UNO_JAR_FILE( gid_File_Jar_Scriptproviderforjava, ScriptProviderForJava )
-UNO_JAR_FILE( gid_File_Jar_Scriptproviderforjavascript, ScriptProviderForJavaScript )
+STD_JAR_FILE( gid_File_Jar_Scriptframework, ScriptFramework )
+STD_JAR_FILE( gid_File_Jar_Scriptproviderforbeanshell, ScriptProviderForBeanShell )
+STD_JAR_FILE( gid_File_Jar_Scriptproviderforjava, ScriptProviderForJava )
+STD_JAR_FILE( gid_File_Jar_Scriptproviderforjavascript, ScriptProviderForJavaScript )
#endif
#ifdef SOLAR_JAVA
@@ -1680,13 +1679,7 @@ File gid_Starregistry_Services_Rdb
TXT_FILE_BODY;
Name = "services.rdb";
Dir = gid_Dir_Program;
- Styles = (PACKED, STARREGISTRY);
-#if defined WNT
- NativeServicesURLPrefix = "vnd.sun.star.expand:$BRAND_BASE_DIR/program/";
-#else
- NativeServicesURLPrefix = "vnd.sun.star.expand:$OOO_BASE_DIR/program/";
-#endif
- JavaServicesURLPrefix = "vnd.sun.star.expand:$OOO_BASE_DIR/program/classes/";
+ Styles = (PACKED);
End
#ifdef LINUX
@@ -1799,9 +1792,8 @@ End
File gid_File_Jar_Productregistration
TXT_FILE_BODY;
Name = "productregistration.jar";
- RegistryID = gid_Starregistry_Services_Rdb;
Dir = gid_Dir_Classes;
- Styles = (PACKED,UNO_COMPONENT);
+ Styles = (PACKED);
End
#endif
diff --git a/scp2/source/ooo/makefile.mk b/scp2/source/ooo/makefile.mk
index cf5751ba45e6..5f2e2795eaad 100644
--- a/scp2/source/ooo/makefile.mk
+++ b/scp2/source/ooo/makefile.mk
@@ -49,9 +49,6 @@ SCPDEFS+=-DBUILD_SPECIAL
SCPDEFS+=-DBUILD_X64
.ENDIF
-
-SCPDEFS+=-DINCLUDE_JAVA_ACCESSBRIDGE
-
.IF "$(PROF_EDITION)"!=""
SCPDEFS+=-DPROF_EDITION
.ENDIF
diff --git a/scp2/source/ooo/ooo_brand.scp b/scp2/source/ooo/ooo_brand.scp
index 3cd20ef97142..4d78d3efb606 100644
--- a/scp2/source/ooo/ooo_brand.scp
+++ b/scp2/source/ooo/ooo_brand.scp
@@ -39,6 +39,13 @@ Directory gid_Dir_Brand_Root
End
#endif
+File gid_Brand_File_ServicesRdb
+ TXT_FILE_BODY;
+ Dir = gid_Brand_Dir_Program;
+ Name = "/ooo/services.rdb";
+ Styles = (PACKED);
+End
+
ProfileItem gid_Brand_Profileitem_Bootstrap_Errorreport_Server
ProfileID = gid_Brand_Profile_Bootstrap_Ini;
ModuleID = gid_Module_Root_Brand;
diff --git a/scp2/source/ooo/ure.scp b/scp2/source/ooo/ure.scp
index 9aeaf32c5bcb..804f0edad0b2 100755
--- a/scp2/source/ooo/ure.scp
+++ b/scp2/source/ooo/ure.scp
@@ -312,6 +312,13 @@ File gid_File_Dl_Store
// CompID = "A5477BD7-89A3-44AF-8B42-9E28D55C8066";
End
+File gid_File_Dl_Xmlreader
+ TXT_FILE_BODY;
+ Dir = SCP2_URE_DL_DIR;
+ Name = SCP2_URE_DL_NORMAL("xmlreader");
+ Styles = (PACKED);
+End
+
File gid_File_Dl_Jvmaccess
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
@@ -667,8 +674,7 @@ File gid_File_Dl_Acceptor
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("acceptor.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "31183C51-C9A4-4D7A-A2F4-103252E1FEB0";
End
@@ -676,8 +682,7 @@ File gid_File_Dl_Bootstrap
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("bootstrap.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "2620B307-25DB-498F-B2B8-46D928165331";
End
@@ -685,8 +690,7 @@ File gid_File_Dl_Bridgefac
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("bridgefac.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "E025163F-FE1E-4E8C-B0E5-49C08924A646";
End
@@ -694,8 +698,7 @@ File gid_File_Dl_Connector
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("connector.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "EBCE77E7-E244-40F6-96E2-5319D6571C5D";
End
@@ -703,8 +706,7 @@ File gid_File_Dl_Introspection
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("introspection.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "E99960CF-FE59-4332-A2AC-47418C3A17C1";
End
@@ -712,8 +714,7 @@ File gid_File_Dl_Invocadapt
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("invocadapt.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "77DDC112-1994-49D5-A086-FB16D4328AB9";
End
@@ -721,8 +722,7 @@ File gid_File_Dl_Invocation
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("invocation.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "A79ACB80-DA65-47CA-81BA-7CD9E191C84C";
End
@@ -732,8 +732,7 @@ File gid_File_Dl_Javaloader
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("javaloader.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "19A20968-E654-4E2C-9F58-7B66F07CA346";
End
#endif
@@ -743,8 +742,7 @@ File gid_File_Dl_Javavm
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("javavm.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "F1266B2B-80AD-4248-A921-9161759FA4DA";
End
#endif
@@ -753,8 +751,7 @@ File gid_File_Dl_Namingservice
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("namingservice.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "DD22BE3A-AD21-447D-B3A3-89B0FCDB0B31";
End
@@ -762,8 +759,7 @@ File gid_File_Dl_Stocservices
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("stocservices.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "EBF6BBDE-EC50-4FB8-A0D4-BEC58F1C8C07";
End
@@ -771,8 +767,7 @@ File gid_File_Dl_Proxyfac
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("proxyfac.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "A2CDDEC3-B9C7-48C9-AB35-65008777BC2F";
End
@@ -780,8 +775,7 @@ File gid_File_Dl_Reflection
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("reflection.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "601C7946-CFEB-4F56-9429-6D5963188DF3";
End
@@ -789,8 +783,7 @@ File gid_File_Dl_Remotebridge
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("remotebridge.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "B440B28E-B7AD-40C7-89E1-1508CA798347";
End
@@ -798,8 +791,7 @@ File gid_File_Dl_Streams
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("streams.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "6028CF43-A9B7-40A8-8216-509CAB256A2B";
End
@@ -807,8 +799,7 @@ File gid_File_Dl_Textinstream
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("textinstream.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "DAA39D01-D9C5-40C4-94EC-9E4B2F94EABA";
End
@@ -816,8 +807,7 @@ File gid_File_Dl_Textoutstream
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("textoutstream.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "DD01EB0C-A119-43AE-9100-F7A595D099E4";
End
@@ -825,8 +815,7 @@ File gid_File_Dl_Uuresolver
TXT_FILE_BODY;
Dir = SCP2_URE_DL_DIR;
Name = SCP2_URE_DL_BARE("uuresolver.uno");
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "377090E1-5008-424F-B0F6-A9EFC9F11206";
End
@@ -1018,8 +1007,7 @@ File gid_File_Java_JuhJar
TXT_FILE_BODY;
Dir = gid_Dir_Ure_Java;
Name = "juh.jar";
- Styles = (PACKED, UNO_COMPONENT, VERSION_INDEPENDENT_COMP_ID);
- RegistryID = gid_Starregistry_Services_Rdb_Ure;
+ Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
// CompID = "E77CC8B5-0345-4B7F-ABED-5EB9DC94E492";
End
#endif
@@ -1066,6 +1054,13 @@ File gid_File_Misc_TypesRdb
// CompID = "E5086F6A-855B-4CAE-AD3A-A85A21C5AE44";
End
+File gid_File_Misc_ServicesRdb
+ TXT_FILE_BODY;
+ Dir = gid_Dir_Ure_Misc;
+ Name = "/ure/services.rdb";
+ Styles = (PACKED);
+End
+
// Private Miscellaneous Files:
#if defined SOLAR_JAVA
@@ -1078,18 +1073,6 @@ File gid_File_Misc_JavavendorsXml
End
#endif
-// StarRegistry File
-
-File gid_Starregistry_Services_Rdb_Ure
- TXT_FILE_BODY;
- Name = "services.rdb";
- Dir = gid_Dir_Ure_Misc;
- Styles = (PACKED, STARREGISTRY, VERSION_INDEPENDENT_COMP_ID);
- NativeServicesURLPrefix = "vnd.sun.star.expand:$URE_INTERNAL_LIB_DIR/";
- JavaServicesURLPrefix = "vnd.sun.star.expand:$URE_INTERNAL_JAVA_DIR/";
- // CompID = "F4BD7B0A-5A20-4167-9D10-18597C5F85AF";
-End
-
#if defined MACOSX
Unixlink gid_Unixlink_Ure_Bin_Urelibs
Dir = gid_Dir_Ure_Bin;
@@ -1150,6 +1133,7 @@ Module gid_Module_Root_Ure_Hidden
gid_File_Dl_Reg,
gid_File_Dl_Rmcxt,
gid_File_Dl_Store,
+ gid_File_Dl_Xmlreader,
gid_File_Dl_Jvmaccess,
gid_File_Dl_Jvmfwk,
gid_File_Dl_Sunjavaplugin,
@@ -1204,8 +1188,8 @@ Module gid_Module_Root_Ure_Hidden
gid_File_Java_RidlJar,
gid_File_Java_JavaUnoJar,
gid_File_Misc_TypesRdb,
- gid_File_Misc_JavavendorsXml,
- gid_Starregistry_Services_Rdb_Ure);
+ gid_File_Misc_ServicesRdb,
+ gid_File_Misc_JavavendorsXml);
Unixlinks = (gid_Unixlink_Ure_Bin_Urelibs);
End
diff --git a/scp2/source/python/file_python.scp b/scp2/source/python/file_python.scp
index 5cd84d82b3e9..c99a93407e87 100644
--- a/scp2/source/python/file_python.scp
+++ b/scp2/source/python/file_python.scp
@@ -46,9 +46,7 @@ File gid_File_Lib_Pythonloader
#else
Name = "pythonloader.uno.dll";
#endif
- RegistryID = gid_Starregistry_Services_Rdb;
- NativeServicesURLPrefix = "vnd.sun.star.expand:$OOO_BASE_DIR/program/";
- Styles = (PACKED,UNO_COMPONENT);
+ Styles = (PACKED);
End
File gid_File_Py_Unohelper
@@ -110,8 +108,7 @@ File gid_File_Py_Pythonscript
TXT_FILE_BODY;
Dir = gid_Dir_Program;
Name = "pythonscript.py";
- RegistryID = gid_Starregistry_Services_Rdb;
- Styles = (PACKED,UNO_COMPONENT);
+ Styles = (PACKED);
End
//Scripting Framework Python example scripts
diff --git a/scp2/source/python/module_python_mailmerge.scp b/scp2/source/python/module_python_mailmerge.scp
index 00a5c30a122c..15177971ba1a 100644
--- a/scp2/source/python/module_python_mailmerge.scp
+++ b/scp2/source/python/module_python_mailmerge.scp
@@ -31,6 +31,5 @@ File gid_File_Pymailmerge
TXT_FILE_BODY;
Dir = gid_Dir_Program;
Name = "mailmerge.py";
- RegistryID = gid_Starregistry_Services_Rdb;
- Styles = (PACKED,UNO_COMPONENT);
+ Styles = (PACKED);
End
diff --git a/scp2/source/writer/file_writer.scp b/scp2/source/writer/file_writer.scp
index 3d7c22b9e7a9..e3f6c532fc0c 100644
--- a/scp2/source/writer/file_writer.scp
+++ b/scp2/source/writer/file_writer.scp
@@ -27,19 +27,9 @@
#include "macros.inc"
-STD_UNO_LIB_FILE( gid_File_Lib_Swd , swd)
+STD_LIB_FILE( gid_File_Lib_Swd , swd)
-File gid_File_Lib_Hwpreader
- TXT_FILE_BODY;
- #ifdef UNX
- Name = STRING(CONCAT2(libhwp,UNXSUFFIX));
- #else
- Name = "hwp.dll";
- #endif
- Dir = SCP2_OOO_BIN_DIR;
- Styles = (PACKED, UNO_COMPONENT);
- RegistryID = gid_Starregistry_Services_Rdb;
-End
+SPECIAL_LIB_FILE(gid_File_Lib_Hwpreader, hwp)
File gid_File_Exe_Swriter
BIN_FILE_BODY;
diff --git a/scripting/java/Framework/com/sun/star/script/framework/security/SecurityDialog.java b/scripting/java/Framework/com/sun/star/script/framework/security/SecurityDialog.java
index c90e58881835..242c800b48db 100644
--- a/scripting/java/Framework/com/sun/star/script/framework/security/SecurityDialog.java
+++ b/scripting/java/Framework/com/sun/star/script/framework/security/SecurityDialog.java
@@ -215,11 +215,6 @@ XInitialization {
return xSingleServiceFactory;
}
- public static boolean __writeRegistryServiceInfo( XRegistryKey regKey ) {
- return FactoryHelper.writeRegistryServiceInfo(
- SecurityDialog.class.getName(), SecurityDialog.__serviceName, regKey );
- }
-
// XServiceInfo
public String getImplementationName( ) {
return getClass().getName();
diff --git a/scripting/java/ScriptFramework.component b/scripting/java/ScriptFramework.component
new file mode 100644
index 000000000000..d6f9a8f62bf4
--- /dev/null
+++ b/scripting/java/ScriptFramework.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Java2"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.script.framework.security.SecurityDialog">
+ <service name="com.sun.star.script.framework.security.SecurityDialog"/>
+ </implementation>
+</component>
diff --git a/scripting/java/ScriptProviderForBeanShell.component b/scripting/java/ScriptProviderForBeanShell.component
new file mode 100644
index 000000000000..fe040d71d90d
--- /dev/null
+++ b/scripting/java/ScriptProviderForBeanShell.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Java2"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.script.framework.provider.beanshell.ScriptProviderForBeanShell$_ScriptProviderForBeanShell">
+ <service name="com.sun.star.script.browse.BrowseNode"/>
+ <service name="com.sun.star.script.provider.LanguageScriptProvider"/>
+ <service name="com.sun.star.script.provider.ScriptProvider"/>
+ <service name="com.sun.star.script.provider.ScriptProviderForBeanShell"/>
+ </implementation>
+</component>
diff --git a/scripting/java/ScriptProviderForJava.component b/scripting/java/ScriptProviderForJava.component
new file mode 100644
index 000000000000..4ea6ea8a1086
--- /dev/null
+++ b/scripting/java/ScriptProviderForJava.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Java2"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.script.framework.provider.java.ScriptProviderForJava$_ScriptProviderForJava">
+ <service name="com.sun.star.script.browse.BrowseNode"/>
+ <service name="com.sun.star.script.provider.LanguageScriptProvider"/>
+ <service name="com.sun.star.script.provider.ScriptProvider"/>
+ <service name="com.sun.star.script.provider.ScriptProviderForJava"/>
+ </implementation>
+</component>
diff --git a/scripting/java/ScriptProviderForJavaScript.component b/scripting/java/ScriptProviderForJavaScript.component
new file mode 100644
index 000000000000..e9725d865983
--- /dev/null
+++ b/scripting/java/ScriptProviderForJavaScript.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Java2"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.script.framework.provider.javascript.ScriptProviderForJavaScript$_ScriptProviderForJavaScript">
+ <service name="com.sun.star.script.browse.BrowseNode"/>
+ <service name="com.sun.star.script.provider.LanguageScriptProvider"/>
+ <service name="com.sun.star.script.provider.ScriptProvider"/>
+ <service name="com.sun.star.script.provider.ScriptProviderForJavaScript"/>
+ </implementation>
+</component>
diff --git a/scripting/java/com/sun/star/script/framework/provider/beanshell/ScriptProviderForBeanShell.java b/scripting/java/com/sun/star/script/framework/provider/beanshell/ScriptProviderForBeanShell.java
index d3a0fdf3bc82..95c727881427 100755
--- a/scripting/java/com/sun/star/script/framework/provider/beanshell/ScriptProviderForBeanShell.java
+++ b/scripting/java/com/sun/star/script/framework/provider/beanshell/ScriptProviderForBeanShell.java
@@ -123,41 +123,6 @@ public class ScriptProviderForBeanShell
return xSingleServiceFactory;
}
-
-
- /**
- * Writes the service information into the given registry key.
- * This method is called by the <code>JavaLoader</code>
- * <p>
- *
- * @param regKey the registryKey
- * @return returns true if the operation succeeded
- * @see com.sun.star.comp.loader.JavaLoader
- */
- public static boolean __writeRegistryServiceInfo( XRegistryKey regKey )
- {
- String impl = "com.sun.star.script.framework.provider.beanshell." +
- "ScriptProviderForBeanShell$_ScriptProviderForBeanShell";
-
- String service1 = "com.sun.star.script.provider." +
- "ScriptProvider";
- String service2 = "com.sun.star.script.provider." +
- "LanguageScriptProvider";
- String service3 = "com.sun.star.script.provider." +
- "ScriptProviderForBeanShell";
- String service4 = "com.sun.star.script.browse." +
- "BrowseNode";
-
- if ( FactoryHelper.writeRegistryServiceInfo(impl, service1, regKey) &&
- FactoryHelper.writeRegistryServiceInfo(impl, service2, regKey) &&
- FactoryHelper.writeRegistryServiceInfo(impl, service3, regKey) &&
- FactoryHelper.writeRegistryServiceInfo(impl, service4, regKey) )
- {
- return true;
- }
- return false;
- }
-
}
class ScriptImpl implements XScript
diff --git a/scripting/java/com/sun/star/script/framework/provider/java/ScriptProviderForJava.java b/scripting/java/com/sun/star/script/framework/provider/java/ScriptProviderForJava.java
index f4160531c9db..707ea05624d9 100755
--- a/scripting/java/com/sun/star/script/framework/provider/java/ScriptProviderForJava.java
+++ b/scripting/java/com/sun/star/script/framework/provider/java/ScriptProviderForJava.java
@@ -134,41 +134,6 @@ public class ScriptProviderForJava
return xSingleServiceFactory;
}
-
-
- /**
- * Writes the service information into the given registry key.
- * This method is called by the <code>JavaLoader</code>
- * <p>
- *
- * @param regKey the registryKey
- * @return returns true if the operation succeeded
- * @see com.sun.star.comp.loader.JavaLoader
- */
- public static boolean __writeRegistryServiceInfo( XRegistryKey regKey )
- {
- String impl = "com.sun.star.script.framework.provider.java." +
- "ScriptProviderForJava$_ScriptProviderForJava";
-
- String service1 = "com.sun.star.script.provider." +
- "ScriptProvider";
- String service2 = "com.sun.star.script.provider." +
- "LanguageScriptProvider";
- String service3 = "com.sun.star.script.provider." +
- "ScriptProviderForJava";
- String service4 = "com.sun.star.script.browse." +
- "BrowseNode";
-
- if ( FactoryHelper.writeRegistryServiceInfo(impl, service1, regKey) &&
- FactoryHelper.writeRegistryServiceInfo(impl, service2, regKey) &&
- FactoryHelper.writeRegistryServiceInfo(impl, service3, regKey) &&
- FactoryHelper.writeRegistryServiceInfo(impl, service4, regKey) )
- {
- return true;
- }
- return false;
- }
-
}
class ScriptImpl implements XScript
diff --git a/scripting/java/com/sun/star/script/framework/provider/javascript/ScriptProviderForJavaScript.java b/scripting/java/com/sun/star/script/framework/provider/javascript/ScriptProviderForJavaScript.java
index c053b4166063..9f04d9105374 100755
--- a/scripting/java/com/sun/star/script/framework/provider/javascript/ScriptProviderForJavaScript.java
+++ b/scripting/java/com/sun/star/script/framework/provider/javascript/ScriptProviderForJavaScript.java
@@ -124,40 +124,6 @@ public class ScriptProviderForJavaScript
return xSingleServiceFactory;
}
-
-
- /**
- * Writes the service information into the given registry key.
- * This method is called by the <code>JavaLoader</code>
- * <p>
- *
- * @param regKey the registryKey
- * @return returns true if the operation succeeded
- * @see com.sun.star.comp.loader.JavaLoader
- */
- public static boolean __writeRegistryServiceInfo( XRegistryKey regKey )
- {
- String impl = "com.sun.star.script.framework.provider.javascript." +
- "ScriptProviderForJavaScript$_ScriptProviderForJavaScript";
-
- String service1 = "com.sun.star.script.provider." +
- "ScriptProvider";
- String service2 = "com.sun.star.script.provider." +
- "LanguageScriptProvider";
- String service3 = "com.sun.star.script.provider." +
- "ScriptProviderForJavaScript";
- String service4 = "com.sun.star.script.browse." +
- "BrowseNode";
-
- if ( FactoryHelper.writeRegistryServiceInfo(impl, service1, regKey) &&
- FactoryHelper.writeRegistryServiceInfo(impl, service2, regKey) &&
- FactoryHelper.writeRegistryServiceInfo(impl, service3, regKey) &&
- FactoryHelper.writeRegistryServiceInfo(impl, service4, regKey) )
- {
- return true;
- }
- return false;
- }
}
class ScriptImpl implements XScript
{
diff --git a/scripting/java/makefile.mk b/scripting/java/makefile.mk
index 6a5a81bf978c..dc8ee1abdc46 100755
--- a/scripting/java/makefile.mk
+++ b/scripting/java/makefile.mk
@@ -36,3 +36,37 @@ TARGET=scriptruntimeforjava
ALLTAR : ANTBUILD
.ENDIF
.ENDIF
+
+ALLTAR : \
+ $(MISC)/ScriptFramework.component \
+ $(MISC)/ScriptProviderForBeanShell.component \
+ $(MISC)/ScriptProviderForJava.component \
+ $(MISC)/ScriptProviderForJavaScript.component
+
+$(MISC)/ScriptFramework.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt ScriptFramework.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_JAVA)ScriptFramework.jar' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt ScriptFramework.component
+
+$(MISC)/ScriptProviderForBeanShell.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt \
+ ScriptProviderForBeanShell.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_JAVA)ScriptProviderForBeanShell.jar' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt \
+ ScriptProviderForBeanShell.component
+
+$(MISC)/ScriptProviderForJava.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt ScriptProviderForJava.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_JAVA)ScriptProviderForJava.jar' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt ScriptProviderForJava.component
+
+$(MISC)/ScriptProviderForJavaScript.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt \
+ ScriptProviderForJavaScript.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_JAVA)ScriptProviderForJavaScript.jar' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt \
+ ScriptProviderForJavaScript.component
diff --git a/scripting/prj/d.lst b/scripting/prj/d.lst
index ef216fe84f8a..4b9d435af7a0 100644
--- a/scripting/prj/d.lst
+++ b/scripting/prj/d.lst
@@ -15,3 +15,15 @@ mkdir: %_DEST%\bin%_EXT%\pyuno
..\source\storage\storage.xml %_DEST%\xml%_EXT%\storage.xml
..\%__SRC%\lib\lib*static*.dylib %_DEST%\lib%_EXT%\lib*static*.dylib
+..\%__SRC%\misc\mailmerge.component %_DEST%\xml%_EXT%\mailmerge.component
+..\%__SRC%\misc\pythonscript.component %_DEST%\xml%_EXT%\pythonscript.component
+..\%__SRC%\misc\ScriptFramework.component %_DEST%\xml%_EXT%\ScriptFramework.component
+..\%__SRC%\misc\ScriptProviderForBeanShell.component %_DEST%\xml%_EXT%\ScriptProviderForBeanShell.component
+..\%__SRC%\misc\ScriptProviderForJava.component %_DEST%\xml%_EXT%\ScriptProviderForJava.component
+..\%__SRC%\misc\ScriptProviderForJavaScript.component %_DEST%\xml%_EXT%\ScriptProviderForJavaScript.component
+..\%__SRC%\misc\basprov.component %_DEST%\xml%_EXT%\basprov.component
+..\%__SRC%\misc\dlgprov.component %_DEST%\xml%_EXT%\dlgprov.component
+..\%__SRC%\misc\protocolhandler.component %_DEST%\xml%_EXT%\protocolhandler.component
+..\%__SRC%\misc\scriptframe.component %_DEST%\xml%_EXT%\scriptframe.component
+..\%__SRC%\misc\stringresource.component %_DEST%\xml%_EXT%\stringresource.component
+..\%__SRC%\misc\vbaevents.component %_DEST%\xml%_EXT%\vbaevents.component
diff --git a/scripting/source/basprov/basprov.component b/scripting/source/basprov/basprov.component
new file mode 100644
index 000000000000..528ab6544e1e
--- /dev/null
+++ b/scripting/source/basprov/basprov.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.scripting.ScriptProviderForBasic">
+ <service name="com.sun.star.script.browse.BrowseNode"/>
+ <service name="com.sun.star.script.provider.LanguageScriptProvider"/>
+ <service name="com.sun.star.script.provider.ScriptProvider"/>
+ <service name="com.sun.star.script.provider.ScriptProviderForBasic"/>
+ </implementation>
+</component>
diff --git a/scripting/source/basprov/basprov.cxx b/scripting/source/basprov/basprov.cxx
index 69cc6f40cd3d..ed6c9d7e6a5b 100644
--- a/scripting/source/basprov/basprov.cxx
+++ b/scripting/source/basprov/basprov.cxx
@@ -589,13 +589,6 @@ extern "C"
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
- SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- lang::XMultiServiceFactory * pServiceManager, registry::XRegistryKey * pRegistryKey )
- {
- return ::cppu::component_writeInfoHelper(
- pServiceManager, pRegistryKey, ::basprov::s_component_entries );
- }
-
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
const sal_Char * pImplName, lang::XMultiServiceFactory * pServiceManager,
registry::XRegistryKey * pRegistryKey )
diff --git a/scripting/source/basprov/makefile.mk b/scripting/source/basprov/makefile.mk
index 5001e5db288e..c98f961e6bd3 100644
--- a/scripting/source/basprov/makefile.mk
+++ b/scripting/source/basprov/makefile.mk
@@ -71,3 +71,11 @@ SHL1LIBS=$(SLB)$/$(TARGET).lib
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/basprov.component
+
+$(MISC)/basprov.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ basprov.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt basprov.component
diff --git a/scripting/source/dlgprov/dlgprov.component b/scripting/source/dlgprov/dlgprov.component
new file mode 100644
index 000000000000..f7ceed336cf6
--- /dev/null
+++ b/scripting/source/dlgprov/dlgprov.component
@@ -0,0 +1,36 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.scripting.DialogProvider">
+ <service name="com.sun.star.awt.ContainerWindowProvider"/>
+ <service name="com.sun.star.awt.DialogProvider"/>
+ <service name="com.sun.star.awt.DialogProvider2"/>
+ </implementation>
+</component>
diff --git a/scripting/source/dlgprov/dlgprov.cxx b/scripting/source/dlgprov/dlgprov.cxx
index 0fc0778c71d9..ffa128381d39 100644
--- a/scripting/source/dlgprov/dlgprov.cxx
+++ b/scripting/source/dlgprov/dlgprov.cxx
@@ -853,13 +853,6 @@ extern "C"
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
- sal_Bool SAL_CALL component_writeInfo(
- lang::XMultiServiceFactory * pServiceManager, registry::XRegistryKey * pRegistryKey )
- {
- return ::cppu::component_writeInfoHelper(
- pServiceManager, pRegistryKey, ::dlgprov::s_component_entries );
- }
-
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, lang::XMultiServiceFactory * pServiceManager,
registry::XRegistryKey * pRegistryKey )
diff --git a/scripting/source/dlgprov/makefile.mk b/scripting/source/dlgprov/makefile.mk
index 6c8ec298c760..111dca58edc2 100644
--- a/scripting/source/dlgprov/makefile.mk
+++ b/scripting/source/dlgprov/makefile.mk
@@ -80,3 +80,11 @@ $(MISC)$/$(TARGET).don : $(SOLARBINDIR)$/oovbaapi.rdb
+$(CPPUMAKER) -O$(INCCOM)$/$(TARGET) -BUCR $(SOLARBINDIR)$/oovbaapi.rdb -X$(SOLARBINDIR)$/types.rdb && echo > $@
echo $@
+
+ALLTAR : $(MISC)/dlgprov.component
+
+$(MISC)/dlgprov.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ dlgprov.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt dlgprov.component
diff --git a/scripting/source/protocolhandler/exports.dxp b/scripting/source/protocolhandler/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/scripting/source/protocolhandler/exports.dxp
+++ b/scripting/source/protocolhandler/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/scripting/source/protocolhandler/makefile.mk b/scripting/source/protocolhandler/makefile.mk
index c782c1a188f5..ec69c00b209d 100644
--- a/scripting/source/protocolhandler/makefile.mk
+++ b/scripting/source/protocolhandler/makefile.mk
@@ -61,3 +61,11 @@ DEF1EXPORTFILE= exports.dxp
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/protocolhandler.component
+
+$(MISC)/protocolhandler.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt protocolhandler.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt protocolhandler.component
diff --git a/scripting/source/protocolhandler/protocolhandler.component b/scripting/source/protocolhandler/protocolhandler.component
new file mode 100644
index 000000000000..db177a896ca4
--- /dev/null
+++ b/scripting/source/protocolhandler/protocolhandler.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.ScriptProtocolHandler">
+ <service name="com.sun.star.frame.ProtocolHandler"/>
+ </implementation>
+</component>
diff --git a/scripting/source/protocolhandler/scripthandler.cxx b/scripting/source/protocolhandler/scripthandler.cxx
index 1e6adb6e7804..4e81426d7d53 100644
--- a/scripting/source/protocolhandler/scripthandler.cxx
+++ b/scripting/source/protocolhandler/scripthandler.cxx
@@ -537,27 +537,6 @@ extern "C"
*ppEnvironmentTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
}
- sal_Bool SAL_CALL component_writeInfo( void * pServiceManager ,
- void * pRegistryKey )
- {
- (void)pServiceManager;
-
- Reference< css::registry::XRegistryKey > xKey(
- reinterpret_cast< css::registry::XRegistryKey* >( pRegistryKey ) ) ;
-
- ::rtl::OUString aStr = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "/" ) );
- aStr +=
- ::scripting_protocolhandler::ScriptProtocolHandler::impl_getStaticImplementationName();
-
- aStr += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES" ) );
- Reference< css::registry::XRegistryKey > xNewKey = xKey->createKey( aStr );
- xNewKey->createKey(
- ::rtl::OUString::createFromAscii( ::scripting_protocolhandler::MYSERVICENAME )
- );
-
- return sal_True;
- }
-
void* SAL_CALL component_getFactory( const sal_Char * pImplementationName ,
void * pServiceManager ,
void * pRegistryKey )
diff --git a/scripting/source/provider/MasterScriptProvider.cxx b/scripting/source/provider/MasterScriptProvider.cxx
index dbade7172e6e..94ea78f80c73 100755
--- a/scripting/source/provider/MasterScriptProvider.cxx
+++ b/scripting/source/provider/MasterScriptProvider.cxx
@@ -982,42 +982,6 @@ extern "C"
}
/**
- * This function creates an implementation section in the registry and another subkey
- *
- * for each supported service.
- * @param pServiceManager the service manager
- * @param pRegistryKey the registry key
- */
- SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- lang::XMultiServiceFactory * pServiceManager,
- registry::XRegistryKey * pRegistryKey )
- {
- if (::cppu::component_writeInfoHelper( pServiceManager, pRegistryKey,
- ::scripting_runtimemgr::s_entries ))
- {
- try
- {
- // MasterScriptProviderFactory Mangager singleton
- registry::XRegistryKey * pKey =
- reinterpret_cast< registry::XRegistryKey * >(pRegistryKey);
-
- Reference< registry::XRegistryKey >xKey = pKey->createKey(
- OUSTR("com.sun.star.script.provider.MasterScriptProviderFactory/UNO/SINGLETONS/com.sun.star.script.provider.theMasterScriptProviderFactory"));
- xKey->setStringValue( OUSTR("com.sun.star.script.provider.MasterScriptProviderFactory") );
- // BrowseNodeFactory Mangager singleton
- xKey = pKey->createKey(
- OUSTR("com.sun.star.script.browse.BrowseNodeFactory/UNO/SINGLETONS/com.sun.star.script.browse.theBrowseNodeFactory"));
- xKey->setStringValue( OUSTR("com.sun.star.script.browse.BrowseNodeFactory") );
- return sal_True;
- }
- catch (Exception &)
- {
- }
- }
- return sal_False;
- }
-
- /**
* This function is called to get service factories for an implementation.
*
* @param pImplName name of implementation
diff --git a/scripting/source/provider/exports.dxp b/scripting/source/provider/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/scripting/source/provider/exports.dxp
+++ b/scripting/source/provider/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/scripting/source/pyprov/mailmerge.component b/scripting/source/pyprov/mailmerge.component
new file mode 100644
index 000000000000..dd6a65e9a1ce
--- /dev/null
+++ b/scripting/source/pyprov/mailmerge.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Python"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="org.openoffice.pyuno.MailMessage">
+ <service name="com.sun.star.mail.MailMessage"/>
+ </implementation>
+ <implementation name="org.openoffice.pyuno.MailServiceProvider">
+ <service name="com.sun.star.mail.MailServiceProvider"/>
+ </implementation>
+</component>
diff --git a/scripting/source/pyprov/makefile.mk b/scripting/source/pyprov/makefile.mk
index 3c0278595181..42c161adbbc8 100644
--- a/scripting/source/pyprov/makefile.mk
+++ b/scripting/source/pyprov/makefile.mk
@@ -47,3 +47,17 @@ $(DLLDEST)$/%.py: %.py
cp $? $@
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/mailmerge.component $(MISC)/pythonscript.component
+
+$(MISC)/mailmerge.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ mailmerge.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_PYTHON)mailmerge' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt mailmerge.component
+
+$(MISC)/pythonscript.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt pythonscript.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_PYTHON)pythonscript' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt pythonscript.component
diff --git a/scripting/source/pyprov/pythonscript.component b/scripting/source/pyprov/pythonscript.component
new file mode 100644
index 000000000000..08f895097203
--- /dev/null
+++ b/scripting/source/pyprov/pythonscript.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Python"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="org.openoffice.pyuno.LanguageScriptProviderForPython">
+ <service name="com.sun.star.script.provider.LanguageScriptProvider"/>
+ <service name="com.sun.star.script.provider.ScriptProviderForPython"/>
+ </implementation>
+</component>
diff --git a/scripting/source/runtimemgr/ScriptRuntimeManager.cxx b/scripting/source/runtimemgr/ScriptRuntimeManager.cxx
index 48f21367e762..4780d58acc88 100755
--- a/scripting/source/runtimemgr/ScriptRuntimeManager.cxx
+++ b/scripting/source/runtimemgr/ScriptRuntimeManager.cxx
@@ -486,68 +486,6 @@ extern "C"
}
/**
- * This function creates an implementation section in the registry and another subkey
- *
- * for each supported service.
- * @param pServiceManager the service manager
- * @param pRegistryKey the registry key
- */
- sal_Bool SAL_CALL component_writeInfo( lang::XMultiServiceFactory * pServiceManager,
- registry::XRegistryKey * pRegistryKey )
- {
- if (::cppu::component_writeInfoHelper( pServiceManager, pRegistryKey,
- ::scripting_runtimemgr::s_entries ))
- {
- try
- {
- // register RuntimeManager singleton
-
- registry::XRegistryKey * pKey =
- reinterpret_cast< registry::XRegistryKey * >(pRegistryKey);
-
- Reference< registry::XRegistryKey > xKey(
- pKey->createKey(
-
- OUSTR("drafts.com.sun.star.script.framework.runtime.ScriptRuntimeManager/UNO/SINGLETONS/drafts.com.sun.star.script.framework.runtime.theScriptRuntimeManager")));
- xKey->setStringValue( OUSTR("drafts.com.sun.star.script.framework.runtime.ScriptRuntimeManager") );
-
- // ScriptStorage Mangaer singleton
-
- xKey = pKey->createKey(
- OUSTR("drafts.com.sun.star.script.framework.storage.ScriptStorageManager/UNO/SINGLETONS/drafts.com.sun.star.script.framework.storage.theScriptStorageManager"));
- xKey->setStringValue( OUSTR("drafts.com.sun.star.script.framework.storage.ScriptStorageManager") );
- // Singleton entries are not handled by the setup process
- // below is the only alternative at the momement which
- // is to programmatically do this.
-
- // "Java" Runtime singleton entry
-
- xKey = pKey->createKey(
- OUSTR("com.sun.star.scripting.runtime.java.ScriptRuntimeForJava$_ScriptRuntimeForJava/UNO/SINGLETONS/drafts.com.sun.star.script.framework.runtime.theScriptRuntimeForJava"));
- xKey->setStringValue( OUSTR("drafts.com.sun.star.script.framework.runtime.ScriptRuntimeForJava") );
-
- // "JavaScript" Runtime singleton entry
-
- xKey = pKey->createKey(
- OUSTR("com.sun.star.scripting.runtime.javascript.ScriptRuntimeForJavaScript$_ScriptRuntimeForJavaScript/UNO/SINGLETONS/drafts.com.sun.star.script.framework.runtime.theScriptRuntimeForJavaScript"));
- xKey->setStringValue( OUSTR("drafts.com.sun.star.script.framework.runtime.ScriptRuntimeForJavaScript") );
-
- // "BeanShell" Runtime singleton entry
-
- xKey = pKey->createKey(
- OUSTR("com.sun.star.scripting.runtime.beanshell.ScriptRuntimeForBeanShell$_ScriptRuntimeForBeanShell/UNO/SINGLETONS/drafts.com.sun.star.script.framework.runtime.theScriptRuntimeForBeanShell"));
- xKey->setStringValue( OUSTR("drafts.com.sun.star.script.framework.runtime.ScriptRuntimeForBeanShell") );
-
- return sal_True;
- }
- catch (Exception & exc)
- {
- }
- }
- return sal_False;
- }
-
- /**
* This function is called to get service factories for an implementation.
*
* @param pImplName name of implementation
diff --git a/scripting/source/runtimemgr/exports.dxp b/scripting/source/runtimemgr/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/scripting/source/runtimemgr/exports.dxp
+++ b/scripting/source/runtimemgr/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/scripting/source/storage/exports.dxp b/scripting/source/storage/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/scripting/source/storage/exports.dxp
+++ b/scripting/source/storage/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/scripting/source/stringresource/makefile.mk b/scripting/source/stringresource/makefile.mk
index dfc2d1979190..71f8ee39e748 100644
--- a/scripting/source/stringresource/makefile.mk
+++ b/scripting/source/stringresource/makefile.mk
@@ -60,3 +60,11 @@ SHL1LIBS=$(SLB)$/$(TARGET).lib
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/stringresource.component
+
+$(MISC)/stringresource.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt stringresource.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt stringresource.component
diff --git a/scripting/source/stringresource/stringresource.component b/scripting/source/stringresource/stringresource.component
new file mode 100644
index 000000000000..6d64d9553945
--- /dev/null
+++ b/scripting/source/stringresource/stringresource.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.scripting.StringResource">
+ <service name="com.sun.star.resource.StringResource"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.scripting.StringResourceWithLocation">
+ <service name="com.sun.star.resource.StringResourceWithLocation"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.scripting.StringResourceWithStorage">
+ <service name="com.sun.star.resource.StringResourceWithStorage"/>
+ </implementation>
+</component>
diff --git a/scripting/source/stringresource/stringresource.cxx b/scripting/source/stringresource/stringresource.cxx
index 58b6c21b522f..0c0e9dd454ca 100644
--- a/scripting/source/stringresource/stringresource.cxx
+++ b/scripting/source/stringresource/stringresource.cxx
@@ -3080,13 +3080,6 @@ extern "C"
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
- sal_Bool SAL_CALL component_writeInfo(
- lang::XMultiServiceFactory * pServiceManager, registry::XRegistryKey * pRegistryKey )
- {
- return ::cppu::component_writeInfoHelper(
- pServiceManager, pRegistryKey, ::stringresource::s_component_entries );
- }
-
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, lang::XMultiServiceFactory * pServiceManager,
registry::XRegistryKey * pRegistryKey )
diff --git a/scripting/source/vbaevents/makefile.mk b/scripting/source/vbaevents/makefile.mk
index 1946c61d1e0b..287bbe2b052b 100644..100755
--- a/scripting/source/vbaevents/makefile.mk
+++ b/scripting/source/vbaevents/makefile.mk
@@ -91,3 +91,11 @@ $(MISC)$/$(TARGET).don : $(SOLARBINDIR)$/oovbaapi.rdb
+$(CPPUMAKER) -O$(INCCOM)$/$(TARGET) -BUCR $(SOLARBINDIR)$/oovbaapi.rdb -X$(SOLARBINDIR)$/types.rdb && echo > $@
echo $@
+
+ALLTAR : $(MISC)/vbaevents.component
+
+$(MISC)/vbaevents.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ vbaevents.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt vbaevents.component
diff --git a/scripting/source/vbaevents/service.cxx b/scripting/source/vbaevents/service.cxx
index 9f38acb7e2a6..a6d4b287cfd6 100755
--- a/scripting/source/vbaevents/service.cxx
+++ b/scripting/source/vbaevents/service.cxx
@@ -110,16 +110,6 @@ extern "C"
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
- SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- lang::XMultiServiceFactory * pServiceManager, registry::XRegistryKey * pRegistryKey )
- {
- OSL_TRACE("In component_writeInfo");
- if ( ::cppu::component_writeInfoHelper(
- pServiceManager, pRegistryKey, s_component_entries ) )
- return sal_True;
- return sal_False;
- }
-
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
const sal_Char * pImplName, lang::XMultiServiceFactory * pServiceManager,
registry::XRegistryKey * pRegistryKey )
diff --git a/scripting/source/vbaevents/vbaevents.component b/scripting/source/vbaevents/vbaevents.component
new file mode 100644
index 000000000000..e8cbf3d88ff7
--- /dev/null
+++ b/scripting/source/vbaevents/vbaevents.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="ooo.vba.EventListener">
+ <service name="ooo.vba.EventListener"/>
+ </implementation>
+ <implementation name="ooo.vba.VBAToOOEventDesc">
+ <service name="ooo.vba.VBAToOOEventDesc"/>
+ </implementation>
+</component>
diff --git a/scripting/util/exports.dxp b/scripting/util/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/scripting/util/exports.dxp
+++ b/scripting/util/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/scripting/util/makefile.mk b/scripting/util/makefile.mk
index f18970f164f8..04435caab11f 100644
--- a/scripting/util/makefile.mk
+++ b/scripting/util/makefile.mk
@@ -65,3 +65,11 @@ DEF1EXPORTFILE= exports.dxp
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/scriptframe.component
+
+$(MISC)/scriptframe.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt scriptframe.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt scriptframe.component
diff --git a/scripting/util/scriptframe.component b/scripting/util/scriptframe.component
new file mode 100644
index 000000000000..5b3fe8c396d5
--- /dev/null
+++ b/scripting/util/scriptframe.component
@@ -0,0 +1,49 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.script.browse.BrowseNodeFactory">
+ <service name="com.sun.star.script.browse.BrowseNodeFactory"/>
+ <singleton name="com.sun.star.script.browse.theBrowseNodeFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.script.provider.MasterScriptProvider">
+ <service name="com.sun.star.script.browse.BrowseNode"/>
+ <service name="com.sun.star.script.provider.MasterScriptProvider"/>
+ <service name="com.sun.star.script.provider.ScriptProvider"/>
+ </implementation>
+ <implementation
+ name="com.sun.star.script.provider.MasterScriptProviderFactory">
+ <service name="com.sun.star.script.provider.MasterScriptProviderFactory"/>
+ <singleton
+ name="com.sun.star.script.provider.theMasterScriptProviderFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.script.provider.ScriptURIHelper">
+ <service name="com.sun.star.script.provider.ScriptURIHelper"/>
+ </implementation>
+</component>
diff --git a/sd/prj/build.lst b/sd/prj/build.lst
index 6b4f478b7c20..9e8bf7a1db1f 100644
--- a/sd/prj/build.lst
+++ b/sd/prj/build.lst
@@ -28,7 +28,7 @@ sd sd\source\ui\slidesorter\controller nmake - all sd_slscontroller sd_sdi sd_i
sd sd\source\ui\slidesorter\cache nmake - all sd_slscache sd_inc NULL
sd sd\source\ui\controller nmake - all sd_controller sd_inc NULL
sd sd\source\ui\notes nmake - all sd_notes sd_inc NULL
-sd sd\source\ui\table nmake - all sd_table sd_inc NULL
+sd sd\source\ui\table nmake - all sd_table sd_sdi sd_inc NULL
sd sd\source\filter\ppt nmake - all sd_ppt sd_inc NULL
sd sd\source\filter nmake - all sd_filt sd_sdi sd_ppt sd_inc NULL
sd sd\source\filter\cgm nmake - all sd_cgm sd_inc NULL
diff --git a/sd/prj/d.lst b/sd/prj/d.lst
index 14f85e982eab..0ebbb9a4eff0 100755
--- a/sd/prj/d.lst
+++ b/sd/prj/d.lst
@@ -55,3 +55,5 @@ mkdir: %_DEST%\inc%_EXT%\sd
..\uiconfig\sdraw\statusbar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\sdraw\statusbar\*.xml
..\uiconfig\simpress\statusbar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\simpress\statusbar\*.xml
+..\%__SRC%\misc\sd.component %_DEST%\xml%_EXT%\sd.component
+..\%__SRC%\misc\sdd.component %_DEST%\xml%_EXT%\sdd.component
diff --git a/sd/source/filter/eppt/eppt.cxx b/sd/source/filter/eppt/eppt.cxx
index 2a40c8707866..c4c2aa3dbee6 100644..100755
--- a/sd/source/filter/eppt/eppt.cxx
+++ b/sd/source/filter/eppt/eppt.cxx
@@ -265,6 +265,11 @@ PPTWriter::~PPTWriter()
void* pPtr;
delete mpExEmbed;
delete mpPptEscherEx;
+ delete mpCurUserStrm;
+ delete mpPicStrm;
+ delete mpStrm;
+
+
std::vector< PPTExStyleSheet* >::iterator aStyleSheetIter( maStyleSheetList.begin() );
while( aStyleSheetIter < maStyleSheetList.end() )
diff --git a/sd/source/filter/eppt/eppt.hxx b/sd/source/filter/eppt/eppt.hxx
index 3d8797beb328..b64affc9881b 100755
--- a/sd/source/filter/eppt/eppt.hxx
+++ b/sd/source/filter/eppt/eppt.hxx
@@ -727,9 +727,9 @@ class PPTWriter : public GroupTable, public PropValue, public PPTExBulletProvide
sal_uInt32 mnTextSize;
SvStorageRef mrStg;
- SvStorageStream* mpCurUserStrm;
- SvStorageStream* mpStrm;
- SvStorageStream* mpPicStrm;
+ SvStream* mpCurUserStrm;
+ SvStream* mpStrm;
+ SvStream* mpPicStrm;
PptEscherEx* mpPptEscherEx;
List maExOleObj;
diff --git a/sd/source/filter/ppt/propread.hxx b/sd/source/filter/ppt/propread.hxx
index cbb81b8cad1c..603dbe33ce32 100644..100755
--- a/sd/source/filter/ppt/propread.hxx
+++ b/sd/source/filter/ppt/propread.hxx
@@ -166,7 +166,7 @@ class Section : private List
class PropRead : private List
{
sal_Bool mbStatus;
- SvStorageStream* mpSvStream;
+ SvStorageStreamRef mpSvStream;
sal_uInt16 mnByteOrder;
sal_uInt16 mnFormat;
diff --git a/sd/source/ui/unoidl/detreg.cxx b/sd/source/ui/unoidl/detreg.cxx
index a45496d5d5a4..caf7e2730e75 100644..100755
--- a/sd/source/ui/unoidl/detreg.cxx
+++ b/sd/source/ui/unoidl/detreg.cxx
@@ -48,30 +48,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
*ppEnvironmentTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
}
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void* ,
- void* pRegistryKey )
-{
- Reference< ::registry::XRegistryKey >
- xKey( reinterpret_cast< ::registry::XRegistryKey* >( pRegistryKey ) ) ;
-
- ::rtl::OUString aDelimiter( RTL_CONSTASCII_USTRINGPARAM("/") );
- ::rtl::OUString aUnoServices( RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") );
-
- // Eigentliche Implementierung und ihre Services registrieren
- sal_Int32 i;
- Reference< ::registry::XRegistryKey > xNewKey;
-
- xNewKey = xKey->createKey( aDelimiter + SdFilterDetect::impl_getStaticImplementationName() +
- aUnoServices );
-
- Sequence< ::rtl::OUString > aServices = SdFilterDetect::impl_getStaticSupportedServiceNames();
- for(i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- return sal_True;
-}
-
SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/sd/source/ui/unoidl/facreg.cxx b/sd/source/ui/unoidl/facreg.cxx
index 1ac245ad00d4..7e82654887ae 100755
--- a/sd/source/ui/unoidl/facreg.cxx
+++ b/sd/source/ui/unoidl/facreg.cxx
@@ -303,115 +303,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-static void SAL_CALL writeInfo(
- registry::XRegistryKey * pRegistryKey,
- const OUString & rImplementationName,
- const uno::Sequence< OUString > & rServices )
-{
- uno::Reference< registry::XRegistryKey > xNewKey(
- pRegistryKey->createKey(
- OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) + rImplementationName + OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) ) );
-
- for( sal_Int32 i = 0; i < rServices.getLength(); i++ )
- xNewKey->createKey( rServices.getConstArray()[i]);
-}
-
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void * ,
- void * pRegistryKey )
-{
- if( pRegistryKey )
- {
- try
- {
- registry::XRegistryKey *pKey = reinterpret_cast< registry::XRegistryKey * >( pRegistryKey );
-
- writeInfo( pKey, SdHtmlOptionsDialog_getImplementationName(), SdHtmlOptionsDialog_getSupportedServiceNames() );
- writeInfo( pKey, SdDrawingDocument_getImplementationName(), SdDrawingDocument_getSupportedServiceNames() );
- writeInfo( pKey, SdPresentationDocument_getImplementationName(), SdPresentationDocument_getSupportedServiceNames() );
- writeInfo( pKey, SdUnoModule_getImplementationName(), SdUnoModule_getSupportedServiceNames() );
- writeInfo( pKey, sd::RandomNode__getImplementationName(), sd::RandomNode_getSupportedServiceNames() );
- writeInfo(
- pKey,
- sd::framework::Configuration_getImplementationName(),
- sd::framework::Configuration_getSupportedServiceNames());
- writeInfo(
- pKey,
- sd::framework::ConfigurationController_getImplementationName(),
- sd::framework::ConfigurationController_getSupportedServiceNames());
- writeInfo(
- pKey,
- sd::framework::ModuleController_getImplementationName(),
- sd::framework::ModuleController_getSupportedServiceNames());
- writeInfo(
- pKey,
- sd::framework::BasicPaneFactory_getImplementationName(),
- sd::framework::BasicPaneFactory_getSupportedServiceNames());
- writeInfo(
- pKey,
- sd::framework::BasicToolBarFactory_getImplementationName(),
- sd::framework::BasicToolBarFactory_getSupportedServiceNames());
- writeInfo(
- pKey,
- sd::framework::BasicViewFactory_getImplementationName(),
- sd::framework::BasicViewFactory_getSupportedServiceNames());
- writeInfo(
- pKey,
- sd::framework::TaskPanelFactory_getImplementationName(),
- sd::framework::TaskPanelFactory_getSupportedServiceNames());
- writeInfo(
- pKey,
- sd::toolpanel::ToolPanelFactory_getImplementationName(),
- sd::toolpanel::ToolPanelFactory_getSupportedServiceNames());
- writeInfo(
- pKey,
- sd::framework::ResourceId_getImplementationName(),
- sd::framework::ResourceId_getSupportedServiceNames());
- writeInfo(
- pKey,
- sd::framework::PresentationFactoryProvider_getImplementationName(),
- sd::framework::PresentationFactoryProvider_getSupportedServiceNames());
- writeInfo(
- pKey,
- sd::presenter::SlideRenderer_getImplementationName(),
- sd::presenter::SlideRenderer_getSupportedServiceNames());
- writeInfo(
- pKey,
- sd::presenter::PresenterCanvas_getImplementationName(),
- sd::presenter::PresenterCanvas_getSupportedServiceNames());
- writeInfo(
- pKey,
- sd::presenter::PresenterTextViewService_getImplementationName(),
- sd::presenter::PresenterTextViewService_getSupportedServiceNames());
- writeInfo(
- pKey,
- sd::presenter::PresenterHelperService_getImplementationName(),
- sd::presenter::PresenterHelperService_getSupportedServiceNames());
- writeInfo(
- pKey,
- sd::presenter::PresenterPreviewCache_getImplementationName(),
- sd::presenter::PresenterPreviewCache_getSupportedServiceNames());
- writeInfo(
- pKey,
- sd::slidesorter::SlideSorterService_getImplementationName(),
- sd::slidesorter::SlideSorterService_getSupportedServiceNames());
- writeInfo(
- pKey,
- sd::SlideLayoutController_getImplementationName(),
- sd::SlideLayoutController_getSupportedServiceNames());
- writeInfo(
- pKey,
- sd::InsertSlideController_getImplementationName(),
- sd::InsertSlideController_getSupportedServiceNames());
- }
- catch (registry::InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_True;
-}
-
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
const sal_Char * pImplName,
void * pServiceManager,
diff --git a/sd/util/exports.dxp b/sd/util/exports.dxp
index 0c2e3e7cddd7..0cb5620a1603 100644..100755
--- a/sd/util/exports.dxp
+++ b/sd/util/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory \ No newline at end of file
diff --git a/sd/util/makefile.mk b/sd/util/makefile.mk
index 8cc7bd3345e6..ac01158b5b85 100755
--- a/sd/util/makefile.mk
+++ b/sd/util/makefile.mk
@@ -276,3 +276,16 @@ $(MISC)$/$(SHL1TARGET).flt: makefile.mk
@echo Making: $@
@$(TYPE) sd.flt > $@
+ALLTAR : $(MISC)/sd.component $(MISC)/sdd.component
+
+$(MISC)/sd.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ sd.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt sd.component
+
+$(MISC)/sdd.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ sdd.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL2TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt sdd.component
diff --git a/sd/util/sd.component b/sd/util/sd.component
new file mode 100644
index 000000000000..0d0011b4839e
--- /dev/null
+++ b/sd/util/sd.component
@@ -0,0 +1,102 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.Draw.DrawingDocument">
+ <service name="com.sun.star.drawing.DrawingDocument"/>
+ <service name="com.sun.star.drawing.DrawingDocumentFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Draw.DrawingModule">
+ <service name="com.sun.star.drawing.ModuleDispatcher"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Draw.PresentationDocument">
+ <service name="com.sun.star.drawing.DrawingDocumentFactory"/>
+ <service name="com.sun.star.presentation.PresentationDocument"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Draw.PresenterCanvasFactory">
+ <service name="com.sun.star.rendering.Canvas"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Draw.PresenterHelper">
+ <service name="com.sun.star.drawing.PresenterHelper"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Draw.PresenterPreviewCache">
+ <service name="com.sun.star.drawing.PresenterPreviewCache"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Draw.PresenterTextView">
+ <service name="com.sun.star.drawing.PresenterTextView"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Draw.SlideRenderer">
+ <service name="com.sun.star.drawing.SlideRenderer"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Draw.SlideSorter">
+ <service name="com.sun.star.drawing.SlideSorter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Draw.framework.BasicPaneFactory">
+ <service name="com.sun.star.drawing.framework.BasicPaneFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Draw.framework.BasicToolBarFactory">
+ <service name="com.sun.star.drawing.framework.BasicToolBarFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Draw.framework.BasicViewFactory">
+ <service name="com.sun.star.drawing.framework.BasicViewFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Draw.framework.PresentationFactoryProvider">
+ <service name="com.sun.star.drawing.framework.PresentationFactoryProvider"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Draw.framework.ResourceId">
+ <service name="com.sun.star.drawing.framework.ResourceId"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Draw.framework.TaskPanelFactory">
+ <service name="com.sun.star.drawing.framework.TaskPanelFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Draw.framework.configuration.Configuration">
+ <service name="com.sun.star.drawing.framework.Configuration"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Draw.framework.configuration.ConfigurationController">
+ <service name="com.sun.star.drawing.framework.ConfigurationController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Draw.framework.module.ModuleController">
+ <service name="com.sun.star.drawing.framework.ModuleController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.draw.SdHtmlOptionsDialog">
+ <service name="com.sun.star.ui.dialog.FilterOptionsDialog"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.drawing.ToolPanelFactory">
+ <service name="com.sun.star.drawing.DefaultToolPanelFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.sd.InsertSlideController">
+ <service name="com.sun.star.frame.ToolbarController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.sd.SlideLayoutController">
+ <service name="com.sun.star.frame.ToolbarController"/>
+ </implementation>
+ <implementation name="sd::RandomAnimationNode">
+ <service name="com.sun.star.comp.sd.RandomAnimationNode"/>
+ </implementation>
+</component>
diff --git a/sd/util/sdd.component b/sd/util/sdd.component
new file mode 100644
index 000000000000..51160d0f04fe
--- /dev/null
+++ b/sd/util/sdd.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.draw.FormatDetector">
+ <service name="com.sun.star.frame.ExtendedTypeDetection"/>
+ </implementation>
+</component>
diff --git a/sdext/source/minimizer/makefile.mk b/sdext/source/minimizer/makefile.mk
index 969a0cb1f248..41581199fb54 100644
--- a/sdext/source/minimizer/makefile.mk
+++ b/sdext/source/minimizer/makefile.mk
@@ -76,7 +76,7 @@ SHL1DEPN=
SHL1IMPLIB= i$(SHL1TARGET)
SHL1LIBS= $(SLB)$/$(TARGET).lib
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-SHL1VERSIONMAP=$(SOLARENV)/src/component.map
+SHL1VERSIONMAP=$(SOLARENV)/src/reg-component.map
SHL1RPATH= OXT
DEF1NAME= $(SHL1TARGET)
diff --git a/sdext/source/pdfimport/makefile.mk b/sdext/source/pdfimport/makefile.mk
index 8a7f7de20e18..84440862cbb5 100755..100644
--- a/sdext/source/pdfimport/makefile.mk
+++ b/sdext/source/pdfimport/makefile.mk
@@ -90,7 +90,7 @@ SHL1STDLIBS=\
SHL1DEPN=
SHL1IMPLIB= i$(SHL1TARGET)
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-SHL1VERSIONMAP=$(SOLARENV)/src/component.map
+SHL1VERSIONMAP=$(SOLARENV)/src/reg-component.map
SHL1RPATH=OXT
DEF1NAME=$(SHL1TARGET)
diff --git a/sdext/source/presenter/makefile.mk b/sdext/source/presenter/makefile.mk
index a26cf54b3694..997d43054d3b 100644
--- a/sdext/source/presenter/makefile.mk
+++ b/sdext/source/presenter/makefile.mk
@@ -108,7 +108,7 @@ SHL1DEPN=
SHL1IMPLIB= i$(SHL1TARGET)
SHL1LIBS= $(SLB)$/$(TARGET).lib
SHL1DEF= $(MISC)$/$(SHL1TARGET).def
-SHL1VERSIONMAP=$(SOLARENV)/src/component.map
+SHL1VERSIONMAP=$(SOLARENV)/src/reg-component.map
SHL1RPATH= OXT
DEF1NAME= $(SHL1TARGET)
diff --git a/setup_native/scripts/admin.pl b/setup_native/scripts/admin.pl
index 3e058af172f6..ea186f5a8ba4 100644
--- a/setup_native/scripts/admin.pl
+++ b/setup_native/scripts/admin.pl
@@ -66,7 +66,6 @@ sub usage
{
print <<Ende;
----------------------------------------------------------------------
-$prog V1.0 (c) Sun Microsystems 2009
This program installs a Windows Installer installation set
without using msiexec.exe. The installation is comparable
with an administrative installation using the Windows Installer
diff --git a/sfx2/inc/sfx2/sfxuno.hxx b/sfx2/inc/sfx2/sfxuno.hxx
index fb331889a573..f9702063713a 100644
--- a/sfx2/inc/sfx2/sfxuno.hxx
+++ b/sfx2/inc/sfx2/sfxuno.hxx
@@ -73,7 +73,6 @@
#define UNOPROPERTYVALUE ::com::sun::star::beans::PropertyValue
#define UNOREFERENCE ::com::sun::star::uno::Reference
#define UNORUNTIMEEXCEPTION ::com::sun::star::uno::RuntimeException
-#define UNOINVALIDREGISTRYEXCEPTION ::com::sun::star::registry::InvalidRegistryException
#define UNOSEQUENCE ::com::sun::star::uno::Sequence
#define UNOTYPE ::com::sun::star::uno::Type
#define UNOURL ::com::sun::star::util::URL
@@ -591,52 +590,6 @@ sal_Bool GetPasswd_Impl( const SfxItemSet* pSet, ::rtl::OUString& rPasswd );
}
//************************************************************************************************************************
-// definition for "extern c component_writeInfo()"
-//************************************************************************************************************************
-#define COMPONENT_INFO(CLASS) \
- \
- try \
- { \
- /* Set default result of follow operations !!! */ \
- bReturn = sal_False ; \
- \
- /* Do the follow only, if given key is valid ! */ \
- if ( xKey.is () ) \
- { \
- /* Build new keyname */ \
- sKeyName = UNOOUSTRING::createFromAscii( "/" ) ; \
- sKeyName += CLASS::impl_getStaticImplementationName() ; \
- sKeyName += UNOOUSTRING::createFromAscii( "/UNO/SERVICES" ); \
- \
- /* Create new key with new name. */ \
- xNewKey = xKey->createKey( sKeyName ); \
- \
- /* If this new key valid ... */ \
- if ( xNewKey.is () ) \
- { \
- /* Get information about supported services. */ \
- seqServiceNames = CLASS::impl_getStaticSupportedServiceNames() ; \
- pArray = seqServiceNames.getArray() ; \
- nLength = seqServiceNames.getLength() ; \
- nCounter = 0 ; \
- \
- /* Then set this information on this key. */ \
- for ( nCounter = 0; nCounter < nLength; ++nCounter ) \
- { \
- xNewKey->createKey( pArray [nCounter] ); \
- } \
- \
- /* Result of this operations = OK. */ \
- bReturn = sal_True ; \
- } \
- } \
- } \
- catch( UNOINVALIDREGISTRYEXCEPTION& ) \
- { \
- bReturn = sal_False ; \
- } \
-
-//************************************************************************************************************************
// definition for "extern c component_getFactory()"
//************************************************************************************************************************
#define CREATEFACTORY(CLASS) \
diff --git a/sfx2/prj/d.lst b/sfx2/prj/d.lst
index 0748aa19cd65..0768000425eb 100644
--- a/sfx2/prj/d.lst
+++ b/sfx2/prj/d.lst
@@ -44,3 +44,4 @@ mkdir: %_DEST%\inc%_EXT%\sfx2
..\inc\mailmodelapi.hxx %_DEST%\inc%_EXT%\sfx2\mailmodelapi.hxx
..\inc\docinsert.hxx %_DEST%\inc%_EXT%\sfx2\docinsert.hxx
+..\%__SRC%\misc\sfx.component %_DEST%\xml%_EXT%\sfx.component
diff --git a/sfx2/source/appl/appuno.cxx b/sfx2/source/appl/appuno.cxx
index 6f9d3b258745..b0aae115aa9b 100755..100644
--- a/sfx2/source/appl/appuno.cxx
+++ b/sfx2/source/appl/appuno.cxx
@@ -2124,166 +2124,6 @@ SFX2_DLLPUBLIC void SAL_CALL component_getImplementationEnvironment(
*ppEnvironmentTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
}
-SFX2_DLLPUBLIC sal_Bool SAL_CALL component_writeInfo(
- void* ,
- void* pRegistryKey )
-{
- ::com::sun::star::uno::Reference< ::com::sun::star::registry::XRegistryKey > xKey( reinterpret_cast< ::com::sun::star::registry::XRegistryKey* >( pRegistryKey ) ) ;
-
- // register actual implementations and their services
- ::rtl::OUString aImpl;
- ::rtl::OUString aTempStr;
- ::rtl::OUString aKeyStr;
- Reference< XRegistryKey > xNewKey;
- Reference< XRegistryKey > xLoaderKey;
-
- // PluginObject
- aImpl = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- aImpl += ::sfx2::PluginObject::impl_getStaticImplementationName();
-
- aTempStr = aImpl;
- aTempStr += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
- xNewKey = xKey->createKey( aTempStr );
- xNewKey->createKey( ::rtl::OUString::createFromAscii("com.sun.star.frame.SpecialEmbeddedObject") );
-
- #if 0
- // AppletObject
- aImpl = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- aImpl += ::sfx2::AppletObject::impl_getStaticImplementationName();
-
- aTempStr = aImpl;
- aTempStr += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
- xNewKey = xKey->createKey( aTempStr );
- xNewKey->createKey( ::rtl::OUString::createFromAscii("com.sun.star.frame.SpecialEmbeddedObject") );
- #endif
-
- // IFrameObject
- aImpl = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- aImpl += ::sfx2::IFrameObject::impl_getStaticImplementationName();
-
- aTempStr = aImpl;
- aTempStr += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
- xNewKey = xKey->createKey( aTempStr );
- xNewKey->createKey( ::rtl::OUString::createFromAscii("com.sun.star.frame.SpecialEmbeddedObject") );
-
- // global app event broadcaster
- aImpl = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- aImpl += SfxGlobalEvents_Impl::impl_getStaticImplementationName();
-
- aTempStr = aImpl;
- aTempStr += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
- xNewKey = xKey->createKey( aTempStr );
- xNewKey->createKey( ::rtl::OUString::createFromAscii("com.sun.star.frame.GlobalEventBroadcaster") );
-
- // global app dispatcher
- aImpl = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- aImpl += SfxAppDispatchProvider::impl_getStaticImplementationName();
-
- aTempStr = aImpl;
- aTempStr += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
- xNewKey = xKey->createKey( aTempStr );
- xNewKey->createKey( ::rtl::OUString::createFromAscii("com.sun.star.frame.ProtocolHandler") );
-
- // standalone document info
- aImpl = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- aImpl += SfxStandaloneDocumentInfoObject::impl_getStaticImplementationName();
-
- aTempStr = aImpl;
- aTempStr += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
- xNewKey = xKey->createKey( aTempStr );
- xNewKey->createKey( ::rtl::OUString::createFromAscii("com.sun.star.document.StandaloneDocumentInfo") );
-
- // frame loader
- aImpl = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- aImpl += SfxFrameLoader_Impl::impl_getStaticImplementationName();
-
- aTempStr = aImpl;
- aTempStr += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
- xNewKey = xKey->createKey( aTempStr );
- Sequence < ::rtl::OUString > aServices = SfxFrameLoader_Impl::impl_getStaticSupportedServiceNames();
- sal_Int32 nCount = aServices.getLength();
- for ( sal_Int16 i=0; i<nCount; i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- // macro loader
- aImpl = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- aImpl += SfxMacroLoader::impl_getStaticImplementationName();
-
- aTempStr = aImpl;
- aTempStr += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
- xNewKey = xKey->createKey( aTempStr );
- xNewKey->createKey( ::rtl::OUString::createFromAscii("com.sun.star.frame.ProtocolHandler") );
-
- // - sfx document templates
- aImpl = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- aImpl += SfxDocTplService::impl_getStaticImplementationName();
-
- aTempStr = aImpl;
- aTempStr += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
- xNewKey = xKey->createKey( aTempStr );
- xNewKey->createKey( ::rtl::OUString::createFromAscii("com.sun.star.frame.DocumentTemplates") );
-
- // quickstart wrapper service
- aImpl = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- aImpl += ShutdownIcon::impl_getStaticImplementationName();
-
- aTempStr = aImpl;
- aTempStr += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
- xNewKey = xKey->createKey( aTempStr );
- xNewKey->createKey( ::rtl::OUString::createFromAscii("com.sun.star.office.Quickstart") );
-
- // application script library container service
- aImpl = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- aImpl += SfxApplicationScriptLibraryContainer::impl_getStaticImplementationName();
-
- aTempStr = aImpl;
- aTempStr += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
- xNewKey = xKey->createKey( aTempStr );
- xNewKey->createKey( ::rtl::OUString::createFromAscii("com.sun.star.script.ApplicationScriptLibraryContainer") );
-
- // application dialog library container service
- aImpl = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- aImpl += SfxApplicationDialogLibraryContainer::impl_getStaticImplementationName();
-
- aTempStr = aImpl;
- aTempStr += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
- xNewKey = xKey->createKey( aTempStr );
- xNewKey->createKey( ::rtl::OUString::createFromAscii("com.sun.star.script.ApplicationDialogLibraryContainer") );
-
- // converter of fs folders to packages
- aImpl = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- aImpl += OPackageStructureCreator::impl_getStaticImplementationName();
-
- aTempStr = aImpl;
- aTempStr += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
- xNewKey = xKey->createKey( aTempStr );
- Sequence< ::rtl::OUString > rServices = OPackageStructureCreator::impl_getStaticSupportedServiceNames();
- for( sal_Int32 ind = 0; ind < rServices.getLength(); ind++ )
- xNewKey->createKey( rServices.getConstArray()[ind] );
-
- // subfilter to parse a stream in OASIS format generated by the filter
- aImpl = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- aImpl += ::sfx2::OwnSubFilterService::impl_getStaticImplementationName();
-
- aTempStr = aImpl;
- aTempStr += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
- xNewKey = xKey->createKey( aTempStr );
- rServices = ::sfx2::OwnSubFilterService::impl_getStaticSupportedServiceNames();
- for( sal_Int32 ind = 0; ind < rServices.getLength(); ind++ )
- xNewKey->createKey( rServices.getConstArray()[ind] );
-
- // document meta data
- aImpl = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- aImpl += comp_SfxDocumentMetaData::_getImplementationName();
-
- aTempStr = aImpl;
- aTempStr += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
- xNewKey = xKey->createKey( aTempStr );
- xNewKey->createKey( ::rtl::OUString::createFromAscii("com.sun.star.document.DocumentProperties") );
-
- return sal_True;
-}
-
SFX2_DLLPUBLIC void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName ,
void* pServiceManager ,
diff --git a/sfx2/source/doc/SfxDocumentMetaData.cxx b/sfx2/source/doc/SfxDocumentMetaData.cxx
index 14474dd2904d..f18e903eb6e4 100644
--- a/sfx2/source/doc/SfxDocumentMetaData.cxx
+++ b/sfx2/source/doc/SfxDocumentMetaData.cxx
@@ -2380,12 +2380,5 @@ extern "C" void * SAL_CALL component_getFactory(
return ::cppu::component_getFactoryHelper(
implName, serviceManager, registryKey, entries);
}
-
-extern "C" sal_Bool SAL_CALL component_writeInfo(
- void * serviceManager, void * registryKey)
-{
- return ::cppu::component_writeInfoHelper(serviceManager, registryKey,
- entries);
-}
#endif
diff --git a/sfx2/source/menu/mnumgr.cxx b/sfx2/source/menu/mnumgr.cxx
index bc765b95340c..031594c647fb 100755
--- a/sfx2/source/menu/mnumgr.cxx
+++ b/sfx2/source/menu/mnumgr.cxx
@@ -60,6 +60,7 @@
#include <osl/file.hxx>
#include <vcl/graph.hxx>
#include <svtools/filter.hxx>
+#include <svl/lngmisc.hxx>
#include <sfx2/mnumgr.hxx>
@@ -244,7 +245,7 @@ PopupMenu* InsertThesaurusSubmenu_Impl( SfxBindings* pBindings, Menu* pSVMenu )
//! item ids should start with values > 0, since 0 has special meaning
const USHORT nId = i + 1;
- String aItemText( GetThesaurusReplaceText_Impl( aSynonyms[i] ) );
+ String aItemText( linguistic::GetThesaurusReplaceText( aSynonyms[i] ) );
pThesSubMenu->InsertItem( nId, aItemText );
::rtl::OUString aCmd( ::rtl::OUString::createFromAscii( ".uno:ThesaurusFromContext?WordReplace:string=" ) );
aCmd += aItemText;
diff --git a/sfx2/source/menu/thessubmenu.cxx b/sfx2/source/menu/thessubmenu.cxx
index de1137bd6a74..d82c0a6dbdf3 100755
--- a/sfx2/source/menu/thessubmenu.cxx
+++ b/sfx2/source/menu/thessubmenu.cxx
@@ -61,39 +61,6 @@ SFX_IMPL_MENU_CONTROL(SfxThesSubMenuControl, SfxStringItem);
////////////////////////////////////////////////////////////
-String GetThesaurusReplaceText_Impl( const ::rtl::OUString &rText )
-{
- // The strings returned by the thesaurus sometimes have some
- // explanation text put in between '(' and ')' or a trailing '*'.
- // These parts should not be put in the ReplaceEdit Text that may get
- // inserted into the document. Thus we strip them from the text.
-
- String aText( rText );
-
- xub_StrLen nPos = aText.Search( sal_Unicode('(') );
- while (STRING_NOTFOUND != nPos)
- {
- xub_StrLen nEnd = aText.Search( sal_Unicode(')'), nPos );
- if (STRING_NOTFOUND != nEnd)
- aText.Erase( nPos, nEnd-nPos+1 );
- else
- break;
- nPos = aText.Search( sal_Unicode('(') );
- }
-
- nPos = aText.Search( sal_Unicode('*') );
- if (STRING_NOTFOUND != nPos)
- aText.Erase( nPos );
-
- // remove any possible remaining ' ' that may confuse the thesaurus
- // when it gets called with the text
- aText.EraseLeadingAndTrailingChars( sal_Unicode(' ') );
-
- return aText;
-}
-
-////////////////////////////////////////////////////////////
-
/*
Ctor; setzt Select-Handler am Menu und traegt Menu
diff --git a/sfx2/source/menu/thessubmenu.hxx b/sfx2/source/menu/thessubmenu.hxx
index 14d7473cb7c0..0b86a534de52 100644..100755
--- a/sfx2/source/menu/thessubmenu.hxx
+++ b/sfx2/source/menu/thessubmenu.hxx
@@ -46,10 +46,6 @@ namespace css = ::com::sun::star;
////////////////////////////////////////////////////////////
-String GetThesaurusReplaceText_Impl( const ::rtl::OUString &rText );
-
-////////////////////////////////////////////////////////////
-
class SfxThesSubMenuControl : public SfxMenuControl
{
PopupMenu* pMenu;
diff --git a/sfx2/util/makefile.mk b/sfx2/util/makefile.mk
index 2d93e7692d86..f520e2097e7e 100644
--- a/sfx2/util/makefile.mk
+++ b/sfx2/util/makefile.mk
@@ -162,3 +162,11 @@ SHL3NOCHECK=TRUE
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/sfx.component
+
+$(MISC)/sfx.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ sfx.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt sfx.component
diff --git a/sfx2/util/sfx.component b/sfx2/util/sfx.component
new file mode 100644
index 000000000000..1c28afd4177f
--- /dev/null
+++ b/sfx2/util/sfx.component
@@ -0,0 +1,75 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="SfxDocumentMetaData">
+ <service name="com.sun.star.document.DocumentProperties"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.desktop.QuickstartWrapper">
+ <service name="com.sun.star.office.Quickstart"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.document.OwnSubFilter">
+ <service name="com.sun.star.comp.document.OwnSubFilter"/>
+ <service name="com.sun.star.document.OwnSubFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.embed.PackageStructureCreator">
+ <service name="com.sun.star.comp.embed.PackageStructureCreator"/>
+ <service name="com.sun.star.embed.PackageStructureCreator"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.office.FrameLoader">
+ <service name="com.sun.star.frame.SynchronousFrameLoader"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.sfx2.AppDispatchProvider">
+ <service name="com.sun.star.frame.ProtocolHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.sfx2.ApplicationDialogLibraryContainer">
+ <service name="com.sun.star.script.ApplicationDialogLibraryContainer"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.sfx2.ApplicationScriptLibraryContainer">
+ <service name="com.sun.star.script.ApplicationScriptLibraryContainer"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.sfx2.DocumentTemplates">
+ <service name="com.sun.star.frame.DocumentTemplates"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.sfx2.GlobalEventBroadcaster">
+ <service name="com.sun.star.frame.GlobalEventBroadcaster"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.sfx2.IFrameObject">
+ <service name="com.sun.star.frame.SpecialEmbeddedObject"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.sfx2.PluginObject">
+ <service name="com.sun.star.frame.SpecialEmbeddedObject"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.sfx2.SfxMacroLoader">
+ <service name="com.sun.star.frame.ProtocolHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.sfx2.StandaloneDocumentInfo">
+ <service name="com.sun.star.document.StandaloneDocumentInfo"/>
+ </implementation>
+</component>
diff --git a/shell/prj/d.lst b/shell/prj/d.lst
index ea8be0bbaf04..3ef183dbdf42 100644
--- a/shell/prj/d.lst
+++ b/shell/prj/d.lst
@@ -10,6 +10,7 @@
..\%__SRC%\bin\x64\propertyhdl.dll %_DEST%\bin%_EXT%\propertyhdl_x64.dll
..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
..\%__SRC%\lib\*.a %_DEST%\lib%_EXT%\*.a
+..\%__SRC%\misc\cmdmail.component %_DEST%\xml%_EXT%\cmdmail.component
..\%__SRC%\bin\open-url %_DEST%\bin%_EXT%\open-url
..\%__SRC%\bin\cde-open-url %_DEST%\bin%_EXT%\cde-open-url
@@ -21,5 +22,13 @@
..\%__SRC%\misc\*.xml %_DEST%\xml%_EXT%\*.xml
-..\%__SRC%\misc\*-ucd.txt %_DEST%\bin%_EXT%\*-ucd.txt
+..\%__SRC%\misc\desktopbe1.component %_DEST%\xml%_EXT%\desktopbe1.component
+..\%__SRC%\misc\gconfbe1.component %_DEST%\xml%_EXT%\gconfbe1.component
+..\%__SRC%\misc\kde4be1.component %_DEST%\xml%_EXT%\kde4be1.component
+..\%__SRC%\misc\kdebe1.component %_DEST%\xml%_EXT%\kdebe1.component
..\inc\kde_headers.h %_DEST%\inc%_EXT%\shell\kde_headers.h
+..\%__SRC%\misc\localebe1.component %_DEST%\xml%_EXT%\localebe1.component
+..\%__SRC%\misc\macbe1.component %_DEST%\xml%_EXT%\macbe1.component
+..\%__SRC%\misc\smplmail.component %_DEST%\xml%_EXT%\smplmail.component
+..\%__SRC%\misc\syssh.component %_DEST%\xml%_EXT%\syssh.component
+..\%__SRC%\misc\wininetbe1.component %_DEST%\xml%_EXT%\wininetbe1.component
diff --git a/shell/source/backends/desktopbe/desktopbackend.cxx b/shell/source/backends/desktopbe/desktopbackend.cxx
index 21371755b479..e628e8e1b830 100644
--- a/shell/source/backends/desktopbe/desktopbackend.cxx
+++ b/shell/source/backends/desktopbe/desktopbackend.cxx
@@ -282,9 +282,3 @@ component_getImplementationEnvironment(
{
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey)
-{
- return component_writeInfoHelper(pServiceManager, pRegistryKey, services);
-}
diff --git a/shell/source/backends/desktopbe/desktopbe1-ucd.txt b/shell/source/backends/desktopbe/desktopbe1-ucd.txt
deleted file mode 100644
index fd874a82ead5..000000000000
--- a/shell/source/backends/desktopbe/desktopbe1-ucd.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-[ComponentDescriptor]
-ImplementationName=com.sun.star.comp.configuration.backend.DesktopBackend
-ComponentName=desktopbe1.uno.so
-LoaderName=com.sun.star.loader.SharedLibrary
-[SupportedServices]
-com.sun.star.configuration.backend.DesktopBackend
diff --git a/shell/source/backends/desktopbe/desktopbe1.component b/shell/source/backends/desktopbe/desktopbe1.component
new file mode 100644
index 000000000000..9ef142107698
--- /dev/null
+++ b/shell/source/backends/desktopbe/desktopbe1.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.configuration.backend.DesktopBackend">
+ <service name="com.sun.star.configuration.backend.DesktopBackend"/>
+ </implementation>
+</component>
diff --git a/shell/source/backends/desktopbe/makefile.mk b/shell/source/backends/desktopbe/makefile.mk
index 29260821d551..66ad8cf99e1e 100644
--- a/shell/source/backends/desktopbe/makefile.mk
+++ b/shell/source/backends/desktopbe/makefile.mk
@@ -48,6 +48,12 @@ SHL1TARGET = desktopbe1.uno
SHL1USE_EXPORTS = name
DEF1NAME = $(SHL1TARGET)
-UNIXTEXT = $(MISC)/desktopbe1-ucd.txt
-
.INCLUDE: target.mk
+
+ALLTAR : $(MISC)/desktopbe1.component
+
+$(MISC)/desktopbe1.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ desktopbe1.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt desktopbe1.component
diff --git a/shell/source/backends/gconfbe/gconfbackend.cxx b/shell/source/backends/gconfbe/gconfbackend.cxx
index 122d1cad02b3..fb3fdb114305 100644
--- a/shell/source/backends/gconfbe/gconfbackend.cxx
+++ b/shell/source/backends/gconfbe/gconfbackend.cxx
@@ -231,9 +231,3 @@ component_getImplementationEnvironment(
{
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey)
-{
- return component_writeInfoHelper(pServiceManager, pRegistryKey, services);
-}
diff --git a/shell/source/backends/gconfbe/gconfbe1-ucd.txt b/shell/source/backends/gconfbe/gconfbe1-ucd.txt
deleted file mode 100644
index daa5444ff0c5..000000000000
--- a/shell/source/backends/gconfbe/gconfbe1-ucd.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-[ComponentDescriptor]
-ImplementationName=com.sun.star.comp.configuration.backend.GconfBackend
-ComponentName=gconfbe1.uno.so
-LoaderName=com.sun.star.loader.SharedLibrary
-[SupportedServices]
-com.sun.star.configuration.backend.GconfBackend
diff --git a/shell/source/backends/gconfbe/gconfbe1.component b/shell/source/backends/gconfbe/gconfbe1.component
new file mode 100644
index 000000000000..7638e05b544a
--- /dev/null
+++ b/shell/source/backends/gconfbe/gconfbe1.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.configuration.backend.GconfBackend">
+ <service name="com.sun.star.configuration.backend.GconfBackend"/>
+ </implementation>
+</component>
diff --git a/shell/source/backends/gconfbe/makefile.mk b/shell/source/backends/gconfbe/makefile.mk
index a8d9b23aa9df..9e77a0867ab0 100644
--- a/shell/source/backends/gconfbe/makefile.mk
+++ b/shell/source/backends/gconfbe/makefile.mk
@@ -39,7 +39,6 @@ VISIBILITY_HIDDEN=TRUE
# no "lib" prefix
DLLPRE =
-UCDSRCEXT = txt
.IF "$(ENABLE_LOCKDOWN)" == "YES"
CFLAGS+=-DENABLE_LOCKDOWN
@@ -89,8 +88,10 @@ DEF1NAME=$(SHL1TARGET)
.INCLUDE : target.mk
-ALLTAR : $(MISC)/$(TARGET)1-ucd.txt
-
-$(MISC)/$(TARGET)1-ucd.txt : $$(@:b).$(UCDSRCEXT)
- cat $< | tr -d "\015" > $@
+ALLTAR : $(MISC)/gconfbe1.component
+$(MISC)/gconfbe1.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ gconfbe1.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt gconfbe1.component
diff --git a/shell/source/backends/kde4be/kde4backend.cxx b/shell/source/backends/kde4be/kde4backend.cxx
index 44ddb49bd025..2bf3d144a5dc 100644
--- a/shell/source/backends/kde4be/kde4backend.cxx
+++ b/shell/source/backends/kde4be/kde4backend.cxx
@@ -250,9 +250,3 @@ component_getImplementationEnvironment(
{
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey)
-{
- return component_writeInfoHelper(pServiceManager, pRegistryKey, services);
-}
diff --git a/shell/source/backends/kde4be/kde4be1-ucd.txt b/shell/source/backends/kde4be/kde4be1-ucd.txt
deleted file mode 100644
index 9671199b26e3..000000000000
--- a/shell/source/backends/kde4be/kde4be1-ucd.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-[ComponentDescriptor]
-ImplementationName=com.sun.star.comp.configuration.backend.KDE4Backend
-ComponentName=kde4be1.uno.so
-LoaderName=com.sun.star.loader.SharedLibrary
-[SupportedServices]
-com.sun.star.configuration.backend.KDE4Backend
diff --git a/shell/source/backends/kde4be/kde4be1.component b/shell/source/backends/kde4be/kde4be1.component
new file mode 100644
index 000000000000..8ea7ae121088
--- /dev/null
+++ b/shell/source/backends/kde4be/kde4be1.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.configuration.backend.KDE4Backend">
+ <service name="com.sun.star.configuration.backend.KDE4Backend"/>
+ </implementation>
+</component>
diff --git a/shell/source/backends/kde4be/makefile.mk b/shell/source/backends/kde4be/makefile.mk
index 1f9093a95aee..477e47ca6100 100644
--- a/shell/source/backends/kde4be/makefile.mk
+++ b/shell/source/backends/kde4be/makefile.mk
@@ -44,8 +44,6 @@ VISIBILITY_HIDDEN=TRUE
CFLAGSCXX+=-Wno-shadow
.ENDIF
-UNIXTEXT=$(MISC)/$(TARGET)1-ucd.txt
-
# no "lib" prefix
DLLPRE =
@@ -79,3 +77,11 @@ DEF1NAME=$(SHL1TARGET)
# --- Targets ---
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/kde4be1.component
+
+$(MISC)/kde4be1.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ kde4be1.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt kde4be1.component
diff --git a/shell/source/backends/kdebe/kdebackend.cxx b/shell/source/backends/kdebe/kdebackend.cxx
index 53a00cf35987..ad38a6cfc854 100644
--- a/shell/source/backends/kdebe/kdebackend.cxx
+++ b/shell/source/backends/kdebe/kdebackend.cxx
@@ -250,9 +250,3 @@ component_getImplementationEnvironment(
{
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey)
-{
- return component_writeInfoHelper(pServiceManager, pRegistryKey, services);
-}
diff --git a/shell/source/backends/kdebe/kdebe1-ucd.txt b/shell/source/backends/kdebe/kdebe1-ucd.txt
deleted file mode 100644
index adf7e17431f8..000000000000
--- a/shell/source/backends/kdebe/kdebe1-ucd.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-[ComponentDescriptor]
-ImplementationName=com.sun.star.comp.configuration.backend.KDEBackend
-ComponentName=kdebe1.uno.so
-LoaderName=com.sun.star.loader.SharedLibrary
-[SupportedServices]
-com.sun.star.configuration.backend.KDEBackend
diff --git a/shell/source/backends/kdebe/kdebe1.component b/shell/source/backends/kdebe/kdebe1.component
new file mode 100644
index 000000000000..393fbc80d538
--- /dev/null
+++ b/shell/source/backends/kdebe/kdebe1.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.configuration.backend.KDEBackend">
+ <service name="com.sun.star.configuration.backend.KDEBackend"/>
+ </implementation>
+</component>
diff --git a/shell/source/backends/kdebe/makefile.mk b/shell/source/backends/kdebe/makefile.mk
index 31bf77b47b54..b1b12ad3c6f3 100644
--- a/shell/source/backends/kdebe/makefile.mk
+++ b/shell/source/backends/kdebe/makefile.mk
@@ -44,8 +44,6 @@ VISIBILITY_HIDDEN=TRUE
CFLAGSCXX+=-Wno-shadow
.ENDIF
-UNIXTEXT=$(MISC)/$(TARGET)1-ucd.txt
-
# no "lib" prefix
DLLPRE =
@@ -79,3 +77,11 @@ DEF1NAME=$(SHL1TARGET)
# --- Targets ---
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/kdebe1.component
+
+$(MISC)/kdebe1.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ kdebe1.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt kdebe1.component
diff --git a/shell/source/backends/localebe/localebe1.component b/shell/source/backends/localebe/localebe1.component
new file mode 100644
index 000000000000..7236a6198281
--- /dev/null
+++ b/shell/source/backends/localebe/localebe1.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.configuration.backend.LocaleBackend">
+ <service name="com.sun.star.configuration.backend.LocaleBackend"/>
+ </implementation>
+</component>
diff --git a/shell/source/backends/localebe/localebecdef.cxx b/shell/source/backends/localebe/localebecdef.cxx
index 576501e4da9f..0ec9c0665125 100644
--- a/shell/source/backends/localebe/localebecdef.cxx
+++ b/shell/source/backends/localebe/localebecdef.cxx
@@ -72,13 +72,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment(
//------------------------------------------------------------------------------
-extern "C" sal_Bool SAL_CALL component_writeInfo(void * pServiceManager, void *pRegistryKey) {
- return cppu::component_writeInfoHelper(
- pServiceManager, pRegistryKey, kImplementations_entries);
-}
-
-//------------------------------------------------------------------------------
-
extern "C" void *component_getFactory( const sal_Char *aImplementationName,
void *aServiceManager,
void *aRegistryKey) {
diff --git a/shell/source/backends/localebe/makefile.mk b/shell/source/backends/localebe/makefile.mk
index bd12bcdb28ce..1efe3ed5e498 100644
--- a/shell/source/backends/localebe/makefile.mk
+++ b/shell/source/backends/localebe/makefile.mk
@@ -70,3 +70,11 @@ DEF1NAME=$(SHL1TARGET)
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/localebe1.component
+
+$(MISC)/localebe1.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ localebe1.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt localebe1.component
diff --git a/shell/source/backends/macbe/macbe1.component b/shell/source/backends/macbe/macbe1.component
new file mode 100644
index 000000000000..10bac2e2b6a0
--- /dev/null
+++ b/shell/source/backends/macbe/macbe1.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.configuration.backend.MacOSXBackend">
+ <service name="com.sun.star.configuration.backend.MacOSXBackend"/>
+ </implementation>
+</component>
diff --git a/shell/source/backends/macbe/macbecdef.cxx b/shell/source/backends/macbe/macbecdef.cxx
index 18cf2806c16b..ab49bbb779f3 100644
--- a/shell/source/backends/macbe/macbecdef.cxx
+++ b/shell/source/backends/macbe/macbecdef.cxx
@@ -73,13 +73,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment(
//------------------------------------------------------------------------------
-extern "C" sal_Bool SAL_CALL component_writeInfo(void * pServiceManager, void *pRegistryKey) {
- return cppu::component_writeInfoHelper(
- pServiceManager, pRegistryKey, kImplementations_entries);
-}
-
-//------------------------------------------------------------------------------
-
extern "C" void *component_getFactory( const sal_Char *aImplementationName, void *aServiceManager, void *aRegistryKey)
{
diff --git a/shell/source/backends/macbe/makefile.mk b/shell/source/backends/macbe/makefile.mk
index c3a58ec9f5c6..dd20834b2635 100644
--- a/shell/source/backends/macbe/makefile.mk
+++ b/shell/source/backends/macbe/makefile.mk
@@ -76,3 +76,11 @@ DEF1NAME=$(SHL1TARGET)
.INCLUDE : target.mk
.ENDIF # "$(OS)" != "MACOSX"
+
+ALLTAR : $(MISC)/macbe1.component
+
+$(MISC)/macbe1.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ macbe1.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt macbe1.component
diff --git a/shell/source/backends/wininetbe/makefile.mk b/shell/source/backends/wininetbe/makefile.mk
index 9f79fa706fbf..7d8a6be14b21 100644
--- a/shell/source/backends/wininetbe/makefile.mk
+++ b/shell/source/backends/wininetbe/makefile.mk
@@ -66,3 +66,11 @@ DEF1NAME=$(SHL1TARGET)
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/wininetbe1.component
+
+$(MISC)/wininetbe1.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ wininetbe1.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt wininetbe1.component
diff --git a/shell/source/backends/wininetbe/wininetbe1.component b/shell/source/backends/wininetbe/wininetbe1.component
new file mode 100644
index 000000000000..d8930280fb2a
--- /dev/null
+++ b/shell/source/backends/wininetbe/wininetbe1.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.configuration.backend.WinInetBackend">
+ <service name="com.sun.star.configuration.backend.WinInetBackend"/>
+ </implementation>
+</component>
diff --git a/shell/source/backends/wininetbe/wininetbecdef.cxx b/shell/source/backends/wininetbe/wininetbecdef.cxx
index 862600009e30..ed6cdceb4a3e 100644
--- a/shell/source/backends/wininetbe/wininetbecdef.cxx
+++ b/shell/source/backends/wininetbe/wininetbecdef.cxx
@@ -73,13 +73,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment(
//------------------------------------------------------------------------------
-extern "C" sal_Bool SAL_CALL component_writeInfo(void * pServiceManager, void *pRegistryKey) {
- return cppu::component_writeInfoHelper(
- pServiceManager, pRegistryKey, kImplementations_entries);
-}
-
-//------------------------------------------------------------------------------
-
extern "C" void *component_getFactory( const sal_Char *aImplementationName,
void *aServiceManager,
void *aRegistryKey) {
diff --git a/shell/source/cmdmail/cmdmail.component b/shell/source/cmdmail/cmdmail.component
new file mode 100644
index 000000000000..7e56741d16c1
--- /dev/null
+++ b/shell/source/cmdmail/cmdmail.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.system.SimpleCommandMail">
+ <service name="com.sun.star.system.SimpleCommandMail"/>
+ </implementation>
+</component>
diff --git a/shell/source/cmdmail/cmdmailentry.cxx b/shell/source/cmdmail/cmdmailentry.cxx
index aacef87396c4..740f87cd76f1 100755
--- a/shell/source/cmdmail/cmdmailentry.cxx
+++ b/shell/source/cmdmail/cmdmailentry.cxx
@@ -54,7 +54,6 @@ using com::sun::star::system::XSimpleMailClientSupplier;
#define COMP_SERVICE_NAME "com.sun.star.system.SimpleCommandMail"
#define COMP_IMPL_NAME "com.sun.star.comp.system.SimpleCommandMail"
-#define COMP_REGKEY_NAME "/com.sun.star.comp.system.SimpleCommandMail/UNO/SERVICES/com.sun.star.system.SimpleCommandMail"
//-----------------------------------------------------------------------
//
@@ -85,29 +84,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-//-----------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------
-
-sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey )
-{
- if ( pRegistryKey )
- {
- try
- {
- Reference< XRegistryKey > pXNewKey( static_cast< XRegistryKey* >( pRegistryKey ) );
- pXNewKey->createKey( OUString( RTL_CONSTASCII_USTRINGPARAM( COMP_REGKEY_NAME ) ) );
- return sal_True;
- }
- catch( InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "InvalidRegistryException caught");
- }
- }
-
- return sal_False;
-}
-
//----------------------------------------------------------------------
// component_getFactory
//----------------------------------------------------------------------
diff --git a/shell/source/cmdmail/exports.dxp b/shell/source/cmdmail/exports.dxp
index 028ac4175990..f0e1c69934bc 100644
--- a/shell/source/cmdmail/exports.dxp
+++ b/shell/source/cmdmail/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/shell/source/cmdmail/makefile.mk b/shell/source/cmdmail/makefile.mk
index 5781afe8f5dd..e4d5ec48b925 100644
--- a/shell/source/cmdmail/makefile.mk
+++ b/shell/source/cmdmail/makefile.mk
@@ -62,3 +62,10 @@ DEF1NAME=$(SHL1TARGET)
.INCLUDE : target.mk
+ALLTAR : $(MISC)/cmdmail.component
+
+$(MISC)/cmdmail.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ cmdmail.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt cmdmail.component
diff --git a/shell/source/unix/exec/makefile.mk b/shell/source/unix/exec/makefile.mk
index 4bf77436f668..1a26d377b142 100644
--- a/shell/source/unix/exec/makefile.mk
+++ b/shell/source/unix/exec/makefile.mk
@@ -88,3 +88,11 @@ run_test : $(BIN)$/$(TESTAPP1).sh
$(BIN)$/$(TESTAPP1).sh : $$(@:f)
$(COPY) $< $@
-chmod +x $@
+
+ALLTAR : $(MISC)/syssh.component
+
+$(MISC)/syssh.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ syssh.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt syssh.component
diff --git a/shell/source/unix/exec/shellexecentry.cxx b/shell/source/unix/exec/shellexecentry.cxx
index da5e5613f955..d1eff582ea59 100644
--- a/shell/source/unix/exec/shellexecentry.cxx
+++ b/shell/source/unix/exec/shellexecentry.cxx
@@ -83,29 +83,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-//-----------------------------------------------------------------------
-// component_writeInfo
-//-----------------------------------------------------------------------
-
-sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- Reference< XRegistryKey > pXNewKey( static_cast< XRegistryKey* >( pRegistryKey ) );
- pXNewKey->createKey( OUString( RTL_CONSTASCII_USTRINGPARAM( SHELLEXEC_REGKEY_NAME ) ) );
- return sal_True;
- }
- catch( InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "InvalidRegistryException caught");
- }
- }
-
- return sal_False;
-}
-
//----------------------------------------------------------------------
// component_getFactory
//----------------------------------------------------------------------
diff --git a/shell/source/unix/exec/syssh.component b/shell/source/unix/exec/syssh.component
new file mode 100644
index 000000000000..030240dff3bf
--- /dev/null
+++ b/shell/source/unix/exec/syssh.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.system.SystemShellExecute">
+ <service name="com.sun.star.system.SystemShellExecute"/>
+ </implementation>
+</component>
diff --git a/shell/source/win32/SysShentry.cxx b/shell/source/win32/SysShentry.cxx
index a542d046fc59..727cfe269f07 100644
--- a/shell/source/win32/SysShentry.cxx
+++ b/shell/source/win32/SysShentry.cxx
@@ -85,32 +85,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ":affine";
}
-//-----------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------
-
-sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey )
-{
- sal_Bool bRetVal = sal_True;
-
- if ( pRegistryKey )
- {
- try
- {
- Reference< XRegistryKey > pXNewKey( static_cast< XRegistryKey* >( pRegistryKey ) );
- pXNewKey->createKey(
- OUString::createFromAscii( SYSSHEXEC_REGKEY_NAME ) );
- }
- catch( InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "InvalidRegistryException caught");
- bRetVal = sal_False;
- }
- }
-
- return bRetVal;
-}
-
//----------------------------------------------------------------------
// component_getFactory
// returns a factory to create XFilePicker-Services
diff --git a/shell/source/win32/exports.dxp b/shell/source/win32/exports.dxp
index 028ac4175990..f0e1c69934bc 100644
--- a/shell/source/win32/exports.dxp
+++ b/shell/source/win32/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/shell/source/win32/makefile.mk b/shell/source/win32/makefile.mk
index 9a9564ed76ca..7a01eefed89e 100644
--- a/shell/source/win32/makefile.mk
+++ b/shell/source/win32/makefile.mk
@@ -67,3 +67,11 @@ DEF1EXPORTFILE= exports.dxp
INCLUDE!:=$(subst,/stl, $(INCLUDE))
.EXPORT : INCLUDE
+
+ALLTAR : $(MISC)/syssh.component
+
+$(MISC)/syssh.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ syssh.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt syssh.component
diff --git a/shell/source/win32/simplemail/exports.dxp b/shell/source/win32/simplemail/exports.dxp
index 028ac4175990..f0e1c69934bc 100644
--- a/shell/source/win32/simplemail/exports.dxp
+++ b/shell/source/win32/simplemail/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/shell/source/win32/simplemail/makefile.mk b/shell/source/win32/simplemail/makefile.mk
index 84a209e4c072..abd35e408e2d 100644
--- a/shell/source/win32/simplemail/makefile.mk
+++ b/shell/source/win32/simplemail/makefile.mk
@@ -77,3 +77,11 @@ APP1DEF=$(MISC)$/$(APP1TARGET).def
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/smplmail.component
+
+$(MISC)/smplmail.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ smplmail.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt smplmail.component
diff --git a/shell/source/win32/simplemail/smplmail.component b/shell/source/win32/simplemail/smplmail.component
new file mode 100644
index 000000000000..59246c6d1551
--- /dev/null
+++ b/shell/source/win32/simplemail/smplmail.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.system.SimpleSystemMail">
+ <service name="com.sun.star.system.SimpleSystemMail"/>
+ </implementation>
+</component>
diff --git a/shell/source/win32/simplemail/smplmailentry.cxx b/shell/source/win32/simplemail/smplmailentry.cxx
index e65d93a95fca..9970baa28122 100644
--- a/shell/source/win32/simplemail/smplmailentry.cxx
+++ b/shell/source/win32/simplemail/smplmailentry.cxx
@@ -85,32 +85,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-//-----------------------------------------------------------------------
-//
-//-----------------------------------------------------------------------
-
-sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey )
-{
- sal_Bool bRetVal = sal_True;
-
- if ( pRegistryKey )
- {
- try
- {
- Reference< XRegistryKey > pXNewKey( static_cast< XRegistryKey* >( pRegistryKey ) );
- pXNewKey->createKey(
- OUString::createFromAscii( COMP_REGKEY_NAME ) );
- }
- catch( InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "InvalidRegistryException caught");
- bRetVal = sal_False;
- }
- }
-
- return bRetVal;
-}
-
//----------------------------------------------------------------------
// component_getFactory
// returns a factory to create XFilePicker-Services
diff --git a/shell/source/win32/syssh.component b/shell/source/win32/syssh.component
new file mode 100644
index 000000000000..1e783f5221ae
--- /dev/null
+++ b/shell/source/win32/syssh.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.system.SystemShellExecute">
+ <service name="com.sun.star.system.SystemShellExecute"/>
+ </implementation>
+</component>
diff --git a/slideshow/prj/d.lst b/slideshow/prj/d.lst
index 2015e1311834..f6707c2491f4 100644
--- a/slideshow/prj/d.lst
+++ b/slideshow/prj/d.lst
@@ -4,3 +4,5 @@
..\%__SRC%\lib\slideshow.uno.so %_DEST%\lib%_EXT%\slideshow.uno.so
..\%__SRC%\lib\OGLTrans.uno.so %_DEST%\lib%_EXT%\OGLTrans.uno.so
..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
+..\%__SRC%\misc\ogltrans.component %_DEST%\xml%_EXT%\ogltrans.component
+..\%__SRC%\misc\slideshow.component %_DEST%\xml%_EXT%\slideshow.component
diff --git a/slideshow/source/engine/OGLTrans/exports.dxp b/slideshow/source/engine/OGLTrans/exports.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/slideshow/source/engine/OGLTrans/exports.dxp
+++ b/slideshow/source/engine/OGLTrans/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/slideshow/source/engine/OGLTrans/makefile.mk b/slideshow/source/engine/OGLTrans/makefile.mk
index dd945a06b1aa..46d40b3e61a2 100644
--- a/slideshow/source/engine/OGLTrans/makefile.mk
+++ b/slideshow/source/engine/OGLTrans/makefile.mk
@@ -78,3 +78,11 @@ DEF1EXPORTFILE=exports.dxp
# ==========================================================================
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/ogltrans.component
+
+$(MISC)/ogltrans.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ ogltrans.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt ogltrans.component
diff --git a/slideshow/source/engine/OGLTrans/ogltrans.component b/slideshow/source/engine/OGLTrans/ogltrans.component
new file mode 100644
index 000000000000..89f2384b0d6c
--- /dev/null
+++ b/slideshow/source/engine/OGLTrans/ogltrans.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.presentation.OGLTransitionFactory">
+ <service name="com.sun.star.presentation.TransitionFactory"/>
+ </implementation>
+</component>
diff --git a/slideshow/util/exports.dxp b/slideshow/util/exports.dxp
index 0c2e3e7cddd7..0cb5620a1603 100644
--- a/slideshow/util/exports.dxp
+++ b/slideshow/util/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory \ No newline at end of file
diff --git a/slideshow/util/makefile.mk b/slideshow/util/makefile.mk
index def425b60469..9d9bee14a198 100644
--- a/slideshow/util/makefile.mk
+++ b/slideshow/util/makefile.mk
@@ -102,3 +102,11 @@ $(MISC)$/$(SHL2TARGET).flt: makefile.mk \
$(TARGET2).flt
+$(TYPE) $(TARGET2).flt > $@
+
+ALLTAR : $(MISC)/slideshow.component
+
+$(MISC)/slideshow.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ slideshow.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt slideshow.component
diff --git a/slideshow/util/slideshow.component b/slideshow/util/slideshow.component
new file mode 100644
index 000000000000..540c586f1ff5
--- /dev/null
+++ b/slideshow/util/slideshow.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.presentation.SlideShow">
+ <service name="com.sun.star.presentation.SlideShow"/>
+ </implementation>
+</component>
diff --git a/soldep/source/makefile.mk b/soldep/source/makefile.mk
index 5261ee5175f6..5f6b188a56d7 100644
--- a/soldep/source/makefile.mk
+++ b/soldep/source/makefile.mk
@@ -127,16 +127,6 @@ APP1OBJS= \
.INCLUDE : target.mk
-ALLTAR : $(BIN)$/applicat.rdb
-
-$(BIN)$/applicat.rdb : makefile.mk $(UNOUCRRDB)
- rm -f $@
- $(GNUCOPY) $(UNOUCRRDB) $@
- cd $(BIN) && \
- $(REGCOMP) -register -r applicat.rdb \
- -c i18nsearch.uno$(DLLPOST) \
- -c i18npool.uno$(DLLPOST)
-
$(MISC)$/$(SHL1TARGET).flt: makefile.mk
@echo ------------------------------
@echo Making: $@
diff --git a/solenv/bin/createcomponent.xslt b/solenv/bin/createcomponent.xslt
new file mode 100644
index 000000000000..7f7695d533b3
--- /dev/null
+++ b/solenv/bin/createcomponent.xslt
@@ -0,0 +1,51 @@
+<?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.
+*
+**********************************************************************-->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:uc="http://openoffice.org/2010/uno-components">
+ <xsl:param name="uri"/>
+ <xsl:strip-space elements="*"/>
+ <xsl:template match="uc:component">
+ <xsl:copy>
+ <xsl:apply-templates select="@*"/>
+ <xsl:attribute name="uri">
+ <xsl:value-of select="$uri"/>
+ </xsl:attribute>
+ <xsl:apply-templates/>
+ </xsl:copy>
+ </xsl:template>
+ <xsl:template match="*">
+ <xsl:copy>
+ <xsl:apply-templates select="@*"/>
+ <xsl:apply-templates/>
+ </xsl:copy>
+ </xsl:template>
+ <xsl:template match="@*">
+ <xsl:copy/>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/solenv/bin/make_installer.pl b/solenv/bin/make_installer.pl
index 335ecf961253..d28a2e7e3fa0 100644
--- a/solenv/bin/make_installer.pl
+++ b/solenv/bin/make_installer.pl
@@ -54,11 +54,9 @@ use installer::packagepool;
use installer::parameter;
use installer::pathanalyzer;
use installer::profiles;
-use installer::regmerge;
use installer::scppatchsoname;
use installer::scpzipfiles;
use installer::scriptitems;
-use installer::servicesfile;
use installer::setupscript;
use installer::simplepackage;
use installer::sorter;
@@ -892,43 +890,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ )
installer::worker::resolving_hidden_flag($filesinproductlanguageresolvedarrayref, $allvariableshashref, "File", $languagestringref);
if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles13c.log", $filesinproductlanguageresolvedarrayref); }
- #####################################
- # Creating services.rdb
- #####################################
-
- if ( $allvariableshashref->{'SERVICESPROJEKT'} )
- {
- if (! $installer::globals::languagepack)
- {
- # ATTENTION: For creating the services.rdb it is necessary to execute the native file
- # "regcomp" or "regcomp.exe". Therefore this function can only be executed on the
- # corresponding platform.
-
- if ( $installer::globals::servicesrdb_can_be_created )
- {
- installer::logger::print_message( "... creating preregistered services.rdb ...\n" );
-
- installer::servicesfile::create_services_rdb($allvariableshashref, $filesinproductlanguageresolvedarrayref, $includepatharrayref, $languagestringref);
- if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles14.log", $filesinproductlanguageresolvedarrayref); }
- }
- }
- }
-
- #####################################
- # Calls of regmerge
- #####################################
-
- if (!($installer::globals::is_copy_only_project))
- {
- if (! $installer::globals::languagepack)
- {
- installer::logger::print_message( "... merging files into registry database ...\n" );
-
- installer::regmerge::merge_registration_files($filesinproductlanguageresolvedarrayref, $includepatharrayref, $languagestringref, $allvariableshashref);
- if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles14b.log", $filesinproductlanguageresolvedarrayref); }
- }
- }
-
############################################
# Collecting directories for epm list file
############################################
diff --git a/solenv/bin/mhids.pl b/solenv/bin/mhids.pl
index f0abf2e5cdca..33f873bc386d 100644
--- a/solenv/bin/mhids.pl
+++ b/solenv/bin/mhids.pl
@@ -59,7 +59,10 @@ sub cleandie
print STDERR "$errstring\n";
if ( not $debug ) {
foreach my $i (@cleanuplist) {
- unlink "$workfile$i" if -f "$workfile$i" or print STDERR "ERROR - couldn't remove $workfile$i\n";
+# unlink "$workfile$i" if -f "$workfile$i" or print STDERR "ERROR - couldn't remove $workfile$i\n";
+ if ( -f "$workfile$i" ) {
+ unlink "$workfile$i" or print STDERR "ERROR - couldn't remove $workfile$i\n";
+ }
}
}
die "$erroreval\n";
@@ -387,6 +390,7 @@ rename("$srs/$filebase.hid.$ENV{INPATH}", "$srs/$filebase.hid") or cleandie("ERR
if ( not $debug ) {
foreach my $i (@cleanuplist) {
+ sleep 1;
if ( -f "$workfile$i" ) {
unlink "$workfile$i" or cleandie("");
}
diff --git a/solenv/bin/modules/SourceConfigHelper.pm b/solenv/bin/modules/SourceConfigHelper.pm
new file mode 100644
index 000000000000..84ffbe0ca3f7
--- /dev/null
+++ b/solenv/bin/modules/SourceConfigHelper.pm
@@ -0,0 +1,422 @@
+#*************************************************************************
+#
+# 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.
+#
+#*************************************************************************
+
+#*************************************************************************
+#
+# SourceConfigHelper - Perl extension for parsing general info databases
+#
+# usage: see below
+#
+#*************************************************************************
+
+package SourceConfigHelper;
+
+use strict;
+
+use RepositoryHelper;
+use SourceConfig;
+use Cwd qw (cwd);
+use Carp;
+
+my $debug = 0;
+my @source_config_list; # array of sourceconfig objects
+
+#-----------------------------------------------------------------------
+# Constants
+#-----------------------------------------------------------------------
+
+use constant SOURCE_CONFIG_NONE => 0;
+use constant SOURCE_CONFIG_CURRENT_FIRST => 1;
+use constant SOURCE_CONFIG_ENVIRONMENT_FIRST => 2;
+use constant SOURCE_CONFIG_CURRENT_ONLY => 3;
+use constant SOURCE_CONFIG_ENVIRONMENT_ONLY => 4;
+
+use constant SOURCE_CONFIG_DEFAULT => SOURCE_CONFIG_CURRENT_FIRST;
+
+##### profiling #####
+
+##### ctor #####
+
+sub new {
+ my $proto = shift;
+ my $class = ref($proto) || $proto;
+ my $init_action = shift;
+ my $self = {};
+ my $SourceConfigCurrent;
+ my $SourceConfigEnvironment;
+
+ $init_action = SOURCE_CONFIG_DEFAULT if (!defined ($init_action));
+ if (!eval ($init_action) or ($init_action < SOURCE_CONFIG_NONE) or ($init_action > SOURCE_CONFIG_ENVIRONMENT_ONLY)) {
+ croak("wrong initial parameter: $init_action\n");
+ }
+
+ if ($init_action != SOURCE_CONFIG_NONE) {
+ my $repositoryHash_ref = {};
+ if ($init_action != SOURCE_CONFIG_ENVIRONMENT_ONLY) {
+ my $initial_directory = cwd();
+ my $result = is_repository($initial_directory, $repositoryHash_ref);
+ if ($result) {
+ $SourceConfigCurrent = SourceConfig->new($repositoryHash_ref->{REPOSITORY_ROOT});
+ }
+ }
+ if ($init_action != SOURCE_CONFIG_CURRENT_ONLY) {
+ my $source_config = $ENV{SOURCE_ROOT_DIR} . '/' . SourceConfig::SOURCE_CONFIG_FILE_NAME;
+ if (-f $source_config) {
+ $SourceConfigEnvironment = SourceConfig->new($source_config);
+ }
+ }
+
+ # fill array
+
+ if (($init_action == SOURCE_CONFIG_CURRENT_FIRST) or ($init_action == SOURCE_CONFIG_CURRENT_ONLY)) {
+ if (defined ($SourceConfigCurrent)) {
+ push (@source_config_list, $SourceConfigCurrent);
+ }
+ if ($init_action == SOURCE_CONFIG_CURRENT_FIRST) {
+ if (defined ($SourceConfigEnvironment)) {
+ push (@source_config_list, $SourceConfigEnvironment);
+ }
+ }
+ }
+ elsif (($init_action == SOURCE_CONFIG_ENVIRONMENT_FIRST) or ($init_action == SOURCE_CONFIG_ENVIRONMENT_ONLY)) {
+ if (defined ($SourceConfigEnvironment)) {
+ push (@source_config_list, $SourceConfigEnvironment);
+ }
+ if ($init_action == SOURCE_CONFIG_ENVIRONMENT_FIRST) {
+ if (defined ($SourceConfigCurrent)) {
+ push (@source_config_list, $SourceConfigCurrent);
+ }
+ }
+ }
+ }
+
+ $self->{SOURCE_CONFIG_LIST} = \@source_config_list;
+
+ bless($self, $class);
+ return $self;
+}
+
+##### methods #####
+
+############################################################################################
+
+sub add_SourceConfig {
+ my $self = shift;
+ my $source_config = shift;
+ push (@{$self->{SOURCE_CONFIG_LIST}}, $source_config);
+}
+
+############################################################################################
+
+sub get_SourceConfigList {
+ my $self = shift;
+ return @{$self->{SOURCE_CONFIG_LIST}};
+}
+
+############################################################################################
+
+sub has_SourceConfig {
+ my $self = shift;
+ my $result = 0;
+ my $count = @{$self->{SOURCE_CONFIG_LIST}};
+ $result = 1 if ($count > 0);
+ return $result;
+}
+
+############################################################################################
+
+sub get_module_path {
+ my $self = shift;
+ my $module = shift;
+ my $function = \&SourceConfig::get_module_path;
+ my $result;
+ $result = $self->get_StringResult ($function, $module);
+ return $result;
+}
+
+############################################################################################
+
+sub get_active_modules {
+ my $self = shift;
+ my $parameter; # empty
+ my $function = \&SourceConfig::get_active_modules;
+ my $array_ref;
+ $array_ref = $self->get_ArrayResult ($function, $parameter);
+ return @$array_ref;
+}
+
+############################################################################################
+
+sub get_repositories {
+ my $self = shift;
+ my $parameter; # empty
+ my $function = \&SourceConfig::get_repositories;
+ my $array_ref;
+ $array_ref = $self->get_ArrayResult ($function, $parameter);
+ return @$array_ref;
+}
+
+############################################################################################
+
+sub get_module_repository {
+ my $self = shift;
+ my $module = shift;
+ my $function = \&SourceConfig::get_module_repository;
+ my $result;
+ $result = $self->get_StringResult ($function, $module);
+ return $result;
+}
+
+############################################################################################
+
+sub is_active {
+ my $self = shift;
+ my $module = shift;
+ my $function = \&SourceConfig::is_active;
+ my $result_ref;
+ my $is_active = 0;
+ $result_ref = $self->get_ResultOfList ($function, $module);
+ my $count = @$result_ref;
+ if ($count>0) {
+ foreach my $active (@$result_ref) {
+ if ($active) {
+ $is_active = $active;
+ }
+ }
+ }
+ return $is_active;
+}
+
+##### private methods #####
+
+############################################################################################
+#
+# is_repository () : check if the directory is a valid repository
+#
+# input: - directory
+# - hash reference, where the output will be stored
+#
+# output: 0 = FALSE, the directory is no valid repository
+# 1 = TRUE, the repository root can be found in $repositoryHash_ref->{REPOSITORY_ROOT}
+#
+############################################################################################
+
+sub is_repository {
+ my $directory = shift;
+ my $repositoryHash_ref = shift;
+ $repositoryHash_ref->{INITIAL_DIRECTORY} = $directory;
+ $repositoryHash_ref->{REPOSITORY_ROOT} = undef;
+ $repositoryHash_ref->{REPOSITORY_NAME} = undef;
+ my $result = RepositoryHelper::search_via_build_lst($repositoryHash_ref);
+ chdir $repositoryHash_ref->{INITIAL_DIRECTORY};
+ if (!$result) {
+ $result = RepositoryHelper::search_for_hg($repositoryHash_ref);
+ }
+ return $result;
+}
+
+############################################################################################
+#
+# get_ResultOfList(): give back an array reference from all SourceConfig Objects results
+#
+# input: - function : reference to the called function of each SourceConfig Object
+# - parameter : parameter for the called function
+#
+# output: result : array of all results
+#
+############################################################################################
+
+sub get_ResultOfList {
+ my $self = shift;
+ my $function = shift;
+ my $parameter = shift;
+ my @result;
+ foreach my $source_config (@{$self->{SOURCE_CONFIG_LIST}}) {
+ push (@result, &$function ($source_config, $parameter));
+ }
+ return \@result;
+}
+
+############################################################################################
+#
+# get_StringResult(): give back the first defined result from all SourceConfig Objects
+#
+# input: - function : reference to the called function of each SourceConfig Object
+# - parameter : parameter for the called function
+#
+# output: result : scalar variable (string), undef if no result
+#
+############################################################################################
+
+sub get_StringResult {
+ my $self = shift;
+ my $function = shift;
+ my $parameter = shift;
+ my $result_ref;
+ $result_ref = $self->get_ResultOfList ($function, $parameter);
+ my $count = @$result_ref;
+ if ($count>0) {
+ my $value;
+ my $i = 0;
+ while (($i < $count) and !defined ($value)) { # search the first defined result
+ $value = $$result_ref[$i];
+ $i++;
+ }
+ return $value;
+ }
+ return undef;
+}
+
+############################################################################################
+#
+# get_StringResult(): give back a sorted and uniqe array reference of the results
+# from all SourceConfig Objects
+#
+# input: - function : reference to the called function of each SourceConfig Object
+# - parameter : parameter for the called function
+#
+# output: result : sorted and uniqe array reference
+#
+############################################################################################
+
+sub get_ArrayResult {
+ my $self = shift;
+ my $function = shift;
+ my $parameter = shift;
+ my $result_ref;
+ my @modules;
+ $result_ref = $self->get_ResultOfList ($function, $parameter);
+ my $count = @$result_ref;
+ if ($count>0) {
+ my %moduleHash;
+ foreach my $module (@$result_ref) {
+ $moduleHash{$module}++;
+ }
+ @modules = sort keys %moduleHash;
+ }
+ return \@modules;
+}
+
+ ##### finish #####
+
+1; # needed by use or require
+
+__END__
+
+=head1 NAME
+
+SourceConfigHelper - Perl extension for handling with SourceConfigObjetcs
+
+=head1 SYNOPSIS
+
+ # example that will read source_config file and return the active repositories
+
+ use SourceConfigHelper;
+
+ # Create a new instance:
+ $a = SourceConfigHelper->new();
+
+ # Get repositories for the actual workspace:
+ $a->get_repositories();
+
+=head1 DESCRIPTION
+
+SourceConfigHelper is a perl extension to handle more than one objects of SourceConfig
+to set up a search order for modules.
+
+Methods:
+
+SourceConfigHelper::new()
+
+Creates a new instance of SourceConfigHelper. Can be initialized by: default - empty or with a constant of search order. default: the source_config will be taken first from the current repository and second from the environment
+Possible parameters are:
+SourceConfigHelper::SOURCE_CONFIG_NONE - no SourceConfig Object will be created
+SourceConfigHelper::SOURCE_CONFIG_CURRENT_FIRST - use the current repository first
+SourceConfigHelper::SOURCE_CONFIG_ENVIRONMENT_FIRST - use the repository of the environment first
+SourceConfigHelper::SOURCE_CONFIG_CURRENT_ONLY - use only the current repository
+SourceConfigHelper::SOURCE_CONFIG_ENVIRONMENT_ONLY - use only the repository of the environment
+
+SourceConfigHelper::get_repositories()
+
+Returns sorted list of active repositories for the actual workspace
+
+SourceConfigHelper::get_active_modules()
+
+Returns a sorted list of active modules
+
+SourceConfigHelper::get_all_modules()
+
+Returns sorted list of all modules in active repositories.
+
+SourceConfigHelper::get_module_path($module)
+
+Returns absolute module path. If the module is not active or don't exists, "undef" will be returned.
+
+SourceConfigHelper::get_module_repository($module)
+
+Returns the module's repository. If the module is not active or don't exists, "undef" will be returned.
+
+SourceConfigHelper::is_active()
+
+Returns 1 (TRUE) if a module is active
+Returns 0 (FALSE) if a module is not active
+
+SourceConfigHelper::add_SourceConfig($SourceConfigObject)
+
+Add the SourceConfigObject to the end of the list
+
+SourceConfigHelper::get_SourceConfigList()
+
+Return an array of SourceConfigObjects
+
+SourceConfigHelper::has_SourceConfig()
+
+Returns 1 (TRUE) if one or more SourceConfig Objects is in the list
+Returns 0 (FALSE) if no SourceConfig Object is in the list (can happen if there is no valid repository)
+
+=head2 EXPORT
+
+SourceConfigHelper::new()
+SourceConfigHelper::get_repositories()
+SourceConfigHelper::get_active_modules()
+SourceConfigHelper::get_all_modules()
+SourceConfigHelper::get_module_path($module)
+SourceConfigHelper::get_module_repository($module)
+SourceConfigHelper::is_active($module)
+SourceConfigHelper::add_SourceConfig($SourceConfigObject)
+SourceConfigHelper::get_SourceConfigList()
+SourceConfigHelper::has_SourceConfig()
+
+=head1 AUTHOR
+
+Kurt Zenker, kz@openoffice.org
+
+=head1 SEE ALSO
+
+perl(1).
+
+=cut
diff --git a/solenv/bin/modules/installer/environment.pm b/solenv/bin/modules/installer/environment.pm
index b54912b72616..98bdffb3122a 100644
--- a/solenv/bin/modules/installer/environment.pm
+++ b/solenv/bin/modules/installer/environment.pm
@@ -117,9 +117,6 @@ sub set_global_environment_variables
if ( $ENV{'LAST_MINOR'} ) { $installer::globals::lastminor = $ENV{'LAST_MINOR'}; }
if ( $ENV{'PROEXT'} ) { $installer::globals::pro = 1; }
- if ( $ENV{'SOLAR_JAVA'} ) { $installer::globals::solarjava = 1; }
- if ( $ENV{'JDKLIB'} ) { $installer::globals::jdklib = $ENV{'JDKLIB'}; }
- if ( $ENV{'JREPATH'} ) { $installer::globals::jrepath = $ENV{'JREPATH'}; }
if ( $ENV{'VERBOSE'} && ( (lc $ENV{'VERBOSE'}) eq "false" ) ) { $installer::globals::quiet = 1; }
if ( $ENV{'PREPARE_WINPATCH'} ) { $installer::globals::prepare_winpatch = 1; }
diff --git a/solenv/bin/modules/installer/globals.pm b/solenv/bin/modules/installer/globals.pm
index 582bd8c708b1..7d6e8c4a9b8f 100644
--- a/solenv/bin/modules/installer/globals.pm
+++ b/solenv/bin/modules/installer/globals.pm
@@ -118,8 +118,6 @@ BEGIN
$dounzip = 1;
$languages_defined_in_productlist = 0;
$setupscript_defined_in_productlist = 0;
- $services_rdb_created = 0;
- $servicesrdb_can_be_created = 0;
$islinux = 0;
$issolaris = 0;
$ismacosx = 0;
@@ -238,9 +236,6 @@ BEGIN
$creating_windows_installer_patch = 0;
$strip = 1;
- $solarjava = 0;
- $jdklib = "";
- $jrepath = "";
$globallogging = 0;
$globalloggingform21 = 1;
@@ -409,9 +404,6 @@ BEGIN
%usedtreeconditions = ();
%moduledestination = ();
- $unomaxservices = 1800; # regcomp -c argument length
- $javamaxservices = 15;
-
$one_cab_file = 0;
$fix_number_of_cab_files = 1;
$cab_file_per_component = 0;
@@ -454,8 +446,6 @@ BEGIN
@solarispatchfiles = (".diPatch", "patchinfo");
@environmentvariables = ( "SOLARVERSION", "GUI", "WORK_STAMP", "OUTPATH", "LOCAL_OUT", "LOCAL_COMMON_OUT" );
@packagelistitems = ("module", "solarispackagename", "packagename", "copyright", "vendor", "description" );
- @regcompjars = ( "unoil.jar", "java_uno.jar", "ridl.jar", "jurt.jar", "juh.jar", "xmerge.jar", "commonwizards.jar" );
- @regcompregisterlibs = ( "javavm.uno", "javaloader.uno", "stocservices.uno" );
@languagepackfeature =();
@featurecollector =();
$msiassemblyfiles = "";
@@ -502,7 +492,6 @@ BEGIN
$separator = "/";
$pathseparator = "\:";
$libextension = "\.dll";
- $quote = "\'";
$isunix = 0;
$iswin = 1;
$archiveformat = ".zip";
@@ -527,7 +516,6 @@ BEGIN
$libextension = "\.so";
}
$archiveformat = ".tar.gz";
- $quote = "\'";
$isunix = 1;
$iswin = 0;
}
diff --git a/solenv/bin/modules/installer/parameter.pm b/solenv/bin/modules/installer/parameter.pm
index d3ce8a1d3a32..70bc32e36c7c 100644
--- a/solenv/bin/modules/installer/parameter.pm
+++ b/solenv/bin/modules/installer/parameter.pm
@@ -368,19 +368,6 @@ sub setglobalvariables
if ( ! $installer::globals::packageformat ) { $installer::globals::packageformat = "native"; }
- # $installer::globals::servicesrdb_can_be_created can only be set, if regcomp (regcomp.exe) can be executed.
-
- if ( $installer::globals::iswin && $installer::globals::iswindowsbuild ) { $installer::globals::servicesrdb_can_be_created = 1; }
- if ( $installer::globals::islinux && $installer::globals::islinuxbuild ) { $installer::globals::servicesrdb_can_be_created = 1; }
- if ( $installer::globals::issolaris && $installer::globals::issolarisbuild ) { $installer::globals::servicesrdb_can_be_created = 1; }
-
- # ToDo: Needs to be expanded for additional compiler (setting $installer::globals::servicesrdb_can_be_created = 1 for all external platforms)
-
- if ((!($installer::globals::iswindowsbuild)) && (!($installer::globals::islinuxbuild)) && (!($installer::globals::issolarisbuild)))
- {
- $installer::globals::servicesrdb_can_be_created = 1;
- }
-
# extension, if $installer::globals::pro is set
if ($installer::globals::pro) { $installer::globals::productextension = ".pro"; }
@@ -638,8 +625,6 @@ sub outputparameter
if ( $installer::globals::debian ) { push(@output, "Linux: Creating Debian packages\n"); }
if ( $installer::globals::dounzip ) { push(@output, "Unzip ARCHIVE files\n"); }
else { push(@output, "Not unzipping ARCHIVE files\n"); }
- if ( $installer::globals::servicesrdb_can_be_created ) { push(@output, "services.rdb can be created\n"); }
- else { push(@output, "services.rdb cannot be created !\n"); }
if (!($installer::globals::languages_defined_in_productlist))
{
push(@output, "Languages:\n");
diff --git a/solenv/bin/modules/installer/regmerge.pm b/solenv/bin/modules/installer/regmerge.pm
deleted file mode 100644
index 1c2821549131..000000000000
--- a/solenv/bin/modules/installer/regmerge.pm
+++ /dev/null
@@ -1,340 +0,0 @@
-#*************************************************************************
-#
-# 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.
-#
-#*************************************************************************
-
-package installer::regmerge;
-
-use Cwd;
-use installer::converter;
-use installer::existence;
-use installer::exiter;
-use installer::globals;
-use installer::logger;
-use installer::pathanalyzer;
-use installer::remover;
-use installer::scriptitems;
-use installer::systemactions;
-
-################################################################
-# Collecting all files with content:
-# Regmergefile = "mydatabasepart.rdb";
-################################################################
-
-sub collect_all_regmergefiles
-{
- my ($filesarrayref) = @_;
-
- my @regmergefiles = ();
-
- for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ )
- {
- my $onefile = ${$filesarrayref}[$i];
- if ( $onefile->{'Regmergefile'} ) { push(@regmergefiles, $onefile); }
- }
-
- return \@regmergefiles;
-}
-
-################################################################
-# Collecting all gids of the databases, that are part of
-# the file definition
-################################################################
-
-sub collect_all_database_gids
-{
- my ($filesarrayref) = @_;
-
- my @databasegids = ();
-
- for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ )
- {
- my $onefile = ${$filesarrayref}[$i];
-
- if ( $onefile->{'RegistryID'} )
- {
- my $databasegid = $onefile->{'RegistryID'};
- if (! installer::existence::exists_in_array($databasegid, \@databasegids)) { push(@databasegids, $databasegid); }
- }
- else
- {
- installer::exiter::exit_program("ERROR: File defintion error. File :$onefile->{'gid'} without RegistryID!", "collect_all_database_gids");
- }
- }
-
- return \@databasegids;
-}
-
-################################################################
-# Returning the database file from the files collector. In the
-# future this file does not need to exist, but currently it
-# has to exist already in the files collector.
-################################################################
-
-sub get_database_file
-{
- my ($databasegid, $filesarrayref) = @_;
-
- my $found = 0;
- my $onefile;
-
- for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ )
- {
- $onefile = ${$filesarrayref}[$i];
- my $gid = $onefile->{'gid'};
-
- if ( $databasegid eq $gid )
- {
- $found = 1;
- last;
- }
- }
-
- if ( ! $found ) { installer::exiter::exit_program("ERROR: Did not find StarRegistry file $databasegid!", "get_database_file"); }
-
- return $onefile;
-}
-
-################################################################
-# The regmerge file has to be found the in include pathes
-################################################################
-
-sub get_regmerge_file
-{
- my ($includepatharrayref) = @_;
-
- my $searchname;
-
- if ($installer::globals::isunix) { $searchname = "regcomplazy"; }
- else { $searchname = "regcomplazy.exe"; }
-
- my $regmergefileref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$searchname, $includepatharrayref, 1);
- if ( $$regmergefileref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $searchname for merging the StarRegistry!", "get_regmerge_file"); }
-
- return $$regmergefileref;
-}
-
-################################################################
-# Collecting all files that are merged to one defined
-# StarRegistry database
-################################################################
-
-sub collect_all_files_for_one_registry
-{
- my ($regmergefiles, $databasegid) = @_;
-
- my @regmergefiles = ();
-
- for ( my $i = 0; $i <= $#{$regmergefiles}; $i++ )
- {
- my $onefile = ${$regmergefiles}[$i];
- if ( $onefile->{'RegistryID'} eq $databasegid ) { push(@regmergefiles, $onefile); }
- }
-
- return \@regmergefiles;
-}
-
-################################################################
-# Collecting all particles from the regmerge files
-################################################################
-
-sub collect_all_regmerge_particles
-{
- my ($databaseregisterfiles) = @_;
-
- my @regmergeparticles = ();
-
- for ( my $i = 0; $i <= $#{$databaseregisterfiles}; $i++ )
- {
- my $onefile = ${$databaseregisterfiles}[$i];
- if ( $onefile->{'Regmergefile'} ) { push(@regmergeparticles, $onefile->{'Regmergefile'}); }
- else { installer::exiter::exit_program("ERROR: Could not find entry for \"Regmergefile\" in $onefile->{'gid'}!", "collect_all_regmerge_particles"); }
- }
-
- return \@regmergeparticles;
-}
-
-################################################################
-# Collecting all source pathes of the regmerge particles
-################################################################
-
-sub get_all_source_pathes
-{
- my ($regmergeparticles, $includepatharrayref) = @_;
-
- my @regmergeparticles = ();
-
- for ( my $i = 0; $i <= $#{$regmergeparticles}; $i++ )
- {
- my $filename = ${$regmergeparticles}[$i];
-
- my $fileref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$filename, $includepatharrayref, 1);
- if ( $$fileref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $filename for merging the StarRegistry!", "get_all_source_pathes"); }
-
- push(@regmergeparticles, $$fileref);
- }
-
- return \@regmergeparticles;
-}
-
-################################################################
-# Merging the rdb files into the StarRegistry database
-################################################################
-
-sub merge_files
-{
- my ($regmergefile, $databasefile, $registerfiles, $databasedir, $allvariableshashref) = @_;
-
- my $databasesource = $databasefile->{'sourcepath'};
- my $databasename = $databasefile->{'Name'};
- my $databasedest = $databasedir . $installer::globals::separator . $databasename;
-
- installer::systemactions::copy_one_file($databasesource, $databasedest);
- $databasefile->{'sourcepath'} = $databasedest; # new sourcepath for the StarRegistry file
-
- # One call for every merge particle. This is only possible, if there are only a few merge particles.
-
- my $prefix = $databasefile->{'NativeServicesURLPrefix'};
- # TODO: "NativeServicesURLPrefix" or "JavaServicesURLPrefix"
-
- my $error_occured = 0;
-
- for ( my $i = 0; $i <= $#{$registerfiles}; $i++ )
- {
- my $registerfile = $databasedir . $installer::globals::separator . $i . ".tmp";
- open (IN, '<', $registerfiles->[$i]) or $error_occured = 1;
- open (OUT, '>', $registerfile) or $error_occured = 1;
- while (<IN>)
- {
- s/^ComponentName=/ComponentName=$prefix/;
- print OUT $_ or $error_occured = 1;
- }
- close IN or $error_occured = 1;
- close OUT or $error_occured = 1;
-
- my $systemcall = $regmergefile . " -v " . $databasedest . " " . $registerfile . " 2\>\&1 |";
-
- my @regmergeoutput = ();
-
- my $var_library_path;
- my $old_library_path;
- if ($installer::globals::isunix) {
- $var_library_path = $installer::globals::ismacosx ?
- 'DYLD_LIBRARY_PATH' : 'LD_LIBRARY_PATH';
- $old_library_path = $ENV{$var_library_path};
- installer::servicesfile::include_libdir_into_ld_library_path(
- $var_library_path, $regmergefile);
- }
-
- open (REG, "$systemcall");
- while (<REG>) {push(@regmergeoutput, $_); }
- close (REG);
-
- my $returnvalue = $?; # $? contains the return value of the systemcall
-
- if (defined $var_library_path) {
- if (defined $old_library_path) {
- $ENV{$var_library_path} = $old_library_path;
- } else {
- delete $ENV{$var_library_path};
- }
- }
-
- my $infoline = "Systemcall: $systemcall\n";
- push( @installer::globals::logfileinfo, $infoline);
-
- for ( my $j = 0; $j <= $#regmergeoutput; $j++ ) { push( @installer::globals::logfileinfo, "$regmergeoutput[$j]"); }
-
- if ($returnvalue)
- {
- $infoline = "ERROR: $systemcall\n";
- push( @installer::globals::logfileinfo, $infoline);
- $error_occured = 1;
- }
- else
- {
- $infoline = "SUCCESS: $systemcall\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
- }
-
- return $error_occured;
-}
-
-################################################################
-# Expanding the registry database files by merging rdb files
-# into this registry database files.
-################################################################
-
-sub merge_registration_files
-{
- my ($filesarrayref, $includepatharrayref, $languagestringref, $allvariableshashref) = @_;
-
- installer::logger::include_header_into_logfile("Creating starregistry databases:");
-
- # Test if there is something to do. At least one file has to have the content:
- # Regmergefile = "mydatabasepart.rdb";
-
- my $regmergefiles = collect_all_regmergefiles($filesarrayref);
-
- if ( $#{$regmergefiles} > -1 ) # not empty -> at least one regmerge file
- {
- # prepare registration
-
- my $regmergefile = get_regmerge_file($includepatharrayref); # searching for regmerge (regcomplazy.exe)
-
- my $databasegids = collect_all_database_gids($regmergefiles);
-
- # iterating over all database gids
-
- my $regmergeerror = 0;
-
- for ( my $i = 0; $i <= $#{$databasegids}; $i++ )
- {
- $databasegid = ${$databasegids}[$i];
-
- # my $databasedirname = "starregistryrdb"; <- not unique!
- my $databasedirname = $databasegid . "_rdb"; # <- unique!
- my $databasedir = installer::systemactions::create_directories($databasedirname, $languagestringref);
- push(@installer::globals::removedirs, $databasedir);
-
- my $databasefile = get_database_file($databasegid, $filesarrayref);
- my $databaseregisterfiles = collect_all_files_for_one_registry($regmergefiles, $databasegid);
-
- if ( $#{$databaseregisterfiles} > -1 ) # not empty -> at least one regmerge file
- {
- my $regmergeparticles = collect_all_regmerge_particles($databaseregisterfiles);
- $regmergeparticles = get_all_source_pathes($regmergeparticles, $includepatharrayref);
- my $oneregmergeerror = merge_files($regmergefile, $databasefile, $regmergeparticles, $databasedir, $allvariableshashref);
- if ($oneregmergeerror) { $regmergeerror = 1; }
- }
- }
-
- if ( $regmergeerror ) { installer::exiter::exit_program("ERROR: regmerge !", "merge_registration_files"); }
-
- }
-}
-
-1;
diff --git a/solenv/bin/modules/installer/scriptitems.pm b/solenv/bin/modules/installer/scriptitems.pm
index 7a2c4cb3f5e3..54d22df1e19e 100644
--- a/solenv/bin/modules/installer/scriptitems.pm
+++ b/solenv/bin/modules/installer/scriptitems.pm
@@ -1223,7 +1223,7 @@ sub get_Source_Directory_For_Files_From_Includepathlist
my $styles = "";
my $file_can_miss = 0;
if ( $onefile->{'Styles'} ) { $styles = $onefile->{'Styles'}; }
- if (( $styles =~ /\bSTARREGISTRY\b/ ) || ( $styles =~ /\bFILE_CAN_MISS\b/ )) { $file_can_miss = 1; }
+ if ( $styles =~ /\bFILE_CAN_MISS\b/ ) { $file_can_miss = 1; }
if (( $installer::globals::languagepack ) && ( ! $onefile->{'ismultilingual'} ) && ( ! ( $styles =~ /\bFORCELANGUAGEPACK\b/ ))) { $file_can_miss = 1; }
@@ -1352,12 +1352,21 @@ sub remove_Files_Without_Sourcedirectory
if ($sourcepath eq "")
{
my $styles = $onefile->{'Styles'};
+ my $filename = $onefile->{'Name'};
- if ( ! ( $styles =~ /\bSTARREGISTRY\b/ )) # StarRegistry files will be created later
+ if ( ! $installer::globals::languagepack )
{
- my $filename = $onefile->{'Name'};
+ $infoline = "ERROR: Removing file $filename from file list.\n";
+ push( @installer::globals::logfileinfo, $infoline);
+
+ push(@missingfiles, "ERROR: File not found: $filename\n");
+ $error_occured = 1;
- if ( ! $installer::globals::languagepack )
+ next; # removing this file from list, if sourcepath is empty
+ }
+ else # special case for language packs
+ {
+ if (( $onefile->{'ismultilingual'} ) || ( $styles =~ /\bFORCELANGUAGEPACK\b/ ))
{
$infoline = "ERROR: Removing file $filename from file list.\n";
push( @installer::globals::logfileinfo, $infoline);
@@ -1367,27 +1376,14 @@ sub remove_Files_Without_Sourcedirectory
next; # removing this file from list, if sourcepath is empty
}
- else # special case for language packs
+ else
{
- if (( $onefile->{'ismultilingual'} ) || ( $styles =~ /\bFORCELANGUAGEPACK\b/ ))
- {
- $infoline = "ERROR: Removing file $filename from file list.\n";
- push( @installer::globals::logfileinfo, $infoline);
-
- push(@missingfiles, "ERROR: File not found: $filename\n");
- $error_occured = 1;
-
- next; # removing this file from list, if sourcepath is empty
- }
- else
- {
- $infoline = "INFO: Removing file $filename from file list. It is not language dependent.\n";
- push( @installer::globals::logfileinfo, $infoline);
- $infoline = "INFO: It is not language dependent and can be ignored in language packs.\n";
- push( @installer::globals::logfileinfo, $infoline);
+ $infoline = "INFO: Removing file $filename from file list. It is not language dependent.\n";
+ push( @installer::globals::logfileinfo, $infoline);
+ $infoline = "INFO: It is not language dependent and can be ignored in language packs.\n";
+ push( @installer::globals::logfileinfo, $infoline);
- next; # removing this file from list, if sourcepath is empty
- }
+ next; # removing this file from list, if sourcepath is empty
}
}
}
diff --git a/solenv/bin/modules/installer/servicesfile.pm b/solenv/bin/modules/installer/servicesfile.pm
deleted file mode 100644
index 63e5f44125c8..000000000000
--- a/solenv/bin/modules/installer/servicesfile.pm
+++ /dev/null
@@ -1,1073 +0,0 @@
-#*************************************************************************
-#
-# 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.
-#
-#*************************************************************************
-
-package installer::servicesfile;
-
-use Cwd;
-use installer::converter;
-use installer::existence;
-use installer::exiter;
-use installer::globals;
-use installer::logger;
-use installer::pathanalyzer;
-use installer::remover;
-use installer::scriptitems;
-use installer::systemactions;
-
-################################################################
-# Adding the newly created file into the files collector
-################################################################
-
-sub add_services_sourcepath_into_filearray
-{
- my ( $filesarrayref, $servicesfile, $servicesname ) = @_;
-
- my $found = 0;
- my $onefile;
-
- for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ )
- {
- $onefile = ${$filesarrayref}[$i];
- my $name = $onefile->{'Name'};
-
- if ( $servicesname eq $name )
- {
- $found = 1;
- $onefile->{'sourcepath'} = $servicesfile; # setting the sourcepath!
- last;
- }
- }
-
- if ( ! $found ) { installer::exiter::exit_program("ERROR: Did not find $servicesname in files collector!", "add_services_sourcepath_into_filearray"); }
-
-}
-
-################################################################
-# Generating a file url from a path
-################################################################
-
-sub make_file_url
-{
- my ( $path ) = @_;
-
- my $fileurl = "";
-
- # removing ending slash/backslash
-
- installer::remover::remove_ending_pathseparator(\$path);
-
- if ($installer::globals::iswin)
- {
- $path =~ s/\\/\//g;
- $fileurl = "file\:\/\/\/" . $path;
- }
- else
- {
- $fileurl = "file\:\/\/" . $path;
- }
-
- return $fileurl;
-}
-
-################################################################
-# Determining all sourcepath from the uno components
-################################################################
-
-sub get_all_sourcepathes
-{
- my ( $filesref ) = @_;
-
- my @pathes = ();
-
- for ( my $i = 0; $i <= $#{$filesref}; $i++ )
- {
- my $onefile = ${$filesref}[$i];
- my $path = $onefile->{'sourcepath'};
-
- installer::pathanalyzer::get_path_from_fullqualifiedname(\$path);
-
- if (! installer::existence::exists_in_array($path, \@pathes))
- {
- push(@pathes, $path);
- }
- }
-
- return \@pathes;
-}
-
-################################################################
-# Registering all uno component files in the services.rdb
-################################################################
-
-sub register_unocomponents
-{
- my ($allvariableshashref, $unocomponents, $regcompfileref, $servicesfile, $nativeservicesurlprefix) = @_;
-
- installer::logger::include_header_into_logfile("Registering UNO components:");
-
- my $error_occured = 0;
- my $filestring = "";
- for ( my $i = 0; $i <= $#{$unocomponents}; ++$i )
- {
- my $local_error1_occured = 0;
- my $local_error2_occured = 0;
-
- my $sourcepath = make_file_url(${$unocomponents}[$i]->{'sourcepath'});
- my $urlprefix = ${$unocomponents}[$i]->{'NativeServicesURLPrefix'};
- if (defined($urlprefix))
- {
- $local_error1_occured = call_regcomp($regcompfileref, $servicesfile, $sourcepath, $urlprefix);
- }
- else
- {
- $filestring .= ";" unless $filestring eq "";
- $filestring .= $sourcepath;
- }
- if (length($filestring) > $installer::globals::unomaxservices ||
- ($i == $#{$unocomponents} && $filestring ne ""))
- {
- $local_error2_occured = call_regcomp($regcompfileref, $servicesfile, $filestring, $nativeservicesurlprefix);
- $filestring = "";
- }
-
- if (( $local_error1_occured ) || ( $local_error2_occured )) { $error_occured = 1; }
- }
-
- return $error_occured;
-}
-
-sub call_regcomp
-{
- my ($regcompfileref, $servicesfile, $filestring, $urlprefix) = @_;
- my @regcompoutput = ();
-
- my $error_occured = 0;
-
- my $systemcall = "$installer::globals::wrapcmd $$regcompfileref -register -r ".fix_cygwin_path($servicesfile)." -c " . $installer::globals::quote . $filestring . $installer::globals::quote . " -wop=" . $installer::globals::quote . $urlprefix . $installer::globals::quote . " 2\>\&1 |";
-
- open (REG, "$systemcall");
- while (<REG>) {push(@regcompoutput, $_); }
- close (REG);
-
- my $returnvalue = $?; # $? contains the return value of the systemcall
-
- my $infoline = "Systemcall: $systemcall\n";
- push( @installer::globals::logfileinfo, $infoline);
-
- for ( my $j = 0; $j <= $#regcompoutput; $j++ ) { push( @installer::globals::logfileinfo, "$regcompoutput[$j]"); }
-
- if ($returnvalue)
- {
- $infoline = "ERROR: $systemcall\n";
- push( @installer::globals::logfileinfo, $infoline);
- $error_occured = 1;
- }
- else
- {
- $infoline = "SUCCESS: $systemcall\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
-
- return $error_occured;
-}
-
-################################################################
-# Registering all java component files in the services.rdb
-################################################################
-
-sub register_javacomponents
-{
- my ($allvariableshashref, $javacomponents, $regcompfileref, $servicesfile, $regcomprdb, $javaservicesurlprefix) = @_;
-
- installer::logger::include_header_into_logfile("Registering Java components:");
-
- my $ridljar_ref = "ridl.jar";
- my $ure_internal_java_dir_ref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$ridljar_ref, "", 1);
- installer::pathanalyzer::get_path_from_fullqualifiedname($ure_internal_java_dir_ref);
- if ( $$ure_internal_java_dir_ref eq "" ) { installer::exiter::exit_program("Could not determine URE_INTERNAL_JAVA_DIR when registering Java components!", "register_javacomponents"); }
-
- my $error_occured = 0;
-
- my $do_register = 1;
- if (!( $installer::globals::solarjava )) { $do_register = 0; }
-
- if ( $do_register )
- {
- my $filestring = "";
-
- for ( my $i = 0; $i <= $#{$javacomponents}; )
- {
- my $sourcepath = ${$javacomponents}[$i++]->{'sourcepath'};
-
- $filestring = $filestring . make_file_url($sourcepath);
-
- if ( $i % $installer::globals::javamaxservices == 0 || $i > $#{$javacomponents} ) # limiting to $installer::globals::maxservices files
- {
- my @regcompoutput = ();
-
- my $systemcall = "$installer::globals::wrapcmd $$regcompfileref -register -br ".fix_cygwin_path($regcomprdb)." -r ".fix_cygwin_path($servicesfile)." -c " . $installer::globals::quote . $filestring . $installer::globals::quote . " -l com.sun.star.loader.Java2 -wop=" . $installer::globals::quote . $javaservicesurlprefix . $installer::globals::quote ." -env:URE_INTERNAL_JAVA_DIR=" . $installer::globals::quote . make_file_url($$ure_internal_java_dir_ref) . $installer::globals::quote . " 2\>\&1 |";
-
- open (REG, "$systemcall");
- while (<REG>) {push(@regcompoutput, $_); }
- close (REG);
-
- my $returnvalue = $?; # $? contains the return value of the systemcall
-
- my $infoline = "Systemcall: $systemcall\n";
- push( @installer::globals::logfileinfo, $infoline);
-
- for ( my $k = 0; $k <= $#regcompoutput; $k++ ) { push( @installer::globals::logfileinfo, "$regcompoutput[$k]"); }
-
- if ($returnvalue)
- {
- $infoline = "ERROR: $systemcall\n";
- $error_occured = 1;
- }
- else
- {
- $infoline = "SUCCESS: $systemcall\n";
- }
-
- push( @installer::globals::logfileinfo, $infoline);
-
- $filestring = "";
- }
- else
- {
- $filestring = $filestring . ";";
- }
- }
- }
-
- return $error_occured;
-}
-
-
-
-################################################################
-# Helper routine to change cygwin (POSIX) path to DOS notation
-# if needed
-################################################################
-sub fix_cygwin_path
-{
- my ( $path ) = @_;
-
- if ( $installer::globals::iswin eq 1 && $installer::globals::wrapcmd eq "" )
- {
- $path = qx{cygpath -m "$path"};
- chomp($path);
- }
-
- return $path;
-}
-
-
-
-################################################################
-# Registering all uno component files in the services.rdb
-################################################################
-sub get_source_path_cygwin_safe
-{
- my ( $name, $array, $int ) = @_;
-
- my $ret = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$name, $array, $int);
- if ( $installer::globals::iswin eq 1 )
- {
- if( substr( $$ret, 1,1 ) eq ":" )
- {
- chomp($$ret = qx{cygpath -u "$$ret"});
- }
- }
- return $ret;
-}
-
-sub register_pythoncomponents
-{
- my ($pythoncomponents, $regcompfileref, $servicesfile,$includepatharrayref) = @_;
-
- installer::logger::include_header_into_logfile("Registering python UNO components:");
-
- my $error_occured = 0;
- my $counter = 0;
-
- my $systemcall = "";
-
- my $allsourcepathes = get_all_sourcepathes($pythoncomponents);
-
- for ( my $j = 0; $j <= $#{$allsourcepathes}; $j++ )
- {
- my $filestring = "";
- my $onesourcepath = ${$allsourcepathes}[$j];
- my $to = "";
- my $from = cwd();
- if ( $installer::globals::iswin ) { $from =~ s/\//\\/g; }
-
- my $typesrdbname = "types.rdb";
-
- # FIXME: Remove the unneeded
- # get_source_path_cygwin_safe() -> fix_cygwin_path()
- # when WRAPCMD is gone
- my $typesrdbref = get_source_path_cygwin_safe($typesrdbname, $includepatharrayref, 1);
-
- if ( $$typesrdbref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $typesrdbname !", "register_pythoncomponents"); }
-
- my $pyunoservicesrdbname = "pyuno_services.rdb";
- my $pyunoservicesrdbref = get_source_path_cygwin_safe($pyunoservicesrdbname, $includepatharrayref, 1);
-
- if ( $$pyunoservicesrdbref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $pyunoservicesrname !", "register_pythoncomponents"); }
-
- for ( my $i = 0; $i <= $#{$pythoncomponents}; $i++ )
- {
- my $doinclude = 1;
- my $sourcepath = ${$pythoncomponents}[$i]->{'sourcepath'};
-
- $to = $sourcepath;
- installer::pathanalyzer::get_path_from_fullqualifiedname(\$to);
-
- if (!($to eq $onesourcepath)) { $doinclude = 0; }
-
- if ( $doinclude )
- {
- my $filename = ${$pythoncomponents}[$i]->{'Name'};
- $filestring = $filestring . $filename . "\;";
- $counter++;
- }
-
- if ( $counter > 0 )
- {
- $filestring =~ s/\;\s*$//;
- $filestring = substr( $filestring, 0, length($filestring)-3);
- chdir($onesourcepath);
-
- my @regcompoutput = ();
-
- $systemcall = "$installer::globals::wrapcmd $$regcompfileref -register"
- . " -br " . fix_cygwin_path($$typesrdbref)
- . " -br " . fix_cygwin_path($$pyunoservicesrdbref)
- . " -r " . fix_cygwin_path($servicesfile)
- . " -c vnd.openoffice.pymodule:" . $filestring . " -l com.sun.star.loader.Python 2\>\&1 |";
-
- open (REG, "$systemcall");
- while (<REG>) {push(@regcompoutput, $_); }
- close (REG);
-
- my $returnvalue = $?; # $? contains the return value of the systemcall
-
- my $infoline = "Systemcall: $systemcall\n";
- push( @installer::globals::logfileinfo, $infoline);
-
- for ( my $j = 0; $j <= $#regcompoutput; $j++ ) { push( @installer::globals::logfileinfo, "$regcompoutput[$j]"); }
-
- if ($returnvalue)
- {
- $infoline = "ERROR: $systemcall\n";
- push( @installer::globals::logfileinfo, $infoline);
- $error_occured = 1;
- }
- else
- {
- $infoline = "SUCCESS: $systemcall\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
-
- chdir($from);
-
- $counter = 0;
- $filestring = "";
- }
- }
- }
-
- return $error_occured;
-}
-
-################################################################
-# Iterating over all files, to find all files with the
-# style UNO_COMPONENT. This can be libraries and jar files.
-################################################################
-
-sub register_all_components
-{
- my ( $allvariableshashref, $servicesgid, $filesarrayref, $regcompfileref, $servicesfile, $regcomprdb, $includepatharrayref, $nativeservicesurlprefix, $javaservicesurlprefix ) = @_;
-
- my $registererrorflag = 0;
-
- my @unocomponents = ();
- my @javacomponents = ();
- my @pythoncomponents = ();
-
- for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ )
- {
- my $onefile = ${$filesarrayref}[$i];
- my $styles = "";
- my $regmergefile = "";
- my $registryid = "";
-
- if ( $onefile->{'RegistryID'} ) { $registryid = $onefile->{'RegistryID'}; }
-
- if ( $servicesgid ne $registryid ) { next; } # only registration for the current $servicesgid
-
- if ( $onefile->{'Regmergefile'} ) { $regmergefile = $onefile->{'Regmergefile'}; }
-
- if ( $onefile->{'Styles'} ) { $styles = $onefile->{'Styles'}; }
-
- if (( $styles =~ /\bUNO_COMPONENT\b/ ) && ( $regmergefile eq "" )) # regmergefiles will not be registered with regcomp
- {
- my $filename = $onefile->{'Name'};
-
- if ( $filename =~ /\.jar\s*$/ ) # java component
- {
- push(@javacomponents, $onefile);
- }
- elsif( $filename =~ /\.py\s*$/ ) # python_component
- {
- push(@pythoncomponents, $onefile);
- }
- else # uno component
- {
- push(@unocomponents, $onefile);
- }
- }
- }
-
- $uno_error_occured = 0;
- $java_error_occured = 0;
- $python_error_occured = 0;
-
- if ( $#unocomponents > -1 ) { $uno_error_occured = register_unocomponents($allvariableshashref, \@unocomponents, $regcompfileref, $servicesfile, $nativeservicesurlprefix); }
- if ( $#javacomponents > -1 ) { $java_error_occured = register_javacomponents($allvariableshashref, \@javacomponents, $regcompfileref, $servicesfile, $regcomprdb, $javaservicesurlprefix); }
- if ( $#pythoncomponents > -1 ) { $python_error_occured = register_pythoncomponents(\@pythoncomponents, $regcompfileref, $servicesfile, $includepatharrayref); }
-
- if ( $uno_error_occured || $java_error_occured || $python_error_occured ) { $registererrorflag = 1; }
-
- return $registererrorflag;
-}
-
-###################################################
-# Include the solver lib directory into
-# the LD_LIBRARY_PATH for Unix platforms
-###################################################
-
-sub include_libdir_into_ld_library_path
-{
- my ( $var, $binfile ) = @_;
-
- my $ld_library_path = $binfile;
- installer::pathanalyzer::get_path_from_fullqualifiedname(\$ld_library_path);
- $ld_library_path =~ s/\/\s*$//; # removing ending slashes
- $ld_library_path =~ s/\/bin\./\/lib\./;
- $ld_library_path =~ s/\/bin\s*$/\/lib/; # when packing from flat
-
- my $oldldlibrarypathstring = $ENV{$var};
- my $new_ld_library_path = $ld_library_path;
- if ( defined $oldldlibrarypathstring ) {
- $new_ld_library_path = $new_ld_library_path . $installer::globals::pathseparator . $oldldlibrarypathstring;
- }
- if ( $ENV{'SYSTEM_MOZILLA'} && $ENV{'SYSTEM_MOZILLA'} eq "YES" &&
- (!$ENV{'WITH_OPENLDAP'} || $ENV{'WITH_OPENLDAP'} ne "YES")) {
- $new_ld_library_path = $new_ld_library_path . $installer::globals::pathseparator . $ENV{'MOZ_LIB'};
- }
- $ENV{$var} = $new_ld_library_path;
-
- my $infoline = "Setting $var to $ENV{$var}\n";
- push( @installer::globals::logfileinfo, $infoline);
-}
-
-##################################################################
-# Setting the needed jar files into the CLASSPATH
-# They are needed from regcomp.
-# The jar files are defined in @installer::globals::regcompjars
-##################################################################
-
-sub prepare_classpath_for_java_registration
-{
- my ( $includepatharrayref ) = @_;
- my $local_pathseparator = $installer::globals::pathseparator;
-
- if( $^O =~ /cygwin/i )
- { # $CLASSPATH must use DOS separator even when using cygwin's perl
- $local_pathseparator = ';';
- }
-
- for ( my $i = 0; $i <= $#installer::globals::regcompjars; $i++ )
- {
- my $filename = $installer::globals::regcompjars[$i];
-
- my $jarfileref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$filename, $includepatharrayref, 1);
-
- if ( $$jarfileref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $filename for registering java components!", "prepare_classpath_for_java_registration"); }
-
- my $oldclasspathstring = "";
- if ( $ENV{'CLASSPATH'} ) { $oldclasspathstring = $ENV{'CLASSPATH'}; }
- else { $oldclasspathstring = "\."; }
- my $classpathstring = $$jarfileref . $local_pathseparator . $oldclasspathstring;
- if ( $^O =~ /cygwin/i ) {
- $classpathstring =~ s/\//\\/g; # guw.pl likes '\' in $PATH.
- }
- $ENV{'CLASSPATH'} = $classpathstring;
-
- my $infoline = "Setting CLASSPATH to $ENV{'CLASSPATH'}\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
-}
-
-##################################################################
-# Setting the jdk lib into the LD_LIBRARY_PATH (Unix)
-# This is used by regcomp to register Java components.
-# The jdk lib is defined in $installer::globals::jdklib
-##################################################################
-
-sub add_jdklib_into_ld_library_path
-{
- my ($var) = @_;
- if (defined $installer::globals::jdklib) {
- my $oldldlibrarypathstring = $ENV{$var};
- my $new_ld_library_path = $installer::globals::jdklib;
- if (defined $oldldlibrarypathstring) {
- $new_ld_library_path .=
- $installer::globals::pathseparator . $oldldlibrarypathstring;
- }
- $ENV{$var} = $new_ld_library_path;
- my $infoline = "Setting $var to $ENV{$var}\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
-}
-
-##################################################################
-# Adding the libraries included in zip files into path variable
-# (for example mozruntime.zip). This is needed to register all
-# libraries successfully.
-##################################################################
-
-sub add_path_to_pathvariable_directory
-{
- my ( $filesarrayref, $searchstring ) = @_;
-
- # determining the path
-
- my $path = "";
-
- for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ )
- {
- my $onefile = ${$filesarrayref}[$i];
- my $sourcepath = $onefile->{'sourcepath'};
-
- installer::pathanalyzer::get_path_from_fullqualifiedname(\$sourcepath);
- installer::remover::remove_ending_pathseparator(\$sourcepath);
-
- if ( $sourcepath =~ /\Q$searchstring\E\s*$/ )
- {
- $path = $sourcepath;
- last;
- }
- }
-
- # adding the path to the PATH variable
-
- if ( $path ne "" )
- {
- my $oldpath = "";
- if ( $ENV{'PATH'} ) { $oldpath = $ENV{'PATH'}; }
- else { $oldpath = "\."; }
- if ( $^O =~ /cygwin/i ) {
- $path = qx(cygpath -u "$path");
- chomp $path;
- }
- my $newpath = $path . $installer::globals::pathseparator . $oldpath;
- $ENV{'PATH'} = $newpath;
-
- my $infoline = "Setting PATH to $ENV{'PATH'}\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
-}
-
-##################################################################
-# Adding the path of a specified library to the path variable
-# (for example msvcr70.dll). This is needed to register all
-# libraries successfully.
-##################################################################
-
-sub add_path_to_pathvariable
-{
- my ( $filesarrayref, $searchstring ) = @_;
-
- # determining the path
-
- my $path = "";
-
- for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ )
- {
- my $onefile = ${$filesarrayref}[$i];
- my $sourcepath = $onefile->{'sourcepath'};
-
- if ( $sourcepath =~ /\Q$searchstring\E\s*$/ )
- {
- installer::pathanalyzer::get_path_from_fullqualifiedname(\$sourcepath);
- installer::remover::remove_ending_pathseparator(\$sourcepath);
- $path = $sourcepath;
- last;
- }
- }
-
- # adding the path to the PATH variable
-
- if ( $path ne "" )
- {
- my $oldpath = "";
- if ( $ENV{'PATH'} ) { $oldpath = $ENV{'PATH'}; }
- else { $oldpath = "\."; }
- if ( $^O =~ /cygwin/i ) {
- $path = qx(cygpath -u "$path");
- chomp $path;
- }
- my $newpath = $path . $installer::globals::pathseparator . $oldpath;
- $ENV{'PATH'} = $newpath;
-
- my $infoline = "Setting PATH to $ENV{'PATH'}\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
-}
-
-##################################################################
-# Setting the jre path into the PATH (Windows only)
-# This is used by regcomp.exe to register Java components.
-# The jre path is saved in $installer::globals::jrepath
-##################################################################
-
-sub add_jrepath_into_path
-{
- my $oldpath = "";
- if ( $ENV{'PATH'} ) { $oldpath = $ENV{'PATH'}; }
- else { $oldpath = "\."; }
-
- if ( $installer::globals::jrepath ne "" )
- {
- my $newpath = $installer::globals::jrepath . $installer::globals::pathseparator . $oldpath;
- $ENV{'PATH'} = $newpath;
-
- my $infoline = "Setting PATH to $ENV{'PATH'}\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
-}
-
-#######################################################################################
-# Preparing a registry "regcomp.rdb" which regcomp can work on (types+java services).
-# Copying the "udkapi.rdb", renaming it to "regcomp.rdb" and registering the
-# libraries @installer::globals::regcompregisterlibs, which are javavm.uno.so
-# and javaloader.uno.so or javavm.uno.dll and javaloader.uno.dll
-#######################################################################################
-
-sub prepare_regcomp_rdb
-{
- my ( $regcompfile, $servicesdir, $includepatharrayref) = @_;
-
- # udkapi.rdb has to be found in the sourcepath
-
- my $filename = "udkapi.rdb";
- my $udkapirdbref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$filename, $includepatharrayref, 1);
- if ( $$udkapirdbref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $filename for creating regcomp.rdb!", "prepare_regcomp_rdb"); }
-
- my $regcompfilename = "regcomp.rdb";
- my $regcomprdb = $servicesdir . $installer::globals::separator . $regcompfilename;
-
- # If there is an older version of this file, it has to be removed
- if ( -f $regcomprdb ) { unlink($regcomprdb); }
-
- installer::systemactions::copy_one_file($$udkapirdbref, $regcomprdb);
-
- # now the libraries in @installer::globals::regcompregisterlibs can be registered in the "regcomp.rdb"
-
- for ( my $i = 0; $i <= $#installer::globals::regcompregisterlibs; $i++ )
- {
- my $libfilename = $installer::globals::regcompregisterlibs[$i] . $installer::globals::libextension;
- my $libfileref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$libfilename, $includepatharrayref, 1);
- if ( $$libfileref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $libfilename for creating regcomp.rdb!", "prepare_regcomp_rdb"); }
-
- my $from = cwd();
- if ( $installer::globals::iswin ) { $from =~ s/\//\\/g; }
-
- my $to = $$libfileref;
- installer::pathanalyzer::get_path_from_fullqualifiedname(\$to);
-
- chdir($to);
-
- my $systemcall = "$installer::globals::wrapcmd $regcompfile -register -s -r " . fix_cygwin_path($regcomprdb) . " -c $libfilename";
-
- my $returnvalue = system($systemcall);
-
- chdir($from);
-
- my $infoline;
- if ($returnvalue) { $infoline = "ERROR: $systemcall\n"; }
- else { $infoline = "SUCCESS: $systemcall\n"; }
-
- push( @installer::globals::logfileinfo, $infoline);
- }
-
- return $regcomprdb;
-}
-
-################################################################
-# Collecting all gids of the databases, that are part of
-# the file definition
-################################################################
-
-sub collect_all_services_gids
-{
- my ($filesarrayref) = @_;
-
- my @databasegids = ();
- my $error_occured = 0;
- my @error_files = ();
-
- for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ )
- {
- my $onefile = ${$filesarrayref}[$i];
-
- if ( $onefile->{'RegistryID'} )
- {
- my $databasegid = $onefile->{'RegistryID'};
- if (! installer::existence::exists_in_array($databasegid, \@databasegids)) { push(@databasegids, $databasegid); }
- }
- else
- {
- push(@error_files, $onefile->{'gid'});
- $error_occured = 1;
- }
- }
-
- if ( $error_occured )
- {
- my $infoline = "ERROR: Style UNO_COMPONENT is set, but no RegistryID is assigned!\n";
- push( @installer::globals::logfileinfo, $infoline);
- print $infoline;
-
- for ( my $j = 0; $j <= $#error_files; $j++ )
- {
- $infoline = "$error_files[$j]\n";
- push( @installer::globals::logfileinfo, $infoline);
- print $infoline;
- }
-
- installer::exiter::exit_program("ERROR: File defintion error.", "collect_all_services_gids");
- }
-
- return \@databasegids;
-}
-
-######################################################################
-# All gids in $databasegids are as RegistryID assigned to files.
-# For all this Registry Files a definition has to exist.
-######################################################################
-
-sub check_defintion_of_databasegids
-{
- my ($databasegids, $registryfiles) = @_;
-
- my @registryfiles = ();
-
- # First check: For all assigned Registry files, a definition of
- # a file with flag STARREGISTRY has to exist.
-
- for ( my $i = 0; $i <= $#{$databasegids}; $i++ )
- {
- my $onegid = ${$databasegids}[$i];
- my $gid_defined = 0;
-
- for ( my $j = 0; $j <= $#{$registryfiles}; $j++ )
- {
- my $registrygid = ${$registryfiles}[$j]->{'gid'};
-
- if ( $onegid eq $registrygid )
- {
- $gid_defined = 1;
- last;
- }
- }
-
- if ( ! $gid_defined )
- {
- installer::exiter::exit_program("ERROR: Gid $onegid is assigned to file(s), but not defined!", "check_defintion_of_databasegids");
- }
- }
-
- # Second check: If there is a file defined as StarRegistry, is a file with flag UNO_COMPONENT assigned?
-
- for ( my $j = 0; $j <= $#{$registryfiles}; $j++ )
- {
- my $onefile = ${$registryfiles}[$j];
- my $registrygid = $onefile->{'gid'};
-
- my $gid_assigned = 0;
-
- for ( my $i = 0; $i <= $#{$databasegids}; $i++ )
- {
- my $onegid = ${$databasegids}[$i];
-
- if ( $onegid eq $registrygid )
- {
- $gid_assigned = 1;
- last;
- }
- }
-
- if ( ! $gid_assigned )
- {
- my $infoline = "Warning: $registrygid is defined with flag STARREGISTRY, but no file is assigned to the registry.\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
- else
- {
- push(@registryfiles, $onefile);
- }
- }
-
- return \@registryfiles;
-}
-
-################################################################
-# Some files have flag UNO_COMPONENT, but are not registered
-# with regcomp. This files use the regmerge mechanism, that
-# is not used in this perl-file. Therefore this files
-# have to be filtered out here.
-################################################################
-
-sub filter_regmergefiles
-{
- my ($unocomponentfiles) = @_;
-
- my @regcompfiles = ();
-
- for ( my $i = 0; $i <= $#{$unocomponentfiles}; $i++ )
- {
- my $onefile = ${$unocomponentfiles}[$i];
- my $regmergefile = "";
-
- if ( $onefile->{'Regmergefile'} ) { $regmergefile = $onefile->{'Regmergefile'}; }
- if ( $regmergefile ne "" ) { next; }
-
- push(@regcompfiles, $onefile);
- }
-
- return \@regcompfiles;
-}
-
-################################################################
-# Setting defaults for Creating services.rdb file by registering all uno components
-################################################################
-
-sub set_url_prefixes
-{
- my ( $registryfile ) = @_;
-
- my $nativeservicesurlprefix = "";
- my $javaservicesurlprefix = "";
-
- if ( $registryfile->{'NativeServicesURLPrefix'} ) { $nativeservicesurlprefix = $registryfile->{'NativeServicesURLPrefix'}; }
- else { $nativeservicesurlprefix = "vnd.sun.star.expand:\$ORIGIN/"; }
-
- if ( $registryfile->{'JavaServicesURLPrefix'} ) { $javaservicesurlprefix = $registryfile->{'JavaServicesURLPrefix'}; }
- else { $javaservicesurlprefix = "vnd.sun.star.expand:\$UNO_JAVA_COMPONENT_PATH/"; }
-
- return ($nativeservicesurlprefix, $javaservicesurlprefix);
-}
-
-################################################################
-# Creating services.rdb file by registering all uno components
-################################################################
-
-sub create_services_rdb
-{
- my ($allvariableshashref, $filesarrayref, $includepatharrayref, $languagestringref) = @_;
-
- # collecting all services files
- my $unocomponentfiles = installer::worker::collect_all_items_with_special_flag($filesarrayref, "UNO_COMPONENT");
- $unocomponentfiles = filter_regmergefiles($unocomponentfiles);
-
- if ( $#{$unocomponentfiles} > -1 ) # not empty -> at least one file with flag UNO_COMPONENT
- {
- my $databasegids = collect_all_services_gids($unocomponentfiles);
-
- my $registryfiles = installer::worker::collect_all_items_with_special_flag($filesarrayref, "STARREGISTRY");
-
- $registryfiles = check_defintion_of_databasegids($databasegids, $registryfiles);
-
- # Now the creation of all files with flag STARREGISTRY can begin
-
- for ( my $i = 0; $i <= $#{$registryfiles}; $i++ )
- {
- my $registryfile = ${$registryfiles}[$i];
-
- # my $servicesname = "services.rdb";
- my $servicesname = $registryfile->{'Name'}; # not unique!
- my $servicesgid = $registryfile->{'gid'}; # unique
- my $uniquedirname = $servicesgid . "_servicesrdb";
- # my $uniquedirname = $servicesgid;
-
- my ($nativeservicesurlprefix, $javaservicesurlprefix) = set_url_prefixes($registryfile);
-
- installer::logger::include_header_into_logfile("Creating $servicesname ($servicesgid):");
-
- # my $servicesdir = installer::systemactions::create_directories($servicesname, $languagestringref);
- my $servicesdir = installer::systemactions::create_directories($uniquedirname, $languagestringref);
-
-# if ( $^O =~ /cygwin/i )
-# { # $servicesdir is used as a parameter for regcomp and has to be DOS style
-# $servicesdir = qx{cygpath -d "$servicesdir"};
-# chomp($servicesdir);
-# $servicesdir =~ s/\\/\//g;
-# }
-
- push(@installer::globals::removedirs, $servicesdir);
-
- my $servicesfile = $servicesdir . $installer::globals::separator . $servicesname;
-
- # If there is an older version of this file, it has to be removed
- if ( -f $servicesfile ) { unlink($servicesfile); }
-
- # if ((-f $servicesfile) && (!($installer::globals::services_rdb_created))) { $installer::globals::services_rdb_created = 1; }
- # if ((!($installer::globals::services_rdb_created)) && $installer::globals::servicesrdb_can_be_created ) # This has to be done once
- if ( $installer::globals::servicesrdb_can_be_created ) # This has to be done always
- {
- # Creating the services.rdb in directory "inprogress"
- my $origservicesdir = $servicesdir;
- $servicesdir = installer::systemactions::make_numbered_dir("inprogress", $servicesdir);
- $servicesfile = $servicesdir . $installer::globals::separator . $servicesname;
-
- # determining the location of the file regcomp
- # Because the program regcomp.exe (regcomp) is used now, it has to be taken the version
- # from the platform, this script is running. It is not important, for which platform the
- # product is built.
-
- my $searchname;
-
- if ($installer::globals::isunix) { $searchname = "regcomp"; }
- else { $searchname = "regcomp.exe"; }
-
- $regcompfileref = get_source_path_cygwin_safe($searchname, $includepatharrayref, 1);
- if ( $$regcompfileref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $searchname for registering uno components!", "create_services_rdb"); }
-
- # For Windows the libraries included into the mozruntime.zip have to be added to the path
- if ($installer::globals::iswin) { add_path_to_pathvariable_directory($filesarrayref, "mozruntime_zip"); }
- if ($installer::globals::iswin) { add_path_to_pathvariable($filesarrayref, "msvcr70.dll"); }
-
- # setting the LD_LIBRARY_PATH, needed by regcomp
- # Linux: Take care of the lock daemon. He has to be started!
- # For windows it is necessary that "msvcp7x.dll" and "msvcr7x.dll" are included into the path !
-
- my $var_library_path;
- my $old_library_path;
- if ( $installer::globals::isunix ) {
- $var_library_path = $installer::globals::ismacosx ?
- 'DYLD_LIBRARY_PATH' : 'LD_LIBRARY_PATH';
- $old_library_path = $ENV{$var_library_path};
- include_libdir_into_ld_library_path(
- $var_library_path, $$regcompfileref);
- }
-
- my $regcomprdb = "";
-
- if ( $installer::globals::solarjava ) # this is needed to register Java components
- {
- prepare_classpath_for_java_registration($includepatharrayref);
-
- if ( $installer::globals::isunix )
- { add_jdklib_into_ld_library_path($var_library_path); }
- else { add_jrepath_into_path(); }
-
- # Preparing a registry which regcomp can work on (types+java services).
- # Copying the "udkapi.rdb", renaming it to "regcomp.rdb" and registering the
- # libraries $(REGISTERLIBS_JAVA), which are javavm.uno.so and javaloader.uno.so
- # or javavm.uno.dll and javaloader.uno.dll
-
- $regcomprdb = prepare_regcomp_rdb($$regcompfileref, $servicesdir, $includepatharrayref);
- }
-
- # and now iteration over all files
-
- # my $error_during_registration = register_all_components($filesarrayref, $regcompfileref, $servicesfile, $regcomprdb, $includepatharrayref);
- my $error_during_registration = register_all_components($allvariableshashref, $servicesgid, $unocomponentfiles, $regcompfileref, $servicesfile, $regcomprdb, $includepatharrayref, $nativeservicesurlprefix, $javaservicesurlprefix);
-
- if (defined $var_library_path) {
- if (defined $old_library_path) {
- $ENV{$var_library_path} = $old_library_path;
- } else {
- delete $ENV{$var_library_path};
- }
- }
-
- # Dependent from the success, the registration directory can be renamed.
-
- if ( $error_during_registration )
- {
- $servicesdir = installer::systemactions::rename_string_in_directory($servicesdir, "inprogress", "witherror");
- push(@installer::globals::removedirs, $servicesdir);
- # and exiting the packaging process
- installer::exiter::exit_program("ERROR: Could not register all components for file $servicesname ($servicesgid)!", "create_services_rdb");
- }
- else
- {
- $servicesdir = installer::systemactions::rename_directory($servicesdir, $origservicesdir);
- }
-
- $servicesfile = $servicesdir . $installer::globals::separator . $servicesname;
- }
- else
- {
- my $infoline;
-
- if (!($installer::globals::servicesrdb_can_be_created))
- {
- $infoline = "Warning: $servicesname was not created. Build platform and compiler do not match. Build platform: $installer::globals::plat, compiler : $installer::globals::compiler\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
-
- if ( $installer::globals::services_rdb_created )
- {
- $infoline = "Info: $servicesname was not created. $servicesfile already exists.\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
-
- if ((!($installer::globals::servicesrdb_can_be_created)) && (!($installer::globals::services_rdb_created)))
- {
- $infoline = "ERROR: $servicesname was not created and does not exist!\n";
- push( @installer::globals::logfileinfo, $infoline);
- }
- }
-
- # Adding the new services file source path to the filearray
- $registryfile->{'sourcepath'} = $servicesfile; # setting the sourcepath!
- # add_services_sourcepath_into_filearray( $filesarrayref, $servicesfile, $servicesname );
- }
- }
-
- # Setting the global variable $installer::globals::services_rdb_created
-
- $installer::globals::services_rdb_created = 1;
-}
-
-1;
diff --git a/solenv/bin/modules/par2script/check.pm b/solenv/bin/modules/par2script/check.pm
index 7a975f530445..78808cee9191 100644
--- a/solenv/bin/modules/par2script/check.pm
+++ b/solenv/bin/modules/par2script/check.pm
@@ -139,55 +139,6 @@ sub check_module_existence
}
########################################################
-# If the StarRegistry is not defined in the script,
-# it has to be removed from the file definition.
-########################################################
-
-sub check_registry_at_files
-{
- my %starregistrygid = ();
-
- my $item;
- foreach $item ( keys %{$par2script::globals::definitions{'File'}} )
- {
- if (( exists($par2script::globals::definitions{'File'}->{$item}->{'Styles'}) ) &&
- ( $par2script::globals::definitions{'File'}->{$item}->{'Styles'} =~ /\bSTARREGISTRY\b/ ))
- {
- $starregistrygid{$item} = 1;
- }
- }
-
- foreach $item ( keys %{$par2script::globals::definitions{'File'}} )
- {
- if ( exists($par2script::globals::definitions{'File'}->{$item}->{'RegistryID'}) )
- {
- my $registryid = $par2script::globals::definitions{'File'}->{$item}->{'RegistryID'};
- if ( ! exists($starregistrygid{$registryid}) )
- {
- die "\nERROR: No definition found for $registryid at file $item\n\n";
- }
-
- # if ( ! ( $par2script::globals::definitions{'File'}->{$item}->{'Styles'} =~ /\bUNO_COMPONENT\b/ ))
- # {
- # die "\nERROR: Flag UNO_COMPONENT required for file $item\n\n";
- # }
- # -> also possible, that Regmergefile is defined (does not require flag UNO_COMPONENT)
- }
-
- # and also vice versa
-
- if (( exists($par2script::globals::definitions{'File'}->{$item}->{'Styles'}) ) &&
- ( $par2script::globals::definitions{'File'}->{$item}->{'Styles'} =~ /\bUNO_COMPONENT\b/ ))
- {
- if ( ! exists($par2script::globals::definitions{'File'}->{$item}->{'RegistryID'}) )
- {
- die "\nERROR: Flag UNO_COMPONENT defined, but no file as \"RegistryID\" at file $item !\n\n";
- }
- }
- }
-}
-
-########################################################
# Every script has to contain exactly one root module.
# This module has no ParentID or an empty ParentID.
########################################################
diff --git a/solenv/bin/packcomponents.xslt b/solenv/bin/packcomponents.xslt
new file mode 100644
index 000000000000..6e037a677f73
--- /dev/null
+++ b/solenv/bin/packcomponents.xslt
@@ -0,0 +1,52 @@
+<?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.
+*
+**********************************************************************-->
+
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:uc="http://openoffice.org/2010/uno-components">
+ <xsl:param name="prefix"/>
+ <xsl:strip-space elements="*"/>
+ <xsl:template match="/">
+ <xsl:element name="components"
+ namespace="http://openoffice.org/2010/uno-components">
+ <xsl:for-each select="list/filename">
+ <xsl:variable name="doc" select="document(concat($prefix, .))"/>
+ <xsl:choose>
+ <xsl:when test="count($doc/uc:component) = 1">
+ <xsl:copy-of select="$doc/uc:component"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:message terminate="yes">
+ <xsl:text>cannot process </xsl:text>
+ <xsl:value-of select="."/>
+ </xsl:message>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:element>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/solenv/bin/par2script.pl b/solenv/bin/par2script.pl
index 0789c460d510..06928ad68439 100644
--- a/solenv/bin/par2script.pl
+++ b/solenv/bin/par2script.pl
@@ -86,8 +86,6 @@ print "Checking module definitions ...\n";
par2script::check::check_module_existence();
print "Checking module assignments ...\n";
par2script::check::check_moduleid_at_items();
-print "Checking StarRegistry ...\n";
-par2script::check::check_registry_at_files();
print "Checking Root Module ...";
par2script::check::check_rootmodule();
print "Checking Shortcut assignments ...\n";
diff --git a/solenv/bin/subsequenttests b/solenv/bin/subsequenttests
index 3caa84293f3e..8b52f45a6b12 100755
--- a/solenv/bin/subsequenttests
+++ b/solenv/bin/subsequenttests
@@ -30,6 +30,8 @@ eval 'exec "$PERL" -Sw "$0" "$@"'
use lib("$ENV{SOLARENV}/bin/modules");
use SourceConfig;
+my $keep_going = 0;
+my $dry_run = 0;
my $max_running = 1;
while (@ARGV) {
my $arg = shift(@ARGV);
@@ -38,11 +40,29 @@ while (@ARGV) {
} elsif ($arg eq '--') {
last;
} else {
- print STDERR "unknown argument \"$arg\"\n";
- print STDERR "usage: $0 [-P<n>] [-- <args>]\n";
- print STDERR " -P<n> number of parallel dmake invocations\n";
- print STDERR " <args> are passed to dmake invocations\n";
- exit(1);
+ my $n = substr($arg, 0, 1) eq '-' ? 1 : 0;
+ while ($n && $n < length($arg)) {
+ my $c = substr($arg, $n++, 1);
+ if ($c eq 'k') {
+ $keep_going = 1;
+ } elsif ($c eq 'n') {
+ $dry_run = 1;
+ } else {
+ $n = 0;
+ last;
+ }
+ }
+ if (!$n) {
+ print STDERR "unknown argument \"$arg\"\n";
+ print STDERR "usage: $0 [-kn] [-P<n>] [-- <args>]\n";
+ print STDERR " -k continue with other dmake invocations upon\n";
+ print STDERR " failure\n";
+ print STDERR " -n write directories that would be processed\n";
+ print STDERR " to standard output\n";
+ print STDERR " -P<n> number of parallel dmake invocations\n";
+ print STDERR " <args> are passed to dmake invocations\n";
+ exit(1);
+ }
}
}
@@ -82,6 +102,13 @@ foreach $module ($sc->get_active_modules()) {
}
}
+if ($dry_run) {
+ foreach $path (@testpaths) {
+ print "$path\n";
+ }
+ exit(0);
+}
+
my $cmd = 'dmake';
foreach (@ARGV) {
s/'/'\''/g;
@@ -119,8 +146,8 @@ while (@testpaths || $running > 0) {
my $testpath = delete($pids{$pid});
defined($testpath) or die("unmatched PID $pid");
if ($? != 0) {
- @testpaths = ();
push(@failedpaths, $testpath);
+ @testpaths = () unless $keep_going;
}
--$running;
}
diff --git a/solenv/config/sdev300.ini b/solenv/config/sdev300.ini
index 67f074f610ce..eeb72e2cbb61 100644
--- a/solenv/config/sdev300.ini
+++ b/solenv/config/sdev300.ini
@@ -19,8 +19,6 @@ common
ENABLE_CUPS TRUE
ENABLE_DIRECTX TRUE
ENABLE_FONTCONFIG TRUE
- ENABLE_GCONF TRUE
- ENABLE_GNOMEVFS TRUE
ENABLE_GTK TRUE
ENABLE_MEDIAWIKI YES
ENABLE_MINIMIZER YES
@@ -49,6 +47,7 @@ common
WITH_LDAP YES
wrapper_override_cc_wrapper TRUE
MAXPROC maxproc=15
+ XINERAMA_LINK dynamic
}
common:0 IF %UPDATER% == YES
{
@@ -186,8 +185,6 @@ finish
}
common_0:0 IF %OS% == MACOSX
{
- ENABLE_GCONF
- ENABLE_GNOMEVFS
ENABLE_GTK
SOLARINCLUDES -I%SOLARVERSION%$/%INPATH%$/inc%UPDMINOREXT% -I%SOLARENV%$/%OUTPATH%$/inc -I%SOLARENV%$/inc %SOLAREXTRAINC%
}
@@ -359,6 +356,8 @@ unxfbsdi
SOLAREXTRALIB -L../lib -L%SYSBASE%/usr/X11R6/lib -L%SYSBASE%/usr/lib -L/usr/X11R6/lib -L%SOLAR_STLLIBPATH%
SOLAR_JAVA TRUE
ZIPDEP perl %SOLARENV%/bin/zipdep.pl
+ ENABLE_GCONF TRUE
+ ENABLE_GNOMEVFS TRUE
}
common0
{
@@ -601,10 +600,13 @@ unxlngi6
LIBRARY_PATH %SYSBASE%/usr/lib
MKOUT %PERL% %SOLARENV%/bin/mkout.pl
PATHEXTRA %combin%:/usr/bin:/bin:/usr/sbin:/etc:/usr/bin/X11
+ FREETYPE_CFLAGS -I%SYSBASE%/usr/include/freetype2
SOLAREXTRAINC -I%SOLAR_STLPATH% -I%SYSBASE%/usr/include -I%SYSBASE%/usr/include/X11 -I%SYSBASE%/include
SOLAREXTRALIB -L../lib -L%SYSBASE%/usr/X11R6/lib -L%SYSBASE%/usr/lib -L/usr/X11R6/lib -L%SOLAR_STLLIBPATH%
SOLAR_JAVA TRUE
ZIPDEP %PERL% %SOLARENV%/bin/zipdep.pl
+ ENABLE_GCONF TRUE
+ ENABLE_GNOMEVFS TRUE
}
common0
{
@@ -879,10 +881,13 @@ unxlngx6
LIBRARY_PATH %SYSBASE%/usr/lib64
MKOUT %PERL% %SOLARENV%/bin/mkout.pl
PATHEXTRA %combin%:/usr/bin:/bin:/usr/sbin:/etc:/usr/bin/X11
+ FREETYPE_CFLAGS -I%SYSBASE%/usr/include/freetype2
SOLAREXTRAINC -I%SOLAR_STLPATH% -I%SYSBASE%/usr/include -I%SYSBASE%/usr/include/X11 -I%SYSBASE%/include
SOLAREXTRALIB -L../lib64 -L%SYSBASE%/usr/lib64 -L%SOLAR_STLLIBPATH%
SOLAR_JAVA TRUE
ZIPDEP %PERL% %SOLARENV%/bin/zipdep.pl
+ ENABLE_GCONF TRUE
+ ENABLE_GNOMEVFS TRUE
}
common0
{
@@ -1425,11 +1430,14 @@ unxsoli4
DMAKEROOT %SOLARENV%/inc/startup
MKOUT %PERL% %SOLARENV%/bin/mkout.pl
PATHEXTRA /usr/ccs/bin:/usr/bin:/bin:/usr/sbin:/etc:/usr/bin/X11:/opt/langtools/bin:/usr/dt/bin
+ FREETYPE_CFLAGS -I%SYSBASE%/usr/sfw/include -I%SYSBASE%/usr/sfw/include/freetype2
SOLAREXTRAINC -I%SOLAR_STLPATH% -I%SYSBASE%/usr/include
- SOLAREXTRALIB -L%COMPATH%$/lib -L../lib -L%SYSBASE%/usr/lib -L/lib -L/usr/lib -L/usr/dt/lib -L/usr/openwin/lib -L%SOLAR_STLLIBPATH%
+ SOLAREXTRALIB -L%COMPATH%$/lib -L../lib -L%SYSBASE%/usr/lib -L%SYSBASE%/usr/sfw/lib -L/lib -L/usr/lib -L/usr/dt/lib -L/usr/openwin/lib -L%SOLAR_STLLIBPATH%
SOLAR_JAVA TRUE
ZIPDEP %PERL% %SOLARENV%/bin/zipdep.pl
__cdpath %DRIVE_O%/%WORK_STAMP%/ooo%UPDMINOREXT%
+ ENABLE_GCONF TRUE
+ ENABLE_GNOMEVFS TRUE
}
common0
{
@@ -1682,11 +1690,14 @@ unxsols4
DMAKEROOT %SOLARENV%/inc/startup
MKOUT %PERL% %SOLARENV%/bin/mkout.pl
PATHEXTRA /usr/ccs/bin:/usr/bin:/bin:/usr/sbin:/etc:/usr/bin/X11:/opt/langtools/bin:/usr/dt/bin
+ FREETYPE_CFLAGS -I%SYSBASE%/usr/sfw/include -I%SYSBASE%/usr/sfw/include/freetype2
SOLAREXTRAINC -I%SOLAR_STLPATH% -I%SYSBASE%/usr/include
- SOLAREXTRALIB -L%COMPATH%$/lib -L../lib -L%SYSBASE%/usr/lib -L/lib -L/usr/lib -L/usr/dt/lib -L/usr/openwin/lib -L%SOLAR_STLLIBPATH%
+ SOLAREXTRALIB -L%COMPATH%$/lib -L../lib -L%SYSBASE%/usr/lib -L%SYSBASE%/usr/sfw/lib -L/lib -L/usr/lib -L/usr/dt/lib -L/usr/openwin/lib -L%SOLAR_STLLIBPATH%
SOLAR_JAVA TRUE
ZIPDEP %PERL% %SOLARENV%/bin/zipdep.pl
__cdpath %DRIVE_O%/%WORK_STAMP%/ooo%UPDMINOREXT%
+ ENABLE_GCONF TRUE
+ ENABLE_GNOMEVFS TRUE
}
common0
{
@@ -1945,7 +1956,6 @@ unxsolu4
COPYPRJ %PERL% %COMMON_ENV_TOOLS%/copyprj.pl
DELIVER %PERL% %SOLARENV%/bin/deliver.pl
DMAKEROOT %SOLARENV%/inc/startup
- ENABLE_GNOMEVFS
FREETYPE_CFLAGS -I%SYSBASE%/usr/sfw/include -I%SYSBASE%/usr/sfw/include/freetype2
FREETYPE_LIBS -L%SYSBASE%/usr/sfw/lib/sparcv9 -lfreetype
LIBXML_CFLAGS -I%SYSBASE%/usr/include/libxml2
@@ -1962,6 +1972,8 @@ unxsolu4
SYSTEM_LIBXSLT YES
ZIPDEP %PERL% %SOLARENV%/bin/zipdep.pl
__cdpath %DRIVE_O%/%WORK_STAMP%/ooo%UPDMINOREXT%
+ ENABLE_GCONF TRUE
+# ENABLE_GNOMEVFS TRUE
}
common0
{
diff --git a/solenv/inc/installationtest.mk b/solenv/inc/installationtest.mk
index 6806e15c69e7..30c6168c2647 100644
--- a/solenv/inc/installationtest.mk
+++ b/solenv/inc/installationtest.mk
@@ -89,11 +89,11 @@ $(MISC)/$(TARGET)/installation.flag : $(shell \
echo "$$my_tmp" > $@
.END
-cpptest .PHONY : $(MISC)/$(TARGET)/services.rdb
+cpptest .PHONY :
$(RM) -r $(MISC)/$(TARGET)/user
$(MKDIRHIER) $(MISC)/$(TARGET)/user
$(CPPUNITTESTER) \
- -env:UNO_SERVICES=$(my_file)$(PWD)/$(MISC)/$(TARGET)/services.rdb \
+ -env:UNO_SERVICES=$(my_file)$(SOLARXMLDIR)/ure/services.rdb \
-env:UNO_TYPES=$(my_file)$(SOLARBINDIR)/types.rdb \
-env:arg-soffice=$(my_soffice) -env:arg-user=$(MISC)/$(TARGET)/user \
$(my_cppenv) $(OOO_CPPTEST_ARGS)
@@ -103,12 +103,6 @@ cpptest .PHONY : $(MISC)/$(TARGET)/services.rdb
cpptest : $(MISC)/$(TARGET)/installation.flag
.END
-$(MISC)/$(TARGET)/services.rdb :
- $(MKDIRHIER) $(@:d)
- $(RM) $@
- $(REGCOMP) -register -r $@ -wop -c bridgefac.uno -c connector.uno \
- -c remotebridge.uno -c uuresolver.uno
-
.IF "$(SOLAR_JAVA)" == "TRUE" && "$(OOO_JUNIT_JAR)" != ""
javatest .PHONY : $(JAVATARGET)
$(RM) -r $(MISC)/$(TARGET)/user
diff --git a/solenv/inc/libs.mk b/solenv/inc/libs.mk
index 09b6df9d33d9..4f7ffbf40851 100644
--- a/solenv/inc/libs.mk
+++ b/solenv/inc/libs.mk
@@ -354,6 +354,7 @@ LPSOLVELIB=-llpsolve55
SOFFICELIB=-lsofficeapp
UNOPKGAPPLIB=-lunopkgapp
TESTLIB=-ltest
+XMLREADERLIB=-lxmlreader
.ELSE # ("$(GUI)"=="UNX" || "$(COM)"=="GCC") && "$(GUI)"!="OS2"
@@ -535,5 +536,6 @@ LPSOLVELIB=lpsolve55.lib
SOFFICELIB=isofficeapp.lib
UNOPKGAPPLIB=iunopkgapp.lib
TESTLIB=itest.lib
+XMLREADERLIB=ixmlreader.lib
.ENDIF # ("$(GUI)"=="UNX" || "$(COM)"=="GCC") && "$(GUI)"!="OS2"
diff --git a/solenv/inc/minor.mk b/solenv/inc/minor.mk
index 18cd8b0c92dd..3fa74e90a5d6 100644
--- a/solenv/inc/minor.mk
+++ b/solenv/inc/minor.mk
@@ -1,5 +1,5 @@
RSCVERSION=300
-RSCREVISION=300m88(Build:9528)
-BUILD=9528
-LAST_MINOR=m88
+RSCREVISION=300m89(Build:9532)
+BUILD=9532
+LAST_MINOR=m89
SOURCEVERSION=DEV300
diff --git a/solenv/inc/settings.mk b/solenv/inc/settings.mk
index 68bbc797d8af..c6374cf39321 100644
--- a/solenv/inc/settings.mk
+++ b/solenv/inc/settings.mk
@@ -1018,15 +1018,15 @@ LNTFLAGSOUTOBJ=-os
.ENDIF
.IF "$(OOO_LIBRARY_PATH_VAR)" != ""
-# Add SOLARLIBDIR to the end of a (potentially previously undefined) library
-# path (LD_LIBRARY_PATH, PATH, etc.; there is no real reason to prefer adding at
-# the end over adding at the start); the ": &&" in the bash case enables this to
+# Add SOLARLIBDIR at the begin of a (potentially previously undefined) library
+# path (LD_LIBRARY_PATH, PATH, etc.; prepending avoids fetching libraries from
+# an existing office/URE installation ; the ": &&" in the bash case enables this to
# work at the start of a recipe line that is not prefixed by "+" as well as in
# the middle of an existing && chain:
AUGMENT_LIBRARY_PATH = : && \
- $(OOO_LIBRARY_PATH_VAR)=$${{$(OOO_LIBRARY_PATH_VAR)+$${{$(OOO_LIBRARY_PATH_VAR)}}:}}$(normpath, $(SOLARSHAREDBIN))
+ $(OOO_LIBRARY_PATH_VAR)=$(normpath, $(SOLARSHAREDBIN))$${{$(OOO_LIBRARY_PATH_VAR):+:$${{$(OOO_LIBRARY_PATH_VAR)}}}}
AUGMENT_LIBRARY_PATH_LOCAL = : && \
- $(OOO_LIBRARY_PATH_VAR)=$${{$(OOO_LIBRARY_PATH_VAR)+$${{$(OOO_LIBRARY_PATH_VAR)}}:}}$(normpath, $(PWD)/$(DLLDEST)):$(normpath, $(SOLARSHAREDBIN))
+ $(OOO_LIBRARY_PATH_VAR)=$(normpath, $(PWD)/$(DLLDEST)):$(normpath, $(SOLARSHAREDBIN))$${{$(OOO_LIBRARY_PATH_VAR):+:$${{$(OOO_LIBRARY_PATH_VAR)}}}}
.END
# remove if .Net 2003 support has expired
@@ -1354,6 +1354,19 @@ XERCES_JAR*=$(SOLARBINDIR)/xercesImpl.jar
CPPUNIT_CFLAGS =
.END
+COMPONENTPREFIX_URE_NATIVE = vnd.sun.star.expand:$$URE_INTERNAL_LIB_DIR/
+COMPONENTPREFIX_URE_JAVA = vnd.sun.star.expand:$$URE_INTERNAL_JAVA_DIR/
+.IF "$(OS)" == "WNT"
+COMPONENTPREFIX_BASIS_NATIVE = vnd.sun.star.expand:$$BRAND_BASE_DIR/program/
+.ELSE
+COMPONENTPREFIX_BASIS_NATIVE = vnd.sun.star.expand:$$OOO_BASE_DIR/program/
+.END
+COMPONENTPREFIX_BASIS_JAVA = vnd.sun.star.expand:$$OOO_BASE_DIR/program/classes/
+COMPONENTPREFIX_BASIS_PYTHON = vnd.openoffice.pymodule:
+COMPONENTPREFIX_INBUILD_NATIVE = \
+ vnd.sun.star.expand:$$OOO_INBUILD_SHAREDLIB_DIR/
+COMPONENTPREFIX_INBUILD_JAVA = vnd.sun.star.expand:$$OOO_INBUILD_JAR_DIR/
+
# workaround for strange dmake bug:
# if the previous block was a rule or a target, "\#" isn't recognized
# as an escaped "#". if it was an assignment, escaping works...
diff --git a/solenv/inc/unxlng.mk b/solenv/inc/unxlng.mk
index aff552dde89c..1ca4faa34402 100644
--- a/solenv/inc/unxlng.mk
+++ b/solenv/inc/unxlng.mk
@@ -65,7 +65,7 @@ CXX*=g++
# name of C Compiler
CC*=gcc
.IF "$(SYSBASE)"!=""
-CFLAGS_SYSBASE:=-isystem $(SYSBASE)$/usr$/include
+CFLAGS_SYSBASE:=--sysroot=$(SYSBASE)
CXX+:=$(CFLAGS_SYSBASE)
CC+:=$(CFLAGS_SYSBASE)
.ENDIF # "$(SYSBASE)"!=""
@@ -153,8 +153,7 @@ LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$ORIGIN:$$ORIGIN/../basis-link/program:$$O
LINKFLAGSRUNPATH_OXT=
LINKFLAGSRUNPATH_BOXT=-Wl,-rpath,\''$$ORIGIN/../../../basis-link/program'\'
LINKFLAGSRUNPATH_NONE=
-# flag -Wl,-z,noexecstack sets the NX bit on the stack
-LINKFLAGS=-Wl,-z,noexecstack -Wl,-z,combreloc $(LINKFLAGSDEFS)
+LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS)
.IF "$(HAVE_LD_BSYMBOLIC_FUNCTIONS)" == "TRUE"
LINKFLAGS += -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo
.ENDIF
diff --git a/solenv/src/component.map b/solenv/src/component.map
index ac2c3750bfe0..62b8829a0f51 100755
--- a/solenv/src/component.map
+++ b/solenv/src/component.map
@@ -1,7 +1,6 @@
UDK_3_0_0 {
global:
component_getImplementationEnvironment;
- component_writeInfo;
component_getFactory;
local:
*;
diff --git a/desktop/source/migration/services/migrationoo3.map b/solenv/src/reg-component.map
index ac2c3750bfe0..ac2c3750bfe0 100755
--- a/desktop/source/migration/services/migrationoo3.map
+++ b/solenv/src/reg-component.map
diff --git a/solenv/src/unloadablecomponent.map b/solenv/src/unloadablecomponent.map
index 30c5bb729ac7..2da0c5709c7b 100755
--- a/solenv/src/unloadablecomponent.map
+++ b/solenv/src/unloadablecomponent.map
@@ -1,7 +1,6 @@
UDK_3_0_0 {
global:
component_getImplementationEnvironment;
- component_writeInfo;
component_getFactory;
component_canUnload;
local:
diff --git a/sot/prj/d.lst b/sot/prj/d.lst
index 528b6863ef3c..10bed8c9fe5e 100644
--- a/sot/prj/d.lst
+++ b/sot/prj/d.lst
@@ -25,3 +25,4 @@ mkdir: %_DEST%\inc%_EXT%\sot
..\%__SRC%\bin\sot?????.dll %_DEST%\bin%_EXT%\sot?????.dll
..\%__SRC%\bin\sot?????.sym %_DEST%\bin%_EXT%\sot?????.sym
..\%__SRC%\misc\sot?????.map %_DEST%\bin%_EXT%\sot?????.map
+..\%__SRC%\misc\sot.component %_DEST%\xml%_EXT%\sot.component
diff --git a/sot/source/unoolestorage/register.cxx b/sot/source/unoolestorage/register.cxx
index 00326333546d..083a4d585ca1 100644
--- a/sot/source/unoolestorage/register.cxx
+++ b/sot/source/unoolestorage/register.cxx
@@ -69,33 +69,5 @@ SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory( const sal_Char * pImp
return pRet;
}
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( void * /*pServiceManager*/, void * pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- uno::Reference< registry::XRegistryKey > xKey( reinterpret_cast< registry::XRegistryKey* >( pRegistryKey ) );
-
- uno::Reference< registry::XRegistryKey > xNewKey;
-
- xNewKey = xKey->createKey( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
- OLESimpleStorage::impl_staticGetImplementationName() +
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) );
-
- const uno::Sequence< ::rtl::OUString > &rServices = OLESimpleStorage::impl_staticGetSupportedServiceNames();
- for( sal_Int32 ind = 0; ind < rServices.getLength(); ind++ )
- xNewKey->createKey( rServices.getConstArray()[ind] );
-
- return sal_True;
- }
- catch (registry::InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
-
} // extern "C"
diff --git a/sot/util/makefile.mk b/sot/util/makefile.mk
index 60b34c356217..72d17db189be 100644
--- a/sot/util/makefile.mk
+++ b/sot/util/makefile.mk
@@ -79,3 +79,11 @@ $(MISC)$/$(SHL1TARGET).flt: makefile.mk
@echo Making: $@
$(TYPE) sot.flt > $@
+
+ALLTAR : $(MISC)/sot.component
+
+$(MISC)/sot.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ sot.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt sot.component
diff --git a/sot/util/sot.component b/sot/util/sot.component
new file mode 100644
index 000000000000..7d17c7d54475
--- /dev/null
+++ b/sot/util/sot.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.embed.OLESimpleStorage">
+ <service name="com.sun.star.embed.OLESimpleStorage"/>
+ </implementation>
+</component>
diff --git a/starmath/inc/dialog.hxx b/starmath/inc/dialog.hxx
index 75aee6fd2009..7724bc975d54 100644
--- a/starmath/inc/dialog.hxx
+++ b/starmath/inc/dialog.hxx
@@ -30,9 +30,7 @@
#include <vcl/image.hxx>
#include <vcl/dialog.hxx>
#include <vcl/fixed.hxx>
-#ifndef _SV_BUTTON_HXX //autogen
#include <vcl/button.hxx>
-#endif
#include <vcl/image.hxx>
#include <sfx2/tabdlg.hxx>
#include <vcl/combobox.hxx>
@@ -403,8 +401,8 @@ public:
{
}
- void SetChar(xub_Unicode aChar);
- void SetFont(const Font &rFont);
+ void SetSymbol( const SmSym *pSym );
+ void SetSymbol( sal_UCS4 cChar, const Font &rFont );
};
////////////////////////////////////////////////////////////////////////////////
diff --git a/starmath/inc/starmath.hrc b/starmath/inc/starmath.hrc
index 8d156792e1d3..1b076fb7bf31 100644..100755
--- a/starmath/inc/starmath.hrc
+++ b/starmath/inc/starmath.hrc
@@ -35,28 +35,28 @@
#define SID_PREVERR (SID_SMA_START + 2)
#define SID_NEXTMARK (SID_SMA_START + 3)
#define SID_PREVMARK (SID_SMA_START + 4)
-#define SID_SYMBOLS_CATALOGUE (SID_SMA_START + 5)
+#define SID_SYMBOLS_CATALOGUE (SID_SMA_START + 5)
#define SID_PREFERENCES (SID_SMA_START + 6)
#define SID_VIEW050 (SID_SMA_START + 7)
#define SID_VIEW100 (SID_SMA_START + 8)
#define SID_VIEW200 (SID_SMA_START + 9)
-#define SID_ZOOMIN (SID_SMA_START + 10)
+#define SID_ZOOMIN (SID_SMA_START + 10)
#define SID_ZOOMOUT (SID_SMA_START + 11)
-#define SID_DRAW (SID_SMA_START + 12)
-#define SID_ADJUST (SID_SMA_START + 13)
+#define SID_DRAW (SID_SMA_START + 12)
+#define SID_ADJUST (SID_SMA_START + 13)
#define SID_TOOLBOX (SID_SMA_START + 14)
#define SID_FORMULACURSOR (SID_SMA_START + 15)
-#define SID_FONT (SID_SMA_START + 50)
+#define SID_FONT (SID_SMA_START + 50)
#define SID_FONTSIZE (SID_SMA_START + 51)
#define SID_DISTANCE (SID_SMA_START + 52)
-#define SID_ALIGN (SID_SMA_START + 53)
+#define SID_ALIGN (SID_SMA_START + 53)
#define SID_AUTO_REDRAW (SID_SMA_START + 55)
#define SID_SYMBOLS (SID_SMA_START + 56) // Muss erstmal wieder aufgenommen werden !
#define SID_TEXTMODE (SID_SMA_START + 57)
-#define SID_INSERT_FORMULA (SID_SMA_START + 58)
-#define SID_TEXT (SID_SMA_START + 100)
-#define SID_GAPHIC_SM (SID_SMA_START + 101)
+#define SID_IMPORT_FORMULA (SID_SMA_START + 58)
+#define SID_TEXT (SID_SMA_START + 100)
+#define SID_GAPHIC_SM (SID_SMA_START + 101)
#define SID_FITINWINDOW (SID_SMA_START + 103)
#define SID_INSERTTEXT (SID_SMA_START + 104)
#define SID_INSERTCOMMAND (SID_SMA_START + 105)
@@ -81,7 +81,7 @@
#define SID_CMDBOXWINDOW (SID_SMA_START + 122)
#define SID_TOOLBOXWINDOW (SID_SMA_START + 123)
#define SID_NO_RIGHT_SPACES (SID_SMA_START + 124)
-#define SID_DUMMY (SID_SMA_START + 254)
+#define SID_DUMMY (SID_SMA_START + 254)
//#define GID_FORMEL (RID_GROUPS_OFFSET + 1)
//#define GID_ERROR (RID_GROUPS_OFFSET + 2)
diff --git a/starmath/inc/symbol.hxx b/starmath/inc/symbol.hxx
index 51e8ad0b8642..621538790300 100644
--- a/starmath/inc/symbol.hxx
+++ b/starmath/inc/symbol.hxx
@@ -82,24 +82,24 @@ class SmSym
String m_aName;
String m_aExportName;
String m_aSetName;
- sal_Unicode m_cChar;
+ sal_UCS4 m_cChar;
BOOL m_bPredefined;
BOOL m_bDocSymbol;
public:
SmSym();
- SmSym(const String& rName, const Font& rFont, sal_Unicode cChar,
+ SmSym(const String& rName, const Font& rFont, sal_UCS4 cChar,
const String& rSet, BOOL bIsPredefined = FALSE);
SmSym(const SmSym& rSymbol);
SmSym& operator = (const SmSym& rSymbol);
const Font& GetFace() const { return m_aFace; }
- sal_Unicode GetCharacter() const { return m_cChar; }
+ sal_UCS4 GetCharacter() const { return m_cChar; }
const String& GetName() const { return m_aName; }
void SetFace( const Font& rFont ) { m_aFace = rFont; }
- void SetCharacter( sal_Unicode cChar ) { m_cChar = cChar; }
+ void SetCharacter( sal_UCS4 cChar ) { m_cChar = cChar; }
//! since the symbol name is also used as key in the map it should not be possible to change the name
//! because ten the key would not be the same as its supposed copy here
diff --git a/starmath/inc/toolbox.hxx b/starmath/inc/toolbox.hxx
index 1881adc0f845..fcc1b046f2dd 100644..100755
--- a/starmath/inc/toolbox.hxx
+++ b/starmath/inc/toolbox.hxx
@@ -30,12 +30,10 @@
#include <sfx2/basedlgs.hxx>
#include <sfx2/childwin.hxx>
#include <vcl/toolbox.hxx>
+
#include "smmod.hxx"
#include "config.hxx"
-
-#include "dialog.hrc"
-
-#define NUM_TBX_CATEGORIES 9
+#include "toolbox.hrc"
class SmToolBoxWindow : public SfxFloatingWindow
{
diff --git a/starmath/inc/utility.hxx b/starmath/inc/utility.hxx
index e7db51152e25..d01c894af592 100644
--- a/starmath/inc/utility.hxx
+++ b/starmath/inc/utility.hxx
@@ -42,10 +42,6 @@ class String;
#define C2S(cChar) String::CreateFromAscii(RTL_CONSTASCII_STRINGPARAM(cChar))
-/////////////////////////////////////////////////////////////////
-
-const ByteString ExportString( const String& rString );
-const String ImportString( const ByteString& rByteString );
/////////////////////////////////////////////////////////////////
diff --git a/starmath/prj/d.lst b/starmath/prj/d.lst
index bc48875e81e6..78bae57498ea 100644
--- a/starmath/prj/d.lst
+++ b/starmath/prj/d.lst
@@ -19,3 +19,5 @@ mkdir: %_DEST%\inc%_EXT%\starmath
..\uiconfig\smath\menubar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\smath\menubar\*.xml
..\uiconfig\smath\toolbar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\smath\toolbar\*.xml
..\uiconfig\smath\statusbar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\smath\statusbar\*.xml
+..\%__SRC%\misc\sm.component %_DEST%\xml%_EXT%\sm.component
+..\%__SRC%\misc\smd.component %_DEST%\xml%_EXT%\smd.component
diff --git a/starmath/sdi/smath.sdi b/starmath/sdi/smath.sdi
index f1f812e6c40b..4b9eaedac599 100644..100755
--- a/starmath/sdi/smath.sdi
+++ b/starmath/sdi/smath.sdi
@@ -403,8 +403,8 @@ SfxVoidItem InsertConfigName SID_INSERTTEXT
]
//--------------------------------------------------------------------------
-SfxBoolItem InsertFormula SID_INSERT_FORMULA
-(SfxStringItem Name SID_INSERT_FORMULA,SfxStringItem Filter FN_PARAM_1)
+SfxBoolItem ImportFormula SID_IMPORT_FORMULA
+(SfxStringItem Name SID_IMPORT_FORMULA,SfxStringItem Filter FN_PARAM_1)
[
/* flags: */
AutoUpdate = FALSE,
diff --git a/starmath/sdi/smslots.sdi b/starmath/sdi/smslots.sdi
index 9e27c7149502..69cecf25f308 100644..100755
--- a/starmath/sdi/smslots.sdi
+++ b/starmath/sdi/smslots.sdi
@@ -275,12 +275,12 @@ interface FormulaView
ExecMethod = Execute ;
StateMethod = GetState ;
]
- SID_INSERT_FORMULA //idlpp ole : no , status : no
- [
- ExecMethod = Execute ;
- StateMethod = GetState ;
- Export = FALSE ;
- ]
+ SID_IMPORT_FORMULA //idlpp ole : no , status : no
+ [
+ ExecMethod = Execute ;
+ StateMethod = GetState ;
+ Export = FALSE ;
+ ]
//idlpp kein Menueeintrag , also keine Texte
SID_ATTR_ZOOM //idlpp ole : no , status : no
[
diff --git a/starmath/source/cfgitem.cxx b/starmath/source/cfgitem.cxx
index 43c0fbe27dd0..21ae6c0e63df 100644
--- a/starmath/source/cfgitem.cxx
+++ b/starmath/source/cfgitem.cxx
@@ -490,7 +490,7 @@ void SmMathConfig::ReadSymbol( SmSym &rSymbol,
{
const Any * pValue = aValues.getConstArray();
Font aFont;
- sal_Unicode cChar = '\0';
+ sal_UCS4 cChar = '\0';
String aSet;
BOOL bPredefined = FALSE;
@@ -500,7 +500,7 @@ void SmMathConfig::ReadSymbol( SmSym &rSymbol,
BOOL bOK = TRUE;
if (pValue->hasValue() && (*pValue >>= nTmp32))
- cChar = (sal_Unicode) nTmp32;
+ cChar = static_cast< sal_UCS4 >( nTmp32 );
else
bOK = FALSE;
++pValue;
@@ -624,7 +624,7 @@ void SmMathConfig::SetSymbols( const std::vector< SmSym > &rNewSymbols )
// Char
pVal->Name = aNodeNameDelim;
pVal->Name += *pName++;
- pVal->Value <<= (INT32) rSymbol.GetCharacter();
+ pVal->Value <<= static_cast< sal_UCS4 >( rSymbol.GetCharacter() );
pVal++;
// Set
pVal->Name = aNodeNameDelim;
diff --git a/starmath/source/detreg.cxx b/starmath/source/detreg.cxx
index c79813f994a7..ef4b261ce0b3 100644
--- a/starmath/source/detreg.cxx
+++ b/starmath/source/detreg.cxx
@@ -48,29 +48,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvironmentTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
}
-sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/,
- void* pRegistryKey )
-{
- Reference< ::registry::XRegistryKey >
- xKey( reinterpret_cast< ::registry::XRegistryKey* >( pRegistryKey ) ) ;
-
- OUString aDelimiter( RTL_CONSTASCII_USTRINGPARAM("/") );
- OUString aUnoServices( RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") );
-
- // Eigentliche Implementierung und ihre Services registrieren
- sal_Int32 i;
- Reference< ::registry::XRegistryKey > xNewKey;
-
- xNewKey = xKey->createKey( aDelimiter + SmFilterDetect::impl_getStaticImplementationName() +
- aUnoServices );
-
- Sequence< OUString > aServices = SmFilterDetect::impl_getStaticSupportedServiceNames();
- for(i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- return sal_True;
-}
-
void* SAL_CALL component_getFactory( const sal_Char* pImplementationName,
void* pServiceManager,
void* /*pRegistryKey*/ )
diff --git a/starmath/source/dialog.cxx b/starmath/source/dialog.cxx
index 0dc58c8ed640..ee1de4b5dbbb 100644..100755
--- a/starmath/source/dialog.cxx
+++ b/starmath/source/dialog.cxx
@@ -50,17 +50,18 @@
#include <svx/ucsubset.hxx>
-#include "config.hxx"
#include "dialog.hxx"
-#ifndef _STARMATH_HRC
#include "starmath.hrc"
-#endif
-
+#include "config.hxx"
#include "dialog.hrc"
#include "smmod.hxx"
#include "symbol.hxx"
#include "view.hxx"
#include "document.hxx"
+#include "unomodel.hxx"
+
+
+using ::rtl::OUString;
////////////////////////////////////////
//
@@ -1157,11 +1158,13 @@ void SmShowSymbolSet::Paint(const Rectangle&)
SetTextColor( aTxtColor );
int nIV = i - v;
- Size aSize(GetTextWidth(aSymbol.GetCharacter()), GetTextHeight());
+ sal_UCS4 cChar = aSymbol.GetCharacter();
+ String aText( OUString( &cChar, 1 ) );
+ Size aSize( GetTextWidth( aText ), GetTextHeight());
DrawText(Point((nIV % nColumns) * nLen + (nLen - aSize.Width()) / 2,
(nIV / nColumns) * nLen + (nLen - aSize.Height()) / 2),
- aSymbol.GetCharacter());
+ aText);
}
if (nSelectSymbol != SYMBOL_NONE)
@@ -1333,7 +1336,7 @@ void SmShowSymbol::Paint(const Rectangle &rRect)
Size aTextSize(GetTextWidth(rText), GetTextHeight());
DrawText(Point((GetOutputSize().Width() - aTextSize.Width()) / 2,
- (GetOutputSize().Height() - aTextSize.Height()) / 2), rText);
+ (GetOutputSize().Height() * 7/10)), rText);
}
@@ -1350,17 +1353,14 @@ void SmShowSymbol::SetSymbol(const SmSym *pSymbol)
{
if (pSymbol)
{
- Color aTxtColor( GetTextColor() );
-
Font aFont (pSymbol->GetFace());
aFont.SetSize(Size(0, GetOutputSize().Height() - GetOutputSize().Height() / 3));
- aFont.SetAlign(ALIGN_TOP);
+ aFont.SetAlign(ALIGN_BASELINE);
SetFont(aFont);
- // keep old text color (font may have different color set)
- SetTextColor(aTxtColor);
-
- SetText(XubString(pSymbol->GetCharacter()));
+ sal_UCS4 cChar = pSymbol->GetCharacter();
+ String aText( OUString( &cChar, 1 ) );
+ SetText( aText );
}
// 'Invalidate' fuellt den background mit der background-Farbe.
@@ -1483,7 +1483,7 @@ IMPL_LINK( SmSymbolDialog, GetClickHdl, Button *, EMPTYARG pButton )
const SmSym *pSym = GetSymbol();
if (pSym)
{
- XubString aText ('%');
+ String aText ('%');
aText += pSym->GetName();
aText += (sal_Unicode)' ';
@@ -1644,42 +1644,43 @@ void SmShowChar::Paint(const Rectangle &rRect)
{
Control::Paint( rRect );
- XubString Text (GetText ());
- if (Text.Len() > 0)
+ OUString aText( GetText() );
+ if (aText.getLength() > 0)
{
- Size aTextSize(GetTextWidth(Text), GetTextHeight());
+#if OSL_DEBUG_LEVEL > 1
+ sal_Int32 nPos = 0;
+ sal_UCS4 cChar = aText.iterateCodePoints( &nPos );
+ (void) cChar;
+#endif
+ Size aTextSize(GetTextWidth(aText), GetTextHeight());
DrawText(Point((GetOutputSize().Width() - aTextSize.Width()) / 2,
- (GetOutputSize().Height() - aTextSize.Height()) / 2), Text);
+ (GetOutputSize().Height() * 7/10)), aText);
}
}
-void SmShowChar::SetChar(xub_Unicode aChar)
+void SmShowChar::SetSymbol( const SmSym *pSym )
{
- SetText(XubString(aChar));
- Invalidate();
+ if (pSym)
+ SetSymbol( pSym->GetCharacter(), pSym->GetFace() );
}
-void SmShowChar::SetFont(const Font &rFont)
+void SmShowChar::SetSymbol( sal_UCS4 cChar, const Font &rFont )
{
- Color aTxtColor( GetTextColor() );
+ Font aFont( rFont );
+ aFont.SetSize( Size(0, GetOutputSize().Height() - GetOutputSize().Height() / 3) );
+ aFont.SetAlign(ALIGN_BASELINE);
+ SetFont(aFont);
- Font aFont (rFont);
- Size aSize (Size(0, GetOutputSize().Height() - GetOutputSize().Height() / 3));
-
- aFont.SetSize(aSize);
- aFont.SetAlign(ALIGN_TOP);
- aFont.SetTransparent(TRUE);
- Control::SetFont(aFont);
-
- // keep text color (new font may have different one)
- SetTextColor( aTxtColor );
+ String aText( OUString( &cChar, 1) );
+ SetText( aText );
Invalidate();
}
+
////////////////////////////////////////////////////////////////////////////////
void SmSymDefineDialog::FillSymbols(ComboBox &rComboBox, BOOL bDeleteText)
@@ -1866,7 +1867,7 @@ IMPL_LINK( SmSymDefineDialog, StyleChangeHdl, ComboBox *, EMPTYARG pComboBox )
IMPL_LINK( SmSymDefineDialog, CharHighlightHdl, Control *, EMPTYARG )
{
- sal_UCS4 cChar = aCharsetDisplay.GetSelectCharacter();
+ sal_UCS4 cChar = aCharsetDisplay.GetSelectCharacter();
#if OSL_DEBUG_LEVEL > 1
DBG_ASSERT( pSubsetMap, "SubsetMap missing" );
@@ -1880,9 +1881,18 @@ IMPL_LINK( SmSymDefineDialog, CharHighlightHdl, Control *, EMPTYARG )
aFontsSubsetLB.SetNoSelection();
}
- // TO_DO_UCS4 (#i74049): get rid of cast without loosing UCS4 functionality
- aSymbolDisplay.SetChar( sal::static_int_cast< sal_Unicode >(cChar) );
+ aSymbolDisplay.SetSymbol( cChar, aCharsetDisplay.GetFont() );
+
UpdateButtons();
+
+ // display Unicode position as symbol name while iterating over characters
+ const String aHex( String::CreateFromInt64( cChar, 16 ).ToUpperAscii() );
+ const String aPattern( A2OU( aHex.Len() > 4 ? "Ux000000" : "Ux0000" ) );
+ String aUnicodePos( aPattern.Copy( 0, aPattern.Len() - aHex.Len() ) );
+ aUnicodePos += aHex;
+ aSymbols.SetText( aUnicodePos );
+ aSymbolName.SetText( aUnicodePos );
+
return 0;
}
@@ -1896,16 +1906,13 @@ IMPL_LINK( SmSymDefineDialog, AddClickHdl, Button *, EMPTYARG pButton )
#endif
// add symbol
- // TO_DO_UCS4 (#i74049): get rid of cast without loosing UCS4 functionality
const SmSym aNewSymbol( aSymbols.GetText(), aCharsetDisplay.GetFont(),
- sal::static_int_cast< sal_Unicode >( aCharsetDisplay.GetSelectCharacter() ),
- aSymbolSets.GetText() );
+ aCharsetDisplay.GetSelectCharacter(), aSymbolSets.GetText() );
//DBG_ASSERT( aSymbolMgrCopy.GetSymbolByName(aTmpSymbolName) == NULL, "symbol already exists" );
aSymbolMgrCopy.AddOrReplaceSymbol( aNewSymbol );
// update display of new symbol
- aSymbolDisplay.SetChar( aNewSymbol.GetCharacter() );
- aSymbolDisplay.SetFont( aNewSymbol.GetFace() );
+ aSymbolDisplay.SetSymbol( &aNewSymbol );
aSymbolName.SetText( aNewSymbol.GetName() );
aSymbolSetName.SetText( aNewSymbol.GetSymbolSetName() );
@@ -1932,10 +1939,8 @@ IMPL_LINK( SmSymDefineDialog, ChangeClickHdl, Button *, EMPTYARG pButton )
// get new Sybol to use
//! get font from symbol-disp lay since charset-display does not keep
//! the bold attribut.
- // TO_DO_UCS4 (#i74049): get rid of cast without loosing UCS4 functionality
const SmSym aNewSymbol( aSymbols.GetText(), aCharsetDisplay.GetFont(),
- sal::static_int_cast< sal_Unicode >( aCharsetDisplay.GetSelectCharacter() ),
- aSymbolSets.GetText() );
+ aCharsetDisplay.GetSelectCharacter(), aSymbolSets.GetText() );
// remove old symbol if the name was changed then add new one
// const bool bSetNameChanged = aOldSymbolSets.GetText() != aSymbolSets.GetText();
@@ -1949,8 +1954,7 @@ IMPL_LINK( SmSymDefineDialog, ChangeClickHdl, Button *, EMPTYARG pButton )
SetOrigSymbol(NULL, XubString());
// update display of new symbol
- aSymbolDisplay.SetChar( aNewSymbol.GetCharacter() );
- aSymbolDisplay.SetFont( aNewSymbol.GetFace() );
+ aSymbolDisplay.SetSymbol( &aNewSymbol );
aSymbolName.SetText( aNewSymbol.GetName() );
aSymbolSetName.SetText( aNewSymbol.GetSymbolSetName() );
@@ -2083,8 +2087,8 @@ SmSymDefineDialog::SmSymDefineDialog(Window * pParent,
// auto completion is troublesome since that symbols character also gets automatically selected in the
// display and if the user previously selected a character to define/redefine that one this is bad
- aOldSymbols.EnableAutocomplete( FALSE, TRUE );
- aSymbols .EnableAutocomplete( FALSE, TRUE );
+ aOldSymbols.EnableAutocomplete( FALSE, TRUE );
+ aSymbols .EnableAutocomplete( FALSE, TRUE );
FillFonts();
if (aFonts.GetEntryCount() > 0)
@@ -2270,8 +2274,7 @@ void SmSymDefineDialog::SetOrigSymbol(const SmSym *pSymbol,
aSymName = pSymbol->GetName();
aSymSetName = rSymbolSetName;
- aOldSymbolDisplay.SetFont(pSymbol->GetFace());
- aOldSymbolDisplay.SetChar(pSymbol->GetCharacter());
+ aOldSymbolDisplay.SetSymbol( pSymbol );
}
else
{ // loeschen des angezeigten Symbols
@@ -2325,6 +2328,10 @@ BOOL SmSymDefineDialog::SelectSymbol(ComboBox &rComboBox,
// das zugehoerige Zeichen auswaehlen
SelectChar(pSymbol->GetCharacter());
+
+ // since SelectChar will also set the unicode point as text in the
+ // symbols box, we have to set the symbol name again to get that one displayed
+ aSymbols.SetText( pSymbol->GetName() );
}
}
@@ -2381,7 +2388,7 @@ void SmSymDefineDialog::SetFont(const XubString &rFontName, const XubString &rSt
aFontsSubsetLB.SetEntryData( nPos, (void *) pSubset );
// subset must live at least as long as the selected font !!!
if( bFirst )
- aFontsSubsetLB.SelectEntryPos( nPos );
+ aFontsSubsetLB.SelectEntryPos( nPos );
bFirst = false;
}
if( bFirst )
@@ -2401,7 +2408,11 @@ BOOL SmSymDefineDialog::SelectFont(const XubString &rFontName, BOOL bApplyFont)
if (aStyles.GetEntryCount() > 0)
SelectStyle(aStyles.GetEntry(0));
if (bApplyFont)
+ {
SetFont(aFonts.GetSelectEntry(), aStyles.GetText());
+ // update preview to use new font
+ aSymbolDisplay.SetSymbol( aCharsetDisplay.GetSelectCharacter(), aCharsetDisplay.GetFont() );
+ }
bRet = TRUE;
}
else
@@ -2428,7 +2439,11 @@ BOOL SmSymDefineDialog::SelectStyle(const XubString &rStyleName, BOOL bApplyFont
{
aStyles.SetText(aStyles.GetEntry(nPos));
if (bApplyFont)
+ {
SetFont(aFonts.GetSelectEntry(), aStyles.GetText());
+ // update preview to use new font
+ aSymbolDisplay.SetSymbol( aCharsetDisplay.GetSelectCharacter(), aCharsetDisplay.GetFont() );
+ }
bRet = TRUE;
}
else
@@ -2443,7 +2458,7 @@ BOOL SmSymDefineDialog::SelectStyle(const XubString &rStyleName, BOOL bApplyFont
void SmSymDefineDialog::SelectChar(xub_Unicode cChar)
{
aCharsetDisplay.SelectCharacter( cChar );
- aSymbolDisplay.SetChar( cChar );
+ aSymbolDisplay.SetSymbol( cChar, aCharsetDisplay.GetFont() );
UpdateButtons();
}
diff --git a/starmath/source/makefile.mk b/starmath/source/makefile.mk
index a409e55d2462..0e038bb9c78d 100644..100755
--- a/starmath/source/makefile.mk
+++ b/starmath/source/makefile.mk
@@ -47,6 +47,7 @@ SMDLL=TRUE
SRS2NAME =smres
SRC2FILES = smres.src \
symbol.src \
+ toolbox.src \
commands.src
SLO1FILES = \
diff --git a/starmath/source/node.cxx b/starmath/source/node.cxx
index b986a046b205..d8e2586e151e 100755
--- a/starmath/source/node.cxx
+++ b/starmath/source/node.cxx
@@ -48,10 +48,15 @@
#include <math.h>
#include <float.h>
+
+#define APPEND(str,ascii) str.AppendAscii(RTL_CONSTASCII_STRINGPARAM(ascii))
+
// define this to draw rectangles for debugging
//#define SM_RECT_DEBUG
-#define APPEND(str,ascii) str.AppendAscii(RTL_CONSTASCII_STRINGPARAM(ascii))
+
+using ::rtl::OUString;
+
////////////////////////////////////////
// SmTmpDevice
@@ -2471,6 +2476,12 @@ void SmTextNode::Draw(OutputDevice &rDev, const Point& rPosition) const
// auf Pixelkoordinaten runden
aPos = rDev.PixelToLogic( rDev.LogicToPixel(aPos) );
+#if OSL_DEBUG_LEVEL > 1
+ sal_Int32 nPos = 0;
+ sal_UCS4 cChar = OUString( aText ).iterateCodePoints( &nPos );
+ (void) cChar;
+#endif
+
rDev.DrawStretchText(aPos, GetWidth(), aText);
#ifdef SM_RECT_DEBUG
@@ -2851,7 +2862,9 @@ void SmSpecialNode::Prepare(const SmFormat &rFormat, const SmDocShell &rDocShell
String aName( GetToken().aText.Copy(1) );
if (NULL != (pSym = pp->GetSymbolManager().GetSymbolByName( aName )))
{
- SetText( pSym->GetCharacter() );
+ sal_UCS4 cChar = pSym->GetCharacter();
+ String aTmp( OUString( &cChar, 1 ) );
+ SetText( aTmp );
GetFont() = pSym->GetFace();
}
else
diff --git a/starmath/source/register.cxx b/starmath/source/register.cxx
index 0983d0a86ee4..a7e7ea2110a6 100644
--- a/starmath/source/register.cxx
+++ b/starmath/source/register.cxx
@@ -118,92 +118,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvironmentTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
}
-sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/,
- void* pRegistryKey )
-{
- Reference< registry::XRegistryKey >
- xKey( reinterpret_cast< registry::XRegistryKey* >( pRegistryKey ) ) ;
-
- OUString aDelimiter( RTL_CONSTASCII_USTRINGPARAM("/") );
- OUString aUnoServices( RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") );
-
- // Eigentliche Implementierung und ihre Services registrieren
- sal_Int32 i;
- Reference< registry::XRegistryKey > xNewKey;
-
- xNewKey = xKey->createKey( aDelimiter + SmXMLImport_getImplementationName() +
- aUnoServices );
-
- Sequence< OUString > aServices = SmXMLImport_getSupportedServiceNames();
- for(i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- xNewKey = xKey->createKey( aDelimiter + SmXMLExport_getImplementationName() +
- aUnoServices );
-
- aServices = SmXMLExport_getSupportedServiceNames();
- for(i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- xNewKey = xKey->createKey( aDelimiter + SmXMLImportMeta_getImplementationName() +
- aUnoServices );
-
- aServices = SmXMLImportMeta_getSupportedServiceNames();
- for(i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- xNewKey = xKey->createKey( aDelimiter + SmXMLExportMetaOOO_getImplementationName() +
- aUnoServices );
-
- aServices = SmXMLExportMetaOOO_getSupportedServiceNames();
- for(i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- xNewKey = xKey->createKey( aDelimiter + SmXMLExportMeta_getImplementationName() +
- aUnoServices );
-
- aServices = SmXMLExportMeta_getSupportedServiceNames();
- for(i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- xNewKey = xKey->createKey( aDelimiter + SmXMLImportSettings_getImplementationName() +
- aUnoServices );
-
- aServices = SmXMLImportSettings_getSupportedServiceNames();
- for(i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- xNewKey = xKey->createKey( aDelimiter + SmXMLExportSettingsOOO_getImplementationName() +
- aUnoServices );
-
- aServices = SmXMLExportSettingsOOO_getSupportedServiceNames();
- for(i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- xNewKey = xKey->createKey( aDelimiter + SmXMLExportSettings_getImplementationName() +
- aUnoServices );
-
- aServices = SmXMLExportSettings_getSupportedServiceNames();
- for(i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- xNewKey = xKey->createKey( aDelimiter + SmXMLExportContent_getImplementationName() +
- aUnoServices );
-
- aServices = SmXMLExportContent_getSupportedServiceNames();
- for(i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- xNewKey = xKey->createKey( aDelimiter + SmDocument_getImplementationName() +
- aUnoServices );
-
- aServices = SmDocument_getSupportedServiceNames();
- for(i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- return sal_True;
-}
-
void* SAL_CALL component_getFactory( const sal_Char* pImplementationName,
void* pServiceManager,
void* /*pRegistryKey*/ )
diff --git a/starmath/source/smres.src b/starmath/source/smres.src
index c35d77c9afcf..b02ad4a0cc6e 100755
--- a/starmath/source/smres.src
+++ b/starmath/source/smres.src
@@ -30,7 +30,6 @@
#include <svx/globlmn.hrc>
#include "starmath.hrc"
#include "dialog.hrc"
-#include "toolbox.hrc"
#define IMAGE_STDBTN_COLOR Color { Red = 0xff00; Green = 0x0000; Blue = 0xff00; }
#define IMAGE_STDBTN_COLOR_HC IMAGE_STDBTN_COLOR
@@ -1147,7 +1146,7 @@ ModalDialog RID_SYMDEFINEDIALOG
ComboBox 1
{
Pos = MAP_APPFONT ( 59 , 6 ) ;
- Size = MAP_APPFONT ( 80 , 50 ) ;
+ Size = MAP_APPFONT ( 80 , 100 ) ;
TabStop = TRUE ;
DropDown = TRUE ;
Sort = TRUE ;
@@ -1162,7 +1161,7 @@ ModalDialog RID_SYMDEFINEDIALOG
ComboBox 2
{
Pos = MAP_APPFONT ( 210 , 6 ) ;
- Size = MAP_APPFONT ( 80 , 50 ) ;
+ Size = MAP_APPFONT ( 80 , 100 ) ;
TabStop = TRUE ;
DropDown = TRUE ;
Sort = TRUE ;
@@ -1186,7 +1185,7 @@ ModalDialog RID_SYMDEFINEDIALOG
ComboBox 4
{
Pos = MAP_APPFONT ( 80 , 115 ) ;
- Size = MAP_APPFONT ( 100 , 80 ) ;
+ Size = MAP_APPFONT ( 100 , 100 ) ;
TabStop = TRUE ;
DropDown = TRUE ;
Sort = TRUE ;
@@ -1201,7 +1200,7 @@ ModalDialog RID_SYMDEFINEDIALOG
ComboBox 5
{
Pos = MAP_APPFONT ( 80 , 130 ) ;
- Size = MAP_APPFONT ( 100 , 50 ) ;
+ Size = MAP_APPFONT ( 100 , 100 ) ;
TabStop = TRUE ;
DropDown = TRUE ;
Sort = TRUE ;
@@ -1217,7 +1216,7 @@ ModalDialog RID_SYMDEFINEDIALOG
{
Border = TRUE ;
Pos = MAP_APPFONT ( 80 , 145 ) ;
- Size = MAP_APPFONT ( 100 , 50 ) ;
+ Size = MAP_APPFONT ( 100 , 100 ) ;
TabStop = TRUE ;
Sort = TRUE ;
DropDown = TRUE ;
@@ -1233,7 +1232,7 @@ ModalDialog RID_SYMDEFINEDIALOG
{
Border = TRUE ;
Pos = MAP_APPFONT ( 80 , 160 ) ;
- Size = MAP_APPFONT ( 100 , 50 ) ;
+ Size = MAP_APPFONT ( 100 , 100 ) ;
TabStop = TRUE ;
Sort = FALSE ;
DropDown = TRUE ;
@@ -1249,7 +1248,7 @@ ModalDialog RID_SYMDEFINEDIALOG
{
Border = TRUE;
Pos = MAP_APPFONT ( 80 , 175 ) ;
- Size = MAP_APPFONT ( 100 , 50 ) ;
+ Size = MAP_APPFONT ( 100 , 100 ) ;
TabStop = TRUE ;
DropDown = TRUE ;
Sort = FALSE ;
@@ -1542,1420 +1541,6 @@ Menu RID_FONTMENU
};
};
-FloatingWindow RID_TOOLBOXWINDOW
-{
- HelpId = HID_SMA_OPERATOR_WIN ;
- Border = TRUE ;
- Moveable = TRUE ;
- Closeable = TRUE ;
- Hide = TRUE ;
- OutputSize = TRUE ;
- SVLook = TRUE ;
- Size = MAP_APPFONT ( 0 , 0 ) ;
- Text [ en-US ] = "Elements" ;
-
- ToolBox 1
- {
- // unary/binary operators
- HelpId = HID_SMA_UNBINOPS_TBX ;
- Pos = MAP_APPFONT ( 0 , 45 ) ;
- Size = MAP_APPFONT ( 65 , 95 ) ;
- SVLook = TRUE ;
- Hide = TRUE ;
- LineCount = 4 ;
-
- ItemList =
- {
- ToolBoxItem
- {
- Identifier = RID_PLUSX ;
- HelpId = HID_SMA_PLUSX ;
- Text [ en-US ] = "+ Sign" ;
- };
- ToolBoxItem
- {
- Identifier = RID_MINUSX ;
- HelpId = HID_SMA_MINUSX ;
- Text [ en-US ] = "- Sign" ;
- };
- ToolBoxItem
- {
- Identifier = RID_PLUSMINUSX ;
- HelpId = HID_SMA_PLUSMINUSX ;
- Text [ en-US ] = "+- Sign" ;
- };
- ToolBoxItem
- {
- Identifier = RID_MINUSPLUSX ;
- HelpId = HID_SMA_MINUSPLUSX ;
- Text [ en-US ] = "-+ Sign" ;
- };
- ToolBoxItem
- {
- Identifier = RID_NEGX ;
- HelpId = HID_SMA_NEGX ;
- Text [ en-US ] = "Boolean NOT" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_XPLUSY ;
- HelpId = HID_SMA_XPLUSY ;
- Text [ en-US ] = "Addition +" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XCDOTY ;
- HelpId = HID_SMA_XCDOTY ;
- Text [ en-US ] = "Multiplication (Dot )" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XTIMESY ;
- HelpId = HID_SMA_XTIMESY ;
- Text [ en-US ] = "Multiplication (x)" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XSYMTIMESY ;
- HelpId = HID_SMA_XSYMTIMESY ;
- Text [ en-US ] = "Multiplication (*)" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XANDY ;
- HelpId = HID_SMA_XANDY ;
- Text [ en-US ] = "Boolean AND" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_XMINUSY ;
- HelpId = HID_SMA_XMINUSY ;
- Text [ en-US ] = "Subtraction -" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XOVERY ;
- HelpId = HID_SMA_XOVERY ;
- Text [ en-US ] = "Division (Fraction)" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XDIVY ;
- HelpId = HID_SMA_XDIVY ;
- Text [ en-US ] = "Division (÷)" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XSYMDIVIDEY ;
- HelpId = HID_SMA_XSYMDIVIDEY ;
- Text [ en-US ] = "Division (Slash)" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XORY ;
- HelpId = HID_SMA_XORY ;
- Text [ en-US ] = "Boolean OR" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_XCIRCY ;
- HelpId = HID_SMA_XCIRCY ;
- Text [ en-US ] = "Concatenate";
- };
- };
- };
- ToolBox 2
- {
- // relations
- HelpId = HID_SMA_RELATIONS_TBX ;
- Pos = MAP_APPFONT ( 0 , 45 ) ;
- Size = MAP_APPFONT ( 65 , 95 ) ;
- SVLook = TRUE ;
- Hide = TRUE ;
- LineCount = 5 ;
- ItemList =
- {
- ToolBoxItem
- {
- Identifier = RID_XEQY ;
- HelpId = HID_SMA_XEQY ;
- Text [ en-US ] = "Is Equal" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XNEQY ;
- HelpId = HID_SMA_XNEQY ;
- Text [ en-US ] = "Is Not Equal" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XAPPROXY ;
- HelpId = HID_SMA_XAPPROXY ;
- Text [ en-US ] = "Is Approximately Equal" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XDIVIDESY ;
- HelpId = HID_SMA_XDIVIDESY ;
- Text [ en-US ] = "Divides";
- };
- ToolBoxItem
- {
- Identifier = RID_XNDIVIDESY ;
- HelpId = HID_SMA_XNDIVIDESY ;
- Text [ en-US ] = "Does Not Divide";
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_XLTY ;
- HelpId = HID_SMA_XLTY ;
- Text [ en-US ] = "Is Less Than" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XGTY ;
- HelpId = HID_SMA_XGTY ;
- Text [ en-US ] = "Is Greater Than" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XSIMEQY ;
- HelpId = HID_SMA_XSIMEQY ;
- /* ### ACHTUNG: Neuer Text in Resource? ist �hnlich oder gleich : ist �hnlich oder glech */
- Text [ en-US ] = "Is Similar Or Equal" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XPARALLELY ;
- HelpId = HID_SMA_XPARALLELY ;
- Text [ en-US ] = "Is Parallel To" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XORTHOY ;
- HelpId = HID_SMA_XORTHOY ;
- Text [ en-US ] = "Is Orthogonal To" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_XLESLANTY ;
- HelpId = HID_SMA_XLESLANTY ;
- Text [ en-US ] = "Is Less Than Or Equal To" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XGESLANTY ;
- HelpId = HID_SMA_XGESLANTY ;
- Text [ en-US ] = "Is Greater Than Or Equal To" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XSIMY ;
- HelpId = HID_SMA_XSIMY ;
- Text [ en-US ] = "Is Similar To" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XEQUIVY ;
- HelpId = HID_SMA_XEQUIVY ;
- Text [ en-US ] = "Is Congruent To" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_SPACE ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_XLEY ;
- HelpId = HID_SMA_XLEY ;
- Text [ en-US ] = "Is Less Than Or Equal To" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XGEY ;
- HelpId = HID_SMA_XGEY ;
- Text [ en-US ] = "Is Greater Than Or Equal To" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XPROPY ;
- HelpId = HID_SMA_XPROPY ;
- Text [ en-US ] = "Is Proportional To" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XTOWARDY ;
- HelpId = HID_SMA_XTOWARDY ;
- Text [ en-US ] = "Toward" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_SPACE ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_DLARROW ;
- HelpId = HID_SMA_DLARROW ;
- Text [ en-US ] = "Double Arrow Left";
- };
- ToolBoxItem
- {
- Identifier = RID_DLRARROW ;
- HelpId = HID_SMA_DLRARROW ;
- Text [ en-US ] = "Double Arrow Left And Right";
- };
- ToolBoxItem
- {
- Identifier = RID_DRARROW ;
- HelpId = HID_SMA_DRARROW ;
- Text [ en-US ] = "Double Arrow Right";
- };
- };
- };
- ToolBox 3
- {
- // set operations
- HelpId = HID_SMA_SETOPERATIONS_TBX ;
- Pos = MAP_APPFONT ( 0 , 45 ) ;
- Size = MAP_APPFONT ( 65 , 95 ) ;
- SVLook = TRUE ;
- Hide = TRUE ;
- LineCount = 5 ;
- ItemList =
- {
- ToolBoxItem
- {
- Identifier = RID_XINY ;
- HelpId = HID_SMA_XINY ;
- Text [ en-US ] = "Is In" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XNOTINY ;
- HelpId = HID_SMA_XNOTINY ;
- Text [ en-US ] = "Is Not In" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XOWNSY ;
- HelpId = HID_SMA_XOWNSY ;
- Text [ en-US ] = "Owns" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_SPACE ;
- };
- ToolBoxItem
- {
- Identifier = RID_EMPTYSET ;
- HelpId = HID_SMA_EMPTYSET ;
- Text [ en-US ] = "Empty Set";
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_XINTERSECTIONY ;
- HelpId = HID_SMA_XINTERSECTIONY ;
- Text [ en-US ] = "Intersection" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XUNIONY ;
- HelpId = HID_SMA_XUNIONY ;
- Text [ en-US ] = "Union" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XSETMINUSY ;
- HelpId = HID_SMA_XSETMINUSY ;
- Text [ en-US ] = "Difference" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XSLASHY ;
- HelpId = HID_SMA_XSLASHY ;
- Text [ en-US ] = "Quotient Set" ;
- };
- ToolBoxItem
- {
- Identifier = RID_ALEPH ;
- HelpId = HID_SMA_ALEPH ;
- Text [ en-US ] = "Aleph";
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_XSUBSETY ;
- HelpId = HID_SMA_XSUBSETY ;
- Text [ en-US ] = "Subset" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XSUBSETEQY ;
- HelpId = HID_SMA_XSUBSETEQY ;
- Text [ en-US ] = "Subset Or Equal To" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XSUPSETY ;
- HelpId = HID_SMA_XSUPSETY ;
- Text [ en-US ] = "Superset" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XSUPSETEQY ;
- HelpId = HID_SMA_XSUPSETEQY ;
- Text [ en-US ] = "Superset Or Equal To" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_SPACE ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_XNSUBSETY ;
- HelpId = HID_SMA_XNSUBSETY ;
- Text [ en-US ] = "Not Subset" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XNSUBSETEQY ;
- HelpId = HID_SMA_XNSUBSETEQY ;
- Text [ en-US ] = "Not Subset Or Equal" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XNSUPSETY ;
- HelpId = HID_SMA_XNSUPSETY ;
- Text [ en-US ] = "Not Superset" ;
- };
- ToolBoxItem
- {
- Identifier = RID_XNSUPSETEQY ;
- HelpId = HID_SMA_XNSUPSETEQY ;
- Text [ en-US ] = "Not Superset Or Equal" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_SPACE ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_SETN ;
- HelpId = HID_SMA_SETN ;
- Text [ en-US ] = "Natural Numbers Set";
- };
- ToolBoxItem
- {
- Identifier = RID_SETZ ;
- HelpId = HID_SMA_SETZ ;
- Text [ en-US ] = "Integers Set";
- };
- ToolBoxItem
- {
- Identifier = RID_SETQ ;
- HelpId = HID_SMA_SETQ ;
- Text [ en-US ] = "Set of Rational Numbers";
- };
- ToolBoxItem
- {
- Identifier = RID_SETR ;
- HelpId = HID_SMA_SETR ;
- Text [ en-US ] = "Real Numbers Set";
- };
- ToolBoxItem
- {
- Identifier = RID_SETC ;
- HelpId = HID_SMA_SETC ;
- Text [ en-US ] = "Complex Numbers Set";
- };
- };
- };
- ToolBox 4
- {
- // functions
- HelpId = HID_SMA_FUNCTIONS_TBX ;
- Pos = MAP_APPFONT ( 0 , 45 ) ;
- Size = MAP_APPFONT ( 65 , 95 ) ;
- SVLook = TRUE ;
- Hide = TRUE ;
- LineCount = 5 ;
- ItemList =
- {
- ToolBoxItem
- {
- Identifier = RID_EX ;
- HelpId = HID_SMA_EX ;
- Text [ en-US ] = "Exponential Function" ;
- };
- ToolBoxItem
- {
- Identifier = RID_LNX ;
- HelpId = HID_SMA_LNX ;
- Text [ en-US ] = "Natural Logarithm" ;
- };
- ToolBoxItem
- {
- Identifier = RID_EXPX ;
- HelpId = HID_SMA_EXPX ;
- Text [ en-US ] = "Exponential Function" ;
- };
- ToolBoxItem
- {
- Identifier = RID_LOGX ;
- HelpId = HID_SMA_LOGX ;
- Text [ en-US ] = "Logarithm" ;
- };
- ToolBoxItem
- {
- Identifier = RID_RSUPX ;
- HelpId = HID_SMA_RSUPX ;
- Text [ en-US ] = "Power";
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_SINX ;
- HelpId = HID_SMA_SINX ;
- Text [ en-US ] = "Sine" ;
- };
- ToolBoxItem
- {
- Identifier = RID_COSX ;
- HelpId = HID_SMA_COSX ;
- Text [ en-US ] = "Cosine" ;
- };
- ToolBoxItem
- {
- Identifier = RID_TANX ;
- HelpId = HID_SMA_TANX ;
- Text [ en-US ] = "Tangent" ;
- };
- ToolBoxItem
- {
- Identifier = RID_COTX ;
- HelpId = HID_SMA_COTX ;
- Text [ en-US ] = "Cotangent" ;
- };
- ToolBoxItem
- {
- Identifier = RID_SQRTX ;
- HelpId = HID_SMA_SQRTX ;
- Text [ en-US ] = "Square Root" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_ARCSINX ;
- HelpId = HID_SMA_ARCSINX ;
- Text [ en-US ] = "Arcsine" ;
- };
- ToolBoxItem
- {
- Identifier = RID_ARCCOSX ;
- HelpId = HID_SMA_ARCCOSX ;
- Text [ en-US ] = "Arccosine" ;
- };
- ToolBoxItem
- {
- Identifier = RID_ARCTANX ;
- HelpId = HID_SMA_ARCTANX ;
- Text [ en-US ] = "Arctangent" ;
- };
- ToolBoxItem
- {
- Identifier = RID_ARCCOTX ;
- HelpId = HID_SMA_ARCCOTX ;
- Text [ en-US ] = "Arccotangent" ;
- };
- ToolBoxItem
- {
- Identifier = RID_NROOTXY ;
- HelpId = HID_SMA_NROOTXY ;
- Text [ en-US ] = "N-th Root" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_SINHX ;
- HelpId = HID_SMA_SINHX ;
- Text [ en-US ] = "Hyperbolic Sine" ;
- };
- ToolBoxItem
- {
- Identifier = RID_COSHX ;
- HelpId = HID_SMA_COSHX ;
- Text [ en-US ] = "Hyperbolic Cosine" ;
- };
- ToolBoxItem
- {
- Identifier = RID_TANHX ;
- HelpId = HID_SMA_TANHX ;
- Text [ en-US ] = "Hyperbolic Tangent" ;
- };
- ToolBoxItem
- {
- Identifier = RID_COTHX ;
- HelpId = HID_SMA_COTHX ;
- Text [ en-US ] = "Hyperbolic Cotangent" ;
- };
- ToolBoxItem
- {
- Identifier = RID_ABSX ;
- HelpId = HID_SMA_ABSX ;
- Text [ en-US ] = "Absolute Value" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_ARSINHX ;
- HelpId = HID_SMA_ARSINHX ;
- Text [ en-US ] = "Area Hyperbolic Sine" ;
- };
- ToolBoxItem
- {
- Identifier = RID_ARCOSHX ;
- HelpId = HID_SMA_ARCOSHX ;
- Text [ en-US ] = "Area Hyperbolic Cosine" ;
- };
- ToolBoxItem
- {
- Identifier = RID_ARTANHX ;
- HelpId = HID_SMA_ARTANHX ;
- Text [ en-US ] = "Area Hyperbolic Tangent" ;
- };
- ToolBoxItem
- {
- Identifier = RID_ARCOTHX ;
- HelpId = HID_SMA_ARCOTHX ;
- Text [ en-US ] = "Area Hyperbolic Cotangent" ;
- };
- ToolBoxItem
- {
- Identifier = RID_FACTX ;
- HelpId = HID_SMA_FACTX ;
- Text [ en-US ] = "Factorial" ;
- };
- };
- };
- ToolBox 5
- {
- // operators
- HelpId = HID_SMA_OPERATORS_TBX ;
- Pos = MAP_APPFONT ( 0 , 45 ) ;
- Size = MAP_APPFONT ( 65 , 95 ) ;
- SVLook = TRUE ;
- Hide = TRUE ;
- LineCount = 3 ;
- ItemList =
- {
- ToolBoxItem
- {
- Identifier = RID_LIMX ;
- HelpId = HID_SMA_LIMX ;
- Text [ en-US ] = "Limes" ;
- };
- ToolBoxItem
- {
- Identifier = RID_SUMX ;
- HelpId = HID_SMA_SUMX ;
- Text [ en-US ] = "Sum" ;
- };
- ToolBoxItem
- {
- Identifier = RID_PRODX ;
- HelpId = HID_SMA_PRODX ;
- Text [ en-US ] = "Product" ;
- };
- ToolBoxItem
- {
- Identifier = RID_COPRODX ;
- HelpId = HID_SMA_COPRODX ;
- Text [ en-US ] = "Coproduct" ;
- };
- ToolBoxItem
- {
- Identifier = RID_FROMXTOY ;
- HelpId = HID_SMA_FROMXTOY ;
- Text [ en-US ] = "Upper And Lower Limit" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_INTX ;
- HelpId = HID_SMA_INTX ;
- Text [ en-US ] = "Integral" ;
- };
- ToolBoxItem
- {
- Identifier = RID_IINTX ;
- HelpId = HID_SMA_IINTX ;
- Text [ en-US ] = "Double Integral" ;
- };
- ToolBoxItem
- {
- Identifier = RID_IIINTX ;
- HelpId = HID_SMA_IIINTX ;
- Text [ en-US ] = "Triple Integral" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_SPACE ;
- };
- ToolBoxItem
- {
- Identifier = RID_FROMX ;
- HelpId = HID_SMA_FROMX ;
- Text [ en-US ] = "Lower Limit" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_LINTX ;
- HelpId = HID_SMA_LINTX ;
- Text [ en-US ] = "Curve Integral" ;
- };
- ToolBoxItem
- {
- Identifier = RID_LLINTX ;
- HelpId = HID_SMA_LLINTX ;
- Text [ en-US ] = "Double Curve Integral" ;
- };
- ToolBoxItem
- {
- Identifier = RID_LLLINTX ;
- HelpId = HID_SMA_LLLINTX ;
- Text [ en-US ] = "Triple Curve Integral" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_SPACE ;
- };
- ToolBoxItem
- {
- Identifier = RID_TOX ;
- HelpId = HID_SMA_TOX ;
- Text [ en-US ] = "Upper Limit" ;
- };
- };
- };
- ToolBox 6
- {
- // attributs
- HelpId = HID_SMA_ATTRIBUTES_TBX ;
- Pos = MAP_APPFONT ( 0 , 45 ) ;
- Size = MAP_APPFONT ( 65 , 95 ) ;
- SVLook = TRUE ;
- Hide = TRUE ;
- LineCount = 5 ;
- ItemList =
- {
- ToolBoxItem
- {
- Identifier = RID_ACUTEX ;
- HelpId = HID_SMA_ACUTEX ;
- Text [ en-US ] = "Acute Accent";
- };
- ToolBoxItem
- {
- Identifier = RID_GRAVEX ;
- HelpId = HID_SMA_GRAVEX ;
- Text [ en-US ] = "Grave Accent";
- };
- ToolBoxItem
- {
- Identifier = RID_CHECKX ;
- HelpId = HID_SMA_CHECKX ;
- Text [ en-US ] = "Reverse Circumflex" ;
- };
- ToolBoxItem
- {
- Identifier = RID_BREVEX ;
- HelpId = HID_SMA_BREVEX ;
- Text [ en-US ] = "Breve" ;
- };
- ToolBoxItem
- {
- Identifier = RID_CIRCLEX ;
- HelpId = HID_SMA_CIRCLEX ;
- Text [ en-US ] = "Circle" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_VECX ;
- HelpId = HID_SMA_VECX ;
- Text [ en-US ] = "Vector Arrow" ;
- };
- ToolBoxItem
- {
- Identifier = RID_TILDEX ;
- HelpId = HID_SMA_TILDEX ;
- Text [ en-US ] = "Tilde" ;
- };
- ToolBoxItem
- {
- Identifier = RID_HATX ;
- HelpId = HID_SMA_HATX ;
- Text [ en-US ] = "Circumflex" ;
- };
- ToolBoxItem
- {
- Identifier = RID_BARX ;
- HelpId = HID_SMA_BARX ;
- Text [ en-US ] = "Line Above" ;
- };
- ToolBoxItem
- {
- Identifier = RID_DOTX ;
- HelpId = HID_SMA_DOTX ;
- Text [ en-US ] = "Dot" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_WIDEVECX ;
- HelpId = HID_SMA_WIDEVECX ;
- Text [ en-US ] = "Large Vector Arrow";
- };
- ToolBoxItem
- {
- Identifier = RID_WIDETILDEX ;
- HelpId = HID_SMA_WIDETILDEX ;
- Text [ en-US ] = "Large Tilde";
- };
- ToolBoxItem
- {
- Identifier = RID_WIDEHATX ;
- HelpId = HID_SMA_WIDEHATX ;
- Text [ en-US ] = "Large Circumflex";
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_SPACE ;
- };
- ToolBoxItem
- {
- Identifier = RID_DDOTX ;
- HelpId = HID_SMA_DDOTX ;
- Text [ en-US ] = "Double Dot" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_OVERLINEX ;
- HelpId = HID_SMA_OVERLINEX ;
- Text [ en-US ] = "Line Over" ;
- };
- ToolBoxItem
- {
- Identifier = RID_UNDERLINEX ;
- HelpId = HID_SMA_UNDERLINEX ;
- Text [ en-US ] = "Line Below" ;
- };
- ToolBoxItem
- {
- Identifier = RID_OVERSTRIKEX ;
- HelpId = HID_SMA_OVERSTRIKEX ;
- Text [ en-US ] = "Line Through" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_SPACE ;
- };
- ToolBoxItem
- {
- Identifier = RID_DDDOTX ;
- HelpId = HID_SMA_DDDOTX ;
- Text [ en-US ] = "Triple Dot" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_PHANTOMX ;
- HelpId = HID_SMA_PHANTOMX ;
- Text [ en-US ] = "Transparent" ;
- };
- ToolBoxItem
- {
- Identifier = RID_BOLDX ;
- HelpId = HID_SMA_BOLDX ;
- Text [ en-US ] = "Bold Font" ;
- };
- ToolBoxItem
- {
- Identifier = RID_ITALX ;
- HelpId = HID_SMA_ITALX ;
- Text [ en-US ] = "Italic Font" ;
- };
- ToolBoxItem
- {
- Identifier = RID_SIZEXY ;
- HelpId = HID_SMA_SIZEXY ;
- Text [ en-US ] = "Resize" ;
- };
- ToolBoxItem
- {
- Identifier = RID_FONTXY ;
- HelpId = HID_SMA_FONTXY ;
- Text [ en-US ] = "Change Font" ;
- };
- };
- };
- ToolBox 7
- {
- // parentheses
- HelpId = HID_SMA_BRACKETS_TBX ;
- Pos = MAP_APPFONT ( 0 , 45 ) ;
- Size = MAP_APPFONT ( 65 , 95 ) ;
- SVLook = TRUE ;
- Hide = TRUE ;
- LineCount = 5 ;
- ItemList =
- {
- ToolBoxItem
- {
- Identifier = RID_LRPARENTX ;
- HelpId = HID_SMA_LRPARENTX ;
- Text [ en-US ] = "Round Brackets" ;
- };
- ToolBoxItem
- {
- Identifier = RID_LRBRACKETX ;
- HelpId = HID_SMA_LRBRACKETX ;
- Text [ en-US ] = "Square Brackets" ;
- };
- ToolBoxItem
- {
- Identifier = RID_LRDBRACKETX ;
- HelpId = HID_SMA_LRDBRACKETX ;
- Text [ en-US ] = "Double Square Brackets";
- };
- ToolBoxItem
- {
- Identifier = RID_LRLINEX ;
- HelpId = HID_SMA_LRLINEX ;
- Text [ en-US ] = "Single Lines" ;
- };
- ToolBoxItem
- {
- Identifier = RID_LRDLINEX ;
- HelpId = HID_SMA_LRDLINEX ;
- Text [ en-US ] = "Double Lines" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_LRBRACEX ;
- HelpId = HID_SMA_LRBRACEX ;
- Text [ en-US ] = "Braces" ;
- };
- ToolBoxItem
- {
- Identifier = RID_LRANGLEX ;
- HelpId = HID_SMA_LRANGLEX ;
- Text [ en-US ] = "Angle Brackets" ;
- };
- ToolBoxItem
- {
- Identifier = RID_LMRANGLEXY ;
- HelpId = HID_SMA_LMRANGLEXY ;
- Text [ en-US ] = "Operator Brackets";
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_SPACE ;
- };
- ToolBoxItem
- {
- Identifier = RID_LRGROUPX ;
- HelpId = HID_SMA_LRGROUPX ;
- Text [ en-US ] = "Group Brackets" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_SLRPARENTX ;
- HelpId = HID_SMA_SLRPARENTX ;
- Text [ en-US ] = "Round Brackets (Scalable)" ;
- };
- ToolBoxItem
- {
- Identifier = RID_SLRBRACKETX ;
- HelpId = HID_SMA_SLRBRACKETX ;
- Text [ en-US ] = "Square Brackets (Scalable)" ;
- };
- ToolBoxItem
- {
- Identifier = RID_SLRDBRACKETX ;
- HelpId = HID_SMA_SLRDBRACKETX ;
- Text [ en-US ] = "Double Square Brackets (Scalable)";
- };
- ToolBoxItem
- {
- Identifier = RID_SLRLINEX ;
- HelpId = HID_SMA_SLRLINEX ;
- Text [ en-US ] = "Single Lines (Scalable)" ;
- };
- ToolBoxItem
- {
- Identifier = RID_SLRDLINEX ;
- HelpId = HID_SMA_SLRDLINEX ;
- Text [ en-US ] = "Double Lines (Scalable)" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_SLRBRACEX ;
- HelpId = HID_SMA_SLRBRACEX ;
- Text [ en-US ] = "Braces (Scalable)" ;
- };
- ToolBoxItem
- {
- Identifier = RID_SLRANGLEX ;
- HelpId = HID_SMA_SLRANGLEX ;
- Text [ en-US ] = "Angle Brackets (Scalable)" ;
- };
- ToolBoxItem
- {
- Identifier = RID_SLMRANGLEXY ;
- HelpId = HID_SMA_SLMRANGLEXY ;
- Text [ en-US ] = "Operator Brackets (Scalable)";
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_XOVERBRACEY ;
- HelpId = HID_SMA_XOVERBRACEY ;
- Text [ en-US ] = "Braces Top (Scalable)";
- };
- ToolBoxItem
- {
- Identifier = RID_XUNDERBRACEY ;
- HelpId = HID_SMA_XUNDERBRACEY ;
- Text [ en-US ] = "Braces Bottom (Scalable)";
- };
- };
- };
- ToolBox 8
- {
- // format
- HelpId = HID_SMA_FORMAT_TBX ;
- Pos = MAP_APPFONT ( 0 , 45 ) ;
- Size = MAP_APPFONT ( 65 , 95 ) ;
- SVLook = TRUE ;
- Hide = TRUE ;
- LineCount = 3 ;
- ItemList =
- {
- ToolBoxItem
- {
- Identifier = RID_LSUPX ;
- HelpId = HID_SMA_LSUPX ;
- Text [ en-US ] = "Superscript Left" ;
- };
- ToolBoxItem
- {
- Identifier = RID_CSUPX ;
- HelpId = HID_SMA_CSUPX ;
- Text [ en-US ] = "Superscript Top";
- };
- ToolBoxItem
- {
- Identifier = RID_RSUPX ;
- HelpId = HID_SMA_RSUPX ;
- Text [ en-US ] = "Superscript Right" ;
- };
- ToolBoxItem
- {
- Identifier = RID_BINOMXY ;
- HelpId = HID_SMA_BINOMXY ;
- Text [ en-US ] = "Vertical Stack (2 Elements)" ;
- };
- ToolBoxItem
- {
- Identifier = RID_NEWLINE ;
- HelpId = HID_SMA_NEWLINE ;
- Text [ en-US ] = "New Line" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_LSUBX ;
- HelpId = HID_SMA_LSUBX ;
- Text [ en-US ] = "Subscript Left" ;
- };
- ToolBoxItem
- {
- Identifier = RID_CSUBX ;
- HelpId = HID_SMA_CSUBX ;
- Text [ en-US ] = "Subscript Bottom";
- };
- ToolBoxItem
- {
- Identifier = RID_RSUBX ;
- HelpId = HID_SMA_RSUBX ;
- Text [ en-US ] = "Subscript Right" ;
- };
- ToolBoxItem
- {
- Identifier = RID_STACK ;
- HelpId = HID_SMA_STACK ;
- Text [ en-US ] = "Vertical Stack" ;
- };
- ToolBoxItem
- {
- Identifier = RID_SBLANK ;
- HelpId = HID_SMA_SBLANK ;
- Text [ en-US ] = "Small Gap" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_ALIGNLX ;
- HelpId = HID_SMA_ALIGNLX ;
- Text [ en-US ] = "Align Left" ;
- };
- ToolBoxItem
- {
- Identifier = RID_ALIGNCX ;
- HelpId = HID_SMA_ALIGNCX ;
- Text [ en-US ] = "Align Center" ;
- };
- ToolBoxItem
- {
- Identifier = RID_ALIGNRX ;
- HelpId = HID_SMA_ALIGNRX ;
- Text [ en-US ] = "Align Right" ;
- };
- ToolBoxItem
- {
- Identifier = RID_MATRIX ;
- HelpId = HID_SMA_MATRIX ;
- Text [ en-US ] = "Matrix Stack" ;
- };
- ToolBoxItem
- {
- Identifier = RID_BLANK ;
- HelpId = HID_SMA_BLANK ;
- Text [ en-US ] = "Gap" ;
- };
- };
- };
- ToolBox 9
- {
- // misc
- HelpId = HID_SMA_FORMAT_TBX ;
- Pos = MAP_APPFONT ( 0 , 45 ) ;
- Size = MAP_APPFONT ( 65 , 95 ) ;
- SVLook = TRUE ;
- Hide = TRUE ;
- LineCount = 4 ;
- ItemList =
- {
- ToolBoxItem
- {
- Identifier = RID_INFINITY ;
- HelpId = HID_SMA_INFINITY ;
- Text [ en-US ] = "infinite";
- };
- ToolBoxItem
- {
- Identifier = RID_PARTIAL ;
- HelpId = HID_SMA_PARTIAL ;
- Text [ en-US ] = "Partial";
- };
- ToolBoxItem
- {
- Identifier = RID_NABLA ;
- HelpId = HID_SMA_NABLA ;
- Text [ en-US ] = "Nabla";
- };
- ToolBoxItem
- {
- Identifier = RID_EXISTS ;
- HelpId = HID_SMA_EXISTS ;
- Text [ en-US ] = "There Exists";
- };
- ToolBoxItem
- {
- Identifier = RID_FORALL ;
- HelpId = HID_SMA_FORALL ;
- Text [ en-US ] = "For All";
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_HBAR ;
- HelpId = HID_SMA_HBAR ;
- Text [ en-US ] = "h Bar";
- };
- ToolBoxItem
- {
- Identifier = RID_LAMBDABAR ;
- HelpId = HID_SMA_LAMBDABAR ;
- Text [ en-US ] = "Lambda Bar";
- };
- ToolBoxItem
- {
- Identifier = RID_RE ;
- HelpId = HID_SMA_RE ;
- Text [ en-US ] = "Real Part";
- };
- ToolBoxItem
- {
- Identifier = RID_IM ;
- HelpId = HID_SMA_IM ;
- Text [ en-US ] = "Imaginary Part";
- };
- ToolBoxItem
- {
- Identifier = RID_WP ;
- HelpId = HID_SMA_WP ;
- Text [ en-US ] = "Weierstrass p";
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_LEFTARROW ;
- HelpId = HID_SMA_LEFTARROW ;
- Text [ en-US ] = "Left Arrow";
- };
- ToolBoxItem
- {
- Identifier = RID_RIGHTARROW ;
- HelpId = HID_SMA_RIGHTARROW ;
- Text [ en-US ] = "Right Arrow";
- };
- ToolBoxItem
- {
- Identifier = RID_UPARROW ;
- HelpId = HID_SMA_UPARROW ;
- Text [ en-US ] = "Up Arrow";
- };
- ToolBoxItem
- {
- Identifier = RID_DOWNARROW ;
- HelpId = HID_SMA_DOWNARROW ;
- Text [ en-US ] = "Down Arrow";
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_SPACE ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_DOTSLOW ;
- HelpId = HID_SMA_DOTSLOW ;
- Text [ en-US ] = "Dots At Bottom";
- };
- ToolBoxItem
- {
- Identifier = RID_DOTSAXIS ;
- HelpId = HID_SMA_DOTSAXIS ;
- Text [ en-US ] = "Dots In Middle";
- };
- ToolBoxItem
- {
- Identifier = RID_DOTSVERT ;
- HelpId = HID_SMA_DOTSVERT ;
- Text [ en-US ] = "Dots Vertically";
- };
- ToolBoxItem
- {
- Identifier = RID_DOTSUP ;
- HelpId = HID_SMA_DOTSUP ;
- Text [ en-US ] = "Dots To Top";
- };
- ToolBoxItem
- {
- Identifier = RID_DOTSDOWN ;
- HelpId = HID_SMA_DOTSDOWN ;
- Text [ en-US ] = "Dots to Bottom";
- };
- };
- };
- ToolBox 10
- {
- // main menu of selection-window
- HelpId = HID_SMA_SELECTION_TBX ;
- Pos = MAP_APPFONT ( 0 , 0 ) ;
- Size = MAP_APPFONT ( 65 , 38 ) ;
- SVLook = TRUE ;
- LineCount = 2 ;
- ItemList =
- {
- ToolBoxItem
- {
- Identifier = RID_UNBINOPS_CAT ;
- HelpId = HID_SMA_UNBINOPS_CAT ;
- Text [ en-US ] = "Unary/Binary Operators" ;
- };
- ToolBoxItem
- {
- Identifier = RID_RELATIONS_CAT ;
- HelpId = HID_SMA_RELATIONS_CAT ;
- Text [ en-US ] = "Relations" ;
- };
- ToolBoxItem
- {
- Identifier = RID_SETOPERATIONS_CAT ;
- HelpId = HID_SMA_SETOPERATIONS_CAT ;
- Text [ en-US ] = "Set Operations" ;
- };
- ToolBoxItem
- {
- Identifier = RID_FUNCTIONS_CAT ;
- HelpId = HID_SMA_FUNCTIONS_CAT ;
- Text [ en-US ] = "Functions" ;
- };
- ToolBoxItem
- {
- Identifier = RID_OPERATORS_CAT ;
- HelpId = HID_SMA_OPERATORS_CAT ;
- Text [ en-US ] = "Operators" ;
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_BREAK ;
- };
- ToolBoxItem
- {
- Identifier = RID_ATTRIBUTES_CAT ;
- HelpId = HID_SMA_ATTRIBUTES_CAT ;
- Text [ en-US ] = "Attributes" ;
- };
- ToolBoxItem
- {
- Identifier = RID_MISC_CAT ;
- HelpId = HID_SMA_MISC_CAT ;
- Text [ en-US ] = "Others";
- };
- ToolBoxItem
- {
- Type = TOOLBOXITEM_SPACE ;
- };
- ToolBoxItem
- {
- Identifier = RID_BRACKETS_CAT ;
- HelpId = HID_SMA_BRACKETS_CAT ;
- Text [ en-US ] = "Brackets" ;
- };
- ToolBoxItem
- {
- Identifier = RID_FORMAT_CAT ;
- HelpId = HID_SMA_FORMAT_CAT ;
- Text [ en-US ] = "Formats" ;
- };
- };
- };
- FixedLine FL_TOOLBOX_CAT_DELIM
- {
- Pos = MAP_APPFONT ( 0 , 44 ) ;
- Size = MAP_APPFONT ( 65 , 4 ) ;
- };
-};
-
#define CMDBOXWINDOW_TEXT \
Text [ en-US ] = "Commands" ; \
@@ -2974,380 +1559,6 @@ DockingWindow RID_CMDBOXWINDOW\
};
-#define UNBINOPS_IDLIST \
- IdList = \
- { \
- RID_PLUSX ; \
- RID_MINUSX ; \
- RID_PLUSMINUSX ; \
- RID_MINUSPLUSX ; \
- RID_XPLUSY ; \
- RID_XCDOTY ; \
- RID_XTIMESY ; \
- RID_XSYMTIMESY ; \
- RID_XMINUSY ; \
- RID_XOVERY ; \
- RID_XDIVY ; \
- RID_XSYMDIVIDEY ; \
- RID_NEGX ; \
- RID_XANDY ; \
- RID_XORY ; \
- RID_XCIRCY ; \
- }; \
- IdCount = { 16 ; };
-
- ImageList RID_IL_UNBINOPS
- {
- Prefix = "un";
- MaskColor = IMAGE_STDBTN_COLOR ;
- UNBINOPS_IDLIST
- };
- ImageList RID_ILH_UNBINOPS
- {
- Prefix = "unh";
- MaskColor = IMAGE_STDBTN_COLOR_HC ;
- UNBINOPS_IDLIST
- };
-
-#define RELATIONS_IDLIST \
- IdList = \
- { \
- RID_XEQY ; \
- RID_XNEQY ; \
- RID_XEQUIVY ; \
- RID_XORTHOY ; \
- RID_XLTY ; \
- RID_XGTY ; \
- RID_XAPPROXY ; \
- RID_XPARALLELY ; \
- RID_XLESLANTY ; \
- RID_XGESLANTY ; \
- RID_XSIMEQY ; \
- RID_XPROPY ; \
- RID_XLEY ; \
- RID_XGEY ; \
- RID_XSIMY ; \
- RID_XTOWARDY ; \
- RID_XDIVIDESY ; \
- RID_XNDIVIDESY; \
- RID_DLARROW ; \
- RID_DLRARROW ; \
- RID_DRARROW ; \
- }; \
- IdCount ={ 21 ; };
-
- ImageList RID_IL_RELATIONS
- {
- Prefix = "bi";
- MaskColor = IMAGE_STDBTN_COLOR ;
- RELATIONS_IDLIST
- };
- ImageList RID_ILH_RELATIONS
- {
- Prefix = "bih";
- MaskColor = IMAGE_STDBTN_COLOR_HC ;
- RELATIONS_IDLIST
- };
-
-#define SETOPERATIONS_IDLIST \
- IdList = \
- { \
- RID_XINY ; \
- RID_XNOTINY ; \
- RID_XOWNSY ; \
- RID_XINTERSECTIONY ; \
- RID_XUNIONY ; \
- RID_XSETMINUSY ; \
- RID_XSLASHY ; \
- RID_XSUBSETY ; \
- RID_XSUBSETEQY ; \
- RID_XSUPSETY ; \
- RID_XSUPSETEQY ; \
- RID_XNSUBSETY ; \
- RID_XNSUBSETEQY ; \
- RID_XNSUPSETY ; \
- RID_XNSUPSETEQY ; \
- RID_EMPTYSET ; \
- RID_ALEPH ; \
- RID_SETN ; \
- RID_SETZ ; \
- RID_SETQ ; \
- RID_SETR ; \
- RID_SETC ; \
- }; \
- IdCount = { 22 ; };
-
- ImageList RID_IL_SETOPERATIONS
- {
- Prefix = "op";
- MaskColor = IMAGE_STDBTN_COLOR ;
- SETOPERATIONS_IDLIST
- };
- ImageList RID_ILH_SETOPERATIONS
- {
- Prefix = "oph";
- MaskColor = IMAGE_STDBTN_COLOR_HC ;
- SETOPERATIONS_IDLIST
- };
-
-#define FUNCTIONS_IDLIST \
- IdList = \
- { \
- RID_ABSX ; \
- RID_FACTX ; \
- RID_SQRTX ; \
- RID_NROOTXY ; \
- RID_EX ; \
- RID_LNX ; \
- RID_EXPX ; \
- RID_LOGX ; \
- RID_SINX ; \
- RID_COSX ; \
- RID_TANX ; \
- RID_COTX ; \
- RID_SINHX ; \
- RID_COSHX ; \
- RID_TANHX ; \
- RID_COTHX ; \
- RID_ARCSINX ; \
- RID_ARCCOSX ; \
- RID_ARCTANX ; \
- RID_ARCCOTX ; \
- RID_ARSINHX ; \
- RID_ARCOSHX ; \
- RID_ARTANHX ; \
- RID_ARCOTHX ; \
- RID_RSUPX ; \
- }; \
- IdCount = { 25 ; };
-
- ImageList RID_IL_FUNCTIONS
- {
- Prefix = "fu";
- MaskColor = IMAGE_STDBTN_COLOR ;
- FUNCTIONS_IDLIST
- };
- ImageList RID_ILH_FUNCTIONS
- {
- Prefix = "fuh";
- MaskColor = IMAGE_STDBTN_COLOR_HC ;
- FUNCTIONS_IDLIST
- };
-
-#define OPERATORS_IDLIST \
- IdList = \
- { \
- RID_LIMX ; \
- RID_SUMX ; \
- RID_PRODX ; \
- RID_COPRODX ; \
- RID_INTX ; \
- RID_IINTX ; \
- RID_IIINTX ; \
- RID_LINTX ; \
- RID_LLINTX ; \
- RID_LLLINTX ; \
- RID_FROMXTOY ; \
- RID_FROMX ; \
- RID_TOX ; \
- }; \
- IdCount = { 13 ; };
-
- ImageList RID_IL_OPERATORS
- {
- Prefix = "fo";
- MaskColor = IMAGE_STDBTN_COLOR ;
- OPERATORS_IDLIST
- };
- ImageList RID_ILH_OPERATORS
- {
- Prefix = "foh";
- MaskColor = IMAGE_STDBTN_COLOR_HC ;
- OPERATORS_IDLIST
- };
-
-#define ATTRIBUTES_IDLIST \
- IdList = \
- { \
- RID_ACUTEX ; \
- RID_GRAVEX ; \
- RID_CHECKX ; \
- RID_BREVEX ; \
- RID_BARX ; \
- RID_VECX ; \
- RID_HATX ; \
- RID_TILDEX ; \
- RID_CIRCLEX ; \
- RID_DOTX ; \
- RID_DDOTX ; \
- RID_DDDOTX ; \
- RID_OVERLINEX ; \
- RID_UNDERLINEX ; \
- RID_OVERSTRIKEX ; \
- RID_PHANTOMX ; \
- RID_BOLDX ; \
- RID_ITALX ; \
- RID_SIZEXY ; \
- RID_FONTXY ; \
- RID_WIDEHATX ; \
- RID_WIDETILDEX ; \
- RID_WIDEVECX ; \
- }; \
- IdCount = { 23 ; };
-
- ImageList RID_IL_ATTRIBUTES
- {
- Prefix = "at";
- MaskColor = IMAGE_STDBTN_COLOR ;
- ATTRIBUTES_IDLIST
- };
- ImageList RID_ILH_ATTRIBUTES
- {
- Prefix = "ath";
- MaskColor = IMAGE_STDBTN_COLOR_HC ;
- ATTRIBUTES_IDLIST
- };
-
-#define BRACKETS_IDLIST \
- IdList = \
- { \
- RID_LRPARENTX ; \
- RID_LRBRACKETX ; \
- RID_LRANGLEX ; \
- RID_LRBRACEX ; \
- RID_LRLINEX ; \
- RID_LRDLINEX ; \
- RID_LMRANGLEXY ; \
- RID_LRGROUPX ; \
- RID_SLRPARENTX ; \
- RID_SLRBRACKETX ; \
- RID_SLRANGLEX ; \
- RID_SLRBRACEX ; \
- RID_SLRLINEX ; \
- RID_SLRDLINEX ; \
- RID_SLMRANGLEXY ; \
- RID_LRDBRACKETX ; \
- RID_SLRDBRACKETX ; \
- RID_XOVERBRACEY ; \
- RID_XUNDERBRACEY ; \
- }; \
- IdCount = { 19 ; };
-
- ImageList RID_IL_BRACKETS
- {
- Prefix = "al";
- MaskColor = IMAGE_STDBTN_COLOR ;
- BRACKETS_IDLIST
- };
- ImageList RID_ILH_BRACKETS
- {
- Prefix = "alh";
- MaskColor = IMAGE_STDBTN_COLOR_HC ;
- BRACKETS_IDLIST
- };
-
-#define FORMAT_IDLIST \
- IdList = \
- { \
- RID_NEWLINE ; \
- RID_SBLANK ; \
- RID_BLANK ; \
- RID_BINOMXY ; \
- RID_STACK ; \
- RID_MATRIX ; \
- RID_ALIGNLX ; \
- RID_ALIGNCX ; \
- RID_ALIGNRX ; \
- RID_RSUBX ; \
- RID_RSUPX ; \
- RID_LSUBX ; \
- RID_LSUPX ; \
- RID_CSUBX ; \
- RID_CSUPX ; \
- }; \
- IdCount = { 15 ; };
-
- ImageList RID_IL_FORMAT
- {
- Prefix = "co";
- MaskColor = IMAGE_STDBTN_COLOR ;
- FORMAT_IDLIST
- };
- ImageList RID_ILH_FORMAT
- {
- Prefix = "coh";
- MaskColor = IMAGE_STDBTN_COLOR_HC ;
- FORMAT_IDLIST
- };
-
-#define MISC_IDLIST \
- IdList = \
- { \
- RID_INFINITY ; \
- RID_PARTIAL ; \
- RID_NABLA ; \
- RID_EXISTS ; \
- RID_FORALL ; \
- RID_HBAR; \
- RID_LAMBDABAR ; \
- RID_RE ; \
- RID_IM ; \
- RID_WP ; \
- RID_LEFTARROW ; \
- RID_RIGHTARROW ; \
- RID_UPARROW ; \
- RID_DOWNARROW ; \
- RID_DOTSLOW ; \
- RID_DOTSAXIS ; \
- RID_DOTSVERT ; \
- RID_DOTSUP ; \
- RID_DOTSDOWN ; \
- }; \
- IdCount = { 19 ; };
-
- ImageList RID_IL_MISC
- {
- Prefix = "mi";
- MaskColor = IMAGE_STDBTN_COLOR ;
- MISC_IDLIST
- };
- ImageList RID_ILH_MISC
- {
- Prefix = "mih";
- MaskColor = IMAGE_STDBTN_COLOR_HC ;
- MISC_IDLIST
- };
-
-#define CATALOG_IDLIST \
- IdList = \
- { \
- RID_UNBINOPS_CAT ; \
- RID_RELATIONS_CAT ; \
- RID_SETOPERATIONS_CAT ; \
- RID_FUNCTIONS_CAT ; \
- RID_OPERATORS_CAT ; \
- RID_ATTRIBUTES_CAT ; \
- RID_MISC_CAT ; \
- RID_BRACKETS_CAT ; \
- RID_FORMAT_CAT ; \
- }; \
- IdCount = { 9 ; };
-
- ImageList RID_IL_CATALOG
- {
- Prefix = "im";
- MaskColor = IMAGE_STDBTN_COLOR ;
- CATALOG_IDLIST
- };
- ImageList RID_ILH_CATALOG
- {
- Prefix = "imh";
- MaskColor = IMAGE_STDBTN_COLOR_HC ;
- CATALOG_IDLIST
- };
-
-
-
String STR_CMDBOXWINDOW
{
CMDBOXWINDOW_TEXT
@@ -3568,9 +1779,9 @@ StringArray RID_PRINTUIOPTIONS
< "Adjusts the formula to the page format used in the printout."; >;
< "~Scaling"; >;
< "Reduces or enlarges the size of the printed formula by a specified enlargement factor."; >;
- < "Miscellaneous options"; >;
- < "Ig~nore ~~ and ` at the end of the line"; >;
- < "Specfies that these space wildcards will be removed if they are at the end of a line."; >;
+// < "Miscellaneous options"; >;
+// < "Ig~nore ~~ and ` at the end of the line"; >;
+// < "Specfies that these space wildcards will be removed if they are at the end of a line."; >;
};
};
diff --git a/starmath/source/symbol.cxx b/starmath/source/symbol.cxx
index 5208ce3644ce..52d0520ae61b 100644
--- a/starmath/source/symbol.cxx
+++ b/starmath/source/symbol.cxx
@@ -78,7 +78,7 @@ SmSym::SmSym(const SmSym& rSymbol)
}
-SmSym::SmSym(const String& rName, const Font& rFont, sal_Unicode cChar,
+SmSym::SmSym(const String& rName, const Font& rFont, sal_UCS4 cChar,
const String& rSet, BOOL bIsPredefined)
{
m_aName = m_aExportName = rName;
diff --git a/starmath/source/toolbox.cxx b/starmath/source/toolbox.cxx
index 2de6c97ed5ab..5bcf1448aca0 100644
--- a/starmath/source/toolbox.cxx
+++ b/starmath/source/toolbox.cxx
@@ -135,7 +135,7 @@ SmToolBoxWindow::SmToolBoxWindow(SfxBindings *pTmpBindings,
SfxChildWindow *pChildWindow,
Window *pParent) :
SfxFloatingWindow(pTmpBindings, pChildWindow, pParent, SmResId(RID_TOOLBOXWINDOW)),
- aToolBoxCat(this, SmResId(NUM_TBX_CATEGORIES + 1)),
+ aToolBoxCat(this, SmResId(TOOLBOX_CATALOG)),
aToolBoxCat_Delim(this, SmResId( FL_TOOLBOX_CAT_DELIM ))
{
RTL_LOGFILE_CONTEXT( aLog, "starmath: SmToolBoxWindow::SmToolBoxWindow" );
@@ -143,14 +143,14 @@ SmToolBoxWindow::SmToolBoxWindow(SfxBindings *pTmpBindings,
// allow for cursor travelling between toolbox and sub-categories
SetStyle( GetStyle() | WB_DIALOGCONTROL );
- nActiveCategoryRID = sal::static_int_cast< USHORT >(-1);
+ nActiveCategoryRID = USHRT_MAX;
aToolBoxCat.SetClickHdl(LINK(this, SmToolBoxWindow, CategoryClickHdl));
USHORT i;
- for (i = 0; i < NUM_TBX_CATEGORIES; i++)
+ for (i = 0; i < NUM_TBX_CATEGORIES; ++i)
{
- ToolBox *pBox = new ToolBox(this, SmResId (i+1));
+ ToolBox *pBox = new ToolBox(this, SmResId( TOOLBOX_CAT_A + i ));
vToolBoxCategories[i] = pBox;
pBox->SetSelectHdl(LINK(this, SmToolBoxWindow, CmdSelectHdl));
}
@@ -163,15 +163,12 @@ SmToolBoxWindow::SmToolBoxWindow(SfxBindings *pTmpBindings,
}
FreeResource();
-
- ApplyImageLists( RID_UNBINOPS_CAT );
- SetCategory( RID_UNBINOPS_CAT );
}
SmToolBoxWindow::~SmToolBoxWindow()
{
int i;
- for (i = 0; i < NUM_TBX_CATEGORIES; i++)
+ for (i = 0; i < NUM_TBX_CATEGORIES; ++i)
{
ToolBox *pBox = vToolBoxCategories[i];
delete pBox;
@@ -249,11 +246,11 @@ void SmToolBoxWindow::StateChanged( StateChangedType nStateChange )
static BOOL bSetPosition = TRUE;
if (STATE_CHANGE_INITSHOW == nStateChange)
{
+ SetCategory( nActiveCategoryRID == USHRT_MAX ? RID_UNBINOPS_CAT : nActiveCategoryRID );
+
// calculate initial position to be used after creation of the window...
AdjustPosSize( bSetPosition );
bSetPosition = FALSE;
-
- SetCategory(RID_UNBINOPS_CAT);
}
//... otherwise the base class will remember the last position of the window
SfxFloatingWindow::StateChanged( nStateChange );
@@ -263,7 +260,7 @@ void SmToolBoxWindow::StateChanged( StateChangedType nStateChange )
void SmToolBoxWindow::AdjustPosSize( BOOL bSetPos )
{
Size aCatSize( aToolBoxCat.CalcWindowSizePixel( 2 ) );
- Size aCmdSize( pToolBoxCmd->CalcWindowSizePixel( 5 ) );
+ Size aCmdSize( pToolBoxCmd->CalcWindowSizePixel( 4 /* see nLines in SetCategory*/ ) );
DBG_ASSERT( aCatSize.Width() == aCmdSize.Width(), "width mismatch" );
// catalog settings
@@ -271,14 +268,12 @@ void SmToolBoxWindow::AdjustPosSize( BOOL bSetPos )
aToolBoxCat.SetSizePixel( aCatSize );
// settings for catalog / category delimiter
Point aP( aToolBoxCat_Delim.GetPosPixel() );
- aP.X() += 5;
+ aP.X() = 0;
aToolBoxCat_Delim.SetPosPixel( aP );
- Size aS( aCatSize.Width() - 10, 10 );
- aToolBoxCat_Delim.SetSizePixel( aS );
+ aToolBoxCat_Delim.SetSizePixel( Size( aCatSize.Width(), aToolBoxCat_Delim.GetSizePixel().Height() ) );
// category settings
- aP.X() = 0;
aP.Y() += aToolBoxCat_Delim.GetSizePixel().Height();
- for (int i = 0; i < NUM_TBX_CATEGORIES; i++)
+ for (int i = 0; i < NUM_TBX_CATEGORIES; ++i)
{
vToolBoxCategories[i]->SetPosPixel( aP );
vToolBoxCategories[i]->SetSizePixel( aCmdSize );
@@ -327,63 +322,60 @@ void SmToolBoxWindow::GetFocus()
void SmToolBoxWindow::SetCategory(USHORT nCategoryRID)
{
if (nCategoryRID != nActiveCategoryRID)
- {
ApplyImageLists( nCategoryRID );
- USHORT nLines;
- // check for valid resource id
- switch (nCategoryRID)
- {
- case RID_UNBINOPS_CAT : nLines = 4; break;
- case RID_RELATIONS_CAT: nLines = 5; break;
- case RID_SETOPERATIONS_CAT: nLines = 5; break;
- case RID_FUNCTIONS_CAT: nLines = 5; break;
- case RID_OPERATORS_CAT: nLines = 3; break;
- case RID_ATTRIBUTES_CAT: nLines = 5; break;
- case RID_MISC_CAT: nLines = 4; break;
- case RID_BRACKETS_CAT: nLines = 5; break;
- case RID_FORMAT_CAT: nLines = 3; break;
- default:
- // nothing to be done
- return;
- }
+ USHORT nLines;
+ // check for valid resource id
+ switch (nCategoryRID)
+ {
+ case RID_UNBINOPS_CAT : nLines = 4; break;
+ case RID_RELATIONS_CAT: nLines = 4; break;
+ case RID_SETOPERATIONS_CAT: nLines = 4; break;
+ case RID_FUNCTIONS_CAT: nLines = 4; break;
+ case RID_OPERATORS_CAT: nLines = 3; break;
+ case RID_ATTRIBUTES_CAT: nLines = 4; break;
+ case RID_MISC_CAT: nLines = 4; break;
+ case RID_BRACKETS_CAT: nLines = 4; break;
+ case RID_FORMAT_CAT: nLines = 3; break;
+ default:
+ // nothing to be done
+ return;
+ }
- pToolBoxCmd->Hide();
+ pToolBoxCmd->Hide();
- sal_Int16 nIdx = GetToolBoxCategoriesIndex( nCategoryRID );
- DBG_ASSERT( nIdx >= 0, "unkown category" );
- if (nIdx >= 0)
- pToolBoxCmd = vToolBoxCategories[nIdx];
+ sal_Int16 nIdx = GetToolBoxCategoriesIndex( nCategoryRID );
+ DBG_ASSERT( nIdx >= 0, "unkown category" );
+ if (nIdx >= 0)
+ pToolBoxCmd = vToolBoxCategories[nIdx];
- // calculate actual size of window to use
- Size aCatSize( aToolBoxCat.CalcWindowSizePixel( 2 ) );
- Size aCmdSize( pToolBoxCmd->CalcWindowSizePixel( nLines ) );
- DBG_ASSERT( aCatSize.Width() == aCmdSize.Width(), "width mismatch" );
- // main window settings
- Size aWndSize ( aCatSize.Width(), pToolBoxCmd->GetPosPixel().Y() + aCmdSize.Height() + 3);
- SetOutputSizePixel( aWndSize );
+ // calculate actual size of window to use
+ Size aCatSize( aToolBoxCat.CalcWindowSizePixel( 2 ) );
+ Size aCmdSize( pToolBoxCmd->CalcWindowSizePixel( nLines ) );
+ DBG_ASSERT( aCatSize.Width() == aCmdSize.Width(), "width mismatch" );
+ // main window settings
+ Size aWndSize ( aCatSize.Width(), pToolBoxCmd->GetPosPixel().Y() + aCmdSize.Height() + 3);
+ SetOutputSizePixel( aWndSize );
- if (nActiveCategoryRID)
- aToolBoxCat.CheckItem(nActiveCategoryRID, FALSE);
- nActiveCategoryRID = nCategoryRID;
- aToolBoxCat.CheckItem(nActiveCategoryRID, TRUE);
+ if (nActiveCategoryRID)
+ aToolBoxCat.CheckItem(nActiveCategoryRID, FALSE);
+ nActiveCategoryRID = nCategoryRID;
+ aToolBoxCat.CheckItem(nActiveCategoryRID, TRUE);
- pToolBoxCmd->Show();
- }
+ pToolBoxCmd->Show();
}
-IMPL_LINK_INLINE_START( SmToolBoxWindow, CategoryClickHdl, ToolBox*, pToolBox)
+IMPL_LINK( SmToolBoxWindow, CategoryClickHdl, ToolBox*, pToolBox)
{
int nItemId = pToolBox->GetCurItemId();
if (nItemId != 0)
SetCategory( sal::static_int_cast< USHORT >(nItemId) );
return 0;
}
-IMPL_LINK_INLINE_END( SmToolBoxWindow, CategoryClickHdl, ToolBox*, pToolBox)
-IMPL_LINK_INLINE_START( SmToolBoxWindow, CmdSelectHdl, ToolBox*, pToolBox)
+IMPL_LINK( SmToolBoxWindow, CmdSelectHdl, ToolBox*, pToolBox)
{
SmViewShell *pViewSh = GetView();
if (pViewSh)
@@ -392,7 +384,6 @@ IMPL_LINK_INLINE_START( SmToolBoxWindow, CmdSelectHdl, ToolBox*, pToolBox)
new SfxInt16Item(SID_INSERTCOMMAND, pToolBox->GetCurItemId()), 0L);
return 0;
}
-IMPL_LINK_INLINE_END( SmToolBoxWindow, CmdSelectHdl, ToolBox*, pToolBox)
/**************************************************************************/
diff --git a/starmath/source/toolbox.hrc b/starmath/source/toolbox.hrc
index 687521d76a32..29adff303a3e 100644..100755
--- a/starmath/source/toolbox.hrc
+++ b/starmath/source/toolbox.hrc
@@ -28,7 +28,19 @@
#ifndef _TOOLBOX_HRC_
#define _TOOLBOX_HRC_
-#define FL_TOOLBOX_CAT_DELIM 21
+#define FL_TOOLBOX_CAT_DELIM 1
+#define TOOLBOX_CATALOG 10
+#define TOOLBOX_CAT_A 11
+#define TOOLBOX_CAT_B 12
+#define TOOLBOX_CAT_C 13
+#define TOOLBOX_CAT_D 14
+#define TOOLBOX_CAT_E 15
+#define TOOLBOX_CAT_F 16
+#define TOOLBOX_CAT_G 17
+#define TOOLBOX_CAT_H 18
+#define TOOLBOX_CAT_I 19
+
+#define NUM_TBX_CATEGORIES (TOOLBOX_CAT_I - TOOLBOX_CAT_A + 1)
#endif
diff --git a/starmath/source/toolbox.src b/starmath/source/toolbox.src
new file mode 100755
index 000000000000..ead1b32810c3
--- /dev/null
+++ b/starmath/source/toolbox.src
@@ -0,0 +1,1837 @@
+/*************************************************************************
+ *
+ * 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 <sfx2/sfx.hrc>
+#include <svx/globlmn.hrc>
+#include "starmath.hrc"
+#include "toolbox.hrc"
+
+#define IMAGE_STDBTN_COLOR Color { Red = 0xff00; Green = 0x0000; Blue = 0xff00; }
+#define IMAGE_STDBTN_COLOR_HC IMAGE_STDBTN_COLOR
+
+
+FloatingWindow RID_TOOLBOXWINDOW
+{
+ HelpId = HID_SMA_OPERATOR_WIN ;
+ Border = TRUE ;
+ Moveable = TRUE ;
+ Closeable = TRUE ;
+ Hide = TRUE ;
+ OutputSize = TRUE ;
+ SVLook = TRUE ;
+ Size = MAP_APPFONT ( 0 , 0 ) ; // to be calculated programmatically
+ Text [ en-US ] = "Elements" ;
+
+ ToolBox TOOLBOX_CATALOG
+ {
+ // main menu of selection-window
+ HelpId = HID_SMA_SELECTION_TBX ;
+ Pos = MAP_APPFONT ( 0 , 0 ) ;
+ Size = MAP_APPFONT ( 65 , 38 ) ;
+ SVLook = TRUE ;
+ LineCount = 2 ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ Identifier = RID_UNBINOPS_CAT ;
+ HelpId = HID_SMA_UNBINOPS_CAT ;
+ Text [ en-US ] = "Unary/Binary Operators" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_RELATIONS_CAT ;
+ HelpId = HID_SMA_RELATIONS_CAT ;
+ Text [ en-US ] = "Relations" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_SETOPERATIONS_CAT ;
+ HelpId = HID_SMA_SETOPERATIONS_CAT ;
+ Text [ en-US ] = "Set Operations" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_FUNCTIONS_CAT ;
+ HelpId = HID_SMA_FUNCTIONS_CAT ;
+ Text [ en-US ] = "Functions" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_OPERATORS_CAT ;
+ HelpId = HID_SMA_OPERATORS_CAT ;
+ Text [ en-US ] = "Operators" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_ATTRIBUTES_CAT ;
+ HelpId = HID_SMA_ATTRIBUTES_CAT ;
+ Text [ en-US ] = "Attributes" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_MISC_CAT ;
+ HelpId = HID_SMA_MISC_CAT ;
+ Text [ en-US ] = "Others";
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SPACE ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_BRACKETS_CAT ;
+ HelpId = HID_SMA_BRACKETS_CAT ;
+ Text [ en-US ] = "Brackets" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_FORMAT_CAT ;
+ HelpId = HID_SMA_FORMAT_CAT ;
+ Text [ en-US ] = "Formats" ;
+ };
+ };
+ };
+
+ FixedLine FL_TOOLBOX_CAT_DELIM
+ {
+ Pos = MAP_APPFONT ( 0 , 44 ) ;
+ Size = MAP_APPFONT ( 65 , 8 ) ;
+ };
+
+ ToolBox TOOLBOX_CAT_A
+ {
+ // unary/binary operators
+ HelpId = HID_SMA_UNBINOPS_TBX ;
+ Pos = MAP_APPFONT ( 0 , 45 ) ;
+ Size = MAP_APPFONT ( 65 , 95 ) ;
+ SVLook = TRUE ;
+ Hide = TRUE ;
+ LineCount = 4 ;
+
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ Identifier = RID_PLUSX ;
+ HelpId = HID_SMA_PLUSX ;
+ Text [ en-US ] = "+ Sign" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_MINUSX ;
+ HelpId = HID_SMA_MINUSX ;
+ Text [ en-US ] = "- Sign" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_PLUSMINUSX ;
+ HelpId = HID_SMA_PLUSMINUSX ;
+ Text [ en-US ] = "+- Sign" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_MINUSPLUSX ;
+ HelpId = HID_SMA_MINUSPLUSX ;
+ Text [ en-US ] = "-+ Sign" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_NEGX ;
+ HelpId = HID_SMA_NEGX ;
+ Text [ en-US ] = "Boolean NOT" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XPLUSY ;
+ HelpId = HID_SMA_XPLUSY ;
+ Text [ en-US ] = "Addition +" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XCDOTY ;
+ HelpId = HID_SMA_XCDOTY ;
+ Text [ en-US ] = "Multiplication (Dot )" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XTIMESY ;
+ HelpId = HID_SMA_XTIMESY ;
+ Text [ en-US ] = "Multiplication (x)" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XSYMTIMESY ;
+ HelpId = HID_SMA_XSYMTIMESY ;
+ Text [ en-US ] = "Multiplication (*)" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XANDY ;
+ HelpId = HID_SMA_XANDY ;
+ Text [ en-US ] = "Boolean AND" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XMINUSY ;
+ HelpId = HID_SMA_XMINUSY ;
+ Text [ en-US ] = "Subtraction -" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XOVERY ;
+ HelpId = HID_SMA_XOVERY ;
+ Text [ en-US ] = "Division (Fraction)" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XDIVY ;
+ HelpId = HID_SMA_XDIVY ;
+ Text [ en-US ] = "Division (÷)" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XSYMDIVIDEY ;
+ HelpId = HID_SMA_XSYMDIVIDEY ;
+ Text [ en-US ] = "Division (Slash)" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XORY ;
+ HelpId = HID_SMA_XORY ;
+ Text [ en-US ] = "Boolean OR" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XCIRCY ;
+ HelpId = HID_SMA_XCIRCY ;
+ Text [ en-US ] = "Concatenate";
+ };
+ };
+ };
+
+ ToolBox TOOLBOX_CAT_B
+ {
+ // relations
+ HelpId = HID_SMA_RELATIONS_TBX ;
+ Pos = MAP_APPFONT ( 0 , 45 ) ;
+ Size = MAP_APPFONT ( 65 , 95 ) ;
+ SVLook = TRUE ;
+ Hide = TRUE ;
+ LineCount = 5 ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ Identifier = RID_XEQY ;
+ HelpId = HID_SMA_XEQY ;
+ Text [ en-US ] = "Is Equal" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XNEQY ;
+ HelpId = HID_SMA_XNEQY ;
+ Text [ en-US ] = "Is Not Equal" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XAPPROXY ;
+ HelpId = HID_SMA_XAPPROXY ;
+ Text [ en-US ] = "Is Approximately Equal" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XDIVIDESY ;
+ HelpId = HID_SMA_XDIVIDESY ;
+ Text [ en-US ] = "Divides";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XNDIVIDESY ;
+ HelpId = HID_SMA_XNDIVIDESY ;
+ Text [ en-US ] = "Does Not Divide";
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XLTY ;
+ HelpId = HID_SMA_XLTY ;
+ Text [ en-US ] = "Is Less Than" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XGTY ;
+ HelpId = HID_SMA_XGTY ;
+ Text [ en-US ] = "Is Greater Than" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XSIMEQY ;
+ HelpId = HID_SMA_XSIMEQY ;
+ /* ### ACHTUNG: Neuer Text in Resource? ist �hnlich oder gleich : ist �hnlich oder glech */
+ Text [ en-US ] = "Is Similar Or Equal" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XPARALLELY ;
+ HelpId = HID_SMA_XPARALLELY ;
+ Text [ en-US ] = "Is Parallel To" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XORTHOY ;
+ HelpId = HID_SMA_XORTHOY ;
+ Text [ en-US ] = "Is Orthogonal To" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XLESLANTY ;
+ HelpId = HID_SMA_XLESLANTY ;
+ Text [ en-US ] = "Is Less Than Or Equal To" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XGESLANTY ;
+ HelpId = HID_SMA_XGESLANTY ;
+ Text [ en-US ] = "Is Greater Than Or Equal To" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XSIMY ;
+ HelpId = HID_SMA_XSIMY ;
+ Text [ en-US ] = "Is Similar To" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XEQUIVY ;
+ HelpId = HID_SMA_XEQUIVY ;
+ Text [ en-US ] = "Is Congruent To" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SPACE ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XLEY ;
+ HelpId = HID_SMA_XLEY ;
+ Text [ en-US ] = "Is Less Than Or Equal To" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XGEY ;
+ HelpId = HID_SMA_XGEY ;
+ Text [ en-US ] = "Is Greater Than Or Equal To" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XPROPY ;
+ HelpId = HID_SMA_XPROPY ;
+ Text [ en-US ] = "Is Proportional To" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XTOWARDY ;
+ HelpId = HID_SMA_XTOWARDY ;
+ Text [ en-US ] = "Toward" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SPACE ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_DLARROW ;
+ HelpId = HID_SMA_DLARROW ;
+ Text [ en-US ] = "Double Arrow Left";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_DLRARROW ;
+ HelpId = HID_SMA_DLRARROW ;
+ Text [ en-US ] = "Double Arrow Left And Right";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_DRARROW ;
+ HelpId = HID_SMA_DRARROW ;
+ Text [ en-US ] = "Double Arrow Right";
+ };
+ };
+ };
+
+ ToolBox TOOLBOX_CAT_C
+ {
+ // set operations
+ HelpId = HID_SMA_SETOPERATIONS_TBX ;
+ Pos = MAP_APPFONT ( 0 , 45 ) ;
+ Size = MAP_APPFONT ( 65 , 95 ) ;
+ SVLook = TRUE ;
+ Hide = TRUE ;
+ LineCount = 5 ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ Identifier = RID_XINY ;
+ HelpId = HID_SMA_XINY ;
+ Text [ en-US ] = "Is In" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XNOTINY ;
+ HelpId = HID_SMA_XNOTINY ;
+ Text [ en-US ] = "Is Not In" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XOWNSY ;
+ HelpId = HID_SMA_XOWNSY ;
+ Text [ en-US ] = "Owns" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SPACE ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_EMPTYSET ;
+ HelpId = HID_SMA_EMPTYSET ;
+ Text [ en-US ] = "Empty Set";
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XINTERSECTIONY ;
+ HelpId = HID_SMA_XINTERSECTIONY ;
+ Text [ en-US ] = "Intersection" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XUNIONY ;
+ HelpId = HID_SMA_XUNIONY ;
+ Text [ en-US ] = "Union" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XSETMINUSY ;
+ HelpId = HID_SMA_XSETMINUSY ;
+ Text [ en-US ] = "Difference" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XSLASHY ;
+ HelpId = HID_SMA_XSLASHY ;
+ Text [ en-US ] = "Quotient Set" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_ALEPH ;
+ HelpId = HID_SMA_ALEPH ;
+ Text [ en-US ] = "Aleph";
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XSUBSETY ;
+ HelpId = HID_SMA_XSUBSETY ;
+ Text [ en-US ] = "Subset" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XSUBSETEQY ;
+ HelpId = HID_SMA_XSUBSETEQY ;
+ Text [ en-US ] = "Subset Or Equal To" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XSUPSETY ;
+ HelpId = HID_SMA_XSUPSETY ;
+ Text [ en-US ] = "Superset" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XSUPSETEQY ;
+ HelpId = HID_SMA_XSUPSETEQY ;
+ Text [ en-US ] = "Superset Or Equal To" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SPACE ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XNSUBSETY ;
+ HelpId = HID_SMA_XNSUBSETY ;
+ Text [ en-US ] = "Not Subset" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XNSUBSETEQY ;
+ HelpId = HID_SMA_XNSUBSETEQY ;
+ Text [ en-US ] = "Not Subset Or Equal" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XNSUPSETY ;
+ HelpId = HID_SMA_XNSUPSETY ;
+ Text [ en-US ] = "Not Superset" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XNSUPSETEQY ;
+ HelpId = HID_SMA_XNSUPSETEQY ;
+ Text [ en-US ] = "Not Superset Or Equal" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SPACE ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_SETN ;
+ HelpId = HID_SMA_SETN ;
+ Text [ en-US ] = "Natural Numbers Set";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_SETZ ;
+ HelpId = HID_SMA_SETZ ;
+ Text [ en-US ] = "Integers Set";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_SETQ ;
+ HelpId = HID_SMA_SETQ ;
+ Text [ en-US ] = "Set of Rational Numbers";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_SETR ;
+ HelpId = HID_SMA_SETR ;
+ Text [ en-US ] = "Real Numbers Set";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_SETC ;
+ HelpId = HID_SMA_SETC ;
+ Text [ en-US ] = "Complex Numbers Set";
+ };
+ };
+ };
+
+ ToolBox TOOLBOX_CAT_D
+ {
+ // functions
+ HelpId = HID_SMA_FUNCTIONS_TBX ;
+ Pos = MAP_APPFONT ( 0 , 45 ) ;
+ Size = MAP_APPFONT ( 65 , 95 ) ;
+ SVLook = TRUE ;
+ Hide = TRUE ;
+ LineCount = 5 ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ Identifier = RID_EX ;
+ HelpId = HID_SMA_EX ;
+ Text [ en-US ] = "Exponential Function" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_LNX ;
+ HelpId = HID_SMA_LNX ;
+ Text [ en-US ] = "Natural Logarithm" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_EXPX ;
+ HelpId = HID_SMA_EXPX ;
+ Text [ en-US ] = "Exponential Function" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_LOGX ;
+ HelpId = HID_SMA_LOGX ;
+ Text [ en-US ] = "Logarithm" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_RSUPX ;
+ HelpId = HID_SMA_RSUPX ;
+ Text [ en-US ] = "Power";
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_SINX ;
+ HelpId = HID_SMA_SINX ;
+ Text [ en-US ] = "Sine" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_COSX ;
+ HelpId = HID_SMA_COSX ;
+ Text [ en-US ] = "Cosine" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_TANX ;
+ HelpId = HID_SMA_TANX ;
+ Text [ en-US ] = "Tangent" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_COTX ;
+ HelpId = HID_SMA_COTX ;
+ Text [ en-US ] = "Cotangent" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_SQRTX ;
+ HelpId = HID_SMA_SQRTX ;
+ Text [ en-US ] = "Square Root" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_ARCSINX ;
+ HelpId = HID_SMA_ARCSINX ;
+ Text [ en-US ] = "Arcsine" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_ARCCOSX ;
+ HelpId = HID_SMA_ARCCOSX ;
+ Text [ en-US ] = "Arccosine" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_ARCTANX ;
+ HelpId = HID_SMA_ARCTANX ;
+ Text [ en-US ] = "Arctangent" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_ARCCOTX ;
+ HelpId = HID_SMA_ARCCOTX ;
+ Text [ en-US ] = "Arccotangent" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_NROOTXY ;
+ HelpId = HID_SMA_NROOTXY ;
+ Text [ en-US ] = "N-th Root" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_SINHX ;
+ HelpId = HID_SMA_SINHX ;
+ Text [ en-US ] = "Hyperbolic Sine" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_COSHX ;
+ HelpId = HID_SMA_COSHX ;
+ Text [ en-US ] = "Hyperbolic Cosine" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_TANHX ;
+ HelpId = HID_SMA_TANHX ;
+ Text [ en-US ] = "Hyperbolic Tangent" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_COTHX ;
+ HelpId = HID_SMA_COTHX ;
+ Text [ en-US ] = "Hyperbolic Cotangent" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_ABSX ;
+ HelpId = HID_SMA_ABSX ;
+ Text [ en-US ] = "Absolute Value" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_ARSINHX ;
+ HelpId = HID_SMA_ARSINHX ;
+ Text [ en-US ] = "Area Hyperbolic Sine" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_ARCOSHX ;
+ HelpId = HID_SMA_ARCOSHX ;
+ Text [ en-US ] = "Area Hyperbolic Cosine" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_ARTANHX ;
+ HelpId = HID_SMA_ARTANHX ;
+ Text [ en-US ] = "Area Hyperbolic Tangent" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_ARCOTHX ;
+ HelpId = HID_SMA_ARCOTHX ;
+ Text [ en-US ] = "Area Hyperbolic Cotangent" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_FACTX ;
+ HelpId = HID_SMA_FACTX ;
+ Text [ en-US ] = "Factorial" ;
+ };
+ };
+ };
+
+ ToolBox TOOLBOX_CAT_E
+ {
+ // operators
+ HelpId = HID_SMA_OPERATORS_TBX ;
+ Pos = MAP_APPFONT ( 0 , 45 ) ;
+ Size = MAP_APPFONT ( 65 , 95 ) ;
+ SVLook = TRUE ;
+ Hide = TRUE ;
+ LineCount = 3 ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ Identifier = RID_LIMX ;
+ HelpId = HID_SMA_LIMX ;
+ Text [ en-US ] = "Limes" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_SUMX ;
+ HelpId = HID_SMA_SUMX ;
+ Text [ en-US ] = "Sum" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_PRODX ;
+ HelpId = HID_SMA_PRODX ;
+ Text [ en-US ] = "Product" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_COPRODX ;
+ HelpId = HID_SMA_COPRODX ;
+ Text [ en-US ] = "Coproduct" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_FROMXTOY ;
+ HelpId = HID_SMA_FROMXTOY ;
+ Text [ en-US ] = "Upper And Lower Limit" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_INTX ;
+ HelpId = HID_SMA_INTX ;
+ Text [ en-US ] = "Integral" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_IINTX ;
+ HelpId = HID_SMA_IINTX ;
+ Text [ en-US ] = "Double Integral" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_IIINTX ;
+ HelpId = HID_SMA_IIINTX ;
+ Text [ en-US ] = "Triple Integral" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SPACE ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_FROMX ;
+ HelpId = HID_SMA_FROMX ;
+ Text [ en-US ] = "Lower Limit" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_LINTX ;
+ HelpId = HID_SMA_LINTX ;
+ Text [ en-US ] = "Curve Integral" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_LLINTX ;
+ HelpId = HID_SMA_LLINTX ;
+ Text [ en-US ] = "Double Curve Integral" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_LLLINTX ;
+ HelpId = HID_SMA_LLLINTX ;
+ Text [ en-US ] = "Triple Curve Integral" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SPACE ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_TOX ;
+ HelpId = HID_SMA_TOX ;
+ Text [ en-US ] = "Upper Limit" ;
+ };
+ };
+ };
+
+ ToolBox TOOLBOX_CAT_F
+ {
+ // attributs
+ HelpId = HID_SMA_ATTRIBUTES_TBX ;
+ Pos = MAP_APPFONT ( 0 , 45 ) ;
+ Size = MAP_APPFONT ( 65 , 95 ) ;
+ SVLook = TRUE ;
+ Hide = TRUE ;
+ LineCount = 5 ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ Identifier = RID_ACUTEX ;
+ HelpId = HID_SMA_ACUTEX ;
+ Text [ en-US ] = "Acute Accent";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_GRAVEX ;
+ HelpId = HID_SMA_GRAVEX ;
+ Text [ en-US ] = "Grave Accent";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_CHECKX ;
+ HelpId = HID_SMA_CHECKX ;
+ Text [ en-US ] = "Reverse Circumflex" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_BREVEX ;
+ HelpId = HID_SMA_BREVEX ;
+ Text [ en-US ] = "Breve" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_CIRCLEX ;
+ HelpId = HID_SMA_CIRCLEX ;
+ Text [ en-US ] = "Circle" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_VECX ;
+ HelpId = HID_SMA_VECX ;
+ Text [ en-US ] = "Vector Arrow" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_TILDEX ;
+ HelpId = HID_SMA_TILDEX ;
+ Text [ en-US ] = "Tilde" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_HATX ;
+ HelpId = HID_SMA_HATX ;
+ Text [ en-US ] = "Circumflex" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_BARX ;
+ HelpId = HID_SMA_BARX ;
+ Text [ en-US ] = "Line Above" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_DOTX ;
+ HelpId = HID_SMA_DOTX ;
+ Text [ en-US ] = "Dot" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_WIDEVECX ;
+ HelpId = HID_SMA_WIDEVECX ;
+ Text [ en-US ] = "Large Vector Arrow";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_WIDETILDEX ;
+ HelpId = HID_SMA_WIDETILDEX ;
+ Text [ en-US ] = "Large Tilde";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_WIDEHATX ;
+ HelpId = HID_SMA_WIDEHATX ;
+ Text [ en-US ] = "Large Circumflex";
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SPACE ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_DDOTX ;
+ HelpId = HID_SMA_DDOTX ;
+ Text [ en-US ] = "Double Dot" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_OVERLINEX ;
+ HelpId = HID_SMA_OVERLINEX ;
+ Text [ en-US ] = "Line Over" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_UNDERLINEX ;
+ HelpId = HID_SMA_UNDERLINEX ;
+ Text [ en-US ] = "Line Below" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_OVERSTRIKEX ;
+ HelpId = HID_SMA_OVERSTRIKEX ;
+ Text [ en-US ] = "Line Through" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SPACE ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_DDDOTX ;
+ HelpId = HID_SMA_DDDOTX ;
+ Text [ en-US ] = "Triple Dot" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_PHANTOMX ;
+ HelpId = HID_SMA_PHANTOMX ;
+ Text [ en-US ] = "Transparent" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_BOLDX ;
+ HelpId = HID_SMA_BOLDX ;
+ Text [ en-US ] = "Bold Font" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_ITALX ;
+ HelpId = HID_SMA_ITALX ;
+ Text [ en-US ] = "Italic Font" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_SIZEXY ;
+ HelpId = HID_SMA_SIZEXY ;
+ Text [ en-US ] = "Resize" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_FONTXY ;
+ HelpId = HID_SMA_FONTXY ;
+ Text [ en-US ] = "Change Font" ;
+ };
+ };
+ };
+
+ ToolBox TOOLBOX_CAT_G
+ {
+ // parentheses
+ HelpId = HID_SMA_BRACKETS_TBX ;
+ Pos = MAP_APPFONT ( 0 , 45 ) ;
+ Size = MAP_APPFONT ( 65 , 95 ) ;
+ SVLook = TRUE ;
+ Hide = TRUE ;
+ LineCount = 5 ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ Identifier = RID_LRPARENTX ;
+ HelpId = HID_SMA_LRPARENTX ;
+ Text [ en-US ] = "Round Brackets" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_LRBRACKETX ;
+ HelpId = HID_SMA_LRBRACKETX ;
+ Text [ en-US ] = "Square Brackets" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_LRDBRACKETX ;
+ HelpId = HID_SMA_LRDBRACKETX ;
+ Text [ en-US ] = "Double Square Brackets";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_LRLINEX ;
+ HelpId = HID_SMA_LRLINEX ;
+ Text [ en-US ] = "Single Lines" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_LRDLINEX ;
+ HelpId = HID_SMA_LRDLINEX ;
+ Text [ en-US ] = "Double Lines" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_LRBRACEX ;
+ HelpId = HID_SMA_LRBRACEX ;
+ Text [ en-US ] = "Braces" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_LRANGLEX ;
+ HelpId = HID_SMA_LRANGLEX ;
+ Text [ en-US ] = "Angle Brackets" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_LMRANGLEXY ;
+ HelpId = HID_SMA_LMRANGLEXY ;
+ Text [ en-US ] = "Operator Brackets";
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SPACE ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_LRGROUPX ;
+ HelpId = HID_SMA_LRGROUPX ;
+ Text [ en-US ] = "Group Brackets" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_SLRPARENTX ;
+ HelpId = HID_SMA_SLRPARENTX ;
+ Text [ en-US ] = "Round Brackets (Scalable)" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_SLRBRACKETX ;
+ HelpId = HID_SMA_SLRBRACKETX ;
+ Text [ en-US ] = "Square Brackets (Scalable)" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_SLRDBRACKETX ;
+ HelpId = HID_SMA_SLRDBRACKETX ;
+ Text [ en-US ] = "Double Square Brackets (Scalable)";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_SLRLINEX ;
+ HelpId = HID_SMA_SLRLINEX ;
+ Text [ en-US ] = "Single Lines (Scalable)" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_SLRDLINEX ;
+ HelpId = HID_SMA_SLRDLINEX ;
+ Text [ en-US ] = "Double Lines (Scalable)" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_SLRBRACEX ;
+ HelpId = HID_SMA_SLRBRACEX ;
+ Text [ en-US ] = "Braces (Scalable)" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_SLRANGLEX ;
+ HelpId = HID_SMA_SLRANGLEX ;
+ Text [ en-US ] = "Angle Brackets (Scalable)" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_SLMRANGLEXY ;
+ HelpId = HID_SMA_SLMRANGLEXY ;
+ Text [ en-US ] = "Operator Brackets (Scalable)";
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XOVERBRACEY ;
+ HelpId = HID_SMA_XOVERBRACEY ;
+ Text [ en-US ] = "Braces Top (Scalable)";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_XUNDERBRACEY ;
+ HelpId = HID_SMA_XUNDERBRACEY ;
+ Text [ en-US ] = "Braces Bottom (Scalable)";
+ };
+ };
+ };
+
+ ToolBox TOOLBOX_CAT_H
+ {
+ // format
+ HelpId = HID_SMA_FORMAT_TBX ;
+ Pos = MAP_APPFONT ( 0 , 45 ) ;
+ Size = MAP_APPFONT ( 65 , 95 ) ;
+ SVLook = TRUE ;
+ Hide = TRUE ;
+ LineCount = 3 ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ Identifier = RID_LSUPX ;
+ HelpId = HID_SMA_LSUPX ;
+ Text [ en-US ] = "Superscript Left" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_CSUPX ;
+ HelpId = HID_SMA_CSUPX ;
+ Text [ en-US ] = "Superscript Top";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_RSUPX ;
+ HelpId = HID_SMA_RSUPX ;
+ Text [ en-US ] = "Superscript Right" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_BINOMXY ;
+ HelpId = HID_SMA_BINOMXY ;
+ Text [ en-US ] = "Vertical Stack (2 Elements)" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_NEWLINE ;
+ HelpId = HID_SMA_NEWLINE ;
+ Text [ en-US ] = "New Line" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_LSUBX ;
+ HelpId = HID_SMA_LSUBX ;
+ Text [ en-US ] = "Subscript Left" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_CSUBX ;
+ HelpId = HID_SMA_CSUBX ;
+ Text [ en-US ] = "Subscript Bottom";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_RSUBX ;
+ HelpId = HID_SMA_RSUBX ;
+ Text [ en-US ] = "Subscript Right" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_STACK ;
+ HelpId = HID_SMA_STACK ;
+ Text [ en-US ] = "Vertical Stack" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_SBLANK ;
+ HelpId = HID_SMA_SBLANK ;
+ Text [ en-US ] = "Small Gap" ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_ALIGNLX ;
+ HelpId = HID_SMA_ALIGNLX ;
+ Text [ en-US ] = "Align Left" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_ALIGNCX ;
+ HelpId = HID_SMA_ALIGNCX ;
+ Text [ en-US ] = "Align Center" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_ALIGNRX ;
+ HelpId = HID_SMA_ALIGNRX ;
+ Text [ en-US ] = "Align Right" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_MATRIX ;
+ HelpId = HID_SMA_MATRIX ;
+ Text [ en-US ] = "Matrix Stack" ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_BLANK ;
+ HelpId = HID_SMA_BLANK ;
+ Text [ en-US ] = "Gap" ;
+ };
+ };
+ };
+
+ ToolBox TOOLBOX_CAT_I
+ {
+ // misc
+ HelpId = HID_SMA_FORMAT_TBX ;
+ Pos = MAP_APPFONT ( 0 , 45 ) ;
+ Size = MAP_APPFONT ( 65 , 95 ) ;
+ SVLook = TRUE ;
+ Hide = TRUE ;
+ LineCount = 4 ;
+ ItemList =
+ {
+ ToolBoxItem
+ {
+ Identifier = RID_INFINITY ;
+ HelpId = HID_SMA_INFINITY ;
+ Text [ en-US ] = "infinite";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_PARTIAL ;
+ HelpId = HID_SMA_PARTIAL ;
+ Text [ en-US ] = "Partial";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_NABLA ;
+ HelpId = HID_SMA_NABLA ;
+ Text [ en-US ] = "Nabla";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_EXISTS ;
+ HelpId = HID_SMA_EXISTS ;
+ Text [ en-US ] = "There Exists";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_FORALL ;
+ HelpId = HID_SMA_FORALL ;
+ Text [ en-US ] = "For All";
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_HBAR ;
+ HelpId = HID_SMA_HBAR ;
+ Text [ en-US ] = "h Bar";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_LAMBDABAR ;
+ HelpId = HID_SMA_LAMBDABAR ;
+ Text [ en-US ] = "Lambda Bar";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_RE ;
+ HelpId = HID_SMA_RE ;
+ Text [ en-US ] = "Real Part";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_IM ;
+ HelpId = HID_SMA_IM ;
+ Text [ en-US ] = "Imaginary Part";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_WP ;
+ HelpId = HID_SMA_WP ;
+ Text [ en-US ] = "Weierstrass p";
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_LEFTARROW ;
+ HelpId = HID_SMA_LEFTARROW ;
+ Text [ en-US ] = "Left Arrow";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_RIGHTARROW ;
+ HelpId = HID_SMA_RIGHTARROW ;
+ Text [ en-US ] = "Right Arrow";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_UPARROW ;
+ HelpId = HID_SMA_UPARROW ;
+ Text [ en-US ] = "Up Arrow";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_DOWNARROW ;
+ HelpId = HID_SMA_DOWNARROW ;
+ Text [ en-US ] = "Down Arrow";
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_SPACE ;
+ };
+ ToolBoxItem
+ {
+ Type = TOOLBOXITEM_BREAK ;
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_DOTSLOW ;
+ HelpId = HID_SMA_DOTSLOW ;
+ Text [ en-US ] = "Dots At Bottom";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_DOTSAXIS ;
+ HelpId = HID_SMA_DOTSAXIS ;
+ Text [ en-US ] = "Dots In Middle";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_DOTSVERT ;
+ HelpId = HID_SMA_DOTSVERT ;
+ Text [ en-US ] = "Dots Vertically";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_DOTSUP ;
+ HelpId = HID_SMA_DOTSUP ;
+ Text [ en-US ] = "Dots To Top";
+ };
+ ToolBoxItem
+ {
+ Identifier = RID_DOTSDOWN ;
+ HelpId = HID_SMA_DOTSDOWN ;
+ Text [ en-US ] = "Dots to Bottom";
+ };
+ };
+ };
+};
+
+
+
+#define UNBINOPS_IDLIST \
+ IdList = \
+ { \
+ RID_PLUSX ; \
+ RID_MINUSX ; \
+ RID_PLUSMINUSX ; \
+ RID_MINUSPLUSX ; \
+ RID_XPLUSY ; \
+ RID_XCDOTY ; \
+ RID_XTIMESY ; \
+ RID_XSYMTIMESY ; \
+ RID_XMINUSY ; \
+ RID_XOVERY ; \
+ RID_XDIVY ; \
+ RID_XSYMDIVIDEY ; \
+ RID_NEGX ; \
+ RID_XANDY ; \
+ RID_XORY ; \
+ RID_XCIRCY ; \
+ }; \
+ IdCount = { 16 ; };
+
+ ImageList RID_IL_UNBINOPS
+ {
+ Prefix = "un";
+ MaskColor = IMAGE_STDBTN_COLOR ;
+ UNBINOPS_IDLIST
+ };
+ ImageList RID_ILH_UNBINOPS
+ {
+ Prefix = "unh";
+ MaskColor = IMAGE_STDBTN_COLOR_HC ;
+ UNBINOPS_IDLIST
+ };
+
+#define RELATIONS_IDLIST \
+ IdList = \
+ { \
+ RID_XEQY ; \
+ RID_XNEQY ; \
+ RID_XEQUIVY ; \
+ RID_XORTHOY ; \
+ RID_XLTY ; \
+ RID_XGTY ; \
+ RID_XAPPROXY ; \
+ RID_XPARALLELY ; \
+ RID_XLESLANTY ; \
+ RID_XGESLANTY ; \
+ RID_XSIMEQY ; \
+ RID_XPROPY ; \
+ RID_XLEY ; \
+ RID_XGEY ; \
+ RID_XSIMY ; \
+ RID_XTOWARDY ; \
+ RID_XDIVIDESY ; \
+ RID_XNDIVIDESY; \
+ RID_DLARROW ; \
+ RID_DLRARROW ; \
+ RID_DRARROW ; \
+ }; \
+ IdCount ={ 21 ; };
+
+ ImageList RID_IL_RELATIONS
+ {
+ Prefix = "bi";
+ MaskColor = IMAGE_STDBTN_COLOR ;
+ RELATIONS_IDLIST
+ };
+ ImageList RID_ILH_RELATIONS
+ {
+ Prefix = "bih";
+ MaskColor = IMAGE_STDBTN_COLOR_HC ;
+ RELATIONS_IDLIST
+ };
+
+#define SETOPERATIONS_IDLIST \
+ IdList = \
+ { \
+ RID_XINY ; \
+ RID_XNOTINY ; \
+ RID_XOWNSY ; \
+ RID_XINTERSECTIONY ; \
+ RID_XUNIONY ; \
+ RID_XSETMINUSY ; \
+ RID_XSLASHY ; \
+ RID_XSUBSETY ; \
+ RID_XSUBSETEQY ; \
+ RID_XSUPSETY ; \
+ RID_XSUPSETEQY ; \
+ RID_XNSUBSETY ; \
+ RID_XNSUBSETEQY ; \
+ RID_XNSUPSETY ; \
+ RID_XNSUPSETEQY ; \
+ RID_EMPTYSET ; \
+ RID_ALEPH ; \
+ RID_SETN ; \
+ RID_SETZ ; \
+ RID_SETQ ; \
+ RID_SETR ; \
+ RID_SETC ; \
+ }; \
+ IdCount = { 22 ; };
+
+ ImageList RID_IL_SETOPERATIONS
+ {
+ Prefix = "op";
+ MaskColor = IMAGE_STDBTN_COLOR ;
+ SETOPERATIONS_IDLIST
+ };
+ ImageList RID_ILH_SETOPERATIONS
+ {
+ Prefix = "oph";
+ MaskColor = IMAGE_STDBTN_COLOR_HC ;
+ SETOPERATIONS_IDLIST
+ };
+
+#define FUNCTIONS_IDLIST \
+ IdList = \
+ { \
+ RID_ABSX ; \
+ RID_FACTX ; \
+ RID_SQRTX ; \
+ RID_NROOTXY ; \
+ RID_EX ; \
+ RID_LNX ; \
+ RID_EXPX ; \
+ RID_LOGX ; \
+ RID_SINX ; \
+ RID_COSX ; \
+ RID_TANX ; \
+ RID_COTX ; \
+ RID_SINHX ; \
+ RID_COSHX ; \
+ RID_TANHX ; \
+ RID_COTHX ; \
+ RID_ARCSINX ; \
+ RID_ARCCOSX ; \
+ RID_ARCTANX ; \
+ RID_ARCCOTX ; \
+ RID_ARSINHX ; \
+ RID_ARCOSHX ; \
+ RID_ARTANHX ; \
+ RID_ARCOTHX ; \
+ RID_RSUPX ; \
+ }; \
+ IdCount = { 25 ; };
+
+ ImageList RID_IL_FUNCTIONS
+ {
+ Prefix = "fu";
+ MaskColor = IMAGE_STDBTN_COLOR ;
+ FUNCTIONS_IDLIST
+ };
+ ImageList RID_ILH_FUNCTIONS
+ {
+ Prefix = "fuh";
+ MaskColor = IMAGE_STDBTN_COLOR_HC ;
+ FUNCTIONS_IDLIST
+ };
+
+#define OPERATORS_IDLIST \
+ IdList = \
+ { \
+ RID_LIMX ; \
+ RID_SUMX ; \
+ RID_PRODX ; \
+ RID_COPRODX ; \
+ RID_INTX ; \
+ RID_IINTX ; \
+ RID_IIINTX ; \
+ RID_LINTX ; \
+ RID_LLINTX ; \
+ RID_LLLINTX ; \
+ RID_FROMXTOY ; \
+ RID_FROMX ; \
+ RID_TOX ; \
+ }; \
+ IdCount = { 13 ; };
+
+ ImageList RID_IL_OPERATORS
+ {
+ Prefix = "fo";
+ MaskColor = IMAGE_STDBTN_COLOR ;
+ OPERATORS_IDLIST
+ };
+ ImageList RID_ILH_OPERATORS
+ {
+ Prefix = "foh";
+ MaskColor = IMAGE_STDBTN_COLOR_HC ;
+ OPERATORS_IDLIST
+ };
+
+#define ATTRIBUTES_IDLIST \
+ IdList = \
+ { \
+ RID_ACUTEX ; \
+ RID_GRAVEX ; \
+ RID_CHECKX ; \
+ RID_BREVEX ; \
+ RID_BARX ; \
+ RID_VECX ; \
+ RID_HATX ; \
+ RID_TILDEX ; \
+ RID_CIRCLEX ; \
+ RID_DOTX ; \
+ RID_DDOTX ; \
+ RID_DDDOTX ; \
+ RID_OVERLINEX ; \
+ RID_UNDERLINEX ; \
+ RID_OVERSTRIKEX ; \
+ RID_PHANTOMX ; \
+ RID_BOLDX ; \
+ RID_ITALX ; \
+ RID_SIZEXY ; \
+ RID_FONTXY ; \
+ RID_WIDEHATX ; \
+ RID_WIDETILDEX ; \
+ RID_WIDEVECX ; \
+ }; \
+ IdCount = { 23 ; };
+
+ ImageList RID_IL_ATTRIBUTES
+ {
+ Prefix = "at";
+ MaskColor = IMAGE_STDBTN_COLOR ;
+ ATTRIBUTES_IDLIST
+ };
+ ImageList RID_ILH_ATTRIBUTES
+ {
+ Prefix = "ath";
+ MaskColor = IMAGE_STDBTN_COLOR_HC ;
+ ATTRIBUTES_IDLIST
+ };
+
+#define BRACKETS_IDLIST \
+ IdList = \
+ { \
+ RID_LRPARENTX ; \
+ RID_LRBRACKETX ; \
+ RID_LRANGLEX ; \
+ RID_LRBRACEX ; \
+ RID_LRLINEX ; \
+ RID_LRDLINEX ; \
+ RID_LMRANGLEXY ; \
+ RID_LRGROUPX ; \
+ RID_SLRPARENTX ; \
+ RID_SLRBRACKETX ; \
+ RID_SLRANGLEX ; \
+ RID_SLRBRACEX ; \
+ RID_SLRLINEX ; \
+ RID_SLRDLINEX ; \
+ RID_SLMRANGLEXY ; \
+ RID_LRDBRACKETX ; \
+ RID_SLRDBRACKETX ; \
+ RID_XOVERBRACEY ; \
+ RID_XUNDERBRACEY ; \
+ }; \
+ IdCount = { 19 ; };
+
+ ImageList RID_IL_BRACKETS
+ {
+ Prefix = "al";
+ MaskColor = IMAGE_STDBTN_COLOR ;
+ BRACKETS_IDLIST
+ };
+ ImageList RID_ILH_BRACKETS
+ {
+ Prefix = "alh";
+ MaskColor = IMAGE_STDBTN_COLOR_HC ;
+ BRACKETS_IDLIST
+ };
+
+#define FORMAT_IDLIST \
+ IdList = \
+ { \
+ RID_NEWLINE ; \
+ RID_SBLANK ; \
+ RID_BLANK ; \
+ RID_BINOMXY ; \
+ RID_STACK ; \
+ RID_MATRIX ; \
+ RID_ALIGNLX ; \
+ RID_ALIGNCX ; \
+ RID_ALIGNRX ; \
+ RID_RSUBX ; \
+ RID_RSUPX ; \
+ RID_LSUBX ; \
+ RID_LSUPX ; \
+ RID_CSUBX ; \
+ RID_CSUPX ; \
+ }; \
+ IdCount = { 15 ; };
+
+ ImageList RID_IL_FORMAT
+ {
+ Prefix = "co";
+ MaskColor = IMAGE_STDBTN_COLOR ;
+ FORMAT_IDLIST
+ };
+ ImageList RID_ILH_FORMAT
+ {
+ Prefix = "coh";
+ MaskColor = IMAGE_STDBTN_COLOR_HC ;
+ FORMAT_IDLIST
+ };
+
+#define MISC_IDLIST \
+ IdList = \
+ { \
+ RID_INFINITY ; \
+ RID_PARTIAL ; \
+ RID_NABLA ; \
+ RID_EXISTS ; \
+ RID_FORALL ; \
+ RID_HBAR; \
+ RID_LAMBDABAR ; \
+ RID_RE ; \
+ RID_IM ; \
+ RID_WP ; \
+ RID_LEFTARROW ; \
+ RID_RIGHTARROW ; \
+ RID_UPARROW ; \
+ RID_DOWNARROW ; \
+ RID_DOTSLOW ; \
+ RID_DOTSAXIS ; \
+ RID_DOTSVERT ; \
+ RID_DOTSUP ; \
+ RID_DOTSDOWN ; \
+ }; \
+ IdCount = { 19 ; };
+
+ ImageList RID_IL_MISC
+ {
+ Prefix = "mi";
+ MaskColor = IMAGE_STDBTN_COLOR ;
+ MISC_IDLIST
+ };
+ ImageList RID_ILH_MISC
+ {
+ Prefix = "mih";
+ MaskColor = IMAGE_STDBTN_COLOR_HC ;
+ MISC_IDLIST
+ };
+
+#define CATALOG_IDLIST \
+ IdList = \
+ { \
+ RID_UNBINOPS_CAT ; \
+ RID_RELATIONS_CAT ; \
+ RID_SETOPERATIONS_CAT ; \
+ RID_FUNCTIONS_CAT ; \
+ RID_OPERATORS_CAT ; \
+ RID_ATTRIBUTES_CAT ; \
+ RID_MISC_CAT ; \
+ RID_BRACKETS_CAT ; \
+ RID_FORMAT_CAT ; \
+ }; \
+ IdCount = { 9 ; };
+
+ ImageList RID_IL_CATALOG
+ {
+ Prefix = "im";
+ MaskColor = IMAGE_STDBTN_COLOR ;
+ CATALOG_IDLIST
+ };
+ ImageList RID_ILH_CATALOG
+ {
+ Prefix = "imh";
+ MaskColor = IMAGE_STDBTN_COLOR_HC ;
+ CATALOG_IDLIST
+ };
+
+
+
diff --git a/starmath/source/unomodel.cxx b/starmath/source/unomodel.cxx
index 9d008f326d2f..cd3e4b714469 100644..100755
--- a/starmath/source/unomodel.cxx
+++ b/starmath/source/unomodel.cxx
@@ -81,8 +81,8 @@ using namespace ::com::sun::star::script;
SmPrintUIOptions::SmPrintUIOptions()
{
ResStringArray aLocalizedStrings( SmResId( RID_PRINTUIOPTIONS ) );
- DBG_ASSERT( aLocalizedStrings.Count() >= 18, "resource incomplete" );
- if( aLocalizedStrings.Count() < 18 ) // bad resource ?
+ DBG_ASSERT( aLocalizedStrings.Count() >= 15, "resource incomplete" );
+ if( aLocalizedStrings.Count() < 15 ) // bad resource ?
return;
SmModule *pp = SM_MOD();
diff --git a/starmath/source/utility.cxx b/starmath/source/utility.cxx
index 0000bf5cf766..ff62e1631265 100644
--- a/starmath/source/utility.cxx
+++ b/starmath/source/utility.cxx
@@ -45,6 +45,8 @@
#include "smdll.hxx"
+////////////////////////////////////////////////////////////
+
// return pointer to active SmViewShell, if this is not possible
// return 0 instead.
//!! Since this method is based on the current focus it is somewhat
diff --git a/starmath/source/view.cxx b/starmath/source/view.cxx
index 3920c65e941c..20c235408013 100755
--- a/starmath/source/view.cxx
+++ b/starmath/source/view.cxx
@@ -1551,7 +1551,7 @@ void SmViewShell::Execute(SfxRequest& rReq)
break;
}
- case SID_INSERT_FORMULA:
+ case SID_IMPORT_FORMULA:
{
delete pImpl->pRequest;
pImpl->pRequest = new SfxRequest( rReq );
diff --git a/starmath/uiconfig/smath/menubar/menubar.xml b/starmath/uiconfig/smath/menubar/menubar.xml
index 63bf72c0cf62..7c82d733fa70 100644..100755
--- a/starmath/uiconfig/smath/menubar/menubar.xml
+++ b/starmath/uiconfig/smath/menubar/menubar.xml
@@ -83,7 +83,7 @@
<menu:menu menu:id=".uno:ToolsMenu">
<menu:menupopup>
<menu:menuitem menu:id=".uno:SymbolCatalogue"/>
- <menu:menuitem menu:id=".uno:InsertFormula"/>
+ <menu:menuitem menu:id=".uno:ImportFormula"/>
<menu:menuseparator/>
<menu:menu menu:id=".uno:MacrosMenu">
<menu:menupopup>
diff --git a/starmath/util/makefile.mk b/starmath/util/makefile.mk
index 1ba52411d721..08f673452f3c 100644
--- a/starmath/util/makefile.mk
+++ b/starmath/util/makefile.mk
@@ -112,3 +112,17 @@ SHL1RES= $(RCTARGET)
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/sm.component $(MISC)/smd.component
+
+$(MISC)/sm.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ sm.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt sm.component
+
+$(MISC)/smd.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ smd.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL2TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt smd.component
diff --git a/starmath/util/sm.component b/starmath/util/sm.component
new file mode 100644
index 000000000000..8047662e2915
--- /dev/null
+++ b/starmath/util/sm.component
@@ -0,0 +1,61 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.Math.FormulaDocument">
+ <service name="com.sun.star.formula.FormulaProperties"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Math.XMLContentExporter">
+ <service name="com.sun.star.xml.XMLExportFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Math.XMLExporter">
+ <service name="com.sun.star.xml.XMLExportFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Math.XMLImporter">
+ <service name="com.sun.star.xml.XMLImportFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Math.XMLMetaExporter">
+ <service name="com.sun.star.xml.XMLExportFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Math.XMLOasisMetaExporter">
+ <service name="com.sun.star.xml.XMLExportFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Math.XMLOasisMetaImporter">
+ <service name="com.sun.star.xml.XMLImportFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Math.XMLOasisSettingsExporter">
+ <service name="com.sun.star.xml.XMLExportFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Math.XMLOasisSettingsImporter">
+ <service name="com.sun.star.xml.XMLImportFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Math.XMLSettingsExporter">
+ <service name="com.sun.star.xml.XMLExportFilter"/>
+ </implementation>
+</component>
diff --git a/starmath/util/smd.component b/starmath/util/smd.component
new file mode 100644
index 000000000000..9f566864482e
--- /dev/null
+++ b/starmath/util/smd.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.math.FormatDetector">
+ <service name="com.sun.star.frame.ExtendedTypeDetection"/>
+ </implementation>
+</component>
diff --git a/stoc/prj/build.lst b/stoc/prj/build.lst
index 1fb7d34eeb32..b671e0a62ece 100644
--- a/stoc/prj/build.lst
+++ b/stoc/prj/build.lst
@@ -1,4 +1,4 @@
-tc stoc : rdbmaker cppuhelper cppu jvmaccess sal salhelper jvmfwk NULL
+tc stoc : rdbmaker cppuhelper cppu jvmaccess sal salhelper jvmfwk xmlreader NULL
tc stoc usr1 - all tc_mkout NULL
tc stoc\inc nmake - all tc_inc NULL
tc stoc\source\defaultregistry nmake - all tc_defr tc_boot tc_inc NULL
diff --git a/stoc/prj/d.lst b/stoc/prj/d.lst
index 1f01434bf58a..79b2d77348b4 100644
--- a/stoc/prj/d.lst
+++ b/stoc/prj/d.lst
@@ -4,6 +4,16 @@ mkdir: %_DEST%\inc%_EXT%\stoc
..\%__SRC%\lib\*.so %_DEST%\lib%_EXT%\*
..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
..\%__SRC%\bin\*.rdb %_DEST%\rdb%_EXT%\*
+..\%__SRC%\misc\bootstrap.component %_DEST%\xml%_EXT%\bootstrap.component
+..\%__SRC%\misc\introspection.component %_DEST%\xml%_EXT%\introspection.component
+..\%__SRC%\misc\invocadapt.component %_DEST%\xml%_EXT%\invocadapt.component
+..\%__SRC%\misc\invocation.component %_DEST%\xml%_EXT%\invocation.component
+..\%__SRC%\misc\javaloader.component %_DEST%\xml%_EXT%\javaloader.component
+..\%__SRC%\misc\javavm.component %_DEST%\xml%_EXT%\javavm.component
+..\%__SRC%\misc\namingservice.component %_DEST%\xml%_EXT%\namingservice.component
+..\%__SRC%\misc\proxyfac.component %_DEST%\xml%_EXT%\proxyfac.component
+..\%__SRC%\misc\reflection.component %_DEST%\xml%_EXT%\reflection.component
+..\%__SRC%\misc\stocservices.component %_DEST%\xml%_EXT%\stocservices.component
..\source\module-description.dtd %_DEST%\xml%_EXT%\module-description.dtd
..\source\corereflection\corefl.xml %_DEST%\xml%_EXT%\reflection.uno.xml
diff --git a/stoc/source/bootstrap/services.cxx b/stoc/source/bootstrap/services.cxx
index c98ee46d8922..7d295f4de78c 100644
--- a/stoc/source/bootstrap/services.cxx
+++ b/stoc/source/bootstrap/services.cxx
@@ -132,12 +132,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- return component_writeInfoHelper( pServiceManager, pRegistryKey, g_entries );
-}
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/stoc/source/corereflection/base.hxx b/stoc/source/corereflection/base.hxx
index fd77a646f1e5..2ef60da60d0b 100644
--- a/stoc/source/corereflection/base.hxx
+++ b/stoc/source/corereflection/base.hxx
@@ -55,9 +55,6 @@
#include <com/sun/star/reflection/XIdlField2.hpp>
#include <com/sun/star/reflection/XIdlMethod.hpp>
-#define OUSTR(x) ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(x) )
-
-
using namespace std;
using namespace osl;
using namespace rtl;
diff --git a/stoc/source/corereflection/crefl.cxx b/stoc/source/corereflection/crefl.cxx
index 5c201ad52421..99019e959dfa 100644
--- a/stoc/source/corereflection/crefl.cxx
+++ b/stoc/source/corereflection/crefl.cxx
@@ -32,7 +32,6 @@
#include <cppuhelper/implementationentry.hxx>
#endif
-#include <com/sun/star/registry/XRegistryKey.hpp>
#include <com/sun/star/lang/XComponent.hpp>
#include <com/sun/star/reflection/XTypeDescription.hpp>
#include "com/sun/star/uno/RuntimeException.hpp"
@@ -509,35 +508,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- if (component_writeInfoHelper( pServiceManager, pRegistryKey, g_entries ))
- {
- try
- {
- // register singleton
- registry::XRegistryKey * pKey =
- reinterpret_cast< registry::XRegistryKey * >( pRegistryKey );
- Reference< registry::XRegistryKey > xKey(
- pKey->createKey(
- OUSTR(IMPLNAME "/UNO/SINGLETONS/com.sun.star.reflection.theCoreReflection") ) );
- xKey->setStringValue( OUSTR("com.sun.star.reflection.CoreReflection") );
- return sal_True;
- }
- catch (Exception & exc)
- {
-#if OSL_DEBUG_LEVEL > 0
- OString cstr( OUStringToOString( exc.Message, RTL_TEXTENCODING_ASCII_US ) );
- OSL_ENSURE( 0, cstr.getStr() );
-#else
- (void) exc; // unused
-#endif
- }
- }
- return sal_False;
-}
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/stoc/source/corereflection/makefile.mk b/stoc/source/corereflection/makefile.mk
index b61eb13aa9ee..7156f6d63cc4 100644
--- a/stoc/source/corereflection/makefile.mk
+++ b/stoc/source/corereflection/makefile.mk
@@ -73,3 +73,10 @@ DEF1NAME= $(SHL1TARGET)
.INCLUDE : target.mk
+ALLTAR : $(MISC)/reflection.component
+
+$(MISC)/reflection.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ reflection.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_URE_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt reflection.component
diff --git a/stoc/source/corereflection/reflection.component b/stoc/source/corereflection/reflection.component
new file mode 100644
index 000000000000..00772a448367
--- /dev/null
+++ b/stoc/source/corereflection/reflection.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.stoc.CoreReflection">
+ <service name="com.sun.star.reflection.CoreReflection"/>
+ <singleton name="com.sun.star.reflection.theCoreReflection"/>
+ </implementation>
+</component>
diff --git a/stoc/source/implementationregistration/implreg.cxx b/stoc/source/implementationregistration/implreg.cxx
index df63bfbfaee1..2faf13fd159c 100644
--- a/stoc/source/implementationregistration/implreg.cxx
+++ b/stoc/source/implementationregistration/implreg.cxx
@@ -628,9 +628,9 @@ static void deleteUserLink(const Reference < XRegistryKey >& xRootKey,
} else
{
oldImpl = implEntries.getConstArray()[0];
-
+ rtl::OUString path(xOldKey->getKeyName());
xOldKey->closeKey();
- xRootKey->deleteKey(xOldKey->getKeyName());
+ xRootKey->deleteKey(path);
}
OUString oldTarget = searchLinkTargetForImpl(xRootKey, linkName, oldImpl);
@@ -644,8 +644,9 @@ static void deleteUserLink(const Reference < XRegistryKey >& xRootKey,
{
bClean = sal_True;
hasNoImplementations = sal_False;
+ rtl::OUString path(xOldKey->getKeyName());
xOldKey->closeKey();
- xRootKey->deleteKey(xOldKey->getKeyName());
+ xRootKey->deleteKey(path);
}
}
} else
@@ -808,21 +809,24 @@ static void deleteAllImplementations( const Reference < XSimpleRegistry >& xRe
if (hasLocationUrl)
{
hasLocationUrl = sal_False;
+ rtl::OUString path(xImplKey->getKeyName());
xImplKey->closeKey();
- xReg->getRootKey()->deleteKey(xImplKey->getKeyName());
+ xReg->getRootKey()->deleteKey(path);
}
}
subKeys = xSource->openKeys();
if (subKeys.getLength() == 0)
{
+ rtl::OUString path(xSource->getKeyName());
xSource->closeKey();
- xReg->getRootKey()->deleteKey(xSource->getKeyName());
+ xReg->getRootKey()->deleteKey(path);
}
} else
{
+ rtl::OUString path(xSource->getKeyName());
xSource->closeKey();
- xReg->getRootKey()->deleteKey(xSource->getKeyName());
+ xReg->getRootKey()->deleteKey(path);
}
}
@@ -947,21 +951,24 @@ static void deleteAllServiceEntries( const Reference < XSimpleRegistry >& xRe
if (hasNoImplementations)
{
hasNoImplementations = sal_False;
+ rtl::OUString path(xServiceKey->getKeyName());
xServiceKey->closeKey();
- xReg->getRootKey()->deleteKey(xServiceKey->getKeyName());
+ xReg->getRootKey()->deleteKey(path);
}
}
subKeys = xSource->openKeys();
if (subKeys.getLength() == 0)
{
+ rtl::OUString path(xSource->getKeyName());
xSource->closeKey();
- xReg->getRootKey()->deleteKey(xSource->getKeyName());
+ xReg->getRootKey()->deleteKey(path);
}
} else
{
+ rtl::OUString path(xSource->getKeyName());
xSource->closeKey();
- xReg->getRootKey()->deleteKey(xSource->getKeyName());
+ xReg->getRootKey()->deleteKey(path);
}
}
diff --git a/stoc/source/inspect/introspection.component b/stoc/source/inspect/introspection.component
new file mode 100644
index 000000000000..349fb0c9dfbe
--- /dev/null
+++ b/stoc/source/inspect/introspection.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.stoc.Introspection">
+ <service name="com.sun.star.beans.Introspection"/>
+ </implementation>
+</component>
diff --git a/stoc/source/inspect/introspection.cxx b/stoc/source/inspect/introspection.cxx
index 5a09c59c5605..051ff3e2ae3c 100644
--- a/stoc/source/inspect/introspection.cxx
+++ b/stoc/source/inspect/introspection.cxx
@@ -71,7 +71,6 @@
#include <com/sun/star/container/XNameContainer.hpp>
#include <com/sun/star/container/XIndexContainer.hpp>
#include <com/sun/star/container/XEnumerationAccess.hpp>
-#include <com/sun/star/registry/XRegistryKey.hpp>
#include <rtl/ustrbuf.hxx>
#include <rtl/strbuf.hxx>
@@ -3065,32 +3064,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo( void *, void * pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- Reference< XRegistryKey > xNewKey(
- reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
- OUString::createFromAscii( "/" IMPLEMENTATION_NAME "/UNO/SERVICES" ) ) );
-
- const Sequence< OUString > & rSNL =
- stoc_inspect::ImplIntrospection::getSupportedServiceNames_Static();
- const OUString * pArray = rSNL.getConstArray();
- for ( sal_Int32 nPos = rSNL.getLength(); nPos--; )
- xNewKey->createKey( pArray[nPos] );
-
- return sal_True;
- }
- catch (InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * )
{
diff --git a/stoc/source/inspect/makefile.mk b/stoc/source/inspect/makefile.mk
index 80e87dbf7cab..60864eea2496 100644
--- a/stoc/source/inspect/makefile.mk
+++ b/stoc/source/inspect/makefile.mk
@@ -64,3 +64,10 @@ DEF1NAME= $(SHL1TARGET)
.INCLUDE : target.mk
+ALLTAR : $(MISC)/introspection.component
+
+$(MISC)/introspection.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt introspection.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_URE_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt introspection.component
diff --git a/stoc/source/invocation/invocation.component b/stoc/source/invocation/invocation.component
new file mode 100644
index 000000000000..67178ef2e88d
--- /dev/null
+++ b/stoc/source/invocation/invocation.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.stoc.Invocation">
+ <service name="com.sun.star.script.Invocation"/>
+ </implementation>
+</component>
diff --git a/stoc/source/invocation/invocation.cxx b/stoc/source/invocation/invocation.cxx
index 74bdc3fe1359..f66c3af742d7 100644
--- a/stoc/source/invocation/invocation.cxx
+++ b/stoc/source/invocation/invocation.cxx
@@ -1251,12 +1251,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- return component_writeInfoHelper( pServiceManager, pRegistryKey, g_entries );
-}
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/stoc/source/invocation/makefile.mk b/stoc/source/invocation/makefile.mk
index c170bf6b614e..72eeea37c659 100644
--- a/stoc/source/invocation/makefile.mk
+++ b/stoc/source/invocation/makefile.mk
@@ -62,4 +62,10 @@ DEF1NAME= $(SHL1TARGET)
.INCLUDE : target.mk
+ALLTAR : $(MISC)/invocation.component
+$(MISC)/invocation.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ invocation.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_URE_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt invocation.component
diff --git a/stoc/source/invocation_adapterfactory/iafactory.cxx b/stoc/source/invocation_adapterfactory/iafactory.cxx
index 2fda1819f891..70d2562657ad 100644
--- a/stoc/source/invocation_adapterfactory/iafactory.cxx
+++ b/stoc/source/invocation_adapterfactory/iafactory.cxx
@@ -1016,14 +1016,6 @@ void SAL_CALL component_getImplementationEnvironment(
}
//==============================================================================
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- return ::cppu::component_writeInfoHelper(
- pServiceManager, pRegistryKey, g_entries );
-}
-
-//==============================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/stoc/source/invocation_adapterfactory/invocadapt.component b/stoc/source/invocation_adapterfactory/invocadapt.component
new file mode 100644
index 000000000000..64f7b2b3691a
--- /dev/null
+++ b/stoc/source/invocation_adapterfactory/invocadapt.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.stoc.InvocationAdapterFactory">
+ <service name="com.sun.star.script.InvocationAdapterFactory"/>
+ </implementation>
+</component>
diff --git a/stoc/source/invocation_adapterfactory/makefile.mk b/stoc/source/invocation_adapterfactory/makefile.mk
index 66568af039e7..4c3450ac8c8d 100644
--- a/stoc/source/invocation_adapterfactory/makefile.mk
+++ b/stoc/source/invocation_adapterfactory/makefile.mk
@@ -63,3 +63,11 @@ DEF1NAME= $(SHL1TARGET)
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/invocadapt.component
+
+$(MISC)/invocadapt.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ invocadapt.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_URE_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt invocadapt.component
diff --git a/stoc/source/javaloader/javaloader.component b/stoc/source/javaloader/javaloader.component
new file mode 100644
index 000000000000..bdd3b82d5125
--- /dev/null
+++ b/stoc/source/javaloader/javaloader.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.stoc.JavaComponentLoader">
+ <service name="com.sun.star.loader.Java"/>
+ <service name="com.sun.star.loader.Java2"/>
+ </implementation>
+</component>
diff --git a/stoc/source/javaloader/javaloader.cxx b/stoc/source/javaloader/javaloader.cxx
index 566612cb2f00..396ff48ec310 100644
--- a/stoc/source/javaloader/javaloader.cxx
+++ b/stoc/source/javaloader/javaloader.cxx
@@ -472,12 +472,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- return component_writeInfoHelper( pServiceManager, pRegistryKey, g_entries );
-}
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/stoc/source/javaloader/makefile.mk b/stoc/source/javaloader/makefile.mk
index 60eea6a23457..e53b90d5e6e7 100644
--- a/stoc/source/javaloader/makefile.mk
+++ b/stoc/source/javaloader/makefile.mk
@@ -70,3 +70,10 @@ all:
.INCLUDE : target.mk
+ALLTAR : $(MISC)/javaloader.component
+
+$(MISC)/javaloader.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ javaloader.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_URE_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt javaloader.component
diff --git a/stoc/source/javavm/javavm.component b/stoc/source/javavm/javavm.component
new file mode 100644
index 000000000000..f78d8af3ac29
--- /dev/null
+++ b/stoc/source/javavm/javavm.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.stoc.JavaVirtualMachine">
+ <service name="com.sun.star.java.JavaVirtualMachine"/>
+ <singleton name="com.sun.star.java.theJavaVirtualMachine"/>
+ </implementation>
+</component>
diff --git a/stoc/source/javavm/javavm.cxx b/stoc/source/javavm/javavm.cxx
index ad72a64a811c..1ea792270861 100644
--- a/stoc/source/javavm/javavm.cxx
+++ b/stoc/source/javavm/javavm.cxx
@@ -226,15 +226,10 @@ rtl::OUString serviceGetImplementationName()
"com.sun.star.comp.stoc.JavaVirtualMachine"));
}
-rtl::OUString serviceGetServiceName()
-{
- return rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
- "com.sun.star.java.JavaVirtualMachine"));
-}
-
css::uno::Sequence< rtl::OUString > serviceGetSupportedServiceNames()
{
- rtl::OUString aServiceName = serviceGetServiceName();
+ rtl::OUString aServiceName(
+ RTL_CONSTASCII_USTRINGPARAM("com.sun.star.java.JavaVirtualMachine"));
return css::uno::Sequence< rtl::OUString >(&aServiceName, 1);
}
@@ -619,34 +614,6 @@ component_getImplementationEnvironment(sal_Char const ** pEnvTypeName,
*pEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-extern "C" sal_Bool SAL_CALL component_writeInfo(void * pServiceManager,
- void * pRegistryKey)
-{
- if (cppu::component_writeInfoHelper(pServiceManager, pRegistryKey,
- aServiceImplementation))
- {
- try
- {
- css::uno::Reference< css::registry::XRegistryKey >(
- reinterpret_cast< css::registry::XRegistryKey * >(
- pRegistryKey)->
- createKey(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(
- "com.sun.star.comp.stoc.JavaVirtualMachine"
- "/UNO/SINGLETONS/"
- "com.sun.star.java.theJavaVirtualMachine"))))->
- setStringValue(serviceGetServiceName());
- return true;
- }
- catch (css::uno::Exception &)
- {
- OSL_ENSURE(false, "com.sun.star.uno.Exception caught");
- }
- }
- return false;
-}
-
extern "C" void * SAL_CALL component_getFactory(sal_Char const * pImplName,
void * pServiceManager,
void * pRegistryKey)
diff --git a/stoc/source/javavm/makefile.mk b/stoc/source/javavm/makefile.mk
index 96908d10d1a1..bcd36e69681e 100644
--- a/stoc/source/javavm/makefile.mk
+++ b/stoc/source/javavm/makefile.mk
@@ -85,3 +85,10 @@ all:
.INCLUDE : target.mk
+ALLTAR : $(MISC)/javavm.component
+
+$(MISC)/javavm.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ javavm.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_URE_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt javavm.component
diff --git a/stoc/source/namingservice/makefile.mk b/stoc/source/namingservice/makefile.mk
index 424180e114a1..cc98cdfc3571 100644
--- a/stoc/source/namingservice/makefile.mk
+++ b/stoc/source/namingservice/makefile.mk
@@ -64,3 +64,10 @@ DEF1NAME= $(SHL1TARGET)
.INCLUDE : target.mk
+ALLTAR : $(MISC)/namingservice.component
+
+$(MISC)/namingservice.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt namingservice.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_URE_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt namingservice.component
diff --git a/stoc/source/namingservice/namingservice.component b/stoc/source/namingservice/namingservice.component
new file mode 100644
index 000000000000..8450cdee6d7e
--- /dev/null
+++ b/stoc/source/namingservice/namingservice.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.stoc.NamingService">
+ <service name="com.sun.star.uno.NamingService"/>
+ </implementation>
+</component>
diff --git a/stoc/source/namingservice/namingservice.cxx b/stoc/source/namingservice/namingservice.cxx
index 26ced6e8e973..a2ea1d361202 100644
--- a/stoc/source/namingservice/namingservice.cxx
+++ b/stoc/source/namingservice/namingservice.cxx
@@ -238,12 +238,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- return component_writeInfoHelper( pServiceManager, pRegistryKey, g_entries );
-}
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/stoc/source/proxy_factory/makefile.mk b/stoc/source/proxy_factory/makefile.mk
index b38dac146ae1..23146e678f5a 100644
--- a/stoc/source/proxy_factory/makefile.mk
+++ b/stoc/source/proxy_factory/makefile.mk
@@ -63,3 +63,11 @@ DEF1NAME=$(SHL1TARGET)
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/proxyfac.component
+
+$(MISC)/proxyfac.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ proxyfac.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_URE_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt proxyfac.component
diff --git a/stoc/source/proxy_factory/proxyfac.component b/stoc/source/proxy_factory/proxyfac.component
new file mode 100644
index 000000000000..bfe2c9c4268a
--- /dev/null
+++ b/stoc/source/proxy_factory/proxyfac.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.reflection.ProxyFactory">
+ <service name="com.sun.star.reflection.ProxyFactory"/>
+ </implementation>
+</component>
diff --git a/stoc/source/proxy_factory/proxyfac.cxx b/stoc/source/proxy_factory/proxyfac.cxx
index 76d5edfb536d..644f8ecb624c 100644
--- a/stoc/source/proxy_factory/proxyfac.cxx
+++ b/stoc/source/proxy_factory/proxyfac.cxx
@@ -526,13 +526,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- return ::cppu::component_writeInfoHelper(
- pServiceManager, pRegistryKey, g_entries );
-}
-
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/stoc/source/simpleregistry/makefile.mk b/stoc/source/simpleregistry/makefile.mk
index 510e7b466d83..bc0ddf7cc71a 100644
--- a/stoc/source/simpleregistry/makefile.mk
+++ b/stoc/source/simpleregistry/makefile.mk
@@ -39,7 +39,8 @@ UNOUCROUT=$(OUT)$/inc$/bootstrap
# ------------------------------------------------------------------
SLOFILES= \
- $(SLO)$/simpleregistry.obj
+ $(SLO)/simpleregistry.obj \
+ $(SLO)/textualservices.obj
# --- Targets ------------------------------------------------------
diff --git a/stoc/source/simpleregistry/simpleregistry.cxx b/stoc/source/simpleregistry/simpleregistry.cxx
index 4ae9875bdab1..9c6b71bc6c83 100644..100755
--- a/stoc/source/simpleregistry/simpleregistry.cxx
+++ b/stoc/source/simpleregistry/simpleregistry.cxx
@@ -1,1306 +1,1320 @@
/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
+*
+* 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_stoc.hxx"
-#include <osl/diagnose.h>
-#include <osl/mutex.hxx>
-#include <rtl/alloc.h>
-#ifndef _RTL_USTRBUF_H_
-#include <rtl/ustrbuf.hxx>
-#endif
-#include <cppuhelper/queryinterface.hxx>
-#include <cppuhelper/weak.hxx>
-#include <cppuhelper/factory.hxx>
-#include <cppuhelper/implbase1.hxx>
-#include <cppuhelper/implbase2.hxx>
-#ifndef _CPPUHELPER_IMPLEMENTATIONENTRY_HXX_
-#include <cppuhelper/implementationentry.hxx>
-#endif
-#include <registry/registry.hxx>
-
-#include <com/sun/star/registry/XSimpleRegistry.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-
-using namespace com::sun::star::uno;
-using namespace com::sun::star::registry;
-using namespace com::sun::star::lang;
-using namespace cppu;
-using namespace osl;
-using namespace rtl;
-
-#define SERVICENAME "com.sun.star.registry.SimpleRegistry"
-#define IMPLNAME "com.sun.star.comp.stoc.SimpleRegistry"
+#include "sal/config.h"
+
+#include <cstdlib>
+#include <memory>
+#include <vector>
+
+#include "com/sun/star/lang/XServiceInfo.hpp"
+#include "com/sun/star/registry/InvalidRegistryException.hpp"
+#include "com/sun/star/registry/InvalidValueException.hpp"
+#include "com/sun/star/registry/MergeConflictException.hpp"
+#include "com/sun/star/registry/RegistryKeyType.hpp"
+#include "com/sun/star/registry/XRegistryKey.hpp"
+#include "com/sun/star/registry/XSimpleRegistry.hpp"
+#include "com/sun/star/uno/Reference.hxx"
+#include "com/sun/star/uno/RuntimeException.hpp"
+#include "com/sun/star/uno/XComponentContext.hpp"
+#include "com/sun/star/uno/XInterface.hpp"
+#include "com/sun/star/uno/Sequence.hxx"
+#include "cppuhelper/implbase1.hxx"
+#include "cppuhelper/implbase2.hxx"
+#include "cppuhelper/weak.hxx"
+#include "osl/mutex.hxx"
+#include "registry/registry.hxx"
+#include "registry/regtype.h"
+#include "rtl/ref.hxx"
+#include "rtl/string.h"
+#include "rtl/string.hxx"
+#include "rtl/textcvt.h"
+#include "rtl/textenc.h"
+#include "rtl/unload.h"
+#include "rtl/ustring.h"
+#include "rtl/ustring.hxx"
+#include "sal/types.h"
+
+#include "bootstrapservices.hxx"
+
+#include "textualservices.hxx"
extern rtl_StandardModuleCount g_moduleCount;
-namespace stoc_bootstrap
-{
-Sequence< OUString > simreg_getSupportedServiceNames()
-{
- static Sequence < OUString > *pNames = 0;
- if( ! pNames )
- {
- MutexGuard guard( Mutex::getGlobalMutex() );
- if( !pNames )
- {
- static Sequence< OUString > seqNames(1);
- seqNames.getArray()[0] = OUString(RTL_CONSTASCII_USTRINGPARAM(SERVICENAME));
- pNames = &seqNames;
- }
- }
- return *pNames;
-}
-
-OUString simreg_getImplementationName()
-{
- static OUString *pImplName = 0;
- if( ! pImplName )
- {
- MutexGuard guard( Mutex::getGlobalMutex() );
- if( ! pImplName )
- {
- static OUString implName( RTL_CONSTASCII_USTRINGPARAM( IMPLNAME ) );
- pImplName = &implName;
- }
- }
- return *pImplName;
-}
-}
+namespace {
-namespace stoc_simreg {
+namespace css = com::sun::star;
-//*************************************************************************
-// class RegistryKeyImpl the implenetation of interface XRegistryKey
-//*************************************************************************
-class RegistryKeyImpl;
-
-//*************************************************************************
-// SimpleRegistryImpl
-//*************************************************************************
-class SimpleRegistryImpl : public WeakImplHelper2< XSimpleRegistry, XServiceInfo >
+class SimpleRegistry:
+ public cppu::WeakImplHelper2<
+ css::registry::XSimpleRegistry, css::lang::XServiceInfo >
{
public:
- SimpleRegistryImpl( const Registry& rRegistry );
-
- ~SimpleRegistryImpl();
-
- // XServiceInfo
- virtual OUString SAL_CALL getImplementationName( ) throw(RuntimeException);
- virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) throw(RuntimeException);
- virtual Sequence< OUString > SAL_CALL getSupportedServiceNames( ) throw(RuntimeException);
-
- // XSimpleRegistry
- virtual OUString SAL_CALL getURL() throw(RuntimeException);
- virtual void SAL_CALL open( const OUString& rURL, sal_Bool bReadOnly, sal_Bool bCreate ) throw(InvalidRegistryException, RuntimeException);
- virtual sal_Bool SAL_CALL isValid( ) throw(RuntimeException);
- virtual void SAL_CALL close( ) throw(InvalidRegistryException, RuntimeException);
- virtual void SAL_CALL destroy( ) throw(InvalidRegistryException, RuntimeException);
- virtual Reference< XRegistryKey > SAL_CALL getRootKey( ) throw(InvalidRegistryException, RuntimeException);
- virtual sal_Bool SAL_CALL isReadOnly( ) throw(InvalidRegistryException, RuntimeException);
- virtual void SAL_CALL mergeKey( const OUString& aKeyName, const OUString& aUrl ) throw(InvalidRegistryException, MergeConflictException, RuntimeException);
-
- friend class RegistryKeyImpl;
-protected:
- Mutex m_mutex;
- OUString m_url;
- Registry m_registry;
-};
+ SimpleRegistry() { g_moduleCount.modCnt.acquire(&g_moduleCount.modCnt); }
+ ~SimpleRegistry() { g_moduleCount.modCnt.release(&g_moduleCount.modCnt); }
-class RegistryKeyImpl : public WeakImplHelper1< XRegistryKey >
-{
-public:
- RegistryKeyImpl( const RegistryKey& rKey, SimpleRegistryImpl* pRegistry );
-
- RegistryKeyImpl( const OUString& rKeyName, SimpleRegistryImpl* pRegistry );
-
- ~RegistryKeyImpl();
-
- // XRegistryKey
- virtual OUString SAL_CALL getKeyName() throw(RuntimeException);
- virtual sal_Bool SAL_CALL isReadOnly( ) throw(InvalidRegistryException, RuntimeException);
- virtual sal_Bool SAL_CALL isValid( ) throw(RuntimeException);
- virtual RegistryKeyType SAL_CALL getKeyType( const OUString& rKeyName ) throw(InvalidRegistryException, RuntimeException);
- virtual RegistryValueType SAL_CALL getValueType( ) throw(InvalidRegistryException, RuntimeException);
- virtual sal_Int32 SAL_CALL getLongValue( ) throw(InvalidRegistryException, InvalidValueException, RuntimeException);
- virtual void SAL_CALL setLongValue( sal_Int32 value ) throw(InvalidRegistryException, RuntimeException);
- virtual Sequence< sal_Int32 > SAL_CALL getLongListValue( ) throw(InvalidRegistryException, InvalidValueException, RuntimeException);
- virtual void SAL_CALL setLongListValue( const ::com::sun::star::uno::Sequence< sal_Int32 >& seqValue ) throw(InvalidRegistryException, RuntimeException);
- virtual OUString SAL_CALL getAsciiValue( ) throw(InvalidRegistryException, InvalidValueException, RuntimeException);
- virtual void SAL_CALL setAsciiValue( const OUString& value ) throw(InvalidRegistryException, RuntimeException);
- virtual Sequence< OUString > SAL_CALL getAsciiListValue( ) throw(InvalidRegistryException, InvalidValueException, RuntimeException);
- virtual void SAL_CALL setAsciiListValue( const ::com::sun::star::uno::Sequence< OUString >& seqValue ) throw(InvalidRegistryException, RuntimeException);
- virtual OUString SAL_CALL getStringValue( ) throw(InvalidRegistryException, InvalidValueException, RuntimeException);
- virtual void SAL_CALL setStringValue( const OUString& value ) throw(InvalidRegistryException, RuntimeException);
- virtual Sequence< OUString > SAL_CALL getStringListValue( ) throw(InvalidRegistryException, InvalidValueException, RuntimeException);
- virtual void SAL_CALL setStringListValue( const ::com::sun::star::uno::Sequence< OUString >& seqValue ) throw(InvalidRegistryException, RuntimeException);
- virtual Sequence< sal_Int8 > SAL_CALL getBinaryValue( ) throw(InvalidRegistryException, InvalidValueException, RuntimeException);
- virtual void SAL_CALL setBinaryValue( const ::com::sun::star::uno::Sequence< sal_Int8 >& value ) throw(InvalidRegistryException, RuntimeException);
- virtual Reference< XRegistryKey > SAL_CALL openKey( const OUString& aKeyName ) throw(InvalidRegistryException, RuntimeException);
- virtual Reference< XRegistryKey > SAL_CALL createKey( const OUString& aKeyName ) throw(InvalidRegistryException, RuntimeException);
- virtual void SAL_CALL closeKey( ) throw(InvalidRegistryException, RuntimeException);
- virtual void SAL_CALL deleteKey( const OUString& rKeyName ) throw(InvalidRegistryException, RuntimeException);
- virtual Sequence< Reference< XRegistryKey > > SAL_CALL openKeys( ) throw(InvalidRegistryException, RuntimeException);
- virtual Sequence< OUString > SAL_CALL getKeyNames( ) throw(InvalidRegistryException, RuntimeException);
- virtual sal_Bool SAL_CALL createLink( const OUString& aLinkName, const OUString& aLinkTarget ) throw(InvalidRegistryException, RuntimeException);
- virtual void SAL_CALL deleteLink( const OUString& rLinkName ) throw(InvalidRegistryException, RuntimeException);
- virtual OUString SAL_CALL getLinkTarget( const OUString& rLinkName ) throw(InvalidRegistryException, RuntimeException);
- virtual OUString SAL_CALL getResolvedName( const OUString& aKeyName ) throw(InvalidRegistryException, RuntimeException);
-
-protected:
- OUString m_name;
- RegistryKey m_key;
- SimpleRegistryImpl* m_pRegistry;
-};
+ osl::Mutex mutex_;
-//*************************************************************************
-RegistryKeyImpl::RegistryKeyImpl( const RegistryKey& key, SimpleRegistryImpl* pRegistry )
- : m_key(key)
- , m_pRegistry(pRegistry)
-{
- m_pRegistry->acquire();
- m_name = m_key.getName();
-}
+private:
+ virtual rtl::OUString SAL_CALL getURL() throw (css::uno::RuntimeException);
-//*************************************************************************
-RegistryKeyImpl::RegistryKeyImpl( const OUString& rKeyName,
- SimpleRegistryImpl* pRegistry )
- : m_pRegistry(pRegistry)
-{
- m_pRegistry->acquire();
+ virtual void SAL_CALL open(
+ rtl::OUString const & rURL, sal_Bool bReadOnly, sal_Bool bCreate)
+ throw (
+ css::registry::InvalidRegistryException,
+ css::uno::RuntimeException);
- RegistryKey rootKey;
- if (!pRegistry->m_registry.isValid() ||
- pRegistry->m_registry.openRootKey(rootKey))
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- } else
- {
- if ( rootKey.openKey(rKeyName, m_key) )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- } else
- {
- m_name = rKeyName;
- }
- }
-}
+ virtual sal_Bool SAL_CALL isValid() throw (css::uno::RuntimeException);
-//*************************************************************************
-RegistryKeyImpl::~RegistryKeyImpl()
-{
- m_pRegistry->release();
-}
+ virtual void SAL_CALL close() throw (
+ css::registry::InvalidRegistryException, css::uno::RuntimeException);
-//*************************************************************************
-OUString SAL_CALL RegistryKeyImpl::getKeyName() throw(RuntimeException)
-{
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- return m_name;
-}
+ virtual void SAL_CALL destroy() throw(
+ css::registry::InvalidRegistryException, css::uno::RuntimeException);
-//*************************************************************************
-sal_Bool SAL_CALL RegistryKeyImpl::isReadOnly( )
- throw(InvalidRegistryException, RuntimeException)
-{
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if (m_key.isValid())
- {
- return(m_key.isReadOnly());
- } else
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- }
-}
+ virtual css::uno::Reference< css::registry::XRegistryKey > SAL_CALL
+ getRootKey() throw(
+ css::registry::InvalidRegistryException, css::uno::RuntimeException);
-//*************************************************************************
-sal_Bool SAL_CALL RegistryKeyImpl::isValid( ) throw(RuntimeException)
-{
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- return m_key.isValid();
-}
+ virtual sal_Bool SAL_CALL isReadOnly() throw(
+ css::registry::InvalidRegistryException, css::uno::RuntimeException);
-//*************************************************************************
-RegistryKeyType SAL_CALL RegistryKeyImpl::getKeyType( const OUString& rKeyName )
- throw(InvalidRegistryException, RuntimeException)
-{
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if ( m_key.isValid() )
- {
- RegKeyType keyType;
- if ( !m_key.getKeyType(rKeyName, &keyType) )
- {
- switch (keyType)
- {
- case RG_KEYTYPE:
- return RegistryKeyType_KEY;
- case RG_LINKTYPE:
- return RegistryKeyType_LINK;
- }
- } else
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- }
- } else
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- }
+ virtual void SAL_CALL mergeKey(
+ rtl::OUString const & aKeyName, rtl::OUString const & aUrl)
+ throw (
+ css::registry::InvalidRegistryException,
+ css::registry::MergeConflictException, css::uno::RuntimeException);
- return RegistryKeyType_KEY;
-}
+ virtual rtl::OUString SAL_CALL getImplementationName()
+ throw (css::uno::RuntimeException)
+ { return stoc_bootstrap::simreg_getImplementationName(); }
-//*************************************************************************
-RegistryValueType SAL_CALL RegistryKeyImpl::getValueType( )
- throw(InvalidRegistryException, RuntimeException)
-{
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if (!m_key.isValid())
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- } else
- {
- RegValueType type;
- sal_uInt32 size;
+ virtual sal_Bool SAL_CALL supportsService(rtl::OUString const & ServiceName)
+ throw (css::uno::RuntimeException)
+ { return ServiceName == getSupportedServiceNames()[0]; }
- if (m_key.getValueInfo(OUString(), &type, &size))
- {
- return RegistryValueType_NOT_DEFINED;
- } else
- {
- switch (type)
- {
- case RG_VALUETYPE_LONG: return RegistryValueType_LONG;
- case RG_VALUETYPE_STRING: return RegistryValueType_ASCII;
- case RG_VALUETYPE_UNICODE: return RegistryValueType_STRING;
- case RG_VALUETYPE_BINARY: return RegistryValueType_BINARY;
- case RG_VALUETYPE_LONGLIST: return RegistryValueType_LONGLIST;
- case RG_VALUETYPE_STRINGLIST: return RegistryValueType_ASCIILIST;
- case RG_VALUETYPE_UNICODELIST: return RegistryValueType_STRINGLIST;
- default: return RegistryValueType_NOT_DEFINED;
- }
- }
- }
-
- return RegistryValueType_NOT_DEFINED;
-}
+ virtual css::uno::Sequence< rtl::OUString > SAL_CALL
+ getSupportedServiceNames() throw (css::uno::RuntimeException)
+ { return stoc_bootstrap::simreg_getSupportedServiceNames(); }
-//*************************************************************************
-sal_Int32 SAL_CALL RegistryKeyImpl::getLongValue( )
- throw(InvalidRegistryException, InvalidValueException, RuntimeException)
-{
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if (!m_key.isValid())
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- } else
- {
- RegValueType type;
- sal_uInt32 size;
+ Registry registry_;
+ std::auto_ptr< stoc::simpleregistry::TextualServices > textual_;
+};
- if ( !m_key.getValueInfo(OUString(), &type, &size) )
- {
- if (type == RG_VALUETYPE_LONG)
- {
- sal_Int32 value;
- if ( !m_key.getValue(OUString(), (RegValue)&value) )
- {
- return value;
- }
- }
- }
+class Key: public cppu::WeakImplHelper1< css::registry::XRegistryKey > {
+public:
+ Key(
+ rtl::Reference< SimpleRegistry > const & registry,
+ RegistryKey const & key):
+ registry_(registry), key_(key) {}
+
+private:
+ virtual rtl::OUString SAL_CALL getKeyName()
+ throw (css::uno::RuntimeException);
+
+ virtual sal_Bool SAL_CALL isReadOnly() throw (
+ css::registry::InvalidRegistryException, css::uno::RuntimeException);
+
+ virtual sal_Bool SAL_CALL isValid() throw(css::uno::RuntimeException);
+
+ virtual css::registry::RegistryKeyType SAL_CALL getKeyType(
+ rtl::OUString const & rKeyName)
+ throw (
+ css::registry::InvalidRegistryException,
+ css::uno::RuntimeException);
+
+ virtual css::registry::RegistryValueType SAL_CALL getValueType() throw(
+ css::registry::InvalidRegistryException, css::uno::RuntimeException);
+
+ virtual sal_Int32 SAL_CALL getLongValue() throw (
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException);
+
+ virtual void SAL_CALL setLongValue(sal_Int32 value) throw (
+ css::registry::InvalidRegistryException, css::uno::RuntimeException);
+
+ virtual css::uno::Sequence< sal_Int32 > SAL_CALL getLongListValue() throw(
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException);
+
+ virtual void SAL_CALL setLongListValue(
+ com::sun::star::uno::Sequence< sal_Int32 > const & seqValue)
+ throw (
+ css::registry::InvalidRegistryException,
+ css::uno::RuntimeException);
+
+ virtual rtl::OUString SAL_CALL getAsciiValue() throw (
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException);
+
+ virtual void SAL_CALL setAsciiValue(rtl::OUString const & value) throw (
+ css::registry::InvalidRegistryException, css::uno::RuntimeException);
+
+ virtual css::uno::Sequence< rtl::OUString > SAL_CALL getAsciiListValue()
+ throw (
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException);
+
+ virtual void SAL_CALL setAsciiListValue(
+ css::uno::Sequence< rtl::OUString > const & seqValue)
+ throw (
+ css::registry::InvalidRegistryException,
+ css::uno::RuntimeException);
+
+ virtual rtl::OUString SAL_CALL getStringValue() throw(
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException);
+
+ virtual void SAL_CALL setStringValue(rtl::OUString const & value) throw (
+ css::registry::InvalidRegistryException, css::uno::RuntimeException);
+
+ virtual css::uno::Sequence< rtl::OUString > SAL_CALL getStringListValue()
+ throw (
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException);
+
+ virtual void SAL_CALL setStringListValue(
+ css::uno::Sequence< rtl::OUString > const & seqValue)
+ throw (
+ css::registry::InvalidRegistryException,
+ css::uno::RuntimeException);
+
+ virtual css::uno::Sequence< sal_Int8 > SAL_CALL getBinaryValue() throw (
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException);
+
+ virtual void SAL_CALL setBinaryValue(
+ css::uno::Sequence< sal_Int8 > const & value)
+ throw (
+ css::registry::InvalidRegistryException,
+ css::uno::RuntimeException);
+
+ virtual css::uno::Reference< css::registry::XRegistryKey > SAL_CALL openKey(
+ rtl::OUString const & aKeyName)
+ throw (
+ css::registry::InvalidRegistryException,
+ css::uno::RuntimeException);
+
+ virtual css::uno::Reference< css::registry::XRegistryKey > SAL_CALL
+ createKey(rtl::OUString const & aKeyName) throw (
+ css::registry::InvalidRegistryException, css::uno::RuntimeException);
+
+ virtual void SAL_CALL closeKey() throw (
+ css::registry::InvalidRegistryException, css::uno::RuntimeException);
+
+ virtual void SAL_CALL deleteKey(rtl::OUString const & rKeyName) throw (
+ css::registry::InvalidRegistryException, css::uno::RuntimeException);
+
+ virtual
+ css::uno::Sequence< css::uno::Reference< css::registry::XRegistryKey > >
+ SAL_CALL openKeys() throw (
+ css::registry::InvalidRegistryException, css::uno::RuntimeException);
+
+ virtual css::uno::Sequence< rtl::OUString > SAL_CALL getKeyNames() throw (
+ css::registry::InvalidRegistryException, css::uno::RuntimeException);
+
+ virtual sal_Bool SAL_CALL createLink(
+ rtl::OUString const & aLinkName, rtl::OUString const & aLinkTarget)
+ throw (
+ css::registry::InvalidRegistryException,
+ css::uno::RuntimeException);
+
+ virtual void SAL_CALL deleteLink(rtl::OUString const & rLinkName) throw (
+ css::registry::InvalidRegistryException, css::uno::RuntimeException);
+
+ virtual rtl::OUString SAL_CALL getLinkTarget(
+ rtl::OUString const & rLinkName)
+ throw (
+ css::registry::InvalidRegistryException,
+ css::uno::RuntimeException);
+
+ virtual rtl::OUString SAL_CALL getResolvedName(
+ rtl::OUString const & aKeyName)
+ throw (
+ css::registry::InvalidRegistryException,
+ css::uno::RuntimeException);
+
+ rtl::Reference< SimpleRegistry > registry_;
+ RegistryKey key_;
+};
- throw InvalidValueException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidValueException") ),
- (OWeakObject *)this );
- }
+rtl::OUString Key::getKeyName() throw (css::uno::RuntimeException) {
+ osl::MutexGuard guard(registry_->mutex_);
+ return key_.getName();
}
-//*************************************************************************
-void SAL_CALL RegistryKeyImpl::setLongValue( sal_Int32 value )
- throw(InvalidRegistryException, RuntimeException)
+sal_Bool Key::isReadOnly()
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
{
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if ( !m_key.isValid() )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- } else
- {
- if (m_key.setValue(OUString(), RG_VALUETYPE_LONG, &value, sizeof(sal_Int32)))
- {
- throw InvalidValueException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidValueException") ),
- (OWeakObject *)this );
- }
- }
+ osl::MutexGuard guard(registry_->mutex_);
+ return key_.isReadOnly();
}
-//*************************************************************************
-Sequence< sal_Int32 > SAL_CALL RegistryKeyImpl::getLongListValue( )
- throw(InvalidRegistryException, InvalidValueException, RuntimeException)
-{
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if ( !m_key.isValid() )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- } else
- {
- RegValueType type;
- sal_uInt32 size;
-
- if ( !m_key.getValueInfo(OUString(), &type, &size) )
- {
- if (type == RG_VALUETYPE_LONGLIST)
- {
- RegistryValueList<sal_Int32> tmpValue;
- if ( !m_key.getLongListValue(OUString(), tmpValue) )
- {
- Sequence<sal_Int32> seqValue(size);
-
- for (sal_uInt32 i=0; i < size; i++)
- {
- seqValue.getArray()[i] = tmpValue.getElement(i);
- }
-
- return seqValue;
- }
- }
- }
-
- throw InvalidValueException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidValueException") ),
- (OWeakObject *)this );
- }
+sal_Bool Key::isValid() throw (css::uno::RuntimeException) {
+ osl::MutexGuard guard(registry_->mutex_);
+ return key_.isValid();
}
-//*************************************************************************
-void SAL_CALL RegistryKeyImpl::setLongListValue( const Sequence< sal_Int32 >& seqValue )
- throw(InvalidRegistryException, RuntimeException)
+css::registry::RegistryKeyType Key::getKeyType(rtl::OUString const & rKeyName)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
{
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if ( !m_key.isValid() )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- } else
- {
- sal_uInt32 length = seqValue.getLength();
- sal_Int32* tmpValue = new sal_Int32[length];
-
- for (sal_uInt32 i=0; i < length; i++)
- {
- tmpValue[i] = seqValue.getConstArray()[i];
- }
-
- if ( m_key.setLongListValue(OUString(), tmpValue, length) )
- {
- delete[] tmpValue;
- throw InvalidValueException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidValueException") ),
- (OWeakObject *)this );
- }
-
- delete[] tmpValue;
+ osl::MutexGuard guard(registry_->mutex_);
+ RegKeyType type;
+ RegError err = key_.getKeyType(rKeyName, &type);
+ if (err != REG_NO_ERROR) {
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getKeyType:"
+ " underlying RegistryKey::getKeyType() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
+ }
+ switch (type) {
+ default:
+ std::abort(); // this cannot happen
+ // pseudo-fall-through to avoid warnings on MSC
+ case RG_KEYTYPE:
+ return css::registry::RegistryKeyType_KEY;
+ case RG_LINKTYPE:
+ return css::registry::RegistryKeyType_LINK;
}
}
-//*************************************************************************
-OUString SAL_CALL RegistryKeyImpl::getAsciiValue( )
- throw(InvalidRegistryException, InvalidValueException, RuntimeException)
+css::registry::RegistryValueType Key::getValueType()
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
{
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if (!m_key.isValid())
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- } else
- {
- RegValueType type;
- sal_uInt32 size;
-
- if ( !m_key.getValueInfo(OUString(), &type, &size) )
- {
- if ( type == RG_VALUETYPE_STRING )
- {
- char* value = new char[size];
- if ( m_key.getValue(OUString(), (RegValue)value) )
- {
- delete [] value;
- throw InvalidValueException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidValueException") ),
- (OWeakObject *)this );
- } else
- {
- OUString ret(OStringToOUString(value, RTL_TEXTENCODING_UTF8));
- delete [] value;
- return ret;
- }
- }
- }
-
- throw InvalidValueException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidValueException") ),
- (OWeakObject *)this );
+ osl::MutexGuard guard(registry_->mutex_);
+ RegValueType type;
+ sal_uInt32 size;
+ RegError err = key_.getValueInfo(rtl::OUString(), &type, &size);
+ switch (err) {
+ case REG_NO_ERROR:
+ break;
+ case REG_INVALID_VALUE:
+ type = RG_VALUETYPE_NOT_DEFINED;
+ break;
+ default:
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getValueType:"
+ " underlying RegistryKey::getValueInfo() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
+ }
+ switch (type) {
+ default:
+ std::abort(); // this cannot happen
+ // pseudo-fall-through to avoid warnings on MSC
+ case RG_VALUETYPE_NOT_DEFINED:
+ return css::registry::RegistryValueType_NOT_DEFINED;
+ case RG_VALUETYPE_LONG:
+ return css::registry::RegistryValueType_LONG;
+ case RG_VALUETYPE_STRING:
+ return css::registry::RegistryValueType_ASCII;
+ case RG_VALUETYPE_UNICODE:
+ return css::registry::RegistryValueType_STRING;
+ case RG_VALUETYPE_BINARY:
+ return css::registry::RegistryValueType_BINARY;
+ case RG_VALUETYPE_LONGLIST:
+ return css::registry::RegistryValueType_LONGLIST;
+ case RG_VALUETYPE_STRINGLIST:
+ return css::registry::RegistryValueType_ASCIILIST;
+ case RG_VALUETYPE_UNICODELIST:
+ return css::registry::RegistryValueType_STRINGLIST;
}
}
-//*************************************************************************
-void SAL_CALL RegistryKeyImpl::setAsciiValue( const OUString& value )
- throw(InvalidRegistryException, RuntimeException)
+sal_Int32 Key::getLongValue() throw (
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException)
{
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if ( !m_key.isValid() )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- } else
- {
- OString sValue = OUStringToOString(value, RTL_TEXTENCODING_UTF8);
- sal_uInt32 size = sValue.getLength()+1;
- if ( m_key.setValue(OUString(), RG_VALUETYPE_STRING,
- (RegValue)(sValue.getStr()), size) )
- {
- throw InvalidValueException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidValueException") ),
- (OWeakObject *)this );
- }
+ osl::MutexGuard guard(registry_->mutex_);
+ sal_Int32 value;
+ RegError err = key_.getValue(rtl::OUString(), &value);
+ switch (err) {
+ case REG_NO_ERROR:
+ break;
+ case REG_INVALID_VALUE:
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getLongValue:"
+ " underlying RegistryKey::getValue() = REG_INVALID_VALUE")),
+ static_cast< OWeakObject * >(this));
+ default:
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getLongValue:"
+ " underlying RegistryKey::getValue() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
}
+ return value;
}
-//*************************************************************************
-Sequence< OUString > SAL_CALL RegistryKeyImpl::getAsciiListValue( )
- throw(InvalidRegistryException, InvalidValueException, RuntimeException)
+void Key::setLongValue(sal_Int32 value)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
{
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if ( !m_key.isValid() )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- } else
- {
- RegValueType type;
- sal_uInt32 size;
-
- if ( !m_key.getValueInfo(OUString(), &type, &size) )
- {
- if (type == RG_VALUETYPE_STRINGLIST)
- {
- RegistryValueList<char*> tmpValue;
- if ( !m_key.getStringListValue(OUString(), tmpValue) )
- {
- Sequence<OUString> seqValue(size);
-
- for (sal_uInt32 i=0; i < size; i++)
- {
- seqValue.getArray()[i] =
- OStringToOUString(tmpValue.getElement(i), RTL_TEXTENCODING_UTF8);
- }
-
- return seqValue;
- }
- }
- }
-
- throw InvalidValueException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidValueException") ),
- (OWeakObject *)this );
+ osl::MutexGuard guard(registry_->mutex_);
+ RegError err = key_.setValue(
+ rtl::OUString(), RG_VALUETYPE_LONG, &value, sizeof (sal_Int32));
+ if (err != REG_NO_ERROR) {
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key setLongValue:"
+ " underlying RegistryKey::setValue() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
}
}
-//*************************************************************************
-void SAL_CALL RegistryKeyImpl::setAsciiListValue( const Sequence< OUString >& seqValue )
- throw(InvalidRegistryException, RuntimeException)
+css::uno::Sequence< sal_Int32 > Key::getLongListValue() throw (
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException)
{
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if ( !m_key.isValid() )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- } else
- {
- sal_uInt32 length = seqValue.getLength();
- OString* pSValue = new OString[length];
- char** tmpValue = new char*[length];
-
- for (sal_uInt32 i=0; i < length; i++)
- {
- pSValue[i] = OUStringToOString(seqValue.getConstArray()[i], RTL_TEXTENCODING_UTF8);
- tmpValue[i] = (char*)pSValue[i].getStr();
- }
-
- if ( m_key.setStringListValue(OUString(), tmpValue, length) )
- {
- delete[] pSValue;
- delete[] tmpValue;
- throw InvalidValueException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidValueException") ),
- (OWeakObject *)this );
- }
-
- delete[] pSValue;
- delete[] tmpValue;
+ osl::MutexGuard guard(registry_->mutex_);
+ RegistryValueList< sal_Int32 > list;
+ RegError err = key_.getLongListValue(rtl::OUString(), list);
+ switch (err) {
+ case REG_NO_ERROR:
+ break;
+ case REG_VALUE_NOT_EXISTS:
+ return css::uno::Sequence< sal_Int32 >();
+ case REG_INVALID_VALUE:
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getLongListValue:"
+ " underlying RegistryKey::getLongListValue() ="
+ " REG_INVALID_VALUE")),
+ static_cast< OWeakObject * >(this));
+ default:
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getLongListValue:"
+ " underlying RegistryKey::getLongListValue() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
+ }
+ sal_uInt32 n = list.getLength();
+ if (n > SAL_MAX_INT32) {
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getLongListValue:"
+ " underlying RegistryKey::getLongListValue() too large")),
+ static_cast< OWeakObject * >(this));
+ }
+ css::uno::Sequence< sal_Int32 > value(static_cast< sal_Int32 >(n));
+ for (sal_uInt32 i = 0; i < n; ++i) {
+ value[static_cast< sal_Int32 >(i)] = list.getElement(i);
}
+ return value;
}
-//*************************************************************************
-OUString SAL_CALL RegistryKeyImpl::getStringValue( )
- throw(InvalidRegistryException, InvalidValueException, RuntimeException)
+void Key::setLongListValue(css::uno::Sequence< sal_Int32 > const & seqValue)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
{
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if ( !m_key.isValid() )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- } else
- {
- RegValueType type;
- sal_uInt32 size;
-
- if ( !m_key.getValueInfo(OUString(), &type, &size) )
- {
- if (type == RG_VALUETYPE_UNICODE)
- {
- sal_Unicode* value = new sal_Unicode[size];
- if ( m_key.getValue(OUString(), (RegValue)value) )
- {
- delete [] value;
- throw InvalidValueException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidValueException") ),
- (OWeakObject *)this );
- } else
- {
- OUString ret(value);
- delete [] value;
- return ret;
- }
- }
- }
-
- throw InvalidValueException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidValueException") ),
- (OWeakObject *)this );
+ osl::MutexGuard guard(registry_->mutex_);
+ std::vector< sal_Int32 > list;
+ for (sal_Int32 i = 0; i < seqValue.getLength(); ++i) {
+ list.push_back(seqValue[i]);
+ }
+ RegError err = key_.setLongListValue(
+ rtl::OUString(), list.empty() ? 0 : &list[0],
+ static_cast< sal_uInt32 >(list.size()));
+ if (err != REG_NO_ERROR) {
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key setLongListValue:"
+ " underlying RegistryKey::setLongListValue() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
}
}
-//*************************************************************************
-void SAL_CALL RegistryKeyImpl::setStringValue( const OUString& value )
- throw(InvalidRegistryException, RuntimeException)
+rtl::OUString Key::getAsciiValue() throw (
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException)
{
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if ( !m_key.isValid() )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- } else
- {
- sal_uInt32 size = (value.getLength() + 1) * sizeof(sal_Unicode);
- if ( m_key.setValue(OUString(), RG_VALUETYPE_UNICODE,
- (RegValue)(value.getStr()), size) )
- {
- throw InvalidValueException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidValueException") ),
- (OWeakObject *)this );
- }
+ osl::MutexGuard guard(registry_->mutex_);
+ RegValueType type;
+ sal_uInt32 size;
+ RegError err = key_.getValueInfo(rtl::OUString(), &type, &size);
+ if (err != REG_NO_ERROR) {
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getAsciiValue:"
+ " underlying RegistryKey::getValueInfo() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
+ }
+ if (type != RG_VALUETYPE_STRING) {
+ throw css::registry::InvalidValueException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getAsciiValue:"
+ " underlying RegistryKey type = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(type))),
+ static_cast< OWeakObject * >(this));
+ }
+ // size contains terminating null (error in underlying registry.cxx):
+ if (size == 0) {
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getAsciiValue:"
+ " underlying RegistryKey size 0 cannot happen due to"
+ " design error")),
+ static_cast< OWeakObject * >(this));
+ }
+ if (size > SAL_MAX_INT32) {
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getAsciiValue:"
+ " underlying RegistryKey size too large")),
+ static_cast< OWeakObject * >(this));
+ }
+ std::vector< char > list(size);
+ err = key_.getValue(rtl::OUString(), &list[0]);
+ if (err != REG_NO_ERROR) {
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getAsciiValue:"
+ " underlying RegistryKey::getValue() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
}
+ if (list[size - 1] != '\0') {
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getAsciiValue:"
+ " underlying RegistryKey value must be null-terminated due"
+ " to design error")),
+ static_cast< OWeakObject * >(this));
+ }
+ rtl::OUString value;
+ if (!rtl_convertStringToUString(
+ &value.pData, &list[0],
+ static_cast< sal_Int32 >(size - 1), RTL_TEXTENCODING_UTF8,
+ (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR |
+ RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR |
+ RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR)))
+ {
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getAsciiValue:"
+ " underlying RegistryKey not UTF-8")),
+ static_cast< OWeakObject * >(this));
+ }
+ return value;
}
-//*************************************************************************
-Sequence< OUString > SAL_CALL RegistryKeyImpl::getStringListValue( )
- throw(InvalidRegistryException, InvalidValueException, RuntimeException)
+void Key::setAsciiValue(rtl::OUString const & value)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
{
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if ( !m_key.isValid() )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- } else
- {
- RegValueType type;
- sal_uInt32 size;
-
- if ( !m_key.getValueInfo(OUString(), &type, &size) )
- {
- if (type == RG_VALUETYPE_UNICODELIST)
- {
- RegistryValueList<sal_Unicode*> tmpValue;
- if ( !m_key.getUnicodeListValue(OUString(), tmpValue) )
- {
- Sequence<OUString> seqValue(size);
-
- for (sal_uInt32 i=0; i < size; i++)
- {
- seqValue.getArray()[i] = OUString(tmpValue.getElement(i));
- }
-
- return seqValue;
- }
- }
- }
-
- throw InvalidValueException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidValueException") ),
- (OWeakObject *)this );
+ osl::MutexGuard guard(registry_->mutex_);
+ rtl::OString utf8;
+ if (!value.convertToString(
+ &utf8, RTL_TEXTENCODING_UTF8,
+ (RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR |
+ RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR)))
+ {
+ throw css::uno::RuntimeException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key setAsciiValue:"
+ " value not UTF-16")),
+ static_cast< OWeakObject * >(this));
+ }
+ RegError err = key_.setValue(
+ rtl::OUString(), RG_VALUETYPE_STRING,
+ const_cast< char * >(utf8.getStr()), utf8.getLength() + 1);
+ // +1 for terminating null (error in underlying registry.cxx)
+ if (err != REG_NO_ERROR) {
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key setAsciiValue:"
+ " underlying RegistryKey::setValue() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
}
}
-//*************************************************************************
-void SAL_CALL RegistryKeyImpl::setStringListValue( const Sequence< OUString >& seqValue )
- throw(InvalidRegistryException, RuntimeException)
+css::uno::Sequence< rtl::OUString > Key::getAsciiListValue() throw (
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException)
{
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if ( !m_key.isValid() )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- } else
- {
- sal_uInt32 length = seqValue.getLength();
- sal_Unicode** tmpValue = new sal_Unicode*[length];
-
- for (sal_uInt32 i=0; i < length; i++)
- {
- tmpValue[i] = (sal_Unicode*)seqValue.getConstArray()[i].getStr();
- }
-
- if (m_key.setUnicodeListValue(OUString(), tmpValue, length))
+ osl::MutexGuard guard(registry_->mutex_);
+ RegistryValueList< char * > list;
+ RegError err = key_.getStringListValue(rtl::OUString(), list);
+ switch (err) {
+ case REG_NO_ERROR:
+ break;
+ case REG_VALUE_NOT_EXISTS:
+ return css::uno::Sequence< rtl::OUString >();
+ case REG_INVALID_VALUE:
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key"
+ " getAsciiListValue: underlying"
+ " RegistryKey::getStringListValue() = REG_INVALID_VALUE")),
+ static_cast< OWeakObject * >(this));
+ default:
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key"
+ " getAsciiListValue: underlying"
+ " RegistryKey::getStringListValue() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
+ }
+ sal_uInt32 n = list.getLength();
+ if (n > SAL_MAX_INT32) {
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key"
+ " getAsciiListValue: underlying"
+ " RegistryKey::getStringListValue() too large")),
+ static_cast< OWeakObject * >(this));
+ }
+ css::uno::Sequence< rtl::OUString > value(static_cast< sal_Int32 >(n));
+ for (sal_uInt32 i = 0; i < n; ++i) {
+ char * el = list.getElement(i);
+ sal_Int32 size = rtl_str_getLength(el);
+ if (!rtl_convertStringToUString(
+ &value[static_cast< sal_Int32 >(i)].pData, el, size,
+ RTL_TEXTENCODING_UTF8,
+ (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR |
+ RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR |
+ RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR)))
{
- delete[] tmpValue;
- throw InvalidValueException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidValueException") ),
- (OWeakObject *)this );
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key"
+ " getAsciiListValue: underlying RegistryKey not"
+ " UTF-8")),
+ static_cast< OWeakObject * >(this));
}
-
- delete[] tmpValue;
}
+ return value;
}
-//*************************************************************************
-Sequence< sal_Int8 > SAL_CALL RegistryKeyImpl::getBinaryValue( )
- throw(InvalidRegistryException, InvalidValueException, RuntimeException)
+void Key::setAsciiListValue(
+ css::uno::Sequence< rtl::OUString > const & seqValue)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
{
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if ( !m_key.isValid() )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- } else
- {
- RegValueType type;
- sal_uInt32 size;
-
- if ( !m_key.getValueInfo(OUString(), &type, &size) )
+ osl::MutexGuard guard(registry_->mutex_);
+ std::vector< rtl::OString > list;
+ for (sal_Int32 i = 0; i < seqValue.getLength(); ++i) {
+ rtl::OString utf8;
+ if (!seqValue[i].convertToString(
+ &utf8, RTL_TEXTENCODING_UTF8,
+ (RTL_UNICODETOTEXT_FLAGS_UNDEFINED_ERROR |
+ RTL_UNICODETOTEXT_FLAGS_INVALID_ERROR)))
{
- if (type == RG_VALUETYPE_BINARY)
- {
- sal_Int8* value = new sal_Int8[size];
- if (m_key.getValue(OUString(), (RegValue)value))
- {
- delete [] value;
- throw InvalidValueException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidValueException") ),
- (OWeakObject *)this );
- } else
- {
- Sequence<sal_Int8> seqBytes(value, size);
- delete [] value;
- return seqBytes;
- }
- }
+ throw css::uno::RuntimeException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key"
+ " setAsciiListValue: value not UTF-16")),
+ static_cast< OWeakObject * >(this));
}
-
- throw InvalidValueException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidValueException") ),
- (OWeakObject *)this );
+ list.push_back(utf8);
+ }
+ std::vector< char * > list2;
+ for (std::vector< rtl::OString >::iterator i(list.begin()); i != list.end();
+ ++i)
+ {
+ list2.push_back(const_cast< char * >(i->getStr()));
+ }
+ RegError err = key_.setStringListValue(
+ rtl::OUString(), list2.empty() ? 0 : &list2[0],
+ static_cast< sal_uInt32 >(list2.size()));
+ if (err != REG_NO_ERROR) {
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key"
+ " setAsciiListValue: underlying"
+ " RegistryKey::setStringListValue() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
}
}
-//*************************************************************************
-void SAL_CALL RegistryKeyImpl::setBinaryValue( const Sequence< sal_Int8 >& value )
- throw(InvalidRegistryException, RuntimeException)
+rtl::OUString Key::getStringValue() throw (
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException)
{
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if ( !m_key.isValid() )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- } else
- {
- sal_uInt32 size = value.getLength();
- if ( m_key.setValue(OUString(), RG_VALUETYPE_BINARY,
- (RegValue)(value.getConstArray()), size) )
- {
- throw InvalidValueException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidValueException") ),
- (OWeakObject *)this );
- }
+ osl::MutexGuard guard(registry_->mutex_);
+ RegValueType type;
+ sal_uInt32 size;
+ RegError err = key_.getValueInfo(rtl::OUString(), &type, &size);
+ if (err != REG_NO_ERROR) {
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getStringValue:"
+ " underlying RegistryKey::getValueInfo() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
+ }
+ if (type != RG_VALUETYPE_UNICODE) {
+ throw css::registry::InvalidValueException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getStringValue:"
+ " underlying RegistryKey type = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(type))),
+ static_cast< OWeakObject * >(this));
+ }
+ // size contains terminating null and is *2 (error in underlying
+ // registry.cxx):
+ if (size == 0 || (size & 1) == 1) {
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getStringValue:"
+ " underlying RegistryKey size 0 or odd cannot happen due to"
+ " design error")),
+ static_cast< OWeakObject * >(this));
}
+ if (size > SAL_MAX_INT32) {
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getStringValue:"
+ " underlying RegistryKey size too large")),
+ static_cast< OWeakObject * >(this));
+ }
+ std::vector< sal_Unicode > list(size);
+ err = key_.getValue(rtl::OUString(), &list[0]);
+ if (err != REG_NO_ERROR) {
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getStringValue:"
+ " underlying RegistryKey::getValue() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
+ }
+ if (list[size/2 - 1] != 0) {
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getStringValue:"
+ " underlying RegistryKey value must be null-terminated due"
+ " to design error")),
+ static_cast< OWeakObject * >(this));
+ }
+ return rtl::OUString(&list[0], static_cast< sal_Int32 >(size/2 - 1));
}
-//*************************************************************************
-Reference< XRegistryKey > SAL_CALL RegistryKeyImpl::openKey( const OUString& aKeyName )
- throw(InvalidRegistryException, RuntimeException)
+void Key::setStringValue(rtl::OUString const & value)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
{
- RegistryKey newKey;
-
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if ( !m_key.isValid() )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- } else
- {
- RegError _ret = m_key.openKey(aKeyName, newKey);
- if ( _ret )
- {
- if ( _ret == REG_INVALID_KEY )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- }
-
- return Reference<XRegistryKey>();
- } else
- {
- return ((XRegistryKey*)new RegistryKeyImpl(newKey, m_pRegistry));
- }
+ osl::MutexGuard guard(registry_->mutex_);
+ RegError err = key_.setValue(
+ rtl::OUString(), RG_VALUETYPE_UNICODE,
+ const_cast< sal_Unicode * >(value.getStr()),
+ (value.getLength() + 1) * sizeof (sal_Unicode));
+ // +1 for terminating null (error in underlying registry.cxx)
+ if (err != REG_NO_ERROR) {
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key setStringValue:"
+ " underlying RegistryKey::setValue() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
}
}
-//*************************************************************************
-Reference< XRegistryKey > SAL_CALL RegistryKeyImpl::createKey( const OUString& aKeyName )
- throw(InvalidRegistryException, RuntimeException)
+css::uno::Sequence< rtl::OUString > Key::getStringListValue() throw (
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException)
{
- RegistryKey newKey;
-
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if ( !m_key.isValid() )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- } else
- {
- RegError _ret = m_key.createKey(aKeyName, newKey);
- if ( _ret )
- {
- if (_ret == REG_INVALID_KEY)
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- }
-
- return Reference<XRegistryKey>();
- } else
- {
- return ((XRegistryKey*)new RegistryKeyImpl(newKey, m_pRegistry));
- }
+ osl::MutexGuard guard(registry_->mutex_);
+ RegistryValueList< sal_Unicode * > list;
+ RegError err = key_.getUnicodeListValue(rtl::OUString(), list);
+ switch (err) {
+ case REG_NO_ERROR:
+ break;
+ case REG_VALUE_NOT_EXISTS:
+ return css::uno::Sequence< rtl::OUString >();
+ case REG_INVALID_VALUE:
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key"
+ " getStringListValue: underlying"
+ " RegistryKey::getUnicodeListValue() = REG_INVALID_VALUE")),
+ static_cast< OWeakObject * >(this));
+ default:
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key"
+ " getStringListValue: underlying"
+ " RegistryKey::getUnicodeListValue() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
+ }
+ sal_uInt32 n = list.getLength();
+ if (n > SAL_MAX_INT32) {
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key"
+ " getStringListValue: underlying"
+ " RegistryKey::getUnicodeListValue() too large")),
+ static_cast< OWeakObject * >(this));
}
+ css::uno::Sequence< rtl::OUString > value(static_cast< sal_Int32 >(n));
+ for (sal_uInt32 i = 0; i < n; ++i) {
+ value[static_cast< sal_Int32 >(i)] = list.getElement(i);
+ }
+ return value;
}
-//*************************************************************************
-void SAL_CALL RegistryKeyImpl::closeKey( )
- throw(InvalidRegistryException, RuntimeException)
+void Key::setStringListValue(
+ css::uno::Sequence< rtl::OUString > const & seqValue)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
{
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if ( m_key.isValid() )
- {
- if ( !m_key.closeKey() )
- return;
+ osl::MutexGuard guard(registry_->mutex_);
+ std::vector< sal_Unicode * > list;
+ for (sal_Int32 i = 0; i < seqValue.getLength(); ++i) {
+ list.push_back(const_cast< sal_Unicode * >(seqValue[i].getStr()));
+ }
+ RegError err = key_.setUnicodeListValue(
+ rtl::OUString(), list.empty() ? 0 : &list[0],
+ static_cast< sal_uInt32 >(list.size()));
+ if (err != REG_NO_ERROR) {
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key"
+ " setStringListValue: underlying"
+ " RegistryKey::setUnicodeListValue() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
}
-
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
}
-//*************************************************************************
-void SAL_CALL RegistryKeyImpl::deleteKey( const OUString& rKeyName )
- throw(InvalidRegistryException, RuntimeException)
+css::uno::Sequence< sal_Int8 > Key::getBinaryValue()
+ throw (
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException)
{
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if ( m_key.isValid() )
- {
- if ( !m_key.deleteKey(rKeyName) )
- return;
+ osl::MutexGuard guard(registry_->mutex_);
+ RegValueType type;
+ sal_uInt32 size;
+ RegError err = key_.getValueInfo(rtl::OUString(), &type, &size);
+ if (err != REG_NO_ERROR) {
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getBinaryValue:"
+ " underlying RegistryKey::getValueInfo() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
}
-
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
+ if (type != RG_VALUETYPE_BINARY) {
+ throw css::registry::InvalidValueException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getBinaryValue:"
+ " underlying RegistryKey type = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(type))),
+ static_cast< OWeakObject * >(this));
+ }
+ if (size > SAL_MAX_INT32) {
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getBinaryValue:"
+ " underlying RegistryKey size too large")),
+ static_cast< OWeakObject * >(this));
+ }
+ css::uno::Sequence< sal_Int8 > value(static_cast< sal_Int32 >(size));
+ err = key_.getValue(rtl::OUString(), value.getArray());
+ if (err != REG_NO_ERROR) {
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getBinaryValue:"
+ " underlying RegistryKey::getValue() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
+ }
+ return value;
}
-//*************************************************************************
-Sequence< Reference< XRegistryKey > > SAL_CALL RegistryKeyImpl::openKeys( )
- throw(InvalidRegistryException, RuntimeException)
+void Key::setBinaryValue(css::uno::Sequence< sal_Int8 > const & value)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
{
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if ( !m_key.isValid() )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- } else
- {
- RegistryKeyArray subKeys;
- RegError _ret = REG_NO_ERROR;
- if ( (_ret = m_key.openSubKeys(OUString(), subKeys)) )
- {
- if ( _ret == REG_INVALID_KEY )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- }
-
- return Sequence< Reference<XRegistryKey> >();
- } else
- {
- sal_uInt32 length = subKeys.getLength();
- Sequence< Reference<XRegistryKey> > seqKeys(length);
-
- for (sal_uInt32 i=0; i < length; i++)
- {
- seqKeys.getArray()[i] =
- (XRegistryKey*) new RegistryKeyImpl(subKeys.getElement(i), m_pRegistry);
- }
- return seqKeys;
- }
+ osl::MutexGuard guard(registry_->mutex_);
+ RegError err = key_.setValue(
+ rtl::OUString(), RG_VALUETYPE_BINARY,
+ const_cast< sal_Int8 * >(value.getConstArray()),
+ static_cast< sal_uInt32 >(value.getLength()));
+ if (err != REG_NO_ERROR) {
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key setBinaryValue:"
+ " underlying RegistryKey::setValue() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
}
}
-//*************************************************************************
-Sequence< OUString > SAL_CALL RegistryKeyImpl::getKeyNames( )
- throw(InvalidRegistryException, RuntimeException)
+css::uno::Reference< css::registry::XRegistryKey > Key::openKey(
+ rtl::OUString const & aKeyName)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
{
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if ( !m_key.isValid() )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- } else
- {
- RegistryKeyNames subKeys;
- RegError _ret = REG_NO_ERROR;
- if ( (_ret = m_key.getKeyNames(OUString(), subKeys)) )
- {
- if ( _ret == REG_INVALID_KEY )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- }
-
- return Sequence<OUString>();
- } else
- {
- sal_uInt32 length = subKeys.getLength();
- Sequence<OUString> seqKeys(length);
-
- for (sal_uInt32 i=0; i < length; i++)
- {
- seqKeys.getArray()[i] = subKeys.getElement(i);
- }
- return seqKeys;
- }
+ osl::MutexGuard guard(registry_->mutex_);
+ RegistryKey key;
+ RegError err = key_.openKey(aKeyName, key);
+ switch (err) {
+ case REG_NO_ERROR:
+ return new Key(registry_, key);
+ case REG_KEY_NOT_EXISTS:
+ return css::uno::Reference< css::registry::XRegistryKey >();
+ default:
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key openKey:"
+ " underlying RegistryKey::openKey() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
}
}
-//*************************************************************************
-sal_Bool SAL_CALL RegistryKeyImpl::createLink( const OUString& aLinkName, const OUString& aLinkTarget )
- throw(InvalidRegistryException, RuntimeException)
+css::uno::Reference< css::registry::XRegistryKey > Key::createKey(
+ rtl::OUString const & aKeyName)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
{
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if ( !m_key.isValid() )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- } else
- {
- RegError ret = m_key.createLink(aLinkName, aLinkTarget);
- if ( ret )
- {
- if ( ret == REG_DETECT_RECURSION ||
- ret == REG_INVALID_KEY )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- } else
- {
- return sal_False;
- }
- }
+ osl::MutexGuard guard(registry_->mutex_);
+ RegistryKey key;
+ RegError err = key_.createKey(aKeyName, key);
+ switch (err) {
+ case REG_NO_ERROR:
+ return new Key(registry_, key);
+ case REG_INVALID_KEYNAME:
+ return css::uno::Reference< css::registry::XRegistryKey >();
+ default:
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key createKey:"
+ " underlying RegistryKey::createKey() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
}
- return sal_True;
}
-//*************************************************************************
-void SAL_CALL RegistryKeyImpl::deleteLink( const OUString& rLinkName )
- throw(InvalidRegistryException, RuntimeException)
+void Key::closeKey()
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
{
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if ( !m_key.isValid() )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- } else
- {
- if ( m_key.deleteLink(rLinkName) )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- }
+ osl::MutexGuard guard(registry_->mutex_);
+ RegError err = key_.closeKey();
+ if (err != REG_NO_ERROR) {
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key closeKey:"
+ " underlying RegistryKey::closeKey() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
}
}
-//*************************************************************************
-OUString SAL_CALL RegistryKeyImpl::getLinkTarget( const OUString& rLinkName )
- throw(InvalidRegistryException, RuntimeException)
+void Key::deleteKey(rtl::OUString const & rKeyName)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
{
- OUString linkTarget;
-
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if ( !m_key.isValid() )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- } else
- {
- RegError ret = m_key.getLinkTarget(rLinkName, linkTarget);
- if ( ret )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- }
+ osl::MutexGuard guard(registry_->mutex_);
+ RegError err = key_.deleteKey(rKeyName);
+ if (err != REG_NO_ERROR) {
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key deleteKey:"
+ " underlying RegistryKey::deleteKey() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
}
-
- return linkTarget;
}
-//*************************************************************************
-OUString SAL_CALL RegistryKeyImpl::getResolvedName( const OUString& aKeyName )
- throw(InvalidRegistryException, RuntimeException)
+css::uno::Sequence< css::uno::Reference< css::registry::XRegistryKey > >
+Key::openKeys()
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
{
- OUString resolvedName;
-
- Guard< Mutex > aGuard( m_pRegistry->m_mutex );
- if ( !m_key.isValid() )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- } else
- {
- RegError ret = m_key.getResolvedKeyName(
- aKeyName, sal_True, resolvedName);
- if ( ret )
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- }
+ osl::MutexGuard guard(registry_->mutex_);
+ RegistryKeyArray list;
+ RegError err = key_.openSubKeys(rtl::OUString(), list);
+ if (err != REG_NO_ERROR) {
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key openKeys:"
+ " underlying RegistryKey::openSubKeys() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
}
-
- return resolvedName;
+ sal_uInt32 n = list.getLength();
+ if (n > SAL_MAX_INT32) {
+ throw css::registry::InvalidRegistryException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getKeyNames:"
+ " underlying RegistryKey::getKeyNames() too large")),
+ static_cast< OWeakObject * >(this));
+ }
+ css::uno::Sequence< css::uno::Reference< css::registry::XRegistryKey > >
+ keys(static_cast< sal_Int32 >(n));
+ for (sal_uInt32 i = 0; i < n; ++i) {
+ keys[static_cast< sal_Int32 >(i)] = new Key(
+ registry_, list.getElement(i));
+ }
+ return keys;
}
-//*************************************************************************
-SimpleRegistryImpl::SimpleRegistryImpl( const Registry& rRegistry )
- : m_registry(rRegistry)
+css::uno::Sequence< rtl::OUString > Key::getKeyNames()
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
{
- g_moduleCount.modCnt.acquire( &g_moduleCount.modCnt );
+ osl::MutexGuard guard(registry_->mutex_);
+ RegistryKeyNames list;
+ RegError err = key_.getKeyNames(rtl::OUString(), list);
+ if (err != REG_NO_ERROR) {
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getKeyNames:"
+ " underlying RegistryKey::getKeyNames() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
+ }
+ sal_uInt32 n = list.getLength();
+ if (n > SAL_MAX_INT32) {
+ throw css::registry::InvalidRegistryException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getKeyNames:"
+ " underlying RegistryKey::getKeyNames() too large")),
+ static_cast< OWeakObject * >(this));
+ }
+ css::uno::Sequence< rtl::OUString > names(static_cast< sal_Int32 >(n));
+ for (sal_uInt32 i = 0; i < n; ++i) {
+ names[static_cast< sal_Int32 >(i)] = list.getElement(i);
+ }
+ return names;
}
-//*************************************************************************
-SimpleRegistryImpl::~SimpleRegistryImpl()
+sal_Bool Key::createLink(
+ rtl::OUString const & aLinkName, rtl::OUString const & aLinkTarget)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
{
- g_moduleCount.modCnt.release( &g_moduleCount.modCnt );
+ osl::MutexGuard guard(registry_->mutex_);
+ RegError err = key_.createLink(aLinkName, aLinkTarget);
+ switch (err) {
+ case REG_NO_ERROR:
+ return true;
+ case REG_INVALID_KEY:
+ case REG_DETECT_RECURSION:
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key createLink:"
+ " underlying RegistryKey::createLink() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
+ default:
+ return false;
+ }
}
-//*************************************************************************
-OUString SAL_CALL SimpleRegistryImpl::getImplementationName( )
- throw(RuntimeException)
+void Key::deleteLink(rtl::OUString const & rLinkName)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
{
- return stoc_bootstrap::simreg_getImplementationName();
+ osl::MutexGuard guard(registry_->mutex_);
+ RegError err = key_.deleteLink(rLinkName);
+ if (err != REG_NO_ERROR) {
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key deleteLink:"
+ " underlying RegistryKey::deleteLink() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
+ }
}
-//*************************************************************************
-sal_Bool SAL_CALL SimpleRegistryImpl::supportsService( const OUString& ServiceName )
- throw(RuntimeException)
+rtl::OUString Key::getLinkTarget(rtl::OUString const & rLinkName)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
{
- Guard< Mutex > aGuard( m_mutex );
- Sequence< OUString > aSNL = getSupportedServiceNames();
- const OUString * pArray = aSNL.getArray();
- for( sal_Int32 i = 0; i < aSNL.getLength(); i++ )
- if( pArray[i] == ServiceName )
- return sal_True;
- return sal_False;
+ osl::MutexGuard guard(registry_->mutex_);
+ rtl::OUString target;
+ RegError err = key_.getLinkTarget(rLinkName, target);
+ if (err != REG_NO_ERROR) {
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getLinkTarget:"
+ " underlying RegistryKey::getLinkTarget() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
+ }
+ return target;
}
-//*************************************************************************
-Sequence<OUString> SAL_CALL SimpleRegistryImpl::getSupportedServiceNames( )
- throw(RuntimeException)
+rtl::OUString Key::getResolvedName(rtl::OUString const & aKeyName)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
{
- return stoc_bootstrap::simreg_getSupportedServiceNames();
+ osl::MutexGuard guard(registry_->mutex_);
+ rtl::OUString resolved;
+ RegError err = key_.getResolvedKeyName(aKeyName, true, resolved);
+ if (err != REG_NO_ERROR) {
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry key getResolvedName:"
+ " underlying RegistryKey::getResolvedName() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
+ }
+ return resolved;
}
-//*************************************************************************
-OUString SAL_CALL SimpleRegistryImpl::getURL() throw(RuntimeException)
-{
- Guard< Mutex > aGuard( m_mutex );
- return m_url;
+rtl::OUString SimpleRegistry::getURL() throw (css::uno::RuntimeException) {
+ osl::MutexGuard guard(mutex_);
+ return textual_.get() == 0 ? registry_.getName() : textual_->getUri();
}
-//*************************************************************************
-void SAL_CALL SimpleRegistryImpl::open( const OUString& rURL, sal_Bool bReadOnly, sal_Bool bCreate )
- throw(InvalidRegistryException, RuntimeException)
+void SimpleRegistry::open(
+ rtl::OUString const & rURL, sal_Bool bReadOnly, sal_Bool bCreate)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
{
- Guard< Mutex > aGuard( m_mutex );
- if ( m_registry.isValid() )
- {
- m_registry.close();
+ osl::MutexGuard guard(mutex_);
+ if (textual_.get() != 0) {
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry.open(")) +
+ rURL +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "): instance already open"))),
+ static_cast< OWeakObject * >(this));
}
-
- RegAccessMode accessMode = REG_READWRITE;
-
- if ( bReadOnly )
- accessMode = REG_READONLY;
-
- if ( !m_registry.open(rURL, accessMode) )
- {
- m_url = rURL;
- return;
+ RegError err = (rURL.getLength() == 0 && bCreate)
+ ? REG_REGISTRY_NOT_EXISTS
+ : registry_.open(rURL, bReadOnly ? REG_READONLY : REG_READWRITE);
+ if (err == REG_REGISTRY_NOT_EXISTS && bCreate) {
+ err = registry_.create(rURL);
}
-
- if ( bCreate )
- {
- if ( !m_registry.create(rURL) )
- {
- m_url = rURL;
- return;
+ switch (err) {
+ case REG_NO_ERROR:
+ break;
+ case REG_INVALID_REGISTRY:
+ if (bReadOnly && !bCreate) {
+ textual_.reset(new stoc::simpleregistry::TextualServices(rURL));
+ break;
}
+ // fall through
+ default:
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry.open(")) +
+ rURL +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "): underlying Registry::open/create() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
}
-
- m_url = OUString();
-
- OUStringBuffer reason( 128 );
- reason.appendAscii( RTL_CONSTASCII_STRINGPARAM("Couldn't ") );
- if( bCreate )
- {
- reason.appendAscii( RTL_CONSTASCII_STRINGPARAM("create") );
- }
- else
- {
- reason.appendAscii( RTL_CONSTASCII_STRINGPARAM("open") );
- }
- reason.appendAscii( RTL_CONSTASCII_STRINGPARAM(" registry ") );
- reason.append( rURL );
- if( bReadOnly )
- {
- reason.appendAscii( RTL_CONSTASCII_STRINGPARAM(" for reading") );
- }
- else
- {
- reason.appendAscii( RTL_CONSTASCII_STRINGPARAM(" for writing" ) );
- }
- throw InvalidRegistryException( reason.makeStringAndClear() , Reference< XInterface >() );
}
-//*************************************************************************
-sal_Bool SAL_CALL SimpleRegistryImpl::isValid( ) throw(RuntimeException)
-{
- Guard< Mutex > aGuard( m_mutex );
- return m_registry.isValid();
+sal_Bool SimpleRegistry::isValid() throw (css::uno::RuntimeException) {
+ osl::MutexGuard guard(mutex_);
+ return textual_.get() != 0 || registry_.isValid();
}
-//*************************************************************************
-void SAL_CALL SimpleRegistryImpl::close( )
- throw(InvalidRegistryException, RuntimeException)
+void SimpleRegistry::close()
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
{
- Guard< Mutex > aGuard( m_mutex );
- if ( m_registry.isValid() )
- {
- if ( !m_registry.close() )
- {
- m_url = OUString();
- return;
- }
+ osl::MutexGuard guard(mutex_);
+ if (textual_.get() != 0) {
+ textual_.reset();
+ return;
+ }
+ RegError err = registry_.close();
+ if (err != REG_NO_ERROR) {
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry.close:"
+ " underlying Registry::close() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
}
-
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
}
-//*************************************************************************
-void SAL_CALL SimpleRegistryImpl::destroy( )
- throw(InvalidRegistryException, RuntimeException)
+void SimpleRegistry::destroy()
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
{
- Guard< Mutex > aGuard( m_mutex );
- if ( m_registry.isValid() )
- {
- if ( !m_registry.destroy(OUString()) )
- {
- m_url = OUString();
- return;
- }
+ osl::MutexGuard guard(mutex_);
+ if (textual_.get() != 0) {
+ textual_.reset();
+ return;
+ }
+ RegError err = registry_.destroy(rtl::OUString());
+ if (err != REG_NO_ERROR) {
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry.destroy:"
+ " underlying Registry::destroy() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
}
-
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
}
-//*************************************************************************
-Reference< XRegistryKey > SAL_CALL SimpleRegistryImpl::getRootKey( )
- throw(InvalidRegistryException, RuntimeException)
+css::uno::Reference< css::registry::XRegistryKey > SimpleRegistry::getRootKey()
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
{
- Guard< Mutex > aGuard( m_mutex );
- if ( m_registry.isValid() )
- return ((XRegistryKey*)new RegistryKeyImpl(OUString( RTL_CONSTASCII_USTRINGPARAM("/") ), this));
- else
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
+ osl::MutexGuard guard(mutex_);
+ if (textual_.get() != 0) {
+ return textual_->getRootKey();
+ }
+ RegistryKey root;
+ RegError err = registry_.openRootKey(root);
+ if (err != REG_NO_ERROR) {
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry.getRootKey:"
+ " underlying Registry::getRootKey() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
}
+ return new Key(this, root);
}
-//*************************************************************************
-sal_Bool SAL_CALL SimpleRegistryImpl::isReadOnly( )
- throw(InvalidRegistryException, RuntimeException)
+sal_Bool SimpleRegistry::isReadOnly()
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
{
- Guard< Mutex > aGuard( m_mutex );
- if ( m_registry.isValid() )
- return m_registry.isReadOnly();
- else
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- }
+ osl::MutexGuard guard(mutex_);
+ return textual_.get() != 0 || registry_.isReadOnly();
}
-//*************************************************************************
-void SAL_CALL SimpleRegistryImpl::mergeKey( const OUString& aKeyName, const OUString& aUrl )
- throw(InvalidRegistryException, MergeConflictException, RuntimeException)
+void SimpleRegistry::mergeKey(
+ rtl::OUString const & aKeyName, rtl::OUString const & aUrl)
+ throw (
+ css::registry::InvalidRegistryException,
+ css::registry::MergeConflictException, css::uno::RuntimeException)
{
- Guard< Mutex > aGuard( m_mutex );
- if ( m_registry.isValid() )
- {
- RegistryKey rootKey;
- if ( !m_registry.openRootKey(rootKey) )
- {
- RegError ret = m_registry.mergeKey(rootKey, aKeyName, aUrl, sal_False, sal_False);
- if (ret)
- {
- if ( ret == REG_MERGE_CONFLICT )
- return;
- if ( ret == REG_MERGE_ERROR )
- {
- throw MergeConflictException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("MergeConflictException") ),
- (OWeakObject *)this );
- }
- else
- {
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
- }
- }
-
- return;
- }
+ osl::MutexGuard guard(mutex_);
+ if (textual_.get() != 0) {
+ throw css::uno::RuntimeException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry.mergeKey: not"
+ " supported for textual representation")),
+ static_cast< cppu::OWeakObject * >(this));
+ }
+ RegistryKey root;
+ RegError err = registry_.openRootKey(root);
+ if (err == REG_NO_ERROR) {
+ err = registry_.mergeKey(root, aKeyName, aUrl, false, false);
+ }
+ switch (err) {
+ case REG_NO_ERROR:
+ case REG_MERGE_CONFLICT:
+ break;
+ case REG_MERGE_ERROR:
+ throw css::registry::MergeConflictException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry.mergeKey:"
+ " underlying Registry::mergeKey() = REG_MERGE_ERROR")),
+ static_cast< cppu::OWeakObject * >(this));
+ default:
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry.mergeKey:"
+ " underlying Registry::getRootKey/mergeKey() = ")) +
+ rtl::OUString::valueOf(static_cast< sal_Int32 >(err))),
+ static_cast< OWeakObject * >(this));
}
-
- throw InvalidRegistryException(
- OUString( RTL_CONSTASCII_USTRINGPARAM("InvalidRegistryException") ),
- (OWeakObject *)this );
-}
}
-namespace stoc_bootstrap
-{
-//*************************************************************************
-Reference<XInterface> SAL_CALL SimpleRegistry_CreateInstance( const Reference<XComponentContext>& )
-{
- Reference<XInterface> xRet;
-
- Registry reg;
+}
- XSimpleRegistry *pRegistry = (XSimpleRegistry*) new stoc_simreg::SimpleRegistryImpl(reg);
+namespace stoc_bootstrap {
- if (pRegistry)
- {
- xRet = Reference<XInterface>::query(pRegistry);
- }
+css::uno::Reference< css::uno::XInterface > SimpleRegistry_CreateInstance(
+ css::uno::Reference< css::uno::XComponentContext > const &)
+{
+ return static_cast< cppu::OWeakObject * >(new SimpleRegistry);
+}
- return xRet;
+css::uno::Sequence< rtl::OUString > simreg_getSupportedServiceNames() {
+ css::uno::Sequence< rtl::OUString > names(1);
+ names[0] = rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("com.sun.star.registry.SimpleRegistry"));
+ return names;
}
+
+rtl::OUString simreg_getImplementationName() {
+ return rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.stoc.SimpleRegistry"));
}
+}
diff --git a/stoc/source/simpleregistry/textualservices.cxx b/stoc/source/simpleregistry/textualservices.cxx
new file mode 100755
index 000000000000..932c639124d0
--- /dev/null
+++ b/stoc/source/simpleregistry/textualservices.cxx
@@ -0,0 +1,1216 @@
+/*************************************************************************
+*
+* 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_stoc.hxx"
+#include "sal/config.h"
+
+#include <cstddef>
+#include <cstdlib>
+#include <map>
+#include <vector>
+
+#include "boost/noncopyable.hpp"
+#include "com/sun/star/container/NoSuchElementException.hpp"
+#include "com/sun/star/registry/InvalidRegistryException.hpp"
+#include "com/sun/star/registry/XRegistryKey.hpp"
+#include "com/sun/star/uno/Reference.hxx"
+#include "com/sun/star/uno/XInterface.hpp"
+#include "cppuhelper/implbase1.hxx"
+#include "osl/diagnose.h"
+#include "rtl/ref.hxx"
+#include "rtl/string.h"
+#include "rtl/ustrbuf.hxx"
+#include "rtl/ustring.h"
+#include "rtl/ustring.hxx"
+#include "salhelper/simplereferenceobject.hxx"
+#include "xmlreader/span.hxx"
+#include "xmlreader/xmlreader.hxx"
+
+#include "textualservices.hxx"
+
+namespace stoc { namespace simpleregistry {
+
+namespace {
+
+namespace css = com::sun::star;
+
+struct Implementation {
+ rtl::OUString uri;
+ rtl::OUString loader;
+ std::vector< rtl::OUString > services;
+ std::vector< rtl::OUString > singletons;
+};
+
+typedef std::map< rtl::OUString, Implementation > Implementations;
+
+typedef std::map< rtl::OUString, std::vector< rtl::OUString > >
+ ImplementationMap;
+
+}
+
+class Data: public salhelper::SimpleReferenceObject, private boost::noncopyable
+{
+public:
+ Implementations implementations;
+ ImplementationMap services;
+ ImplementationMap singletons;
+};
+
+namespace {
+
+class Parser: private boost::noncopyable {
+public:
+ Parser(rtl::OUString const & uri, rtl::Reference< Data > const & data);
+
+private:
+ void handleComponent();
+
+ void handleImplementation();
+
+ void handleService();
+
+ void handleSingleton();
+
+ rtl::OUString getNameAttribute();
+
+ xmlreader::XmlReader reader_;
+ rtl::Reference< Data > data_;
+ rtl::OUString attrUri_;
+ rtl::OUString attrLoader_;
+ rtl::OUString attrImplementation_;
+};
+
+Parser::Parser(rtl::OUString const & uri, rtl::Reference< Data > const & data):
+ reader_(uri), data_(data)
+{
+ OSL_ASSERT(data.is());
+ int ucNsId = reader_.registerNamespaceIri(
+ xmlreader::Span(
+ RTL_CONSTASCII_STRINGPARAM(
+ "http://openoffice.org/2010/uno-components")));
+ enum State {
+ STATE_BEGIN, STATE_END, STATE_COMPONENTS, STATE_COMPONENT_INITIAL,
+ STATE_COMPONENT, STATE_IMPLEMENTATION, STATE_SERVICE, STATE_SINGLETON };
+ for (State state = STATE_BEGIN;;) {
+ xmlreader::Span name;
+ int nsId;
+ xmlreader::XmlReader::Result res = reader_.nextItem(
+ xmlreader::XmlReader::TEXT_NONE, &name, &nsId);
+ switch (state) {
+ case STATE_BEGIN:
+ if (res == xmlreader::XmlReader::RESULT_BEGIN && nsId == ucNsId &&
+ name.equals(RTL_CONSTASCII_STRINGPARAM("components")))
+ {
+ state = STATE_COMPONENTS;
+ break;
+ }
+ throw css::registry::InvalidRegistryException(
+ (reader_.getUrl() +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ ": unexpected item in outer level"))),
+ css::uno::Reference< css::uno::XInterface >());
+ case STATE_END:
+ if (res == xmlreader::XmlReader::RESULT_DONE) {
+ return;
+ }
+ throw css::registry::InvalidRegistryException(
+ (reader_.getUrl() +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ ": unexpected item in outer level"))),
+ css::uno::Reference< css::uno::XInterface >());
+ case STATE_COMPONENTS:
+ if (res == xmlreader::XmlReader::RESULT_END) {
+ state = STATE_END;
+ break;
+ }
+ if (res == xmlreader::XmlReader::RESULT_BEGIN && nsId == ucNsId &&
+ name.equals(RTL_CONSTASCII_STRINGPARAM("component")))
+ {
+ handleComponent();
+ state = STATE_COMPONENT_INITIAL;
+ break;
+ }
+ throw css::registry::InvalidRegistryException(
+ (reader_.getUrl() +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ ": unexpected item in <components>"))),
+ css::uno::Reference< css::uno::XInterface >());
+ case STATE_COMPONENT:
+ if (res == xmlreader::XmlReader::RESULT_END) {
+ state = STATE_COMPONENTS;
+ break;
+ }
+ // fall through
+ case STATE_COMPONENT_INITIAL:
+ if (res == xmlreader::XmlReader::RESULT_BEGIN && nsId == ucNsId &&
+ name.equals(RTL_CONSTASCII_STRINGPARAM("implementation")))
+ {
+ handleImplementation();
+ state = STATE_IMPLEMENTATION;
+ break;
+ }
+ throw css::registry::InvalidRegistryException(
+ (reader_.getUrl() +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ ": unexpected item in <component>"))),
+ css::uno::Reference< css::uno::XInterface >());
+ case STATE_IMPLEMENTATION:
+ if (res == xmlreader::XmlReader::RESULT_END) {
+ state = STATE_COMPONENT;
+ break;
+ }
+ if (res == xmlreader::XmlReader::RESULT_BEGIN && nsId == ucNsId &&
+ name.equals(RTL_CONSTASCII_STRINGPARAM("service")))
+ {
+ handleService();
+ state = STATE_SERVICE;
+ break;
+ }
+ if (res == xmlreader::XmlReader::RESULT_BEGIN && nsId == ucNsId &&
+ name.equals(RTL_CONSTASCII_STRINGPARAM("singleton")))
+ {
+ handleSingleton();
+ state = STATE_SINGLETON;
+ break;
+ }
+ throw css::registry::InvalidRegistryException(
+ (reader_.getUrl() +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ ": unexpected item in <implementation>"))),
+ css::uno::Reference< css::uno::XInterface >());
+ case STATE_SERVICE:
+ if (res == xmlreader::XmlReader::RESULT_END) {
+ state = STATE_IMPLEMENTATION;
+ break;
+ }
+ throw css::registry::InvalidRegistryException(
+ (reader_.getUrl() +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ ": unexpected item in <service>"))),
+ css::uno::Reference< css::uno::XInterface >());
+ case STATE_SINGLETON:
+ if (res == xmlreader::XmlReader::RESULT_END) {
+ state = STATE_IMPLEMENTATION;
+ break;
+ }
+ throw css::registry::InvalidRegistryException(
+ (reader_.getUrl() +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ ": unexpected item in <service>"))),
+ css::uno::Reference< css::uno::XInterface >());
+ }
+ }
+}
+
+void Parser::handleComponent() {
+ attrUri_ = rtl::OUString();
+ attrLoader_ = rtl::OUString();
+ xmlreader::Span name;
+ int nsId;
+ while (reader_.nextAttribute(&nsId, &name)) {
+ if (nsId == xmlreader::XmlReader::NAMESPACE_NONE &&
+ name.equals(RTL_CONSTASCII_STRINGPARAM("uri")))
+ {
+ if (attrUri_.getLength() != 0) {
+ throw css::registry::InvalidRegistryException(
+ (reader_.getUrl() +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ ": <component> has multiple \"uri\" attributes"))),
+ css::uno::Reference< css::uno::XInterface >());
+ }
+ attrUri_ = reader_.getAttributeValue(false).convertFromUtf8();
+ if (attrUri_.getLength() == 0) {
+ throw css::registry::InvalidRegistryException(
+ (reader_.getUrl() +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ ": <component> has empty \"uri\" attribute"))),
+ css::uno::Reference< css::uno::XInterface >());
+ }
+ } else if (nsId == xmlreader::XmlReader::NAMESPACE_NONE &&
+ name.equals(RTL_CONSTASCII_STRINGPARAM("loader")))
+ {
+ if (attrLoader_.getLength() != 0) {
+ throw css::registry::InvalidRegistryException(
+ (reader_.getUrl() +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ ": <component> has multiple \"loader\""
+ " attributes"))),
+ css::uno::Reference< css::uno::XInterface >());
+ }
+ attrLoader_ = reader_.getAttributeValue(false).convertFromUtf8();
+ if (attrLoader_.getLength() == 0) {
+ throw css::registry::InvalidRegistryException(
+ (reader_.getUrl() +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ ": <component> has empty \"loader\" attribute"))),
+ css::uno::Reference< css::uno::XInterface >());
+ }
+ } else {
+ throw css::registry::InvalidRegistryException(
+ (reader_.getUrl() +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ ": expected <component> attribute \"uri\" or"
+ " \"loader\""))),
+ css::uno::Reference< css::uno::XInterface >());
+ }
+ }
+ if (attrUri_.getLength() == 0) {
+ throw css::registry::InvalidRegistryException(
+ (reader_.getUrl() +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ ": <component> is missing \"uri\" attribute"))),
+ css::uno::Reference< css::uno::XInterface >());
+ }
+ if (attrLoader_.getLength() == 0) {
+ throw css::registry::InvalidRegistryException(
+ (reader_.getUrl() +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ ": <component> is missing \"loader\" attribute"))),
+ css::uno::Reference< css::uno::XInterface >());
+ }
+}
+
+void Parser::handleImplementation() {
+ attrImplementation_ = getNameAttribute();
+ if (data_->implementations.find(attrImplementation_) !=
+ data_->implementations.end())
+ {
+ throw css::registry::InvalidRegistryException(
+ (reader_.getUrl() +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ ": duplicate <implementation name=\"")) +
+ attrImplementation_ +
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("\">"))),
+ css::uno::Reference< css::uno::XInterface >());
+ }
+ data_->implementations[attrImplementation_].uri = attrUri_;
+ data_->implementations[attrImplementation_].loader = attrLoader_;
+}
+
+void Parser::handleService() {
+ rtl::OUString name = getNameAttribute();
+ data_->implementations[attrImplementation_].services.push_back(name);
+ data_->services[name].push_back(attrImplementation_);
+}
+
+void Parser::handleSingleton() {
+ rtl::OUString name = getNameAttribute();
+ data_->implementations[attrImplementation_].singletons.push_back(name);
+ data_->singletons[name].push_back(attrImplementation_);
+}
+
+rtl::OUString Parser::getNameAttribute() {
+ rtl::OUString attrName;
+ xmlreader::Span name;
+ int nsId;
+ while (reader_.nextAttribute(&nsId, &name)) {
+ if (nsId == xmlreader::XmlReader::NAMESPACE_NONE &&
+ name.equals(RTL_CONSTASCII_STRINGPARAM("name")))
+ {
+ if (attrName.getLength() != 0) {
+ throw css::registry::InvalidRegistryException(
+ (reader_.getUrl() +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ ": element has multiple \"name\" attributes"))),
+ css::uno::Reference< css::uno::XInterface >());
+ }
+ attrName = reader_.getAttributeValue(false).convertFromUtf8();
+ if (attrName.getLength() == 0) {
+ throw css::registry::InvalidRegistryException(
+ (reader_.getUrl() +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ ": element has empty \"name\" attribute"))),
+ css::uno::Reference< css::uno::XInterface >());
+ }
+ } else {
+ throw css::registry::InvalidRegistryException(
+ (reader_.getUrl() +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ ": expected element attribute \"name\""))),
+ css::uno::Reference< css::uno::XInterface >());
+ }
+ }
+ if (attrName.getLength() == 0) {
+ throw css::registry::InvalidRegistryException(
+ (reader_.getUrl() +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ ": element is missing \"name\" attribute"))),
+ css::uno::Reference< css::uno::XInterface >());
+ }
+ return attrName;
+}
+
+rtl::OUString pathToString(std::vector< rtl::OUString > const & path) {
+ rtl::OUStringBuffer buf;
+ for (std::vector< rtl::OUString >::const_iterator i(path.begin());
+ i != path.end(); ++i)
+ {
+ buf.append(sal_Unicode('/'));
+ buf.append(*i);
+ }
+ if (buf.getLength() == 0) {
+ buf.append(sal_Unicode('/'));
+ }
+ return buf.makeStringAndClear();
+}
+
+class Key: public cppu::WeakImplHelper1< css::registry::XRegistryKey > {
+public:
+ Key(
+ rtl::Reference< Data > const & data,
+ std::vector< rtl::OUString > const & path):
+ data_(data), path_(path) { OSL_ASSERT(data.is());
+ }
+
+private:
+ /*
+ /
+ IMPLEMENTATIONS
+ <implementation>
+ UNO
+ LOCATION utf-8
+ ACTIVATOR utf-8
+ SERVICES
+ <service>
+ ...
+ SINGLETONS
+ <singleton> utf-16
+ ...
+ ...
+ SERVICES
+ <service> utf-8-list
+ ...
+ SINGLETONS
+ <singleton> utf-16
+ REGISTERED_BY utf-8-list
+ ...
+ */
+ enum State {
+ STATE_ROOT, STATE_IMPLEMENTATIONS, STATE_IMPLEMENTATION, STATE_UNO,
+ STATE_LOCATION, STATE_ACTIVATOR, STATE_IMPLEMENTATION_SERVICES,
+ STATE_IMPLEMENTATION_SERVICE, STATE_IMPLEMENTATION_SINGLETONS,
+ STATE_IMPLEMENTATION_SINGLETON, STATE_SERVICES, STATE_SERVICE,
+ STATE_SINGLETONS, STATE_SINGLETON, STATE_REGISTEREDBY };
+
+ virtual rtl::OUString SAL_CALL getKeyName()
+ throw (css::uno::RuntimeException);
+
+ virtual sal_Bool SAL_CALL isReadOnly() throw (
+ css::registry::InvalidRegistryException, css::uno::RuntimeException);
+
+ virtual sal_Bool SAL_CALL isValid() throw(css::uno::RuntimeException);
+
+ virtual css::registry::RegistryKeyType SAL_CALL getKeyType(
+ rtl::OUString const & rKeyName)
+ throw (
+ css::registry::InvalidRegistryException,
+ css::uno::RuntimeException);
+
+ virtual css::registry::RegistryValueType SAL_CALL getValueType() throw(
+ css::registry::InvalidRegistryException, css::uno::RuntimeException);
+
+ virtual sal_Int32 SAL_CALL getLongValue() throw (
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException);
+
+ virtual void SAL_CALL setLongValue(sal_Int32 value) throw (
+ css::registry::InvalidRegistryException, css::uno::RuntimeException);
+
+ virtual css::uno::Sequence< sal_Int32 > SAL_CALL getLongListValue() throw(
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException);
+
+ virtual void SAL_CALL setLongListValue(
+ com::sun::star::uno::Sequence< sal_Int32 > const & seqValue)
+ throw (
+ css::registry::InvalidRegistryException,
+ css::uno::RuntimeException);
+
+ virtual rtl::OUString SAL_CALL getAsciiValue() throw (
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException);
+
+ virtual void SAL_CALL setAsciiValue(rtl::OUString const & value) throw (
+ css::registry::InvalidRegistryException, css::uno::RuntimeException);
+
+ virtual css::uno::Sequence< rtl::OUString > SAL_CALL getAsciiListValue()
+ throw (
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException);
+
+ virtual void SAL_CALL setAsciiListValue(
+ css::uno::Sequence< rtl::OUString > const & seqValue)
+ throw (
+ css::registry::InvalidRegistryException,
+ css::uno::RuntimeException);
+
+ virtual rtl::OUString SAL_CALL getStringValue() throw(
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException);
+
+ virtual void SAL_CALL setStringValue(rtl::OUString const & value) throw (
+ css::registry::InvalidRegistryException, css::uno::RuntimeException);
+
+ virtual css::uno::Sequence< rtl::OUString > SAL_CALL getStringListValue()
+ throw (
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException);
+
+ virtual void SAL_CALL setStringListValue(
+ css::uno::Sequence< rtl::OUString > const & seqValue)
+ throw (
+ css::registry::InvalidRegistryException,
+ css::uno::RuntimeException);
+
+ virtual css::uno::Sequence< sal_Int8 > SAL_CALL getBinaryValue() throw (
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException);
+
+ virtual void SAL_CALL setBinaryValue(
+ css::uno::Sequence< sal_Int8 > const & value)
+ throw (
+ css::registry::InvalidRegistryException,
+ css::uno::RuntimeException);
+
+ virtual css::uno::Reference< css::registry::XRegistryKey > SAL_CALL openKey(
+ rtl::OUString const & aKeyName)
+ throw (
+ css::registry::InvalidRegistryException,
+ css::uno::RuntimeException);
+
+ virtual css::uno::Reference< css::registry::XRegistryKey > SAL_CALL
+ createKey(rtl::OUString const & aKeyName) throw (
+ css::registry::InvalidRegistryException, css::uno::RuntimeException);
+
+ virtual void SAL_CALL closeKey() throw (
+ css::registry::InvalidRegistryException, css::uno::RuntimeException);
+
+ virtual void SAL_CALL deleteKey(rtl::OUString const & rKeyName) throw (
+ css::registry::InvalidRegistryException, css::uno::RuntimeException);
+
+ virtual
+ css::uno::Sequence< css::uno::Reference< css::registry::XRegistryKey > >
+ SAL_CALL openKeys() throw (
+ css::registry::InvalidRegistryException, css::uno::RuntimeException);
+
+ virtual css::uno::Sequence< rtl::OUString > SAL_CALL getKeyNames() throw (
+ css::registry::InvalidRegistryException, css::uno::RuntimeException);
+
+ virtual sal_Bool SAL_CALL createLink(
+ rtl::OUString const & aLinkName, rtl::OUString const & aLinkTarget)
+ throw (
+ css::registry::InvalidRegistryException,
+ css::uno::RuntimeException);
+
+ virtual void SAL_CALL deleteLink(rtl::OUString const & rLinkName) throw (
+ css::registry::InvalidRegistryException, css::uno::RuntimeException);
+
+ virtual rtl::OUString SAL_CALL getLinkTarget(
+ rtl::OUString const & rLinkName)
+ throw (
+ css::registry::InvalidRegistryException,
+ css::uno::RuntimeException);
+
+ virtual rtl::OUString SAL_CALL getResolvedName(
+ rtl::OUString const & aKeyName)
+ throw (
+ css::registry::InvalidRegistryException,
+ css::uno::RuntimeException);
+
+ bool find(
+ rtl::OUString const & relative, std::vector< rtl::OUString > * path,
+ State * state, css::registry::RegistryValueType * type) const;
+
+ css::uno::Sequence< rtl::OUString > getChildren();
+
+ rtl::Reference< Data > data_;
+ std::vector< rtl::OUString > path_;
+};
+
+rtl::OUString Key::getKeyName() throw (css::uno::RuntimeException) {
+ return pathToString(path_);
+}
+
+sal_Bool Key::isReadOnly()
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
+{
+ return true;
+}
+
+sal_Bool Key::isValid() throw(css::uno::RuntimeException) {
+ return true;
+}
+
+css::registry::RegistryKeyType Key::getKeyType(rtl::OUString const & rKeyName)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
+{
+ if (!find(rtl::OUString(), 0, 0, 0)) {
+ throw css::registry::InvalidRegistryException(
+ (rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("unknown key ")) +
+ rKeyName),
+ static_cast< cppu::OWeakObject * >(this));
+ }
+ return css::registry::RegistryKeyType_KEY;
+}
+
+css::registry::RegistryValueType Key::getValueType()
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
+{
+ css::registry::RegistryValueType type =
+ css::registry::RegistryValueType_NOT_DEFINED;
+ OSL_VERIFY(find(rtl::OUString(), 0, 0, &type));
+ return type;
+}
+
+sal_Int32 Key::getLongValue() throw (
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException)
+{
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry textual services key"
+ " getLongValue not supported")),
+ static_cast< OWeakObject * >(this));
+}
+
+void Key::setLongValue(sal_Int32)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
+{
+ throw css::registry::InvalidRegistryException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry textual services key"
+ " setLongValue not supported")),
+ static_cast< OWeakObject * >(this));
+}
+
+css::uno::Sequence< sal_Int32 > Key::getLongListValue() throw (
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException)
+{
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry textual services key"
+ " getLongListValue not supported")),
+ static_cast< OWeakObject * >(this));
+}
+
+void Key::setLongListValue(css::uno::Sequence< sal_Int32 > const &)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
+{
+ throw css::registry::InvalidRegistryException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry textual services key"
+ " setLongListValue not supported")),
+ static_cast< OWeakObject * >(this));
+}
+
+rtl::OUString Key::getAsciiValue() throw (
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException)
+{
+ State state = STATE_ROOT;
+ OSL_VERIFY(find(rtl::OUString(), 0, &state, 0));
+ switch (state) {
+ case STATE_LOCATION:
+ return data_->implementations[path_[1]].uri;
+ case STATE_ACTIVATOR:
+ return data_->implementations[path_[1]].loader;
+ default:
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry textual services key"
+ " getAsciiValue: wrong type")),
+ static_cast< OWeakObject * >(this));
+ }
+}
+
+void Key::setAsciiValue(rtl::OUString const &)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
+{
+ throw css::registry::InvalidRegistryException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry textual services key"
+ " setAsciiValue not supported")),
+ static_cast< OWeakObject * >(this));
+}
+
+css::uno::Sequence< rtl::OUString > Key::getAsciiListValue() throw (
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException)
+{
+ State state = STATE_ROOT;
+ OSL_VERIFY(find(rtl::OUString(), 0, &state, 0));
+ std::vector< rtl::OUString > const * list;
+ switch (state) {
+ case STATE_SERVICE:
+ list = &data_->services[path_[1]];
+ break;
+ case STATE_REGISTEREDBY:
+ list = &data_->singletons[path_[1]];
+ break;
+ default:
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry textual services key"
+ " getAsciiListValue: wrong type")),
+ static_cast< OWeakObject * >(this));
+ }
+ if (list->size() > SAL_MAX_INT32) {
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry textual services key"
+ " getAsciiListValue: too large")),
+ static_cast< OWeakObject * >(this));
+ }
+ css::uno::Sequence< rtl::OUString > seq(
+ static_cast< sal_Int32 >(list->size()));
+ sal_Int32 i = 0;
+ for (std::vector< rtl::OUString >::const_iterator j(list->begin());
+ j != list->end(); ++j)
+ {
+ seq[i++] = *j;
+ }
+ return seq;
+}
+
+void Key::setAsciiListValue(css::uno::Sequence< rtl::OUString > const &)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
+{
+ throw css::registry::InvalidRegistryException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry textual services key"
+ " setAsciiListValue not supported")),
+ static_cast< OWeakObject * >(this));
+}
+
+rtl::OUString Key::getStringValue() throw (
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException)
+{
+ State state = STATE_ROOT;
+ OSL_VERIFY(find(rtl::OUString(), 0, &state, 0));
+ switch (state) {
+ case STATE_IMPLEMENTATION_SINGLETON:
+ case STATE_SINGLETON:
+ throw css::registry::InvalidRegistryException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry textual services key"
+ " getStringValue: does not associate singletons with"
+ " services")),
+ static_cast< OWeakObject * >(this));
+ default:
+ break;
+ }
+ // default case extracted from switch to avoid erroneous compiler warnings
+ // on Solaris:
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry textual services key"
+ " getStringValue: wrong type")),
+ static_cast< OWeakObject * >(this));
+}
+
+void Key::setStringValue(rtl::OUString const &)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
+{
+ throw css::registry::InvalidRegistryException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry textual services key"
+ " setStringValue not supported")),
+ static_cast< OWeakObject * >(this));
+}
+
+css::uno::Sequence< rtl::OUString > Key::getStringListValue() throw (
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException)
+{
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry textual services key"
+ " getStringListValue not supported")),
+ static_cast< OWeakObject * >(this));
+}
+
+void Key::setStringListValue(css::uno::Sequence< rtl::OUString > const &)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
+{
+ throw css::registry::InvalidRegistryException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry textual services key"
+ " setStringListValue not supported")),
+ static_cast< OWeakObject * >(this));
+}
+
+css::uno::Sequence< sal_Int8 > Key::getBinaryValue()
+ throw (
+ css::registry::InvalidRegistryException,
+ css::registry::InvalidValueException, css::uno::RuntimeException)
+{
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry textual services key"
+ " getBinarValue not supported")),
+ static_cast< OWeakObject * >(this));
+}
+
+void Key::setBinaryValue(css::uno::Sequence< sal_Int8 > const &)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
+{
+ throw css::registry::InvalidRegistryException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry textual services key"
+ " setBinaryValue not supported")),
+ static_cast< OWeakObject * >(this));
+}
+
+css::uno::Reference< css::registry::XRegistryKey > Key::openKey(
+ rtl::OUString const & aKeyName)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
+{
+ std::vector< rtl::OUString > path;
+ if (!find(aKeyName, &path, 0, 0)) {
+ return css::uno::Reference< css::registry::XRegistryKey >();
+ }
+ return new Key(data_, path);
+}
+
+css::uno::Reference< css::registry::XRegistryKey > Key::createKey(
+ rtl::OUString const &)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
+{
+ throw css::registry::InvalidRegistryException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry textual services key"
+ " createKey not supported")),
+ static_cast< OWeakObject * >(this));
+}
+
+void Key::closeKey()
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
+{}
+
+void Key::deleteKey(rtl::OUString const &)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
+{
+ throw css::registry::InvalidRegistryException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry textual services key"
+ " deleteKey not supported")),
+ static_cast< OWeakObject * >(this));
+}
+
+css::uno::Sequence< css::uno::Reference< css::registry::XRegistryKey > >
+Key::openKeys()
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
+{
+ css::uno::Sequence< rtl::OUString > names(getChildren());
+ css::uno::Sequence< css::uno::Reference< css::registry::XRegistryKey > >
+ keys(names.getLength());
+ for (sal_Int32 i = 0; i < keys.getLength(); ++i) {
+ keys[i] = openKey(names[i]);
+ OSL_ASSERT(keys[i].is());
+ }
+ return keys;
+}
+
+css::uno::Sequence< rtl::OUString > Key::getKeyNames()
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
+{
+ css::uno::Sequence< rtl::OUString > names(getChildren());
+ rtl::OUString prefix(pathToString(path_));
+ prefix += rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
+ for (sal_Int32 i = 0; i < names.getLength(); ++i) {
+ names[i] = prefix + names[i];
+ }
+ return names;
+}
+
+sal_Bool Key::createLink(rtl::OUString const &, rtl::OUString const &)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
+{
+ throw css::registry::InvalidRegistryException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry textual services key"
+ " createLink not supported")),
+ static_cast< OWeakObject * >(this));
+}
+
+void Key::deleteLink(rtl::OUString const &)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
+{
+ throw css::registry::InvalidRegistryException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry textual services key"
+ " deleteLink not supported")),
+ static_cast< OWeakObject * >(this));
+}
+
+rtl::OUString Key::getLinkTarget(rtl::OUString const &)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
+{
+ throw css::registry::InvalidRegistryException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry textual services key"
+ " getLinkTarget not supported")),
+ static_cast< OWeakObject * >(this));
+}
+
+rtl::OUString Key::getResolvedName(rtl::OUString const & aKeyName)
+ throw (css::registry::InvalidRegistryException, css::uno::RuntimeException)
+{
+ std::vector< rtl::OUString > path;
+ find(aKeyName, &path, 0, 0);
+ return pathToString(path);
+}
+
+bool Key::find(
+ rtl::OUString const & relative, std::vector< rtl::OUString > * path,
+ State * state, css::registry::RegistryValueType * type) const
+{
+ std::vector< rtl::OUString > p(path_);
+ sal_Int32 i = 0;
+ do {
+ rtl::OUString seg(relative.getToken(0, '/', i));
+ if (seg.getLength() != 0) {
+ p.push_back(seg);
+ }
+ } while (i >= 0);
+ if (path != 0) {
+ *path = p;
+ }
+ std::size_t const MAX_TRANSITIONS = 4;
+ struct StateInfo {
+ css::registry::RegistryValueType type;
+ std::size_t count;
+ struct { char const * segment; State state; }
+ transitions[MAX_TRANSITIONS];
+ };
+ static StateInfo const info[] = {
+ // STATE_ROOT:
+ { css::registry::RegistryValueType_NOT_DEFINED, 3,
+ { { "IMPLEMENTATIONS", STATE_IMPLEMENTATIONS },
+ { "SERVICES", STATE_SERVICES },
+ { "SINGLETONS", STATE_SINGLETONS } } },
+ // STATE_IMPLEMENTATIONS:
+ { css::registry::RegistryValueType_NOT_DEFINED, 1,
+ { { 0, STATE_IMPLEMENTATION } } },
+ // STATE_IMPLEMENTATION:
+ { css::registry::RegistryValueType_NOT_DEFINED, 1,
+ { { "UNO", STATE_UNO } } },
+ // STATE_UNO:
+ { css::registry::RegistryValueType_NOT_DEFINED, 4,
+ { { "LOCATION", STATE_LOCATION },
+ { "ACTIVATOR", STATE_ACTIVATOR },
+ { "SERVICES", STATE_IMPLEMENTATION_SERVICES },
+ { "SINGLETONS", STATE_IMPLEMENTATION_SINGLETONS } } },
+ // STATE_LOCATION:
+ { css::registry::RegistryValueType_ASCII, 0, {} },
+ // STATE_ACTIVATOR:
+ { css::registry::RegistryValueType_ASCII, 0, {} },
+ // STATE_IMPLEMENTATION_SERVICES:
+ { css::registry::RegistryValueType_NOT_DEFINED, 1,
+ { { 0, STATE_IMPLEMENTATION_SERVICE } } },
+ // STATE_IMPLEMENTATION_SERVICE:
+ { css::registry::RegistryValueType_NOT_DEFINED, 0, {} },
+ // STATE_IMPLEMENTATION_SINGLETONS:
+ { css::registry::RegistryValueType_NOT_DEFINED, 1,
+ { { 0, STATE_IMPLEMENTATION_SINGLETON } } },
+ // STATE_IMPLEMENTATION_SINGLETON:
+ { css::registry::RegistryValueType_STRING, 0, {} },
+ // STATE_SERVICES:
+ { css::registry::RegistryValueType_NOT_DEFINED, 1,
+ { { 0, STATE_SERVICE } } },
+ // STATE_SERVICE:
+ { css::registry::RegistryValueType_ASCIILIST, 0, {} },
+ // STATE_SINGLETONS:
+ { css::registry::RegistryValueType_NOT_DEFINED, 1,
+ { { 0, STATE_SINGLETON } } },
+ // STATE_SINGLETON:
+ { css::registry::RegistryValueType_STRING, 1,
+ { { "REGISTERED_BY", STATE_REGISTEREDBY } } },
+ // STATE_REGISTEREDBY:
+ { css::registry::RegistryValueType_ASCIILIST, 0, {} } };
+ State s = STATE_ROOT;
+ for (std::vector< rtl::OUString >::iterator j(p.begin()); j != p.end(); ++j)
+ {
+ bool found = false;
+ for (std::size_t k = 0; k < info[s].count; ++k) {
+ if (info[s].transitions[k].segment == 0) {
+ switch (info[s].transitions[k].state) {
+ case STATE_IMPLEMENTATION:
+ found = data_->implementations.find(*j) !=
+ data_->implementations.end();
+ break;
+ case STATE_IMPLEMENTATION_SERVICE:
+ case STATE_IMPLEMENTATION_SINGLETON:
+ found = true; //TODO
+ break;
+ case STATE_SERVICE:
+ found = data_->services.find(*j) != data_->services.end();
+ break;
+ case STATE_SINGLETON:
+ found = data_->singletons.find(*j) !=
+ data_->singletons.end();
+ break;
+ default:
+ std::abort(); // this cannot happen
+ }
+ } else {
+ found = j->equalsAscii(info[s].transitions[k].segment);
+ }
+ if (found) {
+ s = info[s].transitions[k].state;
+ break;
+ }
+ }
+ if (!found) {
+ return false;
+ }
+ }
+ if (state != 0) {
+ *state = s;
+ }
+ if (type != 0) {
+ *type = info[s].type;
+ }
+ return true;
+}
+
+css::uno::Sequence< rtl::OUString > Key::getChildren() {
+ State state = STATE_ROOT;
+ OSL_VERIFY(find(rtl::OUString(), 0, &state, 0));
+ switch (state) {
+ default:
+ std::abort(); // this cannot happen
+ // pseudo-fall-through to avoid warnings on MSC
+ case STATE_ROOT:
+ {
+ css::uno::Sequence< rtl::OUString > seq(3);
+ seq[0] = rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("IMPLEMENTATIONS"));
+ seq[1] = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SERVICES"));
+ seq[2] = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SINGLETONS"));
+ return seq;
+ }
+ case STATE_IMPLEMENTATIONS:
+ {
+ if (data_->implementations.size() > SAL_MAX_INT32) {
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry textual"
+ " services key openKeys: too large")),
+ static_cast< OWeakObject * >(this));
+ }
+ css::uno::Sequence< rtl::OUString > seq(
+ static_cast< sal_Int32 >(data_->implementations.size()));
+ sal_Int32 i = 0;
+ for (Implementations::iterator j(data_->implementations.begin());
+ j != data_->implementations.end(); ++j)
+ {
+ seq[i++] = j->first;
+ }
+ return seq;
+ }
+ case STATE_UNO:
+ {
+ css::uno::Sequence< rtl::OUString > seq(4);
+ seq[0] = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("LOCATION"));
+ seq[1] = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ACTIVATOR"));
+ seq[2] = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SERVICES"));
+ seq[3] = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("SINGLETONS"));
+ return seq;
+ }
+ case STATE_LOCATION:
+ case STATE_ACTIVATOR:
+ case STATE_IMPLEMENTATION_SERVICE:
+ case STATE_IMPLEMENTATION_SINGLETON:
+ case STATE_SERVICE:
+ case STATE_REGISTEREDBY:
+ return css::uno::Sequence< rtl::OUString >();
+ case STATE_IMPLEMENTATION_SERVICES:
+ {
+ if (data_->implementations[path_[1]].services.size() >
+ SAL_MAX_INT32)
+ {
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry textual"
+ " services key openKeys: too large")),
+ static_cast< OWeakObject * >(this));
+ }
+ css::uno::Sequence< rtl::OUString > seq(
+ static_cast< sal_Int32 >(
+ data_->implementations[path_[1]].services.size()));
+ sal_Int32 i = 0;
+ for (std::vector< rtl::OUString >::iterator j(
+ data_->implementations[path_[1]].services.begin());
+ j != data_->implementations[path_[1]].services.end(); ++j)
+ {
+ seq[i++] = *j;
+ }
+ return seq;
+ }
+ case STATE_IMPLEMENTATION_SINGLETONS:
+ {
+ if (data_->implementations[path_[1]].singletons.size() >
+ SAL_MAX_INT32)
+ {
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry textual"
+ " services key openKeys: too large")),
+ static_cast< OWeakObject * >(this));
+ }
+ css::uno::Sequence< rtl::OUString > seq(
+ static_cast< sal_Int32 >(
+ data_->implementations[path_[1]].singletons.size()));
+ sal_Int32 i = 0;
+ for (std::vector< rtl::OUString >::iterator j(
+ data_->implementations[path_[1]].singletons.begin());
+ j != data_->implementations[path_[1]].singletons.end(); ++j)
+ {
+ seq[i++] = *j;
+ }
+ return seq;
+ }
+ case STATE_SERVICES:
+ {
+ if (data_->services.size() > SAL_MAX_INT32) {
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry textual"
+ " services key openKeys: too large")),
+ static_cast< OWeakObject * >(this));
+ }
+ css::uno::Sequence< rtl::OUString > seq(
+ static_cast< sal_Int32 >(data_->services.size()));
+ sal_Int32 i = 0;
+ for (ImplementationMap::iterator j(data_->services.begin());
+ j != data_->services.end(); ++j)
+ {
+ seq[i++] = j->first;
+ }
+ return seq;
+ }
+ case STATE_SINGLETONS:
+ {
+ if (data_->singletons.size() > SAL_MAX_INT32) {
+ throw css::registry::InvalidValueException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(
+ "com.sun.star.registry.SimpleRegistry textual"
+ " services key openKeys: too large")),
+ static_cast< OWeakObject * >(this));
+ }
+ css::uno::Sequence< rtl::OUString > seq(
+ static_cast< sal_Int32 >(data_->singletons.size()));
+ sal_Int32 i = 0;
+ for (ImplementationMap::iterator j(data_->singletons.begin());
+ j != data_->singletons.end(); ++j)
+ {
+ seq[i++] = j->first;
+ }
+ return seq;
+ }
+ case STATE_SINGLETON:
+ {
+ css::uno::Sequence< rtl::OUString > seq(1);
+ seq[0] = rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("REGISTERED_BY"));
+ return seq;
+ }
+ }
+}
+
+}
+
+TextualServices::TextualServices(rtl::OUString const & uri):
+ uri_(uri), data_(new Data)
+{
+ try {
+ Parser(uri, data_);
+ } catch (css::container::NoSuchElementException &) {
+ throw css::registry::InvalidRegistryException(
+ (uri +
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM(": no such file"))),
+ css::uno::Reference< css::uno::XInterface >());
+ }
+}
+
+TextualServices::~TextualServices() {}
+
+css::uno::Reference< css::registry::XRegistryKey > TextualServices::getRootKey()
+{
+ return new Key(data_, std::vector< rtl::OUString >());
+}
+
+} }
diff --git a/stoc/source/simpleregistry/textualservices.hxx b/stoc/source/simpleregistry/textualservices.hxx
new file mode 100644
index 000000000000..0261e260444e
--- /dev/null
+++ b/stoc/source/simpleregistry/textualservices.hxx
@@ -0,0 +1,67 @@
+/*************************************************************************
+*
+* 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_STOC_SOURCE_SIMPLEREGISTRY_TEXTUALSERVICES_HXX
+#define INCLUDED_STOC_SOURCE_SIMPLEREGISTRY_TEXTUALSERVICES_HXX
+
+#include "sal/config.h"
+
+#include <memory>
+
+#include "boost/noncopyable.hpp"
+#include "com/sun/star/uno/Reference.hxx"
+#include "rtl/ref.hxx"
+#include "rtl/ustring.hxx"
+
+namespace com { namespace sun { namespace star { namespace registry {
+ class XRegistryKey;
+} } } }
+
+namespace stoc { namespace simpleregistry {
+
+class Data;
+
+class TextualServices: private boost::noncopyable {
+public:
+ explicit TextualServices(rtl::OUString const & uri);
+ // throws com::sun::star::registry::InvalidRegistryException
+
+ virtual ~TextualServices();
+
+ inline rtl::OUString getUri() { return uri_; }
+
+ com::sun::star::uno::Reference< com::sun::star::registry::XRegistryKey >
+ getRootKey();
+
+private:
+ rtl::OUString uri_;
+ rtl::Reference< Data > data_;
+};
+
+} }
+
+#endif
diff --git a/stoc/source/stocservices/stocservices.cxx b/stoc/source/stocservices/stocservices.cxx
index 5a276293089a..6270d508eb37 100644
--- a/stoc/source/stocservices/stocservices.cxx
+++ b/stoc/source/stocservices/stocservices.cxx
@@ -102,12 +102,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- return component_writeInfoHelper( pServiceManager, pRegistryKey, g_entries );
-}
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/stoc/test/uriproc/makefile.mk b/stoc/test/uriproc/makefile.mk
index cfdc33e7586b..05ffd5fdd210 100644
--- a/stoc/test/uriproc/makefile.mk
+++ b/stoc/test/uriproc/makefile.mk
@@ -35,6 +35,8 @@ TARGET := test_uriproc
ENABLE_EXCEPTIONS := TRUE
+my_components = stocservices
+
.INCLUDE: settings.mk
CFLAGSCXX += $(CPPUNIT_CFLAGS)
@@ -62,14 +64,20 @@ ALLTAR: test
test .PHONY: $(SHL1TARGETN) $(MISC)/$(TARGET)/services.rdb
$(CPPUNITTESTER) $(SHL1TARGETN) \
- -env:UNO_SERVICES=$(my_file)$(PWD)/$(MISC)/$(TARGET)/services.rdb \
-env:UNO_TYPES=$(my_file)$(SOLARBINDIR)/udkapi.rdb \
- -env:OOO_TEST_PREFIX=$(my_file)$(PWD)/$(DLLDEST)/
+ -env:UNO_SERVICES=$(my_file)$(PWD)/$(MISC)/$(TARGET)/services.rdb \
+ -env:URE_INTERNAL_LIB_DIR=$(my_file)$(PWD)/$(DLLDEST)
+
+$(MISC)/$(TARGET)/services.rdb .ERRREMOVE: $(SOLARENV)/bin/packcomponents.xslt \
+ $(MISC)/$(TARGET)/services.input \
+ $(my_components:^"$(MISC)/":+".component")
+ $(XSLTPROC) --nonet --stringparam prefix $(PWD)/$(MISC)/ -o $@ \
+ $(SOLARENV)/bin/packcomponents.xslt $(MISC)/$(TARGET)/services.input
-$(MISC)/$(TARGET)/services.rdb:
+$(MISC)/$(TARGET)/services.input:
$(MKDIRHIER) $(@:d)
- $(RM) $@
- $(REGCOMP) -register -r $@ -wop=vnd.sun.star.expand:\$${{OOO_TEST_PREFIX}} \
- -c $(DLLDEST)/stocservices.uno$(DLLPOST)
+ echo \
+ '<list>$(my_components:^"<filename>":+".component</filename>")</list>' \
+ > $@
.END
diff --git a/stoc/util/bootstrap.component b/stoc/util/bootstrap.component
new file mode 100644
index 000000000000..ccc131b4a6db
--- /dev/null
+++ b/stoc/util/bootstrap.component
@@ -0,0 +1,62 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.stoc.DLLComponentLoader">
+ <service name="com.sun.star.loader.SharedLibrary"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.stoc.ImplementationRegistration">
+ <service name="com.sun.star.registry.ImplementationRegistration"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.stoc.NestedRegistry">
+ <service name="com.sun.star.registry.NestedRegistry"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.stoc.ORegistryServiceManager">
+ <service name="com.sun.star.lang.RegistryServiceManager"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.stoc.OServiceManager">
+ <service name="com.sun.star.lang.ServiceManager"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.stoc.OServiceManagerWrapper"/>
+ <implementation name="com.sun.star.comp.stoc.RegistryTypeDescriptionProvider">
+ <service name="com.sun.star.reflection.TypeDescriptionProvider"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.stoc.SimpleRegistry">
+ <service name="com.sun.star.registry.SimpleRegistry"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.stoc.TypeDescriptionManager">
+ <service name="com.sun.star.reflection.TypeDescriptionManager"/>
+ </implementation>
+ <implementation name="com.sun.star.security.comp.stoc.AccessController">
+ <service name="com.sun.star.security.AccessController"/>
+ </implementation>
+ <implementation name="com.sun.star.security.comp.stoc.FilePolicy">
+ <service name="com.sun.star.security.Policy"/>
+ </implementation>
+</component>
diff --git a/stoc/util/makefile.mk b/stoc/util/makefile.mk
index 4243d45511fe..32f229cc3d14 100644
--- a/stoc/util/makefile.mk
+++ b/stoc/util/makefile.mk
@@ -57,7 +57,8 @@ SHL1STDLIBS= \
$(SALHELPERLIB) \
$(CPPUHELPERLIB) \
$(SALLIB) \
- $(REGLIB)
+ $(REGLIB) \
+ $(XMLREADERLIB)
SHL1DEPN=
SHL1IMPLIB= i$(TARGET)
@@ -94,3 +95,16 @@ DEF2NAME= $(SHL2TARGET)
.INCLUDE : target.mk
+ALLTAR : $(MISC)/bootstrap.component $(MISC)/stocservices.component
+
+$(MISC)/bootstrap.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ bootstrap.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_URE_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt bootstrap.component
+
+$(MISC)/stocservices.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt stocservices.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_URE_NATIVE)$(SHL2TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt stocservices.component
diff --git a/stoc/util/stocservices.component b/stoc/util/stocservices.component
new file mode 100644
index 000000000000..fb3528728347
--- /dev/null
+++ b/stoc/util/stocservices.component
@@ -0,0 +1,51 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.stoc.TypeConverter">
+ <service name="com.sun.star.script.Converter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.uri.ExternalUriReferenceTranslator">
+ <service name="com.sun.star.uri.ExternalUriReferenceTranslator"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.uri.UriReferenceFactory">
+ <service name="com.sun.star.uri.UriReferenceFactory"/>
+ </implementation>
+ <implementation
+ name="com.sun.star.comp.uri.UriSchemeParser_vndDOTsunDOTstarDOTexpand">
+ <service name="com.sun.star.uri.UriSchemeParser_vndDOTsunDOTstarDOTexpand"/>
+ </implementation>
+ <implementation
+ name="com.sun.star.comp.uri.UriSchemeParser_vndDOTsunDOTstarDOTscript">
+ <service name="com.sun.star.uri.UriSchemeParser_vndDOTsunDOTstarDOTscript"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.uri.VndSunStarPkgUrlReferenceFactory">
+ <service name="com.sun.star.uri.VndSunStarPkgUrlReferenceFactory"/>
+ </implementation>
+</component>
diff --git a/svl/inc/lngmisc.hxx b/svl/inc/lngmisc.hxx
index d85de673c4c9..5143d147227d 100644..100755
--- a/svl/inc/lngmisc.hxx
+++ b/svl/inc/lngmisc.hxx
@@ -32,6 +32,7 @@
#include <tools/solar.h>
#include <sal/types.h>
#include <rtl/ustring.hxx>
+#include <tools/string.hxx>
///////////////////////////////////////////////////////////////////////////
@@ -68,6 +69,8 @@ SVL_DLLPUBLIC BOOL RemoveControlChars( rtl::OUString &rTxt );
SVL_DLLPUBLIC BOOL ReplaceControlChars( rtl::OUString &rTxt, sal_Char aRplcChar = ' ' );
+SVL_DLLPUBLIC String GetThesaurusReplaceText( const String &rText );
+
} // namespace linguistic
#endif
diff --git a/svl/prj/d.lst b/svl/prj/d.lst
index a5c2564e81cd..d79346c16087 100644
--- a/svl/prj/d.lst
+++ b/svl/prj/d.lst
@@ -20,3 +20,6 @@ dos: sh -c "if test %OS% = MACOSX; then macosx-create-bundle %_DEST%\bin%_EXT%\b
*.xml %_DEST%\xml%_EXT%\*.xml
+..\%__SRC%\misc\fsstorage.component %_DEST%\xml%_EXT%\fsstorage.component
+..\%__SRC%\misc\passwordcontainer.component %_DEST%\xml%_EXT%\passwordcontainer.component
+..\%__SRC%\misc\svl.component %_DEST%\xml%_EXT%\svl.component
diff --git a/svl/source/fsstor/fsfactory.cxx b/svl/source/fsstor/fsfactory.cxx
index 298b6f555e2a..62fc88f6053a 100644
--- a/svl/source/fsstor/fsfactory.cxx
+++ b/svl/source/fsstor/fsfactory.cxx
@@ -240,30 +240,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment (
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo (
- void * /* pServiceManager */, void * pRegistryKey)
-{
- if (pRegistryKey)
- {
- uno::Reference< registry::XRegistryKey > xRegistryKey (
- reinterpret_cast< registry::XRegistryKey*>(pRegistryKey));
-
- uno::Reference< registry::XRegistryKey > xNewKey;
- xNewKey = xRegistryKey->createKey(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
- FSStorageFactory::impl_staticGetImplementationName() +
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES")));
-
- const uno::Sequence< ::rtl::OUString > aServices (
- FSStorageFactory::impl_staticGetSupportedServiceNames());
- for( sal_Int32 i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- return sal_True;
- }
- return sal_False;
-}
-
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory (
const sal_Char * pImplementationName, void * pServiceManager, void * /* pRegistryKey */)
{
diff --git a/svl/source/fsstor/fsstorage.component b/svl/source/fsstor/fsstorage.component
new file mode 100644
index 000000000000..3ef0be825972
--- /dev/null
+++ b/svl/source/fsstor/fsstorage.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.embed.FileSystemStorageFactory">
+ <service name="com.sun.star.comp.embed.FileSystemStorageFactory"/>
+ <service name="com.sun.star.embed.FileSystemStorageFactory"/>
+ </implementation>
+</component>
diff --git a/svl/source/fsstor/makefile.mk b/svl/source/fsstor/makefile.mk
index dc91814772f9..1dd5d2307037 100644
--- a/svl/source/fsstor/makefile.mk
+++ b/svl/source/fsstor/makefile.mk
@@ -64,3 +64,11 @@ DEF1NAME= $(SHL1TARGET)
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/fsstorage.component
+
+$(MISC)/fsstorage.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ fsstorage.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt fsstorage.component
diff --git a/svl/source/misc/lngmisc.cxx b/svl/source/misc/lngmisc.cxx
index 2203cc08458e..488e317c6f58 100644..100755
--- a/svl/source/misc/lngmisc.cxx
+++ b/svl/source/misc/lngmisc.cxx
@@ -27,6 +27,7 @@
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_svl.hxx"
+
#include <lngmisc.hxx>
#include <tools/solar.h>
#include <tools/string.hxx>
@@ -132,6 +133,38 @@ BOOL ReplaceControlChars( rtl::OUString &rTxt, sal_Char /*aRplcChar*/ )
return bModified;
}
+
+String GetThesaurusReplaceText( const String &rText )
+{
+ // The strings for synonyms returned by the thesaurus sometimes have some
+ // explanation text put in between '(' and ')' or a trailing '*'.
+ // These parts should not be put in the ReplaceEdit Text that may get
+ // inserted into the document. Thus we strip them from the text.
+
+ String aText( rText );
+
+ xub_StrLen nPos = aText.Search( sal_Unicode('(') );
+ while (STRING_NOTFOUND != nPos)
+ {
+ xub_StrLen nEnd = aText.Search( sal_Unicode(')'), nPos );
+ if (STRING_NOTFOUND != nEnd)
+ aText.Erase( nPos, nEnd-nPos+1 );
+ else
+ break;
+ nPos = aText.Search( sal_Unicode('(') );
+ }
+
+ nPos = aText.Search( sal_Unicode('*') );
+ if (STRING_NOTFOUND != nPos)
+ aText.Erase( nPos );
+
+ // remove any possible remaining ' ' that may confuse the thesaurus
+ // when it gets called with the text
+ aText.EraseLeadingAndTrailingChars( sal_Unicode(' ') );
+
+ return aText;
+}
+
///////////////////////////////////////////////////////////////////////////
} // namespace linguistic
diff --git a/svl/source/passwordcontainer/makefile.mk b/svl/source/passwordcontainer/makefile.mk
index d9eb9615cf80..626a6ffc5830 100644
--- a/svl/source/passwordcontainer/makefile.mk
+++ b/svl/source/passwordcontainer/makefile.mk
@@ -60,3 +60,11 @@ DEF1NAME= $(SHL1TARGET)
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/passwordcontainer.component
+
+$(MISC)/passwordcontainer.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt passwordcontainer.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt passwordcontainer.component
diff --git a/svl/source/passwordcontainer/passwordcontainer.component b/svl/source/passwordcontainer/passwordcontainer.component
new file mode 100644
index 000000000000..42eb47cf14dd
--- /dev/null
+++ b/svl/source/passwordcontainer/passwordcontainer.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="stardiv.svl.PasswordContainer">
+ <service name="com.sun.star.task.PasswordContainer"/>
+ </implementation>
+</component>
diff --git a/svl/source/passwordcontainer/passwordcontainer.cxx b/svl/source/passwordcontainer/passwordcontainer.cxx
index 7db18c65db1f..6e92d390eea9 100644
--- a/svl/source/passwordcontainer/passwordcontainer.cxx
+++ b/svl/source/passwordcontainer/passwordcontainer.cxx
@@ -1543,24 +1543,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment (
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo (
- void * /* pServiceManager */, void * pRegistryKey)
-{
- if (pRegistryKey)
- {
- Reference< XRegistryKey > xRegistryKey (
- reinterpret_cast< XRegistryKey* >( pRegistryKey ));
- Reference< XRegistryKey > xNewKey;
-
- xNewKey = xRegistryKey->createKey(
- ::rtl::OUString::createFromAscii( "/stardiv.svl.PasswordContainer/UNO/SERVICES" ));
- xNewKey->createKey( ::rtl::OUString::createFromAscii("com.sun.star.task.PasswordContainer"));
-
- return sal_True;
- }
- return sal_False;
-}
-
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory (
const sal_Char * pImplementationName, void * pServiceManager, void * /* pRegistryKey */)
{
diff --git a/svl/source/uno/registerservices.cxx b/svl/source/uno/registerservices.cxx
index ab01d308c2da..8edbccc2d435 100644
--- a/svl/source/uno/registerservices.cxx
+++ b/svl/source/uno/registerservices.cxx
@@ -60,37 +60,6 @@ SVL_DLLPUBLIC void SAL_CALL component_getImplementationEnvironment (
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-SVL_DLLPUBLIC sal_Bool SAL_CALL component_writeInfo (
- void * /* _pServiceManager */, void * _pRegistryKey)
-{
- if (_pRegistryKey)
- {
- Reference< css::registry::XRegistryKey > xRegistryKey (
- reinterpret_cast< css::registry::XRegistryKey* >(_pRegistryKey));
- Reference< css::registry::XRegistryKey > xNewKey;
-
- xNewKey = xRegistryKey->createKey (
- OUString::createFromAscii(
- "/com.sun.star.uno.util.numbers.SvNumberFormatsSupplierServiceObject/UNO/SERVICES" ) );
- xNewKey->createKey (
- OUString::createFromAscii( "com.sun.star.util.NumberFormatsSupplier" ) );
-
- xNewKey = xRegistryKey->createKey (
- OUString::createFromAscii(
- "/com.sun.star.uno.util.numbers.SvNumberFormatterServiceObject/UNO/SERVICES" ) );
- xNewKey->createKey (
- OUString::createFromAscii( "com.sun.star.util.NumberFormatter" ) );
-
- xNewKey = xRegistryKey->createKey(
- OUString::createFromAscii( "/com.sun.star.comp.svl.PathService/UNO/SERVICES" ) );
- xNewKey->createKey (
- OUString::createFromAscii( "com.sun.star.config.SpecialConfigManager" ) );
-
- return sal_True;
- }
- return sal_False;
-}
-
SVL_DLLPUBLIC void* SAL_CALL component_getFactory (
const sal_Char * pImplementationName, void * _pServiceManager, void * /* _pRegistryKey*/)
{
diff --git a/svl/util/makefile.mk b/svl/util/makefile.mk
index 3cb87dcd33ad..7cb493ae0d94 100644
--- a/svl/util/makefile.mk
+++ b/svl/util/makefile.mk
@@ -120,3 +120,11 @@ ALL: $(SLB)$/svl.lib \
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/svl.component
+
+$(MISC)/svl.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ svl.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt svl.component
diff --git a/svl/util/svl.component b/svl/util/svl.component
new file mode 100644
index 000000000000..4af1a31f5782
--- /dev/null
+++ b/svl/util/svl.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.svl.PathService">
+ <service name="com.sun.star.config.SpecialConfigManager"/>
+ </implementation>
+ <implementation name="com.sun.star.uno.util.numbers.SvNumberFormatsSupplierServiceObject">
+ <service name="com.sun.star.util.NumberFormatsSupplier"/>
+ </implementation>
+ <implementation name="com.sun.star.uno.util.numbers.SvNumberFormatterServiceObject">
+ <service name="com.sun.star.util.NumberFormatter"/>
+ </implementation>
+</component>
diff --git a/svtools/prj/d.lst b/svtools/prj/d.lst
index b46ddef72311..7b9c6a1957e3 100644
--- a/svtools/prj/d.lst
+++ b/svtools/prj/d.lst
@@ -38,3 +38,6 @@ dos: sh -c "if test %OS% = MACOSX; then macosx-create-bundle %_DEST%\bin%_EXT%\b
*.xml %_DEST%\xml%_EXT%\*.xml
+..\%__SRC%\misc\hatchwindowfactory.component %_DEST%\xml%_EXT%\hatchwindowfactory.component
+..\%__SRC%\misc\productregistration.uno.component %_DEST%\xml%_EXT%\productregistration.uno.component
+..\%__SRC%\misc\svt.component %_DEST%\xml%_EXT%\svt.component
diff --git a/svtools/source/hatchwindow/hatchwindowfactory.component b/svtools/source/hatchwindow/hatchwindowfactory.component
new file mode 100644
index 000000000000..153fc8796281
--- /dev/null
+++ b/svtools/source/hatchwindow/hatchwindowfactory.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.embed.DocumentCloser">
+ <service name="com.sun.star.embed.DocumentCloser"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.embed.HatchWindowFactory">
+ <service name="com.sun.star.comp.embed.HatchWindowFactory"/>
+ <service name="com.sun.star.embed.HatchWindowFactory"/>
+ </implementation>
+</component>
diff --git a/svtools/source/hatchwindow/hatchwindowfactory.cxx b/svtools/source/hatchwindow/hatchwindowfactory.cxx
index f8dbddff3761..0eec027167c2 100644
--- a/svtools/source/hatchwindow/hatchwindowfactory.cxx
+++ b/svtools/source/hatchwindow/hatchwindowfactory.cxx
@@ -112,45 +112,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment (
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo (
- void * /* pServiceManager */, void * pRegistryKey)
-{
- if (pRegistryKey)
- {
- uno::Reference< registry::XRegistryKey> xRegistryKey (
- reinterpret_cast< registry::XRegistryKey* >(pRegistryKey));
- uno::Reference< registry::XRegistryKey> xNewKey;
-
- // OHatchWindowFactory registration
-
- xNewKey = xRegistryKey->createKey (
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
- OHatchWindowFactory::impl_staticGetImplementationName() +
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) );
-
- uno::Sequence< ::rtl::OUString > aServices =
- OHatchWindowFactory::impl_staticGetSupportedServiceNames();
- for (sal_Int32 i = 0, n = aServices.getLength(); i < n; i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
-
- // ODocumentCloser registration
-
- xNewKey = xRegistryKey->createKey (
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
- ODocumentCloser::impl_staticGetImplementationName() +
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) );
-
- aServices = ODocumentCloser::impl_staticGetSupportedServiceNames();
- for (sal_Int32 i = 0, n = aServices.getLength(); i < n; i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
-
- return sal_True;
- }
- return sal_False;
-}
-
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory (
const sal_Char * pImplementationName, void * pServiceManager, void * /* pRegistryKey */)
{
diff --git a/svtools/source/hatchwindow/makefile.mk b/svtools/source/hatchwindow/makefile.mk
index 316e4ab1bfe2..3c736bc4e66a 100644
--- a/svtools/source/hatchwindow/makefile.mk
+++ b/svtools/source/hatchwindow/makefile.mk
@@ -63,3 +63,11 @@ DEF1NAME= $(SHL1TARGET)
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/hatchwindowfactory.component
+
+$(MISC)/hatchwindowfactory.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt hatchwindowfactory.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt hatchwindowfactory.component
diff --git a/svtools/source/productregistration/makefile.mk b/svtools/source/productregistration/makefile.mk
index a26e8feca753..b6e119601697 100644
--- a/svtools/source/productregistration/makefile.mk
+++ b/svtools/source/productregistration/makefile.mk
@@ -76,3 +76,11 @@ RESLIB1SRSFILES=\
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/productregistration.uno.component
+
+$(MISC)/productregistration.uno.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt productregistration.uno.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt productregistration.uno.component
diff --git a/svtools/source/productregistration/productregistration.cxx b/svtools/source/productregistration/productregistration.cxx
index 39629f5c3f77..cb3a9b7a7702 100644
--- a/svtools/source/productregistration/productregistration.cxx
+++ b/svtools/source/productregistration/productregistration.cxx
@@ -461,25 +461,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment (
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo (
- void * /* pServiceManager */, void * pRegistryKey)
-{
- if (pRegistryKey)
- {
- Reference< XRegistryKey > xRegistryKey (
- reinterpret_cast< XRegistryKey* >( pRegistryKey ));
- Reference< XRegistryKey > xNewKey;
-
- xNewKey = xRegistryKey->createKey(
- OUString::createFromAscii( "/" PRODREG_IMPLNAME "/UNO/SERVICES" ));
- xNewKey->createKey(
- OUString::createFromAscii( PRODREG_SERVNAME ));
-
- return sal_True;
- }
- return sal_False;
-}
-
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory (
const sal_Char * pImplementationName, void * pServiceManager, void * /* pRegistryKey */)
{
diff --git a/svtools/source/productregistration/productregistration.uno.component b/svtools/source/productregistration/productregistration.uno.component
new file mode 100644
index 000000000000..da2cfd37c483
--- /dev/null
+++ b/svtools/source/productregistration/productregistration.uno.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.setup.ProductRegistration">
+ <service name="com.sun.star.setup.ProductRegistration"/>
+ </implementation>
+</component>
diff --git a/svtools/source/uno/miscservices.cxx b/svtools/source/uno/miscservices.cxx
index e16a1ecb56dc..34984976bf07 100644
--- a/svtools/source/uno/miscservices.cxx
+++ b/svtools/source/uno/miscservices.cxx
@@ -101,55 +101,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment (
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo (
- void * pServiceManager, void * _pRegistryKey )
-{
- if (_pRegistryKey)
- {
- Reference< XRegistryKey > xRegistryKey (
- reinterpret_cast< XRegistryKey* >( _pRegistryKey ));
- Reference< XRegistryKey > xNewKey;
- uno::Sequence< ::rtl::OUString > aServices;
-
- xNewKey = xRegistryKey->createKey (
- OUString::createFromAscii( "/com.sun.star.comp.svtools.OAddressBookSourceDialogUno/UNO/SERVICES" ) );
- xNewKey->createKey(
- OUString::createFromAscii( "com.sun.star.ui.AddressBookSourceDialog" ) );
-
- xNewKey = xRegistryKey->createKey (
- OUString::createFromAscii( "/com.sun.star.svtools.SvFilterOptionsDialog/UNO/SERVICES" ) );
- xNewKey->createKey (
- OUString::createFromAscii( "com.sun.star.ui.dialogs.FilterOptionsDialog" ) );
-
- // GraphicProvider
- xNewKey = reinterpret_cast< registry::XRegistryKey * >( _pRegistryKey )->createKey(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
- GraphicProvider::getImplementationName_Static() +
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) );
-
- aServices = GraphicProvider::getSupportedServiceNames_Static();
- int i;
- for( i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[ i ] );
-
- // GraphicRendererVCL
- xNewKey = reinterpret_cast< registry::XRegistryKey * >( _pRegistryKey )->createKey(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
- GraphicRendererVCL::getImplementationName_Static() +
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) );
-
- aServices = ( GraphicRendererVCL::getSupportedServiceNames_Static() );
- for( i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[ i ] );
-
- if ( !component_writeInfoHelper( reinterpret_cast< lang::XMultiServiceFactory* >( pServiceManager ), reinterpret_cast< registry::XRegistryKey* >( _pRegistryKey ), serviceDecl ) )
- return false;
-
- return ::cppu::component_writeInfoHelper( pServiceManager, _pRegistryKey, s_aServiceEntries );
- }
- return sal_False;
-}
-
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory (
const sal_Char * pImplementationName, void * _pServiceManager, void * pRegistryKey)
{
diff --git a/svtools/util/makefile.mk b/svtools/util/makefile.mk
index f9c14a540410..27b46488a16c 100644
--- a/svtools/util/makefile.mk
+++ b/svtools/util/makefile.mk
@@ -190,3 +190,11 @@ ALL: $(SLB)$/svt.lib \
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/svt.component
+
+$(MISC)/svt.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ svt.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt svt.component
diff --git a/svtools/util/svt.component b/svtools/util/svt.component
new file mode 100644
index 000000000000..e15970547a38
--- /dev/null
+++ b/svtools/util/svt.component
@@ -0,0 +1,49 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.graphic.GraphicProvider">
+ <service name="com.sun.star.graphic.GraphicProvider"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.graphic.GraphicRendererVCL">
+ <service name="com.sun.star.graphic.GraphicRendererVCL"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.svtools.OAddressBookSourceDialogUno">
+ <service name="com.sun.star.ui.AddressBookSourceDialog"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.svtools.uno.Wizard">
+ <service name="com.sun.star.ui.dialogs.Wizard"/>
+ </implementation>
+ <implementation name="com.sun.star.graphic.GraphicObject">
+ <service name="com.sun.star.graphic.GraphicObject"/>
+ </implementation>
+ <implementation name="com.sun.star.svtools.SvFilterOptionsDialog">
+ <service name="com.sun.star.ui.dialogs.FilterOptionsDialog"/>
+ </implementation>
+</component>
diff --git a/svx/prj/d.lst b/svx/prj/d.lst
index 2403c04c43a0..f8b71ea69440 100644
--- a/svx/prj/d.lst
+++ b/svx/prj/d.lst
@@ -552,3 +552,6 @@ mkdir: %_DEST%\inc%_EXT%\svx\sdr\table
..\inc\svx\helperhittest3d.hxx %_DEST%\inc%_EXT%\svx\helperhittest3d.hxx
..\%__SRC%\bin\*-layout.zip %_DEST%\pck%_EXT%\*.*
+..\%__SRC%\misc\svx.component %_DEST%\xml%_EXT%\svx.component
+..\%__SRC%\misc\svxcore.component %_DEST%\xml%_EXT%\svxcore.component
+..\%__SRC%\misc\textconversiondlgs.component %_DEST%\xml%_EXT%\textconversiondlgs.component
diff --git a/svx/source/core/coreservices.cxx b/svx/source/core/coreservices.cxx
index 1f1d69781756..588623dbb39a 100644
--- a/svx/source/core/coreservices.cxx
+++ b/svx/source/core/coreservices.cxx
@@ -77,44 +77,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment (
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-static void writeInfo (
- XRegistryKey * pRegistryKey,
- const OUString& rImplementationName,
- const Sequence< OUString >& rServices)
-{
- Reference< XRegistryKey > xNewKey(
- pRegistryKey->createKey(
- OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) + rImplementationName + OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) ) );
-
- for( sal_Int32 i = 0; i < rServices.getLength(); i++ )
- xNewKey->createKey( rServices.getConstArray()[i]);
-}
-
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo (
- void * , void * pRegistryKey)
-{
- if( pRegistryKey )
- {
- try
- {
- XRegistryKey *pKey = reinterpret_cast< XRegistryKey * >( pRegistryKey );
-
- writeInfo( pKey, ::svx::ExtrusionDepthController_getImplementationName(),::svx::ExtrusionDepthController_getSupportedServiceNames() );
- writeInfo( pKey, ::svx::ExtrusionDirectionControl_getImplementationName(),::svx::ExtrusionDirectionControl_getSupportedServiceNames() );
- writeInfo( pKey, ::svx::ExtrusionLightingControl_getImplementationName(),::svx::ExtrusionLightingControl_getSupportedServiceNames() );
- writeInfo( pKey, ::svx::ExtrusionSurfaceControl_getImplementationName(),::svx::ExtrusionSurfaceControl_getSupportedServiceNames() );
- writeInfo( pKey, ::svx::FontWorkAlignmentControl_getImplementationName(),::svx::FontWorkAlignmentControl_getSupportedServiceNames() );
- writeInfo( pKey, ::svx::FontWorkCharacterSpacingControl_getImplementationName(),::svx::FontWorkCharacterSpacingControl_getSupportedServiceNames() );
- }
- catch (InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
-
- return sal_True;
-}
-
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory (
const sal_Char * pImplName, void * pServiceManager, void * )
{
diff --git a/svx/source/items/svxitems.src b/svx/source/items/svxitems.src
index e21ea8fc6e4b..d80f871d8b3c 100644
--- a/svx/source/items/svxitems.src
+++ b/svx/source/items/svxitems.src
@@ -32,7 +32,7 @@
StringArray RID_ATTR_NAMES
{
- ItemList =
+ ItemList [ en-US ] =
{
< "Scale" ; SID_ATTR_ZOOM ; > ;
< "Brush" ; SID_ATTR_BRUSH ; > ;
diff --git a/svx/source/unodialogs/textconversiondlgs/makefile.mk b/svx/source/unodialogs/textconversiondlgs/makefile.mk
index b5013ca9d165..ec0cdca2620e 100644
--- a/svx/source/unodialogs/textconversiondlgs/makefile.mk
+++ b/svx/source/unodialogs/textconversiondlgs/makefile.mk
@@ -88,3 +88,11 @@ $(SRS)$/$(TARGET).srs: $(INCCOM)$/chinese_direction.hrc
$(SLO)$/chinese_dictionarydialog.obj: $(INCCOM)$/chinese_direction.hrc
$(SLO)$/chinese_translationdialog.obj: $(INCCOM)$/chinese_direction.hrc
+
+ALLTAR : $(MISC)/textconversiondlgs.component
+
+$(MISC)/textconversiondlgs.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt textconversiondlgs.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt textconversiondlgs.component
diff --git a/svx/source/unodialogs/textconversiondlgs/services.cxx b/svx/source/unodialogs/textconversiondlgs/services.cxx
index e397ba9e5860..02d18cef9c45 100644
--- a/svx/source/unodialogs/textconversiondlgs/services.cxx
+++ b/svx/source/unodialogs/textconversiondlgs/services.cxx
@@ -53,13 +53,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- return ::cppu::component_writeInfoHelper(
- pServiceManager, pRegistryKey, g_entries_unodialogs_chinesetranslation );
-}
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/svx/source/unodialogs/textconversiondlgs/textconversiondlgs.component b/svx/source/unodialogs/textconversiondlgs/textconversiondlgs.component
new file mode 100644
index 000000000000..184743583645
--- /dev/null
+++ b/svx/source/unodialogs/textconversiondlgs/textconversiondlgs.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.linguistic2.ChineseTranslationDialog">
+ <service name="com.sun.star.linguistic2.ChineseTranslationDialog"/>
+ </implementation>
+</component>
diff --git a/svx/source/unodraw/unoctabl.cxx b/svx/source/unodraw/unoctabl.cxx
index bf7a848d71c6..dbe9c735e2bd 100644
--- a/svx/source/unodraw/unoctabl.cxx
+++ b/svx/source/unodraw/unoctabl.cxx
@@ -261,60 +261,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment (
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-static void writeInfo (
- registry::XRegistryKey * pRegistryKey,
- const OUString& rImplementationName,
- const uno::Sequence< OUString >& rServices)
-{
- uno::Reference< registry::XRegistryKey > xNewKey(
- pRegistryKey->createKey(
- OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) + rImplementationName + OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) ) );
-
- for( sal_Int32 i = 0; i < rServices.getLength(); i++ )
- xNewKey->createKey( rServices.getConstArray()[i]);
-}
-
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo (
- void * , void * pRegistryKey)
-{
- if( pRegistryKey )
- {
- try
- {
- registry::XRegistryKey *pKey = reinterpret_cast< registry::XRegistryKey * >( pRegistryKey );
-
- writeInfo( pKey, SvxShapeCollection::getImplementationName_Static(), SvxShapeCollection::getSupportedServiceNames_Static() );
- writeInfo( pKey, SvxUnoColorTable::getImplementationName_Static(), SvxUnoColorTable::getSupportedServiceNames_Static() );
- writeInfo( pKey, EnhancedCustomShapeEngine_getImplementationName(), EnhancedCustomShapeEngine_getSupportedServiceNames() );
- writeInfo( pKey, svx::RecoveryUI::st_getImplementationName(), svx::RecoveryUI::st_getSupportedServiceNames() );
- writeInfo( pKey, svx::GraphicExporter_getImplementationName(), svx::GraphicExporter_getSupportedServiceNames() );
- writeInfo( pKey, svx::FontHeightToolBoxControl::getImplementationName_Static(), svx::FontHeightToolBoxControl::getSupportedServiceNames_Static() );
-
- writeInfo( pKey, svx::FindTextToolbarController::getImplementationName_Static(), svx::FindTextToolbarController::getSupportedServiceNames_Static() );
- writeInfo( pKey, svx::DownSearchToolboxController::getImplementationName_Static(), svx::DownSearchToolboxController::getSupportedServiceNames_Static() );
- writeInfo( pKey, svx::UpSearchToolboxController::getImplementationName_Static(), svx::UpSearchToolboxController::getSupportedServiceNames_Static() );
- writeInfo( pKey, svx::FindbarDispatcher::getImplementationName_Static(), svx::FindbarDispatcher::getSupportedServiceNames_Static() );
-
- writeInfo( pKey, ::unogallery::GalleryThemeProvider_getImplementationName(),::unogallery::GalleryThemeProvider_getSupportedServiceNames() );
-
- // XPrimitiveFactory2D
- writeInfo( pKey,
- drawinglayer::primitive2d::PrimitiveFactory2D::getImplementationName_Static(),
- drawinglayer::primitive2d::PrimitiveFactory2D::getSupportedServiceNames_Static() );
-
- writeInfo( pKey, ::svx::SvXMLGraphicImportHelper_getImplementationName(),::svx::SvXMLGraphicImportHelper_getSupportedServiceNames() );
- writeInfo( pKey, ::svx::SvXMLGraphicExportHelper_getImplementationName(),::svx::SvXMLGraphicExportHelper_getSupportedServiceNames() );
-// writeInfo( pKey, ::svx::ExtrusionDepthController_getImplementationName(),::svx::ExtrusionDepthController_getSupportedServiceNames() );
- }
- catch (registry::InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
-
- return sal_True;
-}
-
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory (
const sal_Char * pImplName, void * pServiceManager, void * )
{
diff --git a/svx/util/gal.dxp b/svx/util/gal.dxp
index 227006cc4e9f..e8f2e0a94819 100644
--- a/svx/util/gal.dxp
+++ b/svx/util/gal.dxp
@@ -17,5 +17,4 @@ Gallery_InsertSdrObj
Gallery_GetThemeNameFromId
Gallery_BeginLocking
Gallery_EndLocking
-component_writeInfo
component_getFactory
diff --git a/svx/util/makefile.mk b/svx/util/makefile.mk
index 050decc8d4f5..18f52487e483 100644
--- a/svx/util/makefile.mk
+++ b/svx/util/makefile.mk
@@ -196,3 +196,17 @@ RESLIB1SRSFILES= $(SRSFILELIST)
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/svx.component $(MISC)/svxcore.component
+
+$(MISC)/svx.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ svx.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL2TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt svx.component
+
+$(MISC)/svxcore.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ svxcore.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt svxcore.component
diff --git a/svx/util/svx.component b/svx/util/svx.component
new file mode 100644
index 000000000000..5907d69fef50
--- /dev/null
+++ b/svx/util/svx.component
@@ -0,0 +1,76 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.Draw.GraphicExporter">
+ <service name="com.sun.star.drawing.GraphicExportFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Svx.GraphicExportHelper">
+ <service name="com.sun.star.document.BinaryStreamResolver"/>
+ <service name="com.sun.star.document.GraphicObjectResolver"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Svx.GraphicImportHelper">
+ <service name="com.sun.star.document.BinaryStreamResolver"/>
+ <service name="com.sun.star.document.GraphicObjectResolver"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.gallery.GalleryThemeProvider">
+ <service name="com.sun.star.gallery.GalleryThemeProvider"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.graphic.PrimitiveFactory2D">
+ <service name="com.sun.star.graphic.PrimitiveFactory2D"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.svx.Impl.FindbarDispatcher">
+ <service name="com.sun.star.comp.svx.FindbarDispatcher"/>
+ <service name="com.sun.star.frame.ProtocolHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.svx.RecoveryUI">
+ <service name="com.sun.star.dialog.RecoveryUI"/>
+ </implementation>
+ <implementation name="com.sun.star.drawing.EnhancedCustomShapeEngine">
+ <service name="com.sun.star.drawing.CustomShapeEngine"/>
+ </implementation>
+ <implementation name="com.sun.star.drawing.SvxShapeCollection">
+ <service name="com.sun.star.drawing.ShapeCollection"/>
+ </implementation>
+ <implementation name="com.sun.star.drawing.SvxUnoColorTable">
+ <service name="com.sun.star.drawing.ColorTable"/>
+ </implementation>
+ <implementation name="com.sun.star.svx.DownSearchToolboxController">
+ <service name="com.sun.star.frame.ToolbarController"/>
+ </implementation>
+ <implementation name="com.sun.star.svx.FindTextToolboxController">
+ <service name="com.sun.star.frame.ToolbarController"/>
+ </implementation>
+ <implementation name="com.sun.star.svx.FontHeightToolBoxController">
+ <service name="com.sun.star.frame.ToolbarController"/>
+ </implementation>
+ <implementation name="com.sun.star.svx.UpSearchToolboxController">
+ <service name="com.sun.star.frame.ToolbarController"/>
+ </implementation>
+</component>
diff --git a/svx/util/svx.dxp b/svx/util/svx.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/svx/util/svx.dxp
+++ b/svx/util/svx.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/svx/util/svxcore.component b/svx/util/svxcore.component
new file mode 100644
index 000000000000..2f829cb52a77
--- /dev/null
+++ b/svx/util/svxcore.component
@@ -0,0 +1,49 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.svx.ExtrusionDepthController">
+ <service name="com.sun.star.frame.PopupMenuController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.svx.ExtrusionDirectionController">
+ <service name="com.sun.star.frame.ToolbarController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.svx.ExtrusionLightingController">
+ <service name="com.sun.star.frame.ToolbarController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.svx.ExtrusionSurfaceController">
+ <service name="com.sun.star.frame.ToolbarController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.svx.FontWorkAlignmentController">
+ <service name="com.sun.star.frame.ToolbarController"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.svx.FontWorkCharacterSpacingController">
+ <service name="com.sun.star.frame.ToolbarController"/>
+ </implementation>
+</component>
diff --git a/sw/prj/d.lst b/sw/prj/d.lst
index d7e75a09564e..0cb261c5f0f1 100644
--- a/sw/prj/d.lst
+++ b/sw/prj/d.lst
@@ -36,6 +36,7 @@ mkdir: %_DEST%\xml%_EXT%\uiconfig\modules\swreport\statusbar
..\%__SRC%\bin\vbaswobj*.dll %_DEST%\bin%_EXT%\vbaswobj*.dll
..\%__SRC%\bin\sw*.res %_DEST%\bin%_EXT%\sw*.res
..\%__SRC%\lib\lib*.* %_DEST%\lib%_EXT%\lib*.*
+..\%__SRC%\misc\swd.component %_DEST%\xml%_EXT%\swd.component
..\uiconfig\swriter\menubar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\swriter\menubar\*.xml
..\uiconfig\swxform\menubar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\swxform\menubar\*.xml
@@ -57,3 +58,5 @@ mkdir: %_DEST%\xml%_EXT%\uiconfig\modules\swreport\statusbar
..\uiconfig\swreport\statusbar\*.xml %_DEST%\xml%_EXT%\uiconfig\modules\swreport\statusbar\*.xml
..\%__SRC%\bin\*-layout.zip %_DEST%\pck%_EXT%\*.*
+..\%__SRC%\misc\sw.component %_DEST%\xml%_EXT%\sw.component
+..\%__SRC%\misc\vbaswobj.component %_DEST%\xml%_EXT%\vbaswobj.component
diff --git a/sw/source/core/doc/doc.cxx b/sw/source/core/doc/doc.cxx
index 5ca8cb83d234..2df835f06c12 100755..100644
--- a/sw/source/core/doc/doc.cxx
+++ b/sw/source/core/doc/doc.cxx
@@ -1714,16 +1714,22 @@ sal_uInt16 SwDoc::GetPageCount() const
const Size SwDoc::GetPageSize( sal_uInt16 nPageNum, bool bSkipEmptyPages ) const
{
Size aSize;
- if( GetRootFrm() && nPageNum )
+ if ( GetRootFrm() && nPageNum )
{
const SwPageFrm* pPage = static_cast<const SwPageFrm*>
(GetRootFrm()->Lower());
- while( --nPageNum && pPage->GetNext() )
+ while ( --nPageNum && pPage->GetNext() )
+ {
pPage = static_cast<const SwPageFrm*>( pPage->GetNext() );
+ }
- if( !bSkipEmptyPages && pPage->IsEmptyPage() && pPage->GetNext() )
+ // switch to next page for an empty page, if empty pages are not skipped
+ // in order to get a sensible page size for an empty page - e.g. for printing.
+ if ( !bSkipEmptyPages && pPage->IsEmptyPage() && pPage->GetNext() )
+ {
pPage = static_cast<const SwPageFrm*>( pPage->GetNext() );
+ }
aSize = pPage->Frm().SSize();
}
diff --git a/sw/source/core/draw/dcontact.cxx b/sw/source/core/draw/dcontact.cxx
index 2e19d482fc70..766c3ca86377 100644
--- a/sw/source/core/draw/dcontact.cxx
+++ b/sw/source/core/draw/dcontact.cxx
@@ -1396,6 +1396,37 @@ void SwDrawContact::_Changed( const SdrObject& rObj,
DisconnectFromLayout( false );
break;
}
+ case SDRUSERCALL_CHILD_INSERTED :
+ case SDRUSERCALL_CHILD_REMOVED :
+ {
+ // --> AW, OD 2010-09-13 #i113730#
+ // force layer of controls for group objects containing control objects
+ if(dynamic_cast< SdrObjGroup* >(maAnchoredDrawObj.DrawObj()))
+ {
+ if(::CheckControlLayer(maAnchoredDrawObj.DrawObj()))
+ {
+ const IDocumentDrawModelAccess* pIDDMA = static_cast<SwFrmFmt*>(pRegisteredIn)->getIDocumentDrawModelAccess();
+ const SdrLayerID aCurrentLayer(maAnchoredDrawObj.DrawObj()->GetLayer());
+ const SdrLayerID aControlLayerID(pIDDMA->GetControlsId());
+ const SdrLayerID aInvisibleControlLayerID(pIDDMA->GetInvisibleControlsId());
+
+ if(aCurrentLayer != aControlLayerID && aCurrentLayer != aInvisibleControlLayerID)
+ {
+ if ( aCurrentLayer == pIDDMA->GetInvisibleHellId() ||
+ aCurrentLayer == pIDDMA->GetInvisibleHeavenId() )
+ {
+ maAnchoredDrawObj.DrawObj()->SetLayer(aInvisibleControlLayerID);
+ }
+ else
+ {
+ maAnchoredDrawObj.DrawObj()->SetLayer(aControlLayerID);
+ }
+ }
+ }
+ }
+ // fallthrough intended here
+ // <--
+ }
case SDRUSERCALL_MOVEONLY:
case SDRUSERCALL_RESIZE:
case SDRUSERCALL_CHILD_MOVEONLY :
@@ -1403,8 +1434,6 @@ void SwDrawContact::_Changed( const SdrObject& rObj,
case SDRUSERCALL_CHILD_CHGATTR :
case SDRUSERCALL_CHILD_DELETE :
case SDRUSERCALL_CHILD_COPY :
- case SDRUSERCALL_CHILD_INSERTED :
- case SDRUSERCALL_CHILD_REMOVED :
{
// --> OD 2004-08-04 #i31698# - improvement:
// get instance <SwAnchoredDrawObject> only once
diff --git a/sw/source/core/frmedt/feshview.cxx b/sw/source/core/frmedt/feshview.cxx
index 17e4b1ed4873..f334ddcaee2f 100644
--- a/sw/source/core/frmedt/feshview.cxx
+++ b/sw/source/core/frmedt/feshview.cxx
@@ -599,7 +599,7 @@ bool SwFEShell::IsSelContainsControl() const
// if we have one marked object, get the SdrObject and check
// whether it contains a control
const SdrObject* pSdrObject = pMarkList->GetMark( 0 )->GetMarkedSdrObj();
- bRet = CheckControlLayer( pSdrObject );
+ bRet = ::CheckControlLayer( pSdrObject );
}
return bRet;
}
@@ -994,8 +994,14 @@ void SwFEShell::ChangeOpaque( SdrLayerID nLayerId )
SdrObject* pObj = rMrkList.GetMark( i )->GetMarkedSdrObj();
// OD 21.08.2003 #i18447# - no change of layer for controls
// or group objects containing controls.
- const bool bControlObj = ::CheckControlLayer( pObj );
- //if ( pObj->GetLayer() != nLayerId && pObj->GetLayer() != nControls )
+ // --> OD 2010-09-14 #i113730#
+ // consider that a member of a drawing group has been selected.
+ const SwContact* pContact = ::GetUserCall( pObj );
+ ASSERT( pContact && pContact->GetMaster(), "<SwFEShell::ChangeOpaque(..)> - missing contact or missing master object at contact!" );
+ const bool bControlObj = ( pContact && pContact->GetMaster() )
+ ? ::CheckControlLayer( pContact->GetMaster() )
+ : ::CheckControlLayer( pObj );
+ // <--
if ( !bControlObj && pObj->GetLayer() != nLayerId )
{
pObj->SetLayer( nLayerId );
diff --git a/sw/source/core/layout/fly.cxx b/sw/source/core/layout/fly.cxx
index cd590d73ddcc..d69df532682f 100644
--- a/sw/source/core/layout/fly.cxx
+++ b/sw/source/core/layout/fly.cxx
@@ -51,6 +51,9 @@
#include <layhelp.hxx>
#include <ndtxt.hxx>
+// --> OD 2010-09-14 #i113730#
+#include <svx/svdogrp.hxx>
+// <--
// OD 16.04.2003 #i13147# - for <SwFlyFrm::GetContour(..)>
#include <ndgrf.hxx>
// OD 29.10.2003 #113049#
@@ -2250,6 +2253,30 @@ void SwFrm::AppendDrawObj( SwAnchoredObject& _rNewObj )
_rNewObj.ChgAnchorFrm( this );
}
+ // --> OD 2010-09-14 #i113730#
+ // Assure the control objects and group objects containing controls are on the control layer
+ if ( ::CheckControlLayer( _rNewObj.DrawObj() ) )
+ {
+ const IDocumentDrawModelAccess* pIDDMA = GetUpper()->GetFmt()->getIDocumentDrawModelAccess();
+ const SdrLayerID aCurrentLayer(_rNewObj.DrawObj()->GetLayer());
+ const SdrLayerID aControlLayerID(pIDDMA->GetControlsId());
+ const SdrLayerID aInvisibleControlLayerID(pIDDMA->GetInvisibleControlsId());
+
+ if(aCurrentLayer != aControlLayerID && aCurrentLayer != aInvisibleControlLayerID)
+ {
+ if ( aCurrentLayer == pIDDMA->GetInvisibleHellId() ||
+ aCurrentLayer == pIDDMA->GetInvisibleHeavenId() )
+ {
+ _rNewObj.DrawObj()->SetLayer(aInvisibleControlLayerID);
+ }
+ else
+ {
+ _rNewObj.DrawObj()->SetLayer(aControlLayerID);
+ }
+ }
+ }
+ // <--
+
// no direct positioning needed, but invalidate the drawing object position
_rNewObj.InvalidateObjPos();
diff --git a/sw/source/filter/ww8/docxexportfilter.cxx b/sw/source/filter/ww8/docxexportfilter.cxx
index 13715fcd2bbe..0da676da99a1 100644
--- a/sw/source/filter/ww8/docxexportfilter.cxx
+++ b/sw/source/filter/ww8/docxexportfilter.cxx
@@ -127,30 +127,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment( const
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( void* /* pServiceManager */, void* pRegistryKey )
-{
- sal_Bool bRet = sal_False;
-
- if( pRegistryKey )
- {
- try
- {
- uno::Reference< registry::XRegistryKey > xNewKey1(
- static_cast< registry::XRegistryKey* >( pRegistryKey )->createKey(
- OUString::createFromAscii( IMPL_NAME "/UNO/SERVICES/" ) ) );
- xNewKey1->createKey( DocxExport_getSupportedServiceNames().getConstArray()[0] );
-
- bRet = sal_True;
- }
- catch( registry::InvalidRegistryException& )
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
-
- return bRet;
-}
-
// ------------------------
// - component_getFactory -
// ------------------------
diff --git a/sw/source/filter/xml/xmlexpit.cxx b/sw/source/filter/xml/xmlexpit.cxx
index 5a8f201f7cb0..07a4c911fc7e 100644
--- a/sw/source/filter/xml/xmlexpit.cxx
+++ b/sw/source/filter/xml/xmlexpit.cxx
@@ -926,9 +926,15 @@ sal_Bool SvXMLExportItemMapper::QueryXMLValue(
if( MID_PAGEDESC_PAGENUMOFFSET==nMemberId )
{
-
- rUnitConverter.convertNumber(
- aOut, (sal_Int32)pPageDesc->GetNumOffset() );
+ sal_Int32 const number(pPageDesc->GetNumOffset());
+ if (0 >= number)
+ {
+ aOut.append(GetXMLToken(XML_AUTO));
+ }
+ else // #i114163# positiveInteger only!
+ {
+ rUnitConverter.convertNumber(aOut, number);
+ }
bOk = sal_True;
}
}
diff --git a/sw/source/ui/lingu/olmenu.cxx b/sw/source/ui/lingu/olmenu.cxx
index 281e3ce3fabb..e9bb702b3d66 100644..100755
--- a/sw/source/ui/lingu/olmenu.cxx
+++ b/sw/source/ui/lingu/olmenu.cxx
@@ -823,7 +823,6 @@ void SwSpellPopup::Execute( USHORT nId )
else if (MN_DICTIONARIES_START <= nId && nId <= MN_DICTIONARIES_END)
{
OUString aWord( xSpellAlt->getWord() );
-// DBG_ASSERT( nDicIdx < aDics.getLength(), "dictionary index out of range" );
PopupMenu *pMenu = GetPopupMenu(MN_ADD_TO_DIC);
String aDicName ( pMenu->GetItemText(nId) );
diff --git a/sw/source/ui/uiview/pview.cxx b/sw/source/ui/uiview/pview.cxx
index 27fe1a65641f..8b6eeb9e7a5e 100644..100755
--- a/sw/source/ui/uiview/pview.cxx
+++ b/sw/source/ui/uiview/pview.cxx
@@ -217,8 +217,7 @@ SwPreViewZoomDlg::SwPreViewZoomDlg( SwPagePreViewWin& rParent ) :
Beschreibung:
--------------------------------------------------------------------*/
-
- SwPreViewZoomDlg::~SwPreViewZoomDlg() {}
+SwPreViewZoomDlg::~SwPreViewZoomDlg() {}
void SwPreViewZoomDlg::Apply()
@@ -228,491 +227,6 @@ void SwPreViewZoomDlg::Apply()
BYTE(aColEdit.GetValue()) );
}
-/* */
-/* -----------------20.08.98 15:25-------------------
- * Vorschau fuer den Seitendruck
- * --------------------------------------------------*/
-struct PrintSettingsStruct;
-class PrtPrvWindow : public Window
-{
- const PrintSettingsStruct& rSettings;
-
- virtual void Paint(const Rectangle&);
-public :
- PrtPrvWindow(Window* pParent, const ResId& rResId, const PrintSettingsStruct& rSett) :
- Window(pParent, rResId), rSettings(rSett){}
-};
-/*--------------------------------------------------------------------
- Beschreibung: Optionen fuer das Drucken der Preview
- --------------------------------------------------------------------*/
-struct PrintSettingsStruct
-{
- Size aPageMaxSize; // groesste Seite
- Size aPrtSize; // Papiergroesse
- Size aPrvPrtSize; // Groesse innerhalb der LRTB-Raender
- Size aGridSize; // Groesse fuer jede Seite, enthaelt je
- // die Haelfte von H- und V-Distance
-
- long nLeft;
- long nRight;
- long nTop;
- long nBottom;
- long nHori;
- long nVert;
-
- USHORT nRows;
- USHORT nCols;
-
- BOOL bPrinterLandscape; // Ausrichtung
-};
-
-class SwPreviewPrintOptionsDialog : public SvxStandardDialog
-{
- FixedLine aRowColFL;
- FixedText aRowsFT;
- NumericField aRowsNF;
- FixedText aColsFT;
- NumericField aColsNF;
-
- FixedLine aMarginFL;
- FixedText aLSpaceFT;
- MetricField aLSpaceMF;
- FixedText aRSpaceFT;
- MetricField aRSpaceMF;
- FixedText aTSpaceFT;
- MetricField aTSpaceMF;
- FixedText aBSpaceFT;
- MetricField aBSpaceMF;
- FixedLine aDistanceFL;
- FixedText aHSpaceFT;
- MetricField aHSpaceMF;
- FixedText aVSpaceFT;
- MetricField aVSpaceMF;
-
- RadioButton aLandscapeRB;
- RadioButton aPortraitRB;
- FixedLine aOrientationFL;
-
- PrtPrvWindow aPreviewWin;
-
- OKButton aOkBtn;
- CancelButton aCancelBtn;
- HelpButton aHelpBtn;
-
- PushButton aStandardPB;
-
- SwPagePreView& rPreView;
- SwPagePreViewWin& rParentWin;
- PrintSettingsStruct aSettings;
-/* Size aPageMaxSize;
- Size aPrtSize;
-
- BOOL bOrientation;
-*/
- BOOL bStandard;
-
- virtual void Apply();
- void FillControls(SwPagePreViewPrtData& rData);
-
- DECL_LINK( ModifyHdl, Edit* );
- DECL_LINK( StandardHdl, PushButton* );
-
-public:
- SwPreviewPrintOptionsDialog(SwPagePreViewWin& rParent, SwPagePreView& rView);
- ~SwPreviewPrintOptionsDialog();
-};
-
-/* -----------------19.08.98 13:35-------------------
- *
- * --------------------------------------------------*/
-SwPreviewPrintOptionsDialog::SwPreviewPrintOptionsDialog( SwPagePreViewWin& rParent, SwPagePreView& rView ) :
- SvxStandardDialog( &rParent, SW_RES(DLG_PAGEPREVIEW_PRINTOPTIONS) ),
- aRowColFL(this,SW_RES( FL_ROWCOL)),
- aRowsFT(this,SW_RES( FT_ROWS)),
- aRowsNF(this,SW_RES( NF_ROWS)),
- aColsFT(this,SW_RES( FT_COLS)),
- aColsNF(this,SW_RES( NF_COLS)),
- aMarginFL(this,SW_RES( FL_MARGINS)),
- aLSpaceFT(this,SW_RES( FT_LMARGIN)),
- aLSpaceMF(this,SW_RES( MF_LMARGIN)),
- aRSpaceFT(this,SW_RES( FT_RMARGIN)),
- aRSpaceMF(this,SW_RES( MF_RMARGIN)),
- aTSpaceFT(this,SW_RES( FT_TMARGIN)),
- aTSpaceMF(this,SW_RES( MF_TMARGIN)),
- aBSpaceFT(this,SW_RES( FT_BMARGIN)),
- aBSpaceMF(this,SW_RES( MF_BMARGIN)),
- aDistanceFL(this,SW_RES(FL_DISTANCE)),
- aHSpaceFT(this,SW_RES( FT_HMARGIN)),
- aHSpaceMF(this,SW_RES( MF_HMARGIN)),
- aVSpaceFT(this,SW_RES( FT_VMARGIN)),
- aVSpaceMF(this,SW_RES( MF_VMARGIN)),
- aLandscapeRB(this,SW_RES( RB_LANDSCAPE)),
- aPortraitRB(this,SW_RES( RB_PORTRAIT)),
- aOrientationFL(this,SW_RES( FL_ORIENTATION)),
- aPreviewWin(this,SW_RES( WIN_PREVIEW), aSettings),
- aOkBtn(this,SW_RES(BT_OK)),
- aCancelBtn(this,SW_RES(BT_CANCEL)),
- aHelpBtn(this,SW_RES(BT_HELP)),
- aStandardPB(this,SW_RES(PB_STANDARD)),
- rPreView(rView),
- rParentWin(rParent),
- bStandard(TRUE)
-{
- FreeResource();
- ViewShell& rViewSh = *rPreView.GetViewShell();
- // OD 18.12.2002 #103492#
- aSettings.aPageMaxSize = rViewSh.PagePreviewLayout()->GetMaxPageSize();
- SfxPrinter* pPrinter = rViewSh.getIDocumentDeviceAccess()->getPrinter( true );
- aSettings.aPrtSize = pPrinter->GetPaperSize();
- //#97682# make sure that no division by zero occurs
- if(!aSettings.aPrtSize.Width() || !aSettings.aPrtSize.Height())
- aSettings.aPrtSize = SvxPaperInfo::GetPaperSize(PAPER_A4);
- aSettings.bPrinterLandscape = pPrinter->GetOrientation() == ORIENTATION_LANDSCAPE;
-
-
- SwDocShell* pDocShell = rPreView.GetDocShell();
- const SwMasterUsrPref *pUsrPref = SW_MOD()->GetUsrPref(0 != PTR_CAST(SwWebDocShell, pDocShell));
- FieldUnit eFieldUnit = pUsrPref->GetMetric();
- ::SetFieldUnit( aLSpaceMF, eFieldUnit );
- ::SetFieldUnit( aRSpaceMF, eFieldUnit );
- ::SetFieldUnit( aTSpaceMF, eFieldUnit );
- ::SetFieldUnit( aBSpaceMF, eFieldUnit );
- ::SetFieldUnit( aHSpaceMF, eFieldUnit );
- ::SetFieldUnit( aVSpaceMF, eFieldUnit );
-
- SwDoc* pDoc = pDocShell->GetDoc();
- SwPagePreViewPrtData aData;
- if(pDoc->GetPreViewPrtData())
- {
- aData = *pDoc->GetPreViewPrtData();
- bStandard = FALSE;
- }
- else
- {
- // Orientation der PreviewData an den Drucker anpassen
- aData.SetLandscape(aSettings.bPrinterLandscape);
- aData.SetRow(rParent.GetRow());
- aData.SetCol(rParent.GetCol());
- }
- FillControls(aData);
-
- aLSpaceMF.SaveValue();
- aRSpaceMF.SaveValue();
- aTSpaceMF.SaveValue();
- aBSpaceMF.SaveValue();
- aHSpaceMF.SaveValue();
- aVSpaceMF.SaveValue();
- aRowsNF.SaveValue();
- aColsNF.SaveValue();
- aLandscapeRB.SaveValue();
- aPortraitRB.SaveValue();
-
- aStandardPB.SetClickHdl(LINK(this, SwPreviewPrintOptionsDialog, StandardHdl));
- Link aLk = LINK(this, SwPreviewPrintOptionsDialog, ModifyHdl);
- aLSpaceMF.SetUpHdl(aLk);
- aRSpaceMF.SetUpHdl(aLk);
- aTSpaceMF.SetUpHdl(aLk);
- aBSpaceMF.SetUpHdl(aLk);
- aHSpaceMF.SetUpHdl(aLk);
- aVSpaceMF.SetUpHdl(aLk);
- aRowsNF.SetUpHdl(aLk);
- aColsNF.SetUpHdl(aLk);
- aLSpaceMF.SetDownHdl(aLk);
- aRSpaceMF.SetDownHdl(aLk);
- aTSpaceMF.SetDownHdl(aLk);
- aBSpaceMF.SetDownHdl(aLk);
- aHSpaceMF.SetDownHdl(aLk);
- aVSpaceMF.SetDownHdl(aLk);
- aRowsNF.SetDownHdl(aLk);
- aColsNF.SetDownHdl(aLk);
- aLSpaceMF.SetLoseFocusHdl(aLk);
- aRSpaceMF.SetLoseFocusHdl(aLk);
- aTSpaceMF.SetLoseFocusHdl(aLk);
- aBSpaceMF.SetLoseFocusHdl(aLk);
- aHSpaceMF.SetLoseFocusHdl(aLk);
- aVSpaceMF.SetLoseFocusHdl(aLk);
- aRowsNF.SetLoseFocusHdl(aLk);
- aColsNF.SetLoseFocusHdl(aLk);
- aLandscapeRB.SetClickHdl(aLk);
- aPortraitRB.SetClickHdl(aLk);
-
- ModifyHdl(0);
- if(bStandard)
- StandardHdl(&aStandardPB);
-}
-
-
-/* -----------------19.08.98 13:36-------------------
- *
- * --------------------------------------------------*/
-SwPreviewPrintOptionsDialog::~SwPreviewPrintOptionsDialog()
-{
-}
-/* -----------------12.11.98 11:32-------------------
- *
- * --------------------------------------------------*/
-void SwPreviewPrintOptionsDialog::FillControls(SwPagePreViewPrtData& rData)
-{
- aLSpaceMF.SetValue(aLSpaceMF.Normalize(rData.GetLeftSpace() ), FUNIT_TWIP);
- aRSpaceMF.SetValue(aRSpaceMF.Normalize(rData.GetRightSpace() ), FUNIT_TWIP);
- aTSpaceMF.SetValue(aTSpaceMF.Normalize(rData.GetTopSpace() ), FUNIT_TWIP);
- aBSpaceMF.SetValue(aBSpaceMF.Normalize(rData.GetBottomSpace()), FUNIT_TWIP);
- aHSpaceMF.SetValue(aHSpaceMF.Normalize(rData.GetHorzSpace() ), FUNIT_TWIP);
- aVSpaceMF.SetValue(aVSpaceMF.Normalize(rData.GetVertSpace() ), FUNIT_TWIP);
- aRowsNF.SetValue(rData.GetRow());
- aColsNF.SetValue(rData.GetCol());
- aSettings.bPrinterLandscape ? aLandscapeRB.Check() : aPortraitRB.Check();
- // wenn Drucker und Einstellungen nicht uebereinstimmen, dann Seiten tauschen
- if( rData.GetLandscape() != aSettings.bPrinterLandscape )
- {
- Size aTmp(aSettings.aPrtSize.Height(), aSettings.aPrtSize.Width());
- aSettings.aPrtSize = aTmp;
- aSettings.bPrinterLandscape = !aSettings.bPrinterLandscape;
- // nochmal setzen, denn auch wenn nur die Default-Orientierung dem Drucker
- // angepasst wurde, sollen die Einstellungen gespeichert werden
- aSettings.bPrinterLandscape ? aLandscapeRB.Check() : aPortraitRB.Check();
- }
- aLandscapeRB.SaveValue();
- aPortraitRB.SaveValue();
-
- aSettings.nLeft = rData.GetLeftSpace() ;
- aSettings.nRight = rData.GetRightSpace() ;
- aSettings.nTop = rData.GetTopSpace() ;
- aSettings.nBottom = rData.GetBottomSpace();
- aSettings.nHori = rData.GetHorzSpace() ;
- aSettings.nVert = rData.GetVertSpace() ;
- aSettings.nRows = rData.GetRow() ;
- aSettings.nCols = rData.GetCol() ;
- aSettings.aPrvPrtSize = aSettings.aPrtSize ;
-}
-
-/* -----------------19.08.98 14:31-------------------
- *
- * --------------------------------------------------*/
-void SwPreviewPrintOptionsDialog::Apply()
-{
-
- SwDoc* pDoc = rPreView.GetDocShell()->GetDoc();
- if(bStandard)
- pDoc->SetPreViewPrtData(0);
- else if( aLSpaceMF.GetSavedValue() != aLSpaceMF.GetText() ||
- aRSpaceMF.GetSavedValue() != aRSpaceMF.GetText() ||
- aTSpaceMF.GetSavedValue() != aTSpaceMF.GetText() ||
- aBSpaceMF.GetSavedValue() != aBSpaceMF.GetText() ||
- aHSpaceMF.GetSavedValue() != aHSpaceMF.GetText() ||
- aVSpaceMF.GetSavedValue() != aVSpaceMF.GetText() ||
- aRowsNF.GetSavedValue() != aRowsNF.GetText() ||
- aColsNF.GetSavedValue() != aColsNF.GetText() ||
- aLandscapeRB.GetSavedValue() != aLandscapeRB.IsChecked() ||
- aPortraitRB.GetSavedValue() != aPortraitRB.IsChecked() )
- {
- SwPagePreViewPrtData aData;
- if(pDoc->GetPreViewPrtData())
- aData = *pDoc->GetPreViewPrtData();
- aData.SetLeftSpace( static_cast< ULONG >(aLSpaceMF.Denormalize(aLSpaceMF.GetValue(FUNIT_TWIP))) );
- aData.SetRightSpace( static_cast< ULONG >(aRSpaceMF.Denormalize(aRSpaceMF.GetValue(FUNIT_TWIP))) );
- aData.SetTopSpace( static_cast< ULONG >(aTSpaceMF.Denormalize(aTSpaceMF.GetValue(FUNIT_TWIP))) );
- aData.SetBottomSpace( static_cast< ULONG >(aBSpaceMF.Denormalize(aBSpaceMF.GetValue(FUNIT_TWIP))) );
-
- aData.SetHorzSpace( static_cast< ULONG >(aHSpaceMF.Denormalize(aHSpaceMF.GetValue(FUNIT_TWIP))) );
- aData.SetVertSpace( static_cast< ULONG >(aVSpaceMF.Denormalize(aVSpaceMF.GetValue(FUNIT_TWIP))) );
- aData.SetRow((BYTE)aRowsNF.GetValue());
- aData.SetCol((BYTE)aColsNF.GetValue());
- aData.SetLandscape(aLandscapeRB.IsChecked());
-
- ViewShell& rViewSh = *rPreView.GetViewShell();
- SfxPrinter* pPrinter = rViewSh.getIDocumentDeviceAccess()->getPrinter( true );
- if((pPrinter->GetOrientation() == ORIENTATION_LANDSCAPE)
- != aData.GetLandscape())
- pPrinter->SetOrientation(aData.GetLandscape() ? ORIENTATION_LANDSCAPE : ORIENTATION_PORTRAIT);
-
-
- pDoc->SetPreViewPrtData(&aData);
-
- }
-}
-/* -----------------20.08.98 08:48-------------------
- *
- * --------------------------------------------------*/
-IMPL_LINK( SwPreviewPrintOptionsDialog, ModifyHdl, Edit*, pEdit )
-{
- if(bStandard && pEdit)
- {
- aLSpaceMF.SetUserValue(aLSpaceMF.GetValue());
- aRSpaceMF.SetUserValue(aRSpaceMF.GetValue());
- aTSpaceMF.SetUserValue(aTSpaceMF.GetValue());
- aBSpaceMF.SetUserValue(aBSpaceMF.GetValue());
- aHSpaceMF.SetUserValue(aHSpaceMF.GetValue());
- aVSpaceMF.SetUserValue(aVSpaceMF.GetValue());
- aRowsNF. SetUserValue(aRowsNF .GetValue());
- aColsNF. SetUserValue(aColsNF .GetValue());
-
- bStandard = FALSE;
- }
- BOOL bOrientChanged = aSettings.bPrinterLandscape != aLandscapeRB.IsChecked();;
- if(pEdit == &aLSpaceMF)
- aSettings.nLeft = static_cast< long >(aLSpaceMF.Denormalize(aLSpaceMF.GetValue(FUNIT_TWIP)));
- else if(pEdit == &aRSpaceMF)
- aSettings.nRight = static_cast< long >(aRSpaceMF.Denormalize(aRSpaceMF.GetValue(FUNIT_TWIP)));
- else if(pEdit == &aTSpaceMF)
- aSettings.nTop = static_cast< long >(aTSpaceMF.Denormalize(aTSpaceMF.GetValue(FUNIT_TWIP)));
- else if(pEdit == &aBSpaceMF)
- aSettings.nBottom = static_cast< long >(aBSpaceMF.Denormalize(aBSpaceMF.GetValue(FUNIT_TWIP)));
- else if(pEdit == &aHSpaceMF)
- aSettings.nHori = static_cast< long >(aHSpaceMF.Denormalize(aHSpaceMF.GetValue(FUNIT_TWIP)));
- else if(pEdit == &aVSpaceMF)
- aSettings.nVert = static_cast< long >(aVSpaceMF.Denormalize(aVSpaceMF.GetValue(FUNIT_TWIP)));
- else if(pEdit == &aRowsNF)
- aSettings.nRows = (USHORT)aRowsNF.GetValue();
- else if(pEdit == &aColsNF)
- aSettings.nCols = (USHORT)aColsNF.GetValue();
- else if(pEdit == (Edit*)&aLandscapeRB)
- aSettings.bPrinterLandscape = aLandscapeRB.IsChecked();
- else if(pEdit == (Edit*)&aPortraitRB)
- aSettings.bPrinterLandscape = aLandscapeRB.IsChecked();
-
- if(bOrientChanged)
- {
- Size aTmp(aSettings.aPrtSize.Height(), aSettings.aPrtSize.Width());
- aSettings.aPrtSize = aTmp;
- }
-
-
- aSettings.aPrvPrtSize = Size(aSettings.aPrtSize.Width() - aSettings.nRight - aSettings.nLeft,
- aSettings.aPrtSize.Height() - aSettings.nTop - aSettings.nBottom);
- aSettings.aGridSize = Size(aSettings.aPrvPrtSize.Width() / aSettings.nCols,
- aSettings.aPrvPrtSize.Height() / aSettings.nRows );
- // was fehlt noch: Orientation auswerten, minimalrand ausrechnen, Beispiel fuettern
-
-
- //am Ende Maximalwerte setzen
- long n20Percent = aSettings.aPrtSize.Width() / 5;
- aLSpaceMF.SetMax(aLSpaceMF.Normalize(aSettings.aPrtSize.Width() - aSettings.nRight - n20Percent), FUNIT_TWIP);
- aRSpaceMF.SetMax(aRSpaceMF.Normalize(aSettings.aPrtSize.Width() - aSettings.nLeft - n20Percent), FUNIT_TWIP);
- n20Percent = aSettings.aPrtSize.Height() / 5;
- aTSpaceMF.SetMax(aTSpaceMF.Normalize(aSettings.aPrtSize.Height() - aSettings.nBottom - n20Percent), FUNIT_TWIP);
- aBSpaceMF.SetMax(aBSpaceMF.Normalize(aSettings.aPrtSize.Height() - aSettings.nTop - n20Percent), FUNIT_TWIP);
-
- long n80Percent = aSettings.aPrvPrtSize.Width() * 4 / 5;
- aHSpaceMF.SetMax(aHSpaceMF.Normalize(n80Percent / aSettings.nRows), FUNIT_TWIP);
- n80Percent = aSettings.aPrvPrtSize.Height()* 4 / 5;
- aVSpaceMF.SetMax(aVSpaceMF.Normalize(n80Percent / aSettings.nCols), FUNIT_TWIP);
- aHSpaceMF.Enable(aSettings.nCols > 1);
- aVSpaceMF.Enable(aSettings.nRows > 1);
- aRowsNF.SetMin(1);// nur damit auch nach Standard wieder der Inhalt angezeigt wird
- aColsNF.SetMin(1);
-
-
- aPreviewWin.Invalidate();
- return 0;
-}
-/* -----------------28.08.98 14:59-------------------
- *
- * --------------------------------------------------*/
-IMPL_LINK( SwPreviewPrintOptionsDialog, StandardHdl, PushButton*, EMPTYARG )
-{
- SetUpdateMode(TRUE);
- SwPagePreViewPrtData aData;
- aData.SetRow(rParentWin.GetRow());
- aData.SetCol(rParentWin.GetCol());
- FillControls(aData);
- bStandard = TRUE;
- aLSpaceMF.SetText(aEmptyStr);
- aRSpaceMF.SetText(aEmptyStr);
- aTSpaceMF.SetText(aEmptyStr);
- aBSpaceMF.SetText(aEmptyStr);
- aHSpaceMF.SetText(aEmptyStr);
- aVSpaceMF.SetText(aEmptyStr);
- aPreviewWin.Invalidate();
- SetUpdateMode(FALSE);
- return 0;
-}
-/* -----------------20.08.98 15:28-------------------
- * Preview anzeigen
- * --------------------------------------------------*/
-void PrtPrvWindow::Paint(const Rectangle&)
-{
- Size aWinSize(GetOutputSizePixel());
- long nWidth = rSettings.aPrtSize.Width();
- long nHeight = rSettings.aPrtSize.Height();
- BOOL bHoriValid = (aWinSize.Width() * 100 / aWinSize.Height()) <
- (rSettings.aPrtSize.Width() * 100/ rSettings.aPrtSize.Height());
- Fraction aXScale( aWinSize.Width(), Max( nWidth , 1L ) );
- Fraction aYScale( aWinSize.Height(), Max( nHeight, 1L ) );
- MapMode aMapMode( GetMapMode() );
- aMapMode.SetScaleX( bHoriValid ? aXScale : aYScale);
- aMapMode.SetScaleY( bHoriValid ? aXScale : aYScale);
- SetMapMode( aMapMode );
-
- aWinSize = GetOutputSize();
-
- Point aOffset(0,0);
- if(bHoriValid)
- aOffset.Y() = (aWinSize.Height() - rSettings.aPrtSize.Height()) / 2;
- else
- aOffset.X() = (aWinSize.Width() - rSettings.aPrtSize.Width()) / 2;;
-
-
- BOOL bUseSystemColors = SvtAccessibilityOptions().GetIsForPagePreviews()
- && GetSettings().GetStyleSettings().GetHighContrastMode();
-
- //der weisse Seitenhintergrund
- Rectangle aRect(aOffset, rSettings.aPrtSize);
- if(bUseSystemColors)
- {
- SetFillColor( GetSettings().GetStyleSettings().GetWindowColor() );
- SetLineColor( SwViewOption::GetFontColor() );
- }
- else
- {
- SetFillColor( Color( COL_WHITE ) );
- SetLineColor(Color( COL_BLACK ) );
- }
-
- DrawRect(aRect);
-
- Point aTL(aOffset);
- aTL.X() += rSettings.nLeft;
- aTL.Y() += rSettings.nTop;
-
- Size aPrvPageSize((rSettings.aPrvPrtSize.Width() - (rSettings.nCols - 1) * rSettings.nHori) / rSettings.nCols,
- (rSettings.aPrvPrtSize.Height() - (rSettings.nRows - 1) * rSettings.nVert) / rSettings.nRows);
- // jetzt muss noch das unterschiedliche Groessenverhaeltnis berechnet werden, um es an
- // der richtigen Seite abzuziehen.
- //...
- long nSourceScale = rSettings.aPageMaxSize.Width() * 100 / rSettings.aPageMaxSize.Height();
- long nDestScale = aPrvPageSize.Width() * 100 / aPrvPageSize.Height() ;
- if(nSourceScale > nDestScale) // die Seite ist relativ breiter als das vorhandene Rechteck
- {
- aPrvPageSize.Height() = aPrvPageSize.Width() * 100 / nSourceScale;
- }
- else
- {
- aPrvPageSize.Width() = aPrvPageSize.Height() * nSourceScale / 100;
- }
-
- if(bUseSystemColors)
- SetFillColor( GetSettings().GetStyleSettings().GetWindowColor() );
- else
- SetFillColor( Color( COL_GRAY ) );
-
-
- aRect = Rectangle(aTL, aPrvPageSize);
- for(USHORT i = 0; i < rSettings.nRows; i++)
- {
- for(USHORT j = 0; j < rSettings.nCols; j++)
- {
- DrawRect(aRect);
- aRect.Move(aPrvPageSize.Width() + rSettings.nHori, 0);
- }
-
- aRect.Move( 0, aPrvPageSize.Height() + rSettings.nVert);
- aRect.SetPos(Point(aTL.X(), aRect.TopLeft().Y()));
- }
- //rSettings;
-}
-
-/* */
/*--------------------------------------------------------------------
Beschreibung:
--------------------------------------------------------------------*/
diff --git a/sw/source/ui/uiview/pview.src b/sw/source/ui/uiview/pview.src
index 53f672dbdb60..1a8833e76b34 100644..100755
--- a/sw/source/ui/uiview/pview.src
+++ b/sw/source/ui/uiview/pview.src
@@ -29,272 +29,7 @@
#include "pview.hrc"
#include "helpid.h"
#include "cmdid.h"
-ModalDialog DLG_PAGEPREVIEW_PRINTOPTIONS
-{
- HelpID = HID_DLG_PRV_PRT_OPTIONS ;
- OutputSize = TRUE ;
- SVLook = TRUE ;
- Moveable = TRUE ;
- Size = MAP_APPFONT ( 312 , 131 ) ;
- FixedLine FL_ROWCOL
- {
- Pos = MAP_APPFONT ( 6 , 3 ) ;
- Size = MAP_APPFONT ( 150 , 8 ) ;
-
- Text [ en-US ] = "Distribution";
- };
- FixedText FT_ROWS
- {
- Pos = MAP_APPFONT ( 12 , 15 ) ;
- Size = MAP_APPFONT ( 30 , 10 ) ;
- Left = TRUE ;
- Text [ en-US ] = "Ro~ws";
- };
- NumericField NF_ROWS
- {
- Border = TRUE ;
- Pos = MAP_APPFONT ( 45 , 14 ) ;
- Size = MAP_APPFONT ( 36 , 12 ) ;
- TabStop = TRUE ;
- Left = TRUE ;
- Repeat = TRUE ;
- Spin = TRUE ;
- Minimum = PVIEW_MIN_ROW ;
- Maximum = PVIEW_MAX_ROW ;
- Value = 1 ;
- First = PVIEW_MIN_COL ;
- Last = PVIEW_MAX_COL ;
- };
- FixedText FT_COLS
- {
- Pos = MAP_APPFONT ( 84 , 15 ) ;
- Size = MAP_APPFONT ( 30 , 10 ) ;
- Left = TRUE ;
- Text [ en-US ] = "~Columns";
- };
- NumericField NF_COLS
- {
- Border = TRUE ;
- Pos = MAP_APPFONT ( 117 , 14 ) ;
- Size = MAP_APPFONT ( 36 , 12 ) ;
- TabStop = TRUE ;
- Left = TRUE ;
- Repeat = TRUE ;
- Spin = TRUE ;
- Minimum = PVIEW_MIN_COL ;
- Maximum = PVIEW_MAX_COL ;
- Value = 1 ;
- First = PVIEW_MIN_COL ;
- Last = PVIEW_MAX_COL ;
- };
- FixedLine FL_MARGINS
- {
- Pos = MAP_APPFONT ( 6 , 32 ) ;
- Size = MAP_APPFONT ( 150 , 8 ) ;
- Text [ en-US ] = "Margins";
- };
- FixedText FT_LMARGIN
- {
- Pos = MAP_APPFONT ( 12 , 44 ) ;
- Size = MAP_APPFONT ( 30 , 10 ) ;
- Left = TRUE ;
- Text [ en-US ] = "L~eft";
- };
- MetricField MF_LMARGIN
- {
- Border = TRUE ;
- Pos = MAP_APPFONT ( 45 , 43 ) ;
- Size = MAP_APPFONT ( 36 , 12 ) ;
- Left = TRUE ;
- Repeat = TRUE ;
- Spin = TRUE ;
- DecimalDigits = 1 ;
- Unit = FUNIT_CM ;
- SpinSize = 10 ;
- Minimum = 0 ;
- Maximum = 9999 ;
- First = 0 ;
- Last = 2000 ;
- };
- FixedText FT_RMARGIN
- {
- Pos = MAP_APPFONT ( 84 , 44 ) ;
- Size = MAP_APPFONT ( 30 , 10 ) ;
- Left = TRUE ;
- Text [ en-US ] = "~Right";
- };
- MetricField MF_RMARGIN
- {
- Border = TRUE ;
- Pos = MAP_APPFONT ( 117 , 43 ) ;
- Size = MAP_APPFONT ( 36 , 12 ) ;
- Left = TRUE ;
- Repeat = TRUE ;
- Spin = TRUE ;
- DecimalDigits = 1 ;
- Unit = FUNIT_CM ;
- SpinSize = 10 ;
- Minimum = 0 ;
- Maximum = 9999 ;
- First = 0 ;
- Last = 2000 ;
- };
- FixedText FT_TMARGIN
- {
- Pos = MAP_APPFONT ( 12 , 59 ) ;
- Size = MAP_APPFONT ( 30 , 10 ) ;
- Left = TRUE ;
- Text [ en-US ] = "~Top";
- };
- MetricField MF_TMARGIN
- {
- Border = TRUE ;
- Pos = MAP_APPFONT ( 45 , 58 ) ;
- Size = MAP_APPFONT ( 36 , 12 ) ;
- Left = TRUE ;
- Repeat = TRUE ;
- Spin = TRUE ;
- DecimalDigits = 1 ;
- Unit = FUNIT_CM ;
- SpinSize = 10 ;
- Minimum = 0 ;
- Maximum = 9999 ;
- First = 0 ;
- Last = 2000 ;
- };
- FixedText FT_BMARGIN
- {
- Pos = MAP_APPFONT ( 84 , 59 ) ;
- Size = MAP_APPFONT ( 30 , 10 ) ;
- Left = TRUE ;
- Text [ en-US ] = "~Bottom";
- };
- MetricField MF_BMARGIN
- {
- Border = TRUE ;
- Pos = MAP_APPFONT ( 117 , 58 ) ;
- Size = MAP_APPFONT ( 36 , 12 ) ;
- Left = TRUE ;
- Repeat = TRUE ;
- Spin = TRUE ;
- DecimalDigits = 1 ;
- Unit = FUNIT_CM ;
- SpinSize = 10 ;
- Minimum = 0 ;
- Maximum = 9999 ;
- First = 0 ;
- Last = 2000 ;
- };
- FixedLine FL_DISTANCE
- {
- Pos = MAP_APPFONT ( 6 , 76 ) ;
- Size = MAP_APPFONT ( 150 , 8 ) ;
-
- Text [ en-US ] = "Spacing";
- };
- FixedText FT_HMARGIN
- {
- Pos = MAP_APPFONT ( 12 , 88 ) ;
- Size = MAP_APPFONT ( 30 , 10 ) ;
- Left = TRUE ;
- Text [ en-US ] = "Hori~zontal";
- };
-
- MetricField MF_HMARGIN
- {
- Border = TRUE ;
- Pos = MAP_APPFONT ( 45 , 87 ) ;
- Size = MAP_APPFONT ( 36 , 12 ) ;
- Left = TRUE ;
- Repeat = TRUE ;
- Spin = TRUE ;
- DecimalDigits = 1 ;
- Unit = FUNIT_CM ;
- SpinSize = 10 ;
- Minimum = 0 ;
- Maximum = 9999 ;
- First = 0 ;
- Last = 2000 ;
- };
- FixedText FT_VMARGIN
- {
- Pos = MAP_APPFONT ( 84 , 88 ) ;
- Size = MAP_APPFONT ( 32 , 10 ) ;
- Left = TRUE ;
- Text [ en-US ] = "~Vertically";
- };
-
- MetricField MF_VMARGIN
- {
- Border = TRUE ;
- Pos = MAP_APPFONT ( 117 , 87 ) ;
- Size = MAP_APPFONT ( 36 , 12 ) ;
- Left = TRUE ;
- Repeat = TRUE ;
- Spin = TRUE ;
- DecimalDigits = 1 ;
- Unit = FUNIT_CM ;
- SpinSize = 10 ;
- Minimum = 0 ;
- Maximum = 9999 ;
- First = 0 ;
- Last = 2000 ;
- };
- FixedLine FL_ORIENTATION
- {
- Pos = MAP_APPFONT ( 6 , 102 ) ;
- Size = MAP_APPFONT ( 150 , 8 ) ;
- Text [ en-US ] = "Format";
- };
- RadioButton RB_LANDSCAPE
- {
- Pos = MAP_APPFONT ( 12 , 113 ) ;
- Size = MAP_APPFONT ( 60 , 12 ) ;
- TabStop = TRUE ;
- Group = TRUE ;
- Text [ en-US ] = "~Landscape";
- };
- RadioButton RB_PORTRAIT
- {
- Pos = MAP_APPFONT ( 84 , 113 ) ;
- Size = MAP_APPFONT ( 60 , 12 ) ;
- Text [ en-US ] = "P~ortrait";
- };
- Window WIN_PREVIEW
- {
- Pos = MAP_APPFONT ( 162 , 7 ) ;
- Size = MAP_APPFONT ( 90 , 113 ) ;
- };
-
- OKButton BT_OK
- {
- Pos = MAP_APPFONT ( 258 , 6 ) ;
- Size = MAP_APPFONT ( 50 , 14 ) ;
- TabStop = TRUE ;
- DefButton = TRUE ;
- };
- CancelButton BT_CANCEL
- {
- Pos = MAP_APPFONT ( 258 , 23 ) ;
- Size = MAP_APPFONT ( 50 , 14 ) ;
- TabStop = TRUE ;
- };
- HelpButton BT_HELP
- {
- Pos = MAP_APPFONT ( 258 , 49 ) ;
- Size = MAP_APPFONT ( 50 , 14 ) ;
- TabStop = TRUE ;
- };
- PushButton PB_STANDARD
- {
- Pos = MAP_APPFONT ( 258 , 66 ) ;
- Size = MAP_APPFONT ( 50 , 14 ) ;
- TabStop = TRUE ;
- Text [ en-US ] = "~Default";
- };
- Text [ en-US ] = "Print Options";
-};
ModalDialog DLG_PAGEPREVIEW_ZOOM
{
HelpID = HID_PPREV_ZOOM ;
@@ -460,31 +195,3 @@ ToolBox RID_PVIEW_TOOLBOX
Scroll = TRUE ;
};
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/sw/source/ui/uiview/view.hrc b/sw/source/ui/uiview/view.hrc
index 8697a7e4ed63..d2aa60494801 100644..100755
--- a/sw/source/ui/uiview/view.hrc
+++ b/sw/source/ui/uiview/view.hrc
@@ -77,7 +77,6 @@
#define DLG_SPECIAL_FORCED (RC_VIEW_BEGIN)
#define DLG_PAGEPREVIEW_ZOOM (RC_VIEW_BEGIN + 1)
-#define DLG_PAGEPREVIEW_PRINTOPTIONS (RC_VIEW_BEGIN + 2)
// Ueberlaufpruefung -----------------------------------------------------
diff --git a/sw/source/ui/uno/SwXDocumentSettings.cxx b/sw/source/ui/uno/SwXDocumentSettings.cxx
index b0ad816df4a1..a3ef96d1a613 100644..100755
--- a/sw/source/ui/uno/SwXDocumentSettings.cxx
+++ b/sw/source/ui/uno/SwXDocumentSettings.cxx
@@ -31,7 +31,6 @@
#include <vos/mutex.hxx>
#include <sfx2/sfxbasecontroller.hxx>
#include <SwXDocumentSettings.hxx>
-#include <SwXPrintPreviewSettings.hxx>
#include <comphelper/MasterPropertySetInfo.hxx>
#include <com/sun/star/beans/PropertyAttribute.hpp>
#include <com/sun/star/i18n/XForbiddenCharacters.hpp>
@@ -221,7 +220,6 @@ SwXDocumentSettings::SwXDocumentSettings ( SwXTextDocument * pModel )
, mpPrinter( NULL )
{
registerSlave ( new SwXPrintSettings ( PRINT_SETTINGS_DOCUMENT, mpModel->GetDocShell()->GetDoc() ) );
- registerSlave ( new SwXPrintPreviewSettings ( mpModel->GetDocShell()->GetDoc() ) );
}
SwXDocumentSettings::~SwXDocumentSettings()
diff --git a/sw/source/ui/uno/SwXPrintPreviewSettings.cxx b/sw/source/ui/uno/SwXPrintPreviewSettings.cxx
deleted file mode 100644
index a812c39754c9..000000000000
--- a/sw/source/ui/uno/SwXPrintPreviewSettings.cxx
+++ /dev/null
@@ -1,375 +0,0 @@
-/*************************************************************************
- *
- * 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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_sw.hxx"
-#include <SwXPrintPreviewSettings.hxx>
-#include <comphelper/ChainablePropertySetInfo.hxx>
-#include <pvprtdat.hxx>
-#include <swtypes.hxx>
-#ifndef _COM_SUN_STAR_BEANS_PropertyAttribute_HPP_
-#include <com/sun/star/beans/PropertyAttribute.hpp>
-#endif
-#ifndef _COM_SUN_STAR_BEANS_PropertyAttribute_HPP_
-#include <com/sun/star/beans/PropertyAttribute.hpp>
-#endif
-#include <doc.hxx>
-#include <vcl/svapp.hxx>
-using namespace ::com::sun::star;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::beans;
-using namespace ::com::sun::star::lang;
-using namespace ::comphelper;
-using ::rtl::OUString;
-
-enum SwPrintSettingsPropertyHandles
-{
- HANDLE_PRINTSET_PREVIEW_LEFT_MARGIN,
- HANDLE_PRINTSET_PREVIEW_RIGHT_MARGIN,
- HANDLE_PRINTSET_PREVIEW_TOP_MARGIN,
- HANDLE_PRINTSET_PREVIEW_BOTTOM_MARGIN,
- HANDLE_PRINTSET_PREVIEW_HORIZONTAL_SPACING,
- HANDLE_PRINTSET_PREVIEW_VERTICAL_SPACING,
- HANDLE_PRINTSET_PREVIEW_NUM_ROWS,
- HANDLE_PRINTSET_PREVIEW_NUM_COLUMNS,
- HANDLE_PRINTSET_PREVIEW_LANDSCAPE
-};
-
-static ChainablePropertySetInfo * lcl_createPrintPreviewSettingsInfo()
-{
- static PropertyInfo aPrintPreviewSettingsMap_Impl[] =
- {
- { RTL_CONSTASCII_STRINGPARAM ( "PreviewPrintLeftMargin" ), HANDLE_PRINTSET_PREVIEW_LEFT_MARGIN, CPPUTYPE_INT32, PropertyAttribute::MAYBEVOID, 0 },
- { RTL_CONSTASCII_STRINGPARAM ( "PreviewPrintRightMargin" ), HANDLE_PRINTSET_PREVIEW_RIGHT_MARGIN, CPPUTYPE_INT32, PropertyAttribute::MAYBEVOID, 0 },
- { RTL_CONSTASCII_STRINGPARAM ( "PreviewPrintTopMargin" ), HANDLE_PRINTSET_PREVIEW_TOP_MARGIN, CPPUTYPE_INT32, PropertyAttribute::MAYBEVOID, 0 },
- { RTL_CONSTASCII_STRINGPARAM ( "PreviewPrintBottomMargin" ),HANDLE_PRINTSET_PREVIEW_BOTTOM_MARGIN, CPPUTYPE_INT32, PropertyAttribute::MAYBEVOID, 0 },
- { RTL_CONSTASCII_STRINGPARAM ( "PreviewPrintHorizontalSpacing" ),HANDLE_PRINTSET_PREVIEW_HORIZONTAL_SPACING, CPPUTYPE_INT32, PropertyAttribute::MAYBEVOID, 0 },
- { RTL_CONSTASCII_STRINGPARAM ( "PreviewPrintVerticalSpacing" ), HANDLE_PRINTSET_PREVIEW_VERTICAL_SPACING, CPPUTYPE_INT32, PropertyAttribute::MAYBEVOID, 0 },
- { RTL_CONSTASCII_STRINGPARAM ( "PreviewPrintNumRows" ), HANDLE_PRINTSET_PREVIEW_NUM_ROWS, CPPUTYPE_INT8, PropertyAttribute::MAYBEVOID, 0 },
- { RTL_CONSTASCII_STRINGPARAM ( "PreviewPrintNumColumns" ), HANDLE_PRINTSET_PREVIEW_NUM_COLUMNS, CPPUTYPE_INT8, PropertyAttribute::MAYBEVOID, 0 },
- { RTL_CONSTASCII_STRINGPARAM ( "PreviewPrintLandscape" ), HANDLE_PRINTSET_PREVIEW_LANDSCAPE, CPPUTYPE_BOOLEAN, PropertyAttribute::MAYBEVOID, 0 },
- { 0, 0, 0, CPPUTYPE_UNKNOWN, 0, 0 }
- };
- return new ChainablePropertySetInfo ( aPrintPreviewSettingsMap_Impl );
-}
-SwXPrintPreviewSettings::SwXPrintPreviewSettings( SwDoc *pDoc)
-: ChainablePropertySet ( lcl_createPrintPreviewSettingsInfo (), &Application::GetSolarMutex() )
-, mbPreviewDataChanged( sal_False )
-, mpDoc( pDoc)
-{
-}
-/*-- 17.12.98 12:54:05---------------------------------------------------
-
- -----------------------------------------------------------------------*/
-SwXPrintPreviewSettings::~SwXPrintPreviewSettings()
- throw()
-{
-}
-
-Any SAL_CALL SwXPrintPreviewSettings::queryInterface( const Type& rType )
- throw(RuntimeException)
-{
- return ::cppu::queryInterface ( rType ,
- // OWeakObject interfaces
- dynamic_cast< XInterface* >( dynamic_cast< OWeakObject* >(this) ) ,
- dynamic_cast< XWeak* >( this ) ,
- // my own interfaces
- dynamic_cast< XServiceInfo* >( this ) ,
- dynamic_cast< XPropertySet* >( this ) ,
- dynamic_cast< XMultiPropertySet* >( this ) );
-}
-void SwXPrintPreviewSettings::acquire ()
- throw ()
-{
- OWeakObject::acquire();
-}
-void SwXPrintPreviewSettings::release ()
- throw ()
-{
- OWeakObject::release();
-}
-
-void SwXPrintPreviewSettings::_preSetValues ()
- throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException )
-{
- if ( mpDoc )
- {
- const SwPagePreViewPrtData *pConstPrtData = mpDoc->GetPreViewPrtData();
- mpPreViewData = new SwPagePreViewPrtData;
- if ( pConstPrtData )
- {
- mpPreViewData->SetLeftSpace ( pConstPrtData->GetLeftSpace() );
- mpPreViewData->SetRightSpace ( pConstPrtData->GetRightSpace() );
- mpPreViewData->SetTopSpace ( pConstPrtData->GetTopSpace() );
- mpPreViewData->SetBottomSpace ( pConstPrtData->GetBottomSpace() );
- mpPreViewData->SetHorzSpace ( pConstPrtData->GetHorzSpace() );
- mpPreViewData->SetVertSpace ( pConstPrtData->GetVertSpace() );
- mpPreViewData->SetRow ( pConstPrtData->GetRow() );
- mpPreViewData->SetCol ( pConstPrtData->GetCol() );
- mpPreViewData->SetLandscape ( pConstPrtData->GetLandscape() );
- }
- }
-}
-
-void SwXPrintPreviewSettings::_setSingleValue( const comphelper::PropertyInfo & rInfo, const uno::Any &rValue )
- throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException )
-{
- switch( rInfo.mnHandle )
- {
- case HANDLE_PRINTSET_PREVIEW_LEFT_MARGIN:
- {
- sal_Int32 nVal = 0;
- rValue >>= nVal;
- nVal = MM100_TO_TWIP( nVal );
- if ( nVal != static_cast < sal_Int32 > (mpPreViewData->GetLeftSpace() ) )
- {
- mbPreviewDataChanged = sal_True;
- mpPreViewData->SetLeftSpace( nVal );
- }
- }
- break;
- case HANDLE_PRINTSET_PREVIEW_RIGHT_MARGIN:
- {
- sal_Int32 nVal = 0;
- rValue >>= nVal;
- nVal = MM100_TO_TWIP( nVal );
- if ( nVal != static_cast < sal_Int32 > (mpPreViewData->GetRightSpace() ) )
- {
- mbPreviewDataChanged = sal_True;
- mpPreViewData->SetRightSpace( nVal );
- }
- }
- break;
- case HANDLE_PRINTSET_PREVIEW_TOP_MARGIN:
- {
- sal_Int32 nVal = 0;
- rValue >>= nVal;
- nVal = MM100_TO_TWIP( nVal );
- if ( nVal != static_cast < sal_Int32 > ( mpPreViewData->GetTopSpace() ) )
- {
- mbPreviewDataChanged = sal_True;
- mpPreViewData->SetTopSpace( nVal );
- }
- }
- break;
- case HANDLE_PRINTSET_PREVIEW_BOTTOM_MARGIN:
- {
- sal_Int32 nVal = 0;
- rValue >>= nVal;
- nVal = MM100_TO_TWIP( nVal );
- if ( nVal != static_cast < sal_Int32 > ( mpPreViewData->GetBottomSpace() ) )
- {
- mbPreviewDataChanged = sal_True;
- mpPreViewData->SetBottomSpace( nVal );
- }
- }
- break;
- case HANDLE_PRINTSET_PREVIEW_HORIZONTAL_SPACING:
- {
- sal_Int32 nVal = 0;
- rValue >>= nVal;
- nVal = MM100_TO_TWIP( nVal );
- if ( nVal != static_cast < sal_Int32 > ( mpPreViewData->GetHorzSpace() ) )
- {
- mbPreviewDataChanged = sal_True;
- mpPreViewData->SetHorzSpace( nVal );
- }
- }
- break;
- case HANDLE_PRINTSET_PREVIEW_VERTICAL_SPACING:
- {
- sal_Int32 nVal = 0;
- rValue >>= nVal;
- nVal = MM100_TO_TWIP( nVal );
- if ( nVal != static_cast < sal_Int32 > ( mpPreViewData->GetVertSpace() ) )
- {
- mbPreviewDataChanged = sal_True;
- mpPreViewData->SetVertSpace( nVal );
- }
- }
- break;
- case HANDLE_PRINTSET_PREVIEW_NUM_ROWS:
- {
- sal_Int8 nVal = 0;
- rValue >>= nVal;
- if ( nVal != mpPreViewData->GetRow() )
- {
- mbPreviewDataChanged = sal_True;
- mpPreViewData->SetRow( nVal );
- }
- }
- break;
- case HANDLE_PRINTSET_PREVIEW_NUM_COLUMNS:
- {
- sal_Int8 nVal = 0;
- rValue >>= nVal;
- if ( nVal != mpPreViewData->GetCol() )
- {
- mbPreviewDataChanged = sal_True;
- mpPreViewData->SetCol( nVal );
- }
- }
- break;
- case HANDLE_PRINTSET_PREVIEW_LANDSCAPE:
- {
- sal_Bool bVal = *(sal_Bool*)rValue.getValue();
- if ( bVal != mpPreViewData->GetLandscape() )
- {
- mbPreviewDataChanged = sal_True;
- mpPreViewData->SetLandscape ( bVal );
- }
- }
- break;
- default:
- throw UnknownPropertyException();
- }
-}
-void SwXPrintPreviewSettings::_postSetValues ()
- throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException )
-{
- if ( mbPreviewDataChanged )
- {
- mpDoc->SetPreViewPrtData ( mpPreViewData );
- mbPreviewDataChanged = sal_False;
- }
- delete mpPreViewData;
- mpPreViewData = NULL;
-}
-
-void SwXPrintPreviewSettings::_preGetValues ()
- throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException )
-{
- if (mpDoc)
- mpConstPreViewData = mpDoc->GetPreViewPrtData();
-}
-void SwXPrintPreviewSettings::_getSingleValue( const comphelper::PropertyInfo & rInfo, uno::Any & rValue )
- throw(UnknownPropertyException, WrappedTargetException )
-{
- sal_Bool bBool = TRUE;
- sal_Bool bBoolVal;
- switch( rInfo.mnHandle )
- {
- case HANDLE_PRINTSET_PREVIEW_LEFT_MARGIN:
- {
- bBool = FALSE;
- if ( mpConstPreViewData )
- rValue <<= static_cast < sal_Int32 > ( TWIP_TO_MM100_UNSIGNED( mpConstPreViewData->GetLeftSpace() ) );
- }
- break;
- case HANDLE_PRINTSET_PREVIEW_RIGHT_MARGIN:
- {
- bBool = FALSE;
- if ( mpConstPreViewData )
- rValue <<= static_cast < sal_Int32 > ( TWIP_TO_MM100_UNSIGNED( mpConstPreViewData->GetRightSpace() ) );
- }
- break;
- case HANDLE_PRINTSET_PREVIEW_TOP_MARGIN:
- {
- bBool = FALSE;
- if ( mpConstPreViewData )
- rValue <<= static_cast < sal_Int32 > ( TWIP_TO_MM100_UNSIGNED( mpConstPreViewData->GetTopSpace() ) );
- }
- break;
- case HANDLE_PRINTSET_PREVIEW_BOTTOM_MARGIN:
- {
- bBool = FALSE;
- if ( mpConstPreViewData )
- rValue <<= static_cast < sal_Int32 > ( TWIP_TO_MM100_UNSIGNED( mpConstPreViewData->GetBottomSpace() ) );
- }
- break;
- case HANDLE_PRINTSET_PREVIEW_HORIZONTAL_SPACING:
- {
- bBool = FALSE;
- if ( mpConstPreViewData )
- rValue <<= static_cast < sal_Int32 > ( TWIP_TO_MM100_UNSIGNED( mpConstPreViewData->GetHorzSpace() ) );
- }
- break;
- case HANDLE_PRINTSET_PREVIEW_VERTICAL_SPACING:
- {
- bBool = FALSE;
- if ( mpConstPreViewData )
- rValue <<= static_cast < sal_Int32 > ( TWIP_TO_MM100_UNSIGNED( mpConstPreViewData->GetVertSpace() ) );
- }
- break;
- case HANDLE_PRINTSET_PREVIEW_NUM_ROWS:
- {
- bBool = FALSE;
- if ( mpConstPreViewData )
- rValue <<= static_cast < sal_Int8 > ( mpConstPreViewData->GetRow() );
- }
- break;
- case HANDLE_PRINTSET_PREVIEW_NUM_COLUMNS:
- {
- bBool = FALSE;
- if ( mpConstPreViewData )
- rValue <<= static_cast < sal_Int8 > ( mpConstPreViewData->GetCol() );
- }
- break;
- case HANDLE_PRINTSET_PREVIEW_LANDSCAPE:
- {
- if (mpConstPreViewData)
- bBoolVal = mpConstPreViewData->GetLandscape();
- else
- bBool = FALSE;
- }
- break;
- default:
- throw UnknownPropertyException();
- }
- if(bBool)
- rValue.setValue(&bBoolVal, ::getBooleanCppuType());
-}
-void SwXPrintPreviewSettings::_postGetValues ()
- throw(UnknownPropertyException, PropertyVetoException, IllegalArgumentException, WrappedTargetException )
-{
- mpConstPreViewData = NULL;
-}
-/* -----------------------------06.04.00 11:02--------------------------------
-
- ---------------------------------------------------------------------------*/
-OUString SwXPrintPreviewSettings::getImplementationName(void) throw( RuntimeException )
-{
- return OUString( RTL_CONSTASCII_USTRINGPARAM ( "SwXPrintPreviewSettings" ) );
-}
-/* -----------------------------06.04.00 11:02--------------------------------
-
- ---------------------------------------------------------------------------*/
-sal_Bool SwXPrintPreviewSettings::supportsService(const OUString& rServiceName) throw( RuntimeException )
-{
- return rServiceName.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "com.sun.star.text.PrintPreviewSettings") );
-}
-/* -----------------------------06.04.00 11:02--------------------------------
-
- ---------------------------------------------------------------------------*/
-Sequence< OUString > SwXPrintPreviewSettings::getSupportedServiceNames(void) throw( RuntimeException )
-{
- Sequence< OUString > aRet(1);
- OUString* pArray = aRet.getArray();
- pArray[0] = OUString( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.text.PrintPreviewSettings" ) );
- return aRet;
-}
-
diff --git a/sw/source/ui/uno/SwXPrintPreviewSettings.hxx b/sw/source/ui/uno/SwXPrintPreviewSettings.hxx
deleted file mode 100644
index 2b908c453043..000000000000
--- a/sw/source/ui/uno/SwXPrintPreviewSettings.hxx
+++ /dev/null
@@ -1,89 +0,0 @@
-/*************************************************************************
- *
- * 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 _SW_XPRINTPREVIEWSETTINGS_HXX_
-#define _SW_XPRINTPREVIEWSETTINGS_HXX_
-
-#ifdef PRECOMPILED
-#include "ui_pch.hxx"
-#endif
-#include <comphelper/ChainablePropertySet.hxx>
-#ifndef _COM_SUN_STAR_TEXT_XTEXTDOCUMENT_HPP
-#include <com/sun/star/text/XTextDocument.hpp>
-#endif
-#include <cppuhelper/weak.hxx>
-#include <com/sun/star/lang/XServiceInfo.hpp>
-
-class SwDoc;
-class SwPagePreViewPrtData;
-
-class SwXPrintPreviewSettings :public comphelper::ChainablePropertySet,
- public cppu::OWeakObject,
- public com::sun::star::lang::XServiceInfo
-{
- friend class SwXDocumentSettings;
-protected:
- sal_Bool mbPreviewDataChanged;
- SwDoc* mpDoc;
- SwPagePreViewPrtData *mpPreViewData;
- const SwPagePreViewPrtData *mpConstPreViewData;
-
- virtual void _preSetValues ()
- throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException );
- virtual void _setSingleValue( const comphelper::PropertyInfo & rInfo, const ::com::sun::star::uno::Any &rValue )
- throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException );
- virtual void _postSetValues ()
- throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException );
-
- virtual void _preGetValues ()
- throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException );
- virtual void _getSingleValue( const comphelper::PropertyInfo & rInfo, ::com::sun::star::uno::Any & rValue )
- throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::WrappedTargetException );
- virtual void _postGetValues ()
- throw(::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::lang::WrappedTargetException );
- virtual ~SwXPrintPreviewSettings()
- throw();
-public:
- SwXPrintPreviewSettings(SwDoc *pDoc);
-
-
- // XInterface
- virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType )
- throw (::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL acquire( )
- throw ();
- virtual void SAL_CALL release( )
- throw ();
-
- //XServiceInfo
- virtual rtl::OUString SAL_CALL getImplementationName(void)
- throw( ::com::sun::star::uno::RuntimeException );
- virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName)
- throw( ::com::sun::star::uno::RuntimeException );
- virtual ::com::sun::star::uno::Sequence< rtl::OUString > SAL_CALL getSupportedServiceNames(void)
- throw( ::com::sun::star::uno::RuntimeException );
-};
-#endif
diff --git a/sw/source/ui/uno/detreg.cxx b/sw/source/ui/uno/detreg.cxx
index 8c5e5f0634f8..65f4e6379a17 100644
--- a/sw/source/ui/uno/detreg.cxx
+++ b/sw/source/ui/uno/detreg.cxx
@@ -43,30 +43,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
*ppEnvironmentTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
}
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void* /*pServiceManager*/,
- void* pRegistryKey )
-{
- Reference< ::registry::XRegistryKey >
- xKey( reinterpret_cast< ::registry::XRegistryKey* >( pRegistryKey ) ) ;
-
- OUString aDelimiter( RTL_CONSTASCII_USTRINGPARAM("/") );
- OUString aUnoServices( RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") );
-
- // Eigentliche Implementierung und ihre Services registrieren
- sal_Int32 i;
- Reference< ::registry::XRegistryKey > xNewKey;
-
- xNewKey = xKey->createKey( aDelimiter + SwFilterDetect::impl_getStaticImplementationName() +
- aUnoServices );
-
- Sequence< OUString > aServices = SwFilterDetect::impl_getStaticSupportedServiceNames();
- for(i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- return sal_True;
-}
-
SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pServiceManager,
diff --git a/sw/source/ui/uno/makefile.mk b/sw/source/ui/uno/makefile.mk
index 0023fd52f55c..ac4b6dde697b 100644..100755
--- a/sw/source/ui/uno/makefile.mk
+++ b/sw/source/ui/uno/makefile.mk
@@ -55,7 +55,6 @@ SLO1FILES = \
$(SLO)$/dlelstnr.obj \
$(SLO)$/unofreg.obj \
$(SLO)$/SwXDocumentSettings.obj \
- $(SLO)$/SwXPrintPreviewSettings.obj \
$(SLO)$/SwXFilterOptions.obj\
$(SLO)$/RefreshListenerContainer.obj \
$(SLO)$/unomodule.obj \
diff --git a/sw/source/ui/uno/unofreg.cxx b/sw/source/ui/uno/unofreg.cxx
index a322b0e677f9..a76aaa3cd0e5 100644
--- a/sw/source/ui/uno/unofreg.cxx
+++ b/sw/source/ui/uno/unofreg.cxx
@@ -154,99 +154,6 @@ SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-static void lcl_uno_writeInfo(
- registry::XRegistryKey * pRegistryKey,
- const OUString& rImplementationName,
- const uno::Sequence< OUString >& rServices )
-{
- uno::Reference< registry::XRegistryKey > xNewKey(
- pRegistryKey->createKey(
- OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) + rImplementationName + OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) ) );
-
- for( sal_Int32 i = 0; i < rServices.getLength(); i++ )
- xNewKey->createKey( rServices.getConstArray()[i]);
-}
-
-SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- void * /*pServiceManager*/,
- void * pRegistryKey )
-{
- if( pRegistryKey )
- {
- try
- {
- registry::XRegistryKey *pKey =
- reinterpret_cast< registry::XRegistryKey * >( pRegistryKey );
-
-
- // xml filter
- lcl_uno_writeInfo( pKey, SwXMLImport_getImplementationName(),
- SwXMLImport_getSupportedServiceNames() );
- lcl_uno_writeInfo( pKey, SwXMLImportStyles_getImplementationName(),
- SwXMLImportStyles_getSupportedServiceNames() );
- lcl_uno_writeInfo( pKey,SwXMLImportContent_getImplementationName(),
- SwXMLImportContent_getSupportedServiceNames() );
- lcl_uno_writeInfo( pKey, SwXMLImportMeta_getImplementationName(),
- SwXMLImportMeta_getSupportedServiceNames() );
- lcl_uno_writeInfo( pKey, SwXMLImportSettings_getImplementationName(),
- SwXMLImportSettings_getSupportedServiceNames() );
- lcl_uno_writeInfo( pKey, SwXMLExportOOO_getImplementationName(),
- SwXMLExportOOO_getSupportedServiceNames() );
- lcl_uno_writeInfo( pKey, SwXMLExportStylesOOO_getImplementationName(),
- SwXMLExportStylesOOO_getSupportedServiceNames() );
- lcl_uno_writeInfo( pKey,SwXMLExportContentOOO_getImplementationName(),
- SwXMLExportContentOOO_getSupportedServiceNames() );
- lcl_uno_writeInfo( pKey, SwXMLExportMetaOOO_getImplementationName(),
- SwXMLExportMetaOOO_getSupportedServiceNames() );
- lcl_uno_writeInfo( pKey, SwXMLExportSettingsOOO_getImplementationName(),
- SwXMLExportSettingsOOO_getSupportedServiceNames() );
- lcl_uno_writeInfo( pKey, SwXMLExport_getImplementationName(),
- SwXMLExport_getSupportedServiceNames() );
- lcl_uno_writeInfo( pKey, SwXMLExportStyles_getImplementationName(),
- SwXMLExportStyles_getSupportedServiceNames() );
- lcl_uno_writeInfo( pKey,SwXMLExportContent_getImplementationName(),
- SwXMLExportContent_getSupportedServiceNames() );
- lcl_uno_writeInfo( pKey, SwXMLExportMeta_getImplementationName(),
- SwXMLExportMeta_getSupportedServiceNames() );
- lcl_uno_writeInfo( pKey, SwXMLExportSettings_getImplementationName(),
- SwXMLExportSettings_getSupportedServiceNames() );
- //API objects
- lcl_uno_writeInfo( pKey, SwXAutoTextContainer_getImplementationName(),
- SwXAutoTextContainer_getSupportedServiceNames() );
- lcl_uno_writeInfo( pKey, SwXModule_getImplementationName(),
- SwXModule_getSupportedServiceNames() );
- lcl_uno_writeInfo( pKey, SwXMailMerge_getImplementationName(),
- SwXMailMerge_getSupportedServiceNames() );
- //Filter options
- lcl_uno_writeInfo( pKey, SwXFilterOptions::getImplementationName_Static(),
- SwXFilterOptions::getSupportedServiceNames_Static() );
-
- // documents
- lcl_uno_writeInfo( pKey, SwTextDocument_getImplementationName(),
- SwTextDocument_getSupportedServiceNames() );
- lcl_uno_writeInfo( pKey, SwWebDocument_getImplementationName(),
- SwWebDocument_getSupportedServiceNames() );
- lcl_uno_writeInfo( pKey,SwGlobalDocument_getImplementationName(),
- SwGlobalDocument_getSupportedServiceNames() );
-
- // module
- lcl_uno_writeInfo( pKey, SwUnoModule_getImplementationName(),
- SwUnoModule_getSupportedServiceNames() );
- // --> OD 2007-05-24 #i73788#
- lcl_uno_writeInfo( pKey,
- comp_FinalThreadManager::_getImplementationName(),
- comp_FinalThreadManager::_getSupportedServiceNames() );
- // <--
-
- }
- catch (registry::InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_True;
-}
-
static ::cppu::ImplementationEntry const entries[] = {
{ &comp_FinalThreadManager::_create,
&comp_FinalThreadManager::_getImplementationName,
diff --git a/sw/source/ui/uno/unotxdoc.cxx b/sw/source/ui/uno/unotxdoc.cxx
index 0579d180a04c..eb2f5d7d67d2 100644
--- a/sw/source/ui/uno/unotxdoc.cxx
+++ b/sw/source/ui/uno/unotxdoc.cxx
@@ -82,6 +82,7 @@
#include <svx/xmleohlp.hxx>
#include <globals.hrc>
#include <unomid.h>
+#include <unotools/printwarningoptions.hxx>
#include <com/sun/star/util/SearchOptions.hpp>
#include <com/sun/star/lang/ServiceNotRegisteredException.hpp>
@@ -107,7 +108,6 @@
#include <swcont.hxx>
#include <unodefaults.hxx>
#include <SwXDocumentSettings.hxx>
-#include <SwXPrintPreviewSettings.hxx>
#include <doc.hxx>
#include <editeng/forbiddencharacterstable.hxx>
#include <svl/zforlist.hxx>
@@ -1809,9 +1809,7 @@ Reference< XInterface > SwXTextDocument::createInstance(const OUString& rServic
}
else if (sCategory == C2U ("text") )
{
- if( 0 == rServiceName.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.text.PrintPreviewSettings") ) )
- xRet = Reference < XInterface > ( *new SwXPrintPreviewSettings ( pDocShell->GetDoc() ) );
- else if( 0 == rServiceName.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.text.DocumentSettings") ) )
+ if( 0 == rServiceName.reverseCompareToAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.text.DocumentSettings") ) )
xRet = Reference < XInterface > ( *new SwXDocumentSettings ( this ) );
}
else if (sCategory == C2U ("chart2") )
@@ -2732,10 +2730,21 @@ sal_Int32 SAL_CALL SwXTextDocument::getRendererCount(
// since printing now also use the API for PDF export this option
// should be set for printing as well ...
pWrtShell->SetPDFExportOption( sal_True );
+ bool bOrigStatus = pRenderDocShell->IsEnableSetModified();
+ // check configuration: shall update of printing information in DocInfo set the document to "modified"?
+ bool bStateChanged = false;
+ if ( bOrigStatus && !SvtPrintWarningOptions().IsModifyDocumentOnPrintingAllowed() )
+ {
+ pRenderDocShell->EnableSetModified( sal_False );
+ bStateChanged = true;
+ }
+
// --> FME 2005-05-23 #122919# Force field update before PDF export:
pWrtShell->ViewShell::UpdateFlds(TRUE);
// <--
+ if( bStateChanged )
+ pRenderDocShell->EnableSetModified( sal_True );
// there is some redundancy between those two function calls, but right now
// there is no time to sort this out.
@@ -2844,7 +2853,10 @@ uno::Sequence< beans::PropertyValue > SAL_CALL SwXTextDocument::getRenderer(
uno::Sequence< beans::PropertyValue > aRenderer;
if (m_pRenderData)
{
- const USHORT nPage = nRenderer + 1;
+ // --> TL, OD 2010-09-07 #i114210#
+ // determine the correct page number from the renderer index
+ const USHORT nPage = m_pRenderData->GetPagesToPrint()[ nRenderer ];
+ // <--
// get paper tray to use ...
sal_Int32 nPrinterPaperTray = -1;
diff --git a/sw/source/ui/vba/service.cxx b/sw/source/ui/vba/service.cxx
index 9f9cbff204dd..d7779fc653be 100644
--- a/sw/source/ui/vba/service.cxx
+++ b/sw/source/ui/vba/service.cxx
@@ -66,16 +66,6 @@ extern "C"
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
- sal_Bool SAL_CALL component_writeInfo(
- lang::XMultiServiceFactory * pServiceManager, registry::XRegistryKey * pRegistryKey )
- {
- OSL_TRACE("In component_writeInfo");
-
- // Component registration
- return component_writeInfoHelper( pServiceManager, pRegistryKey,
- globals::serviceDecl, document::serviceDecl, wrapformat::serviceDecl, vbaeventshelper::serviceDecl );
- }
-
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, lang::XMultiServiceFactory * pServiceManager,
registry::XRegistryKey * pRegistryKey )
diff --git a/sw/util/makefile.mk b/sw/util/makefile.mk
index ce1419b34065..6fa4bd5432e2 100644
--- a/sw/util/makefile.mk
+++ b/sw/util/makefile.mk
@@ -374,3 +374,23 @@ SHL5LIBS=$(SLB)$/$(TARGET_VBA).lib
.ENDIF # .IF "$(ENABLE_VBA)" == "YES"
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/sw.component $(MISC)/swd.component $(MISC)/vbaswobj.component
+
+$(MISC)/sw.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ sw.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt sw.component
+
+$(MISC)/swd.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ swd.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL2TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt swd.component
+
+$(MISC)/vbaswobj.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ vbaswobj.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL5TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt vbaswobj.component
diff --git a/sw/util/sw.component b/sw/util/sw.component
new file mode 100644
index 000000000000..e76cec637d33
--- /dev/null
+++ b/sw/util/sw.component
@@ -0,0 +1,104 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="SwXAutoTextContainer">
+ <service name="com.sun.star.text.AutoTextContainer"/>
+ </implementation>
+ <implementation name="SwXMailMerge">
+ <service name="com.sun.star.sdb.DataAccessDescriptor"/>
+ <service name="com.sun.star.text.MailMerge"/>
+ </implementation>
+ <implementation name="SwXModule">
+ <service name="com.sun.star.text.GlobalSettings"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.FilterOptionsDialog">
+ <service name="com.sun.star.ui.dialogs.FilterOptionsDialog"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.GlobalDocument">
+ <service name="com.sun.star.text.GlobalDocument"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.TextDocument">
+ <service name="com.sun.star.text.TextDocument"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.WebDocument">
+ <service name="com.sun.star.text.WebDocument"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.WriterModule">
+ <service name="com.sun.star.text.ModuleDispatcher"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.XMLContentExporter">
+ <service name="com.sun.star.comp.Writer.XMLContentExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.XMLExporter">
+ <service name="com.sun.star.comp.Writer.XMLExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.XMLMetaExporter">
+ <service name="com.sun.star.comp.Writer.XMLMetaExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.XMLOasisContentExporter">
+ <service name="com.sun.star.comp.Writer.XMLOasisContentExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.XMLOasisContentImporter">
+ <service name="com.sun.star.comp.Writer.XMLOasisContentImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.XMLOasisExporter">
+ <service name="com.sun.star.comp.Writer.XMLOasisExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.XMLOasisImporter">
+ <service name="com.sun.star.comp.Writer.XMLOasisImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.XMLOasisMetaExporter">
+ <service name="com.sun.star.comp.Writer.XMLOasisMetaExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.XMLOasisMetaImporter">
+ <service name="com.sun.star.comp.Writer.XMLOasisMetaImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.XMLOasisSettingsExporter">
+ <service name="com.sun.star.comp.Writer.XMLOasisSettingsExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.XMLOasisSettingsImporter">
+ <service name="com.sun.star.comp.Writer.XMLOasisSettingsImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.XMLOasisStylesExporter">
+ <service name="com.sun.star.comp.Writer.XMLOasisStylesExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.XMLOasisStylesImporter">
+ <service name="com.sun.star.comp.Writer.XMLOasisStylesImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.XMLSettingsExporter">
+ <service name="com.sun.star.comp.Writer.XMLSettingsExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.XMLStylesExporter">
+ <service name="com.sun.star.comp.Writer.XMLStylesExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.util.comp.FinalThreadManager">
+ <service name="com.sun.star.util.JobManager"/>
+ </implementation>
+</component>
diff --git a/sw/util/swd.component b/sw/util/swd.component
new file mode 100644
index 000000000000..c89c007ec30a
--- /dev/null
+++ b/sw/util/swd.component
@@ -0,0 +1,36 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.writer.FormatDetector">
+ <service name="com.sun.star.frame.ExtendedTypeDetection"/>
+ <service name="com.sun.star.text.FormatDetector"/>
+ <service name="com.sun.star.text.W4WFormatDetector"/>
+ </implementation>
+</component>
diff --git a/sw/util/vbaswobj.component b/sw/util/vbaswobj.component
new file mode 100644
index 000000000000..e6c6fe4a4149
--- /dev/null
+++ b/sw/util/vbaswobj.component
@@ -0,0 +1,43 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="SwVbaDocument">
+ <service name="ooo.vba.word.Document"/>
+ </implementation>
+ <implementation name="SwVbaEventsHelper">
+ <service name="com.sun.star.document.vba.VBATextEventProcessor"/>
+ </implementation>
+ <implementation name="SwVbaGlobals">
+ <service name="ooo.vba.word.Globals"/>
+ </implementation>
+ <implementation name="SwVbaWrapFormat">
+ <service name="ooo.vba.word.WrapFormat"/>
+ </implementation>
+</component>
diff --git a/sysui/util/exports.dxp b/sysui/util/exports.dxp
index 028ac4175990..f0e1c69934bc 100644
--- a/sysui/util/exports.dxp
+++ b/sysui/util/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/test/inc/test/uniquepipename.hxx b/test/inc/test/uniquepipename.hxx
new file mode 100644
index 000000000000..4b96586a0299
--- /dev/null
+++ b/test/inc/test/uniquepipename.hxx
@@ -0,0 +1,44 @@
+/*************************************************************************
+*
+* 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_TEST_UNIQUEPIPENAME_HXX
+#define INCLUDED_TEST_UNIQUEPIPENAME_HXX
+
+#include "sal/config.h"
+
+#include "test/detail/testdllapi.hxx"
+
+namespace rtl { class OUString; }
+
+namespace test {
+
+// Create a system-wide unique name (for use with osl::Pipe):
+OOO_DLLPUBLIC_TEST rtl::OUString uniquePipeName(rtl::OUString const & name);
+
+}
+
+#endif
diff --git a/test/prj/d.lst b/test/prj/d.lst
index bcea8bee46fe..6a3827d90309 100644
--- a/test/prj/d.lst
+++ b/test/prj/d.lst
@@ -9,4 +9,5 @@ mkdir: %_DEST%\inc%_EXT%\test\detail
..\inc\test\officeconnection.hxx %_DEST%\inc%_EXT%\test\officeconnection.hxx
..\inc\test\oustringostreaminserter.hxx %_DEST%\inc%_EXT%\test\oustringostreaminserter.hxx
..\inc\test\toabsolutefileurl.hxx %_DEST%\inc%_EXT%\test\toabsolutefileurl.hxx
+..\inc\test\uniquepipename.hxx %_DEST%\inc%_EXT%\test\uniquepipename.hxx
..\%__SRC%\class\test.jar %_DEST%\bin%_EXT%\test.jar
diff --git a/test/source/cpp/makefile.mk b/test/source/cpp/makefile.mk
index 04eedea3c670..9561be25fc1f 100644
--- a/test/source/cpp/makefile.mk
+++ b/test/source/cpp/makefile.mk
@@ -45,7 +45,8 @@ CFLAGSCXX+=-DADAPT_EXT_STL
SLOFILES = \
$(SLO)/getargument.obj \
$(SLO)/officeconnection.obj \
- $(SLO)/toabsolutefileurl.obj
+ $(SLO)/toabsolutefileurl.obj \
+ $(SLO)/uniquepipename.obj
SHL1IMPLIB = i$(SHL1TARGET)
SHL1OBJS = $(SLOFILES)
diff --git a/test/source/cpp/officeconnection.cxx b/test/source/cpp/officeconnection.cxx
index b77fb59e4fff..85c1b855f88b 100644
--- a/test/source/cpp/officeconnection.cxx
+++ b/test/source/cpp/officeconnection.cxx
@@ -42,6 +42,7 @@
#include "test/getargument.hxx"
#include "test/officeconnection.hxx"
#include "test/toabsolutefileurl.hxx"
+#include "test/uniquepipename.hxx"
namespace {
@@ -63,13 +64,9 @@ void OfficeConnection::setUp() {
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("soffice")),
&argSoffice));
if (argSoffice.matchAsciiL(RTL_CONSTASCII_STRINGPARAM("path:"))) {
- oslProcessInfo info;
- info.Size = sizeof info;
- CPPUNIT_ASSERT_EQUAL(
- osl_Process_E_None,
- osl_getProcessInfo(0, osl_Process_IDENTIFIER, &info));
- desc = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("pipe,name=oootest")) +
- rtl::OUString::valueOf(static_cast< sal_Int64 >(info.Ident));
+ desc = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("pipe,name=")) +
+ uniquePipeName(
+ rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("oootest")));
rtl::OUString noquickArg(
RTL_CONSTASCII_USTRINGPARAM("-quickstart=no"));
rtl::OUString nofirstArg(
diff --git a/test/source/cpp/uniquepipename.cxx b/test/source/cpp/uniquepipename.cxx
new file mode 100644
index 000000000000..c7614f4f3216
--- /dev/null
+++ b/test/source/cpp/uniquepipename.cxx
@@ -0,0 +1,48 @@
+/*************************************************************************
+*
+* 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 "sal/config.h"
+
+#include "cppunit/TestAssert.h"
+#include "osl/process.h"
+#include "rtl/ustring.h"
+#include "rtl/ustring.hxx"
+#include "sal/types.h"
+#include "test/uniquepipename.hxx"
+
+namespace test {
+
+rtl::OUString uniquePipeName(rtl::OUString const & name) {
+ oslProcessInfo info;
+ info.Size = sizeof info;
+ CPPUNIT_ASSERT_EQUAL(
+ osl_Process_E_None,
+ osl_getProcessInfo(0, osl_Process_IDENTIFIER, &info));
+ return name + rtl::OUString::valueOf(static_cast< sal_Int64 >(info.Ident));
+}
+
+}
diff --git a/testautomation/dbaccess/required/input/oracle-report-builder.oxt b/testautomation/dbaccess/required/input/oracle-report-builder.oxt
new file mode 100644
index 000000000000..e806ba70897f
--- /dev/null
+++ b/testautomation/dbaccess/required/input/oracle-report-builder.oxt
Binary files differ
diff --git a/testautomation/dbaccess/required/input/sun-report-builder.oxt b/testautomation/dbaccess/required/input/sun-report-builder.oxt
deleted file mode 100755
index 658fedac671b..000000000000
--- a/testautomation/dbaccess/required/input/sun-report-builder.oxt
+++ /dev/null
Binary files differ
diff --git a/testautomation/dbaccess/tools/reporttools.inc b/testautomation/dbaccess/tools/reporttools.inc
index 4f7a6eb6d44c..70b9ff129bd5 100755..100644
--- a/testautomation/dbaccess/tools/reporttools.inc
+++ b/testautomation/dbaccess/tools/reporttools.inc
@@ -365,7 +365,7 @@ function tools_reporttools_InstallExtension
dim i as integer
use "global/tools/includes/optional/t_extension_manager_tools.inc"
if (not hIsExtensionAlreadyInstalled("Report Builder")) then
- i = hExtensionAddGUI( gTesttoolPath + "dbaccess/required/input/sun-report-builder.oxt", "AcceptLicense,InstallForUser" )
+ i = hExtensionAddGUI( gTesttoolPath + "dbaccess/required/input/oracle-report-builder.oxt", "AcceptLicense,InstallForUser" )
if (i > 0) then
tools_reporttools_InstallExtension = 0
else
diff --git a/testautomation/global/sid/all.sid b/testautomation/global/sid/all.sid
index 5ee1c157235f..f19c453b9ad2 100644..100755
--- a/testautomation/global/sid/all.sid
+++ b/testautomation/global/sid/all.sid
@@ -534,7 +534,7 @@ ExtrasIndividuellePraesentation SID_CUSTOMSHOW_DLG
' ExtrasSymbole SID_SYMBOLS
ExtrasSymboleKatalog SID_SYMBOLS_CATALOGUE
' ExtrasSymboleLaden SID_SYMBOLS_LOAD
-ExtrasFormelImportieren SID_INSERT_FORMULA
+ExtrasFormelImportieren SID_IMPORT_FORMULA
' ***********************************
' *********** Praesentationmenue ************
diff --git a/testautomation/global/sid/e_all.sid b/testautomation/global/sid/e_all.sid
index 4c7800ba8676..89b0a6d15e4d 100644..100755
--- a/testautomation/global/sid/e_all.sid
+++ b/testautomation/global/sid/e_all.sid
@@ -776,7 +776,7 @@ ToolsLanguageHyphenationDraw SID_HYPHENATION
' **** Math
ToolsSymbolsCatalog SID_SYMBOLS_CATALOGUE
-ToolsImportFormula SID_INSERT_FORMULA
+ToolsImportFormula SID_IMPORT_FORMULA
' ******************************************
' *********** Slide Show Menu ************
diff --git a/testautomation/global/win/dial_d_h.win b/testautomation/global/win/dial_d_h.win
index af40d36b23e1..7418c331472a 100755
--- a/testautomation/global/win/dial_d_h.win
+++ b/testautomation/global/win/dial_d_h.win
@@ -172,19 +172,6 @@ WiederholungsspalteButton sc:ImageButton:RID_SCDLG_AREAS:RB_REPEATCOL
*Druckbestaetigung HID_PRINTMONITOR
-*Druckoptionen HID_DLG_PRV_PRT_OPTIONS
-Zeilen sw:NumericField:DLG_PAGEPREVIEW_PRINTOPTIONS:NF_ROWS
-Spalten sw:NumericField:DLG_PAGEPREVIEW_PRINTOPTIONS:NF_COLS
-Links sw:MetricField:DLG_PAGEPREVIEW_PRINTOPTIONS:MF_LMARGIN
-Rechts sw:MetricField:DLG_PAGEPREVIEW_PRINTOPTIONS:MF_RMARGIN
-Oben sw:MetricField:DLG_PAGEPREVIEW_PRINTOPTIONS:MF_TMARGIN
-Unten sw:MetricField:DLG_PAGEPREVIEW_PRINTOPTIONS:MF_BMARGIN
-Horizontal sw:MetricField:DLG_PAGEPREVIEW_PRINTOPTIONS:MF_HMARGIN
-Vertikal sw:MetricField:DLG_PAGEPREVIEW_PRINTOPTIONS:MF_VMARGIN
-Querformat sw:RadioButton:DLG_PAGEPREVIEW_PRINTOPTIONS:RB_LANDSCAPE
-Hochformat sw:RadioButton:DLG_PAGEPREVIEW_PRINTOPTIONS:RB_PORTRAIT
-Standard sw:PushButton:DLG_PAGEPREVIEW_PRINTOPTIONS:PB_STANDARD
-
*DruckerZusaetzeDraw HID_SD_PRINT_OPTIONS
Zeichnung sd:CheckBox:TP_PRINT_OPTIONS:CBX_DRAW
Notizen sd:CheckBox:TP_PRINT_OPTIONS:CBX_NOTES
diff --git a/testautomation/graphics/optional/includes/global/g_demoguide.inc b/testautomation/graphics/optional/includes/global/g_demoguide.inc
index 54a3a67c58d0..d733c878aeb4 100644
--- a/testautomation/graphics/optional/includes/global/g_demoguide.inc
+++ b/testautomation/graphics/optional/includes/global/g_demoguide.inc
@@ -247,7 +247,8 @@ testcase t_Interoperability
MenuSelect(MenuGetItemID(3))
View.OpenMenu
MenuSelect(MenuGetItemID(2))
- sleep 2
+ printlog "needing a longer wait here for first start of the master page previews"
+ wait(20000)
Kontext "AvailableForUsePreview"
AvailableForUsePreview.TypeKeys "<HOME> <RIGHT> <RETURN>"
sleep (5)
diff --git a/testautomation/graphics/optional/includes/global/g_spellcheck.inc b/testautomation/graphics/optional/includes/global/g_spellcheck.inc
index 7f0993d09df5..f46c75f3e497 100644
--- a/testautomation/graphics/optional/includes/global/g_spellcheck.inc
+++ b/testautomation/graphics/optional/includes/global/g_spellcheck.inc
@@ -84,6 +84,165 @@ testcase tiToolsSpellcheckCheck_AlwaysIgnore
else
printlog " added word is in dictionary: '" + Buch.getSelText + "'"
end if
+ sleep 2
+
+ PrintLog "- Spellcheck with correct text"
+ select case iSprache
+ case 01 : hTextrahmenErstellen ("This is a text without any error.<Return>",10,10,50,20)
+ case 33 : hTextrahmenErstellen ("Il nous faut donc un de temps pour examiner avec soin tous les dossiers.<Return>",10,10,70,20)
+ case 34 : hTextrahmenErstellen ("Este es un chico muy importante.",10,10,50,20)
+ case 36 : hTextrahmenErstellen ("akit a b�r�s�g vagy a szab�lys�rt�si hat�s�g a eltiltott",10,10,70,20)
+ case 39 : hTextrahmenErstellen ("La ringraziamo per l'interesse mostrato a collaborare con la firma.<Return>",10,10,70,20)
+ case 46 : hTextrahmenErstellen ("Det varierar vad som behandlas och ur vilket perspektiv.<Return>",10,10,50,20)
+ case 49 : hTextrahmenErstellen ("Dies ist ein Text ohne Fehler.<Return>",10,10,50,20)
+ case 50 : hTextrahmenErstellen ("To je besedilo brez napake.<Return>",10,10,50,20)
+ case 55 : hTextrahmenErstellen ("Esta poderia ser a resposta para suas preces?<Return>",10,10,50,20)
+ case else :
+ if bAsianLan then
+ printlog "For the language " + iSprache +" nothing is prepared yet, but is AsianLan, so OK :-) will use english instaed"
+ ' there was smth wrong, try to find out :
+ kontext
+ if active.exists then
+ printlog "ERROR: active: '"+active.gettext+"'"
+ active.ok
+ end if
+ hTextrahmenErstellen ("This is a text without any error.<Return>",10,10,50,20)
+ else
+ Warnlog "For the language " + iSprache +" nothing is prepared yet: insert text here"
+ hTextrahmenErstellen ("This is a text without any error.<Return>",10,10,50,20)
+ end if
+ end select
+ ToolsSpellcheck
+ WaitSlot (2000)
+ Kontext "Active"
+ if active.exists(5) then
+ printlog "Message: spellchecking has finished?: '" + active.gettext + "'"
+ Active.OK
+ else
+ errorLog "Spellcheck started :"
+ Kontext "Spellcheck"
+ if Spellcheck.exists then
+ errorlog " - spellcheck came up and will be closed now"
+ Spellcheck.Close
+ else
+ printlog "spellcheck didn't come up"
+ end if
+ end if
+ WaitSlot (2000)
+ Call hCloseDocument
+endcase 'tiToolsSpellcheckCorrect
+
+'------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+testcase tiToolsSpellcheckError
+ if iSprache = 48 then
+ qaerrorlog "This test is not adapted for polish, 48."
+ got endsub
+ endif
+ Dim Fehler$
+ Dim Sprachenname$
+ Dim Dummy$
+ Dim FehlerText$
+ Dim i as integer
+
+ printlog "New document"
+ Call hNewDocument
+ printlog "Selecting language case: " & iSprache
+ select case iSprache
+ case 01 : FehlerText$ = "Thatt is a failure test." : Fehler$ = "Thatt" : Sprachenname$ = "English (US)"
+ case 34 : FehlerText$ = "Ezte es un chico muy importante." : Fehler$ = "Ezte" : Sprachenname$ = "Niederlaendisch"
+ case 33 : FehlerText$ = "Ler nous faut donc un de temps pour examiner." : Fehler$ = "Ler" : Sprachenname$ = "Franzoesisch"
+ case 36 : FehlerText$ = "Boszniai americkai kontingens háromnegyedesek – mintegy négyezer katona – magyarországi telepítése egy éven belül megtörténhet" : Fehler$ = "tellepítésel" : Sprachenname$ = "Ungarisch"
+ case 39 : FehlerText$ = "Ringrarziamo per l'interessa mostrato a collaborare con la firma." : Fehler$ = "Ringrarziamo" : Sprachenname$ = "Italienisch"
+ case 46 : FehlerText$ = "Detd varierar vad som behandlas och ur vilket perspektiv." : Fehler$ = "Detd" : Sprachenname$ = "Schwedisch"
+ case 49 : FehlerText$ = "Diees ist ein Fehler." : Fehler$ = "Diees" : Sprachenname$ = "Deutsch"
+ case 50 : FehlerText$ = "Toje napaka, ker manjka presledek." : Fehler$ = "Toje" : Sprachenname$ = "Slovenš?ina"
+ case 55 : FehlerText$ = "Eesta poderia ser a resposta para suas preces?": Fehler$ = "Eesta" : Sprachenname$ = "Portugiesisch"
+ case else :
+ if bAsianLan then
+ printlog "For the language " + iSprache +" nothing is prepared yet, but is AsianLan, so OK :-) using english"
+ FehlerText$ = "Thatt is a failure test."
+ Fehler$ = "Thatt"
+ Sprachenname$ = "English (US)"
+ call hSetSpellHypLanguage
+ else
+ Warnlog "For the language " + iSprache +" nothing is prepared yet: insert text here"
+ end if
+ end select
+ printlog "Error Text taken for testing is: " & FehlerText$
+ sleep 2
+
+ printlog "Delete ignore word list"
+ if (not wIgnorierenlisteLoeschen) then
+ qaErrorLog "Can't get into Dictionary lists"
+ goto endsub
+ end if
+ printlog "Setting doc language to english"
+ ToolsOptions
+ Kontext "ExtrasOptionenDlg"
+ hToolsOptions("LANGUAGESETTINGS","Languages")
+ Westlich.Select 34
+ Kontext "ExtrasOptionenDlg"
+ ExtrasOptionenDlg.OK
+ printlog "Create 1 textbox with 1 spelling error (test replace always)"
+ hTextrahmenErstellen (FehlerText$,30,30,90,40)
+
+ hTypeKeys "<HOME>"
+ printlog "Call 'Tools->Spellcheck->Check'"
+ ToolsSpellcheck
+ printlog "Spellcheck dialog has to come up, wrong word is selected."
+ Kontext "Spellcheck"
+ if Spellcheck.Exists then
+ printlog "There has to be at least ONE suggestion."
+ if (Suggestions.GetItemCount < 1) then
+ printlog "If no suggestion avilable:"
+ warnlog " - no suggestion for the language: "+DictionaryLanguage.GetSelIndex+" '"+DictionaryLanguage.GetSelText+"' , press check button..."
+ printlog "+ press button 'Check word'"
+ Pruefen.click
+ if (Suggestions.GetItemCount < 1) then
+ warnlog " STILL no suggestions :-( errors will follow "
+ else
+ printlog " - now suggestion for the language: "+DictionaryLanguage.GetSelIndex+" '"+DictionaryLanguage.GetSelText+"'" + Suggestions.GetItemCount
+ end if
+ end if
+ Dummy$=Suggestions.GetItemText (1)
+ printlog "Select first spellcheck suggestion (click it!)."
+ Suggestions.Select (1)
+ printlog "Check if textfield 'word' has changed to selected word."
+ if (Suggestions.GetSelText <> Dummy$) Then
+ Warnlog "Suggestion not used"
+ else
+ Printlog "Suggestion is used"
+ end if
+ sleep 1
+ kontext "Spellcheck"
+ printlog "click button 'Always replace'"
+ ChangeAll.Click
+ printlog "spellcheck dialog has to disappear and"
+ printlog "There has to come up only one active: 'Spellcheck of entire document has been completed [OK]'"
+ Kontext "Active"
+ if Active.Exists(5) then
+ Printlog "Message: Spellchecking has finished?: '" + active.gettext + "'"
+ Active.OK
+ else
+ Printlog "'Change All' seems to have worked correctly."
+ Kontext "Spellcheck"
+ Spellcheck.Close
+ Kontext "Active"
+ if active.exists(5) then
+ Printlog "Spellcheck dialog closed'" + active.gettext + "'"
+ Active.OK
+ else
+ Printlog "Spellcheck dialog closed'"
+ end if
+ end if
+ else
+ Warnlog " Error not recognized by the Spellchecker"
+ if active.exists(5) then
+ Kontext "Active"
+ printlog "Message: spellchecking has finished?: '" + active.gettext + "'"
+ Active.OK
+ end if
+ end if
printlog "Close dialog 'Edit Custom Dictionary'."
BenutzerwoerterbuchBearbeiten.Close
@@ -173,8 +332,6 @@ endcase
'-------------------------------------------------------------------------------
testcase tiToolsSpellcheckCheck_ChangeAll
-
-
Dim sExt as string
Dim sRightWord as String
Dim sWrongWord as string
@@ -218,11 +375,6 @@ testcase tiToolsSpellcheckCheck_ChangeAll
Call hCloseDocument
endcase
-
-
-
-
-
'-------------------------------------------------------------------------------
function delete_all_added_words(aWords)
@@ -232,7 +384,44 @@ function delete_all_added_words(aWords)
Dim iWordCounter as integer
Dim iBooks as integer
- Printlog "Delete the given words from dictionaries."
+ Select Case Ucase(gApplication)
+ case "DRAW" : sExt = ".odg"
+ case "IMPRESS" : sExt = ".odp"
+ end select
+
+ printlog "Load prepared document containing 4 errors : graphics\\required\\input\\recht_" & iSprache & sExt
+ if (not bAsianLan) then
+ printlog "Check if the document is writable."
+ Call hFileOpen (gTesttoolpath + "graphics\required\input\recht_"+iSprache+sExt)
+ else
+ Call hFileOpen (gTesttoolpath + "graphics\required\input\recht_1"+sExt)
+ end if
+ if fIsDocumentWritable = false then
+ printlog "Make the document writable and check if it's succesfull."
+ if fMakeDocumentWritable = false then
+ warnlog "The document can't be make writeable. Test stopped."
+ goto endsub
+ end if
+ end if
+ select case iSprache ' sWord(1)=red : sWord(2)=turquoise
+ case 01 : sWord(1) = "documente" : sWord(2) = "expriss"
+ case 33 : sWord(1) = "intercu" : sWord(2) = "Lees"
+ case 34 : sWord(1) = "afekto" : sWord(2) = "fratternal"
+ case 36 : sWord(1) = "szeerint" : sWord(2) = "tervvezi"
+ case 39 : sWord(1) = "Millano" : sWord(2) = "tarrget"
+ case 46 : sWord(1) = "desa" : sWord(2) = "occh"
+ case 49 : sWord(1) = "Texxt" : sWord(2) = "reichtt"
+ case 50 : sWord(1) = "Bsedilo" : sWord(2) = "zados?a"
+ case 55 : sWord(1) = "esktava" : sWord(2) = "noitee"
+ case else :
+ if bAsianLan then
+ sWord(1) = "documente" : sWord(2) = "expriss"
+ else
+ Warnlog "For the language " + iSprache +" nothing is prepared yet: insert text here and create the file"
+ end if
+ end select
+ sleep 2
+
printlog "Call Tools->Options."
ToolsOptions
printlog "Select in category 'Languagesettings' entry 'Writing Aids.'"
diff --git a/testautomation/graphics/optional/includes/global/g_tables.inc b/testautomation/graphics/optional/includes/global/g_tables.inc
index 94a76349e948..410ed8ca0fc6 100644
--- a/testautomation/graphics/optional/includes/global/g_tables.inc
+++ b/testautomation/graphics/optional/includes/global/g_tables.inc
@@ -218,8 +218,12 @@ testcase tiTableObjectBar
Kontext "InsertTableImpress"
printlog "Inserting table."
- InsertTableImpress.OK
-
+ if InsertTableImpress.Exists(1) then
+ InsertTableImpress.OK
+ else
+ sleep (1)
+ InsertTableImpress.OK
+ endif
printlog "Selecting table for geeting the TableObjectBar."
printlog "Switching between Draw/Impress"
if ( gApplication = "IMPRESS" )then
diff --git a/testautomation/graphics/optional/includes/global/g_tools.inc b/testautomation/graphics/optional/includes/global/g_tools.inc
index c54881a0b68e..04fc0b92d4b2 100644
--- a/testautomation/graphics/optional/includes/global/g_tools.inc
+++ b/testautomation/graphics/optional/includes/global/g_tools.inc
@@ -280,16 +280,7 @@ testcase tiToolsThesaurusContextMenu
PrintLog "Thesaurus with 1 word: " + sWord
- if( Ucase(gApplication) = "DRAW" ) then
- sExt = ".odg"
- Kontext "DrawDocument"
- elseif( Ucase(gApplication) = "IMPRESS" ) then
- sExt = ".odp"
- Kontext "ImpressDocument"
- endif
-
- Call hFileOpen (gTesttoolpath + "graphics\required\input\recht_" + iSprache + sExt)
- Call sMakeReadOnlyDocumentEditable
+ Call hNewDocument
Call hTextrahmenErstellen (sWord,20,20,50,30)
sleep 1
@@ -349,7 +340,7 @@ testcase tiToolsHyphenation1
case 46 : hTextrahmenErstellen ("Detta är en text utan delade ord",10,10,40,40)
case 48 : hTextrahmenErstellen (" Jeoli jednak zechcesz",10,10,40,40)
case 49 : hTextrahmenErstellen ("Dies ist ein Text ohne eine Moeglichkeit Woerter zu trennen",10,10,40,40)
- case 50 : hTextrahmenErstellen ("Zato ves čas iščemo nove člane: sodelujte",10,10,40,40)
+ case 50 : hTextrahmenErstellen ("Zato ves ?as iš?emo nove ?lane: sodelujte",10,10,40,40)
case 55 : hTextrahmenErstellen ("a Sun tentou adquirir a Apple",10,10,40,40)
case else : if bAsianLan then
printlog "For the language " + iSprache +" nothing is prepared yet, but is AsianLan, so OK :-)"
diff --git a/testautomation/graphics/optional/includes/impress/i_us_present.inc b/testautomation/graphics/optional/includes/impress/i_us_present.inc
index 41ccd13660d5..599f89abe4f1 100644
--- a/testautomation/graphics/optional/includes/impress/i_us_present.inc
+++ b/testautomation/graphics/optional/includes/impress/i_us_present.inc
@@ -52,13 +52,12 @@ testcase i_us_presentation1
printlog "New master"
MenuSelect(MenuGetItemID(1))
sleep (1)
- printlog " Inserted second Master-Slide"
-
+ printlog "Inserted second Master-Slide"
printlog "set background to picture(Gallery)"
Kontext "Gallery"
if Gallery.Exists(2) then
- warnlog " The Gallery was already visible. Check earlier ran tests for inconsistency."
+ warnlog "The Gallery was already visible. Check earlier ran tests for inconsistency."
sleep (2)
else
ToolsGallery
@@ -112,7 +111,7 @@ testcase i_us_presentation1
sleep (2)
Kontext "ExportierenDlg"
if ExportierenDlg.IsVisible(5) then
- printlog " Gallery-object correctly copied into Slide."
+ printlog "Gallery-object correctly copied into Slide."
ExportierenDlg.Close
WaitSlot (2000)
end if
@@ -134,15 +133,6 @@ testcase i_us_presentation1
sleep (1)
kontext "GraphicFilterBar"
Mosaic.Click
- WaitSlot (2000)
- kontext "Mosaic"
- Width.SetText "16"
- Height.SetText "16"
- Mosaic.OK
-
- kontext "GraphicFilterBar"
- Mosaic.Click
-
kontext "Mosaic"
if ( Mosaic.exists( 2 ) ) then
Width.SetText "16"
@@ -151,25 +141,21 @@ testcase i_us_presentation1
else
warnlog( "Dialog <Mosaic> did not open" )
endif
-
kontext "GraphicFilterBar"
GraphicFilterBar.Close
-
ToolsGallery
WaitSlot (1000)
-
kontext "DocumentImpress"
gMouseClick 50,50
sleep (1)
-
FormatPositionAndSize
kontext
if ( Active.exists( 2 ) ) then
active.setPage(TabPositionAndSize)
kontext "TabPositionAndSize"
- Width.SetText "800"
- Height.SetText "600"
+ Width.SetText "15"
+ Height.SetText "11"
SizePosition.TypeKeys "<RIGHT><DOWN>"
TabPositionAndSize.OK
else
@@ -199,13 +185,13 @@ testcase i_us_presentation2
PresentationFile1 = ConvertPath( gOfficePath + "user\work\PowerPes1.odp" )
PresentationFile2 = ConvertPath( gOfficePath + "user\work\PowerPes2.odp" )
- if ( FileExists( PresentationFile1 ) ) then 'if file exists...
+ if ( FileExists( PresentationFile1 ) ) then 'if file exists...
hFileOpen (PresentationFile1)
else
warnlog " This test is supposed to run after the previous testcase has been run. Notify the Automatic-tester."
goto endsub
end if
-
+ sleep (2)
printlog "New Slide"
kontext "slides"
SlidesControl.TypeKeys( "<PAGEDOWN>", 3 )
@@ -235,7 +221,6 @@ testcase i_us_presentation2
printlog " Did the 'mistake' to FadeIn/Out the Slidepane"
-
InsertGraphicsFromFile
Kontext "GrafikEinfuegenDlg"
if GrafikEinfuegenDlg.exists(5) then
@@ -245,7 +230,6 @@ else
warnlog " The Insertgraphics-dialogue didn't show up."
endif
-
printlog "Graphics-Import-dialogue. Select i_us_large.jpg"
Kontext "GrafikEinfuegenDlg"
if ( GrafikEinfuegenDlg.exists( 2 ) ) then
diff --git a/testautomation/graphics/required/includes/global/id_002.inc b/testautomation/graphics/required/includes/global/id_002.inc
index 8f4e7cf1bffc..0b2a91818cda 100644
--- a/testautomation/graphics/required/includes/global/id_002.inc
+++ b/testautomation/graphics/required/includes/global/id_002.inc
@@ -225,6 +225,7 @@ testcase tiEditFields
printlog " open application "
Call hNewDocument
WaitSlot (2000)
+ call sSelectEmptyLayout()
printlog " insert something to be able to use this function"
printlog "+ Insert->Fields->Date (fixed)"
printlog "+ deselect object, select, editmode "
diff --git a/testautomation/math/optional/includes/m_105.inc b/testautomation/math/optional/includes/m_105.inc
index 9d35f36ffdea..373643b2e2f0 100644
--- a/testautomation/math/optional/includes/m_105.inc
+++ b/testautomation/math/optional/includes/m_105.inc
@@ -448,7 +448,7 @@ testcase tToolsCatalog
'///+ insert the copied text into the document ///'
DocumentWriter.typeKeys "<Mod1 End> - " + sTemp + ": " + j + "<Tab>"
sAllSymbols = sAllSymbols + sTemp
- listAppend(lAllSymbols(), sTemp)
+ listAppend(lAllSymbols(), rtrim(sTemp))
next j
next i
diff --git a/testautomation/math/required/includes/m_005_.inc b/testautomation/math/required/includes/m_005_.inc
index d9c773ef7372..f2c2a5d0ca60 100755..100644
--- a/testautomation/math/required/includes/m_005_.inc
+++ b/testautomation/math/required/includes/m_005_.inc
@@ -67,6 +67,17 @@ testcase tToolsCatalog
'/// Click Button 'Modify' ///'
Modify.Click
sleep 1
+ '/// cancel dialog 'Edit Symbols' ///'
+ EditSymbols.Cancel
+ ' since cws tl82 - dev300m88 we need to go into dialog again to get the others buttons
+ Kontext "SymboleMath"
+ printlog "count of 'Symbol set' :" + Symbolset.GetItemCount
+ '/// click button 'Edit...' ///'
+ Bearbeiten.Click
+ Kontext "EditSymbols"
+ '/// select last item in listbox 'Font' ///'
+ Font.Select (Font.GetItemCount)
+ sleep 1
'/// Click Button 'Delete' ///'
Delete.Click
sleep 1
diff --git a/testautomation/spreadsheet/required/includes/c_upd_filemenu.inc b/testautomation/spreadsheet/required/includes/c_upd_filemenu.inc
index a2e3f5a70598..6328a62f5b37 100644
--- a/testautomation/spreadsheet/required/includes/c_upd_filemenu.inc
+++ b/testautomation/spreadsheet/required/includes/c_upd_filemenu.inc
@@ -240,6 +240,7 @@ testcase tFileOpenCSV
TextImport.ok
sleep (2)
Printlog " - CSV import dialog is in function"
+ sleep (1)
Kontext "DocumentCalc"
printlog " Close document"
Call hCloseDocument
diff --git a/testautomation/spreadsheet/required/includes/c_upd_toolsmenu.inc b/testautomation/spreadsheet/required/includes/c_upd_toolsmenu.inc
index 9efc84907b78..bcc263147371 100755..100644
--- a/testautomation/spreadsheet/required/includes/c_upd_toolsmenu.inc
+++ b/testautomation/spreadsheet/required/includes/c_upd_toolsmenu.inc
@@ -416,7 +416,9 @@ testcase tToolsLanguageThesaurus
printlog " Check that there are alternatives available"
if Alternatives.GetItemCount < 1 then
warnlog "There are no alternatives available"
- else Alternatives.Select (1)
+ else
+ Alternatives.Select (1)
+ sleep (1)
if ReplaceWith.GetText = "" then
warnlog "The repacle with field is empty"
end if
diff --git a/testautomation/writer/optional/input/import/dostext.txt b/testautomation/writer/optional/input/import/dostext.txt
index 40d0aae51adf..7e6c1044cd3a 100755..100644
--- a/testautomation/writer/optional/input/import/dostext.txt
+++ b/testautomation/writer/optional/input/import/dostext.txt
@@ -1,79 +1,79 @@
-Dies ist ein ganz einfacher Dos-Text.
-
-Es werden auch ein paar Sonderzeichen benutzt:
-
-\=Chr(92)
-=Chr(132)
--=Chr(45)
-=Chr(245)
-
-Lieber Test schau doch mal was Du hiermit anfangen kannst.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Jetzt hoffe ich, da das Dokument auf der 2 Seite ist, wenn nicht dann ist es schlecht. Aber hier wird auch mal geschaut, ob die Grenze von 256 Zeichen pro Zeile keine Probleme machen. Dies wre doch ein ganz schn doofer Fehler, hoffentlich wurde das schon mal getestet. Wie lang geht die Zeile im Dos-Editor denn noch, ich bin doch schon bei 348 Spalten. Oh es geht doch sehr viel weiter, dann hre ich hier mal auf.
-
-
-
-
-
-Tschau
- TZ
+Dies ist ein ganz einfacher Dos-Text.
+
+Es werden auch ein paar Sonderzeichen benutzt:
+
+\=Chr(92)
+=Chr(132)
+-=Chr(45)
+=Chr(245)
+
+Lieber Test schau doch mal was Du hiermit anfangen kannst.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Jetzt hoffe ich, da das Dokument auf der 2 Seite ist, wenn nicht dann ist es schlecht. Aber hier wird auch mal geschaut, ob die Grenze von 256 Zeichen pro Zeile keine Probleme machen. Dies wre doch ein ganz schn doofer Fehler, hoffentlich wurde das schon mal getestet. Wie lang geht die Zeile im Dos-Editor denn noch, ich bin doch schon bei 348 Spalten. Oh es geht doch sehr viel weiter, dann hre ich hier mal auf.
+
+
+
+
+
+Tschau
+ TZ
diff --git a/testautomation/writer/optional/input/import/swdos.txt b/testautomation/writer/optional/input/import/swdos.txt
index b23df9eba2f9..de2365acbdb2 100755
--- a/testautomation/writer/optional/input/import/swdos.txt
+++ b/testautomation/writer/optional/input/import/swdos.txt
@@ -1,3314 +1,3314 @@
-.\\\ WRITER 6 \\\
-C:\SW70\VORLAGEN\STANDARD.LAY
-C:\SW70\TREIBER\FM$65011.GPM
-12
-00000
-00010
-00109
-00001
-00001
-00001
-00002
-00002
-00000
-00006
-00000
-00000
-Blumentritt
-
-
-
-
-
-
-
-
-
-0
-17280
-11520
-0
-0
-JA
-3
-75
-0
-20
-0
-0
-0
-0
-0
-0
-0
-NEIN
-
-
-
-0
-2
-1
-Grund - Absatzlayout
-GA
-0
-0
-0
-0
-0
-1
-24
-0
-1
-0
-1
-NEIN
-NEIN
-NEIN
-240
-0
-0
-20
-0
-0
-0
-0
-0
-1
-0
-NEIN
-
-1
-566
-0
-0
-Einrckung links
-EL
-0
-566
-0
-0
-0
-1
-24
-0
-1
-0
-1
-NEIN
-NEIN
-NEIN
-240
-0
-0
-20
-0
-0
-0
-0
-0
-0
-0
-NEIN
-
-1
-566
-0
-0
-Grund - Seitenlayout
-GS
-480
-720
-269
-1133
-1680
-1680
-0
-0
-1
-NEIN
-0
-0
-
-
-
-
-
-
-
-
-0
-
-0
-
-
-
-
-
-
-
-KABAAB
-
-
-
-
-
-
-
-
-S t e f a n B r e u e r
-
-
-G e s e l l s c h a f t d e s V e r s c h w i n d e n s
-
-
-
-
-
- PA
-
-
-Inhalt
-
-S
-S
-S
-S
-SVorwort
-S
-S
-S
-SDie Entwicklungskurve der Zivilisation.
-SEine Auseinandersetzung mit Norbert Elias
-S
-S
-S
-SProduktive Disziplin. Foucaults Theorie der
-Disziplinargesellschaft
-S
-S
-S
-SAdorno, Luhmann: Die moderne Gesellschaft zwischen
-Selbstreferenz und Selbstdestruktion
-S
-S
-S
-S'Nicht der Anfang, das Ende trgt die Last'.
-SFriedrich Georg Jnger und die Perfektion der Technik
-S
-S
-S
-SDer Nihilismus der Geschwindigkeit.
-SZum Werk Paul Virilios
-S
-S
-S
-STechnik und Wissenschaft als Hierophanie
-S
-S
-S
-SGtterdmmerung
-S
- SPA
-SVorwort
-S
-S
-S
-S
-S
-S
-S... Wir ordnens. Es zerfllt.
-S Wir ordnens wieder und zerfallen selbst.
-S Rilke, Duineser Elegien
-S
-SDie Gegenwart, so versichert man uns seit einiger Zeit, stehe im
-Zeichen eines groen Verschwindens. Die Metaerzhlungen, welche
-die Spielregeln des modernen Wissens legitimierten, lsten sich
-auf oder verlren an Glaubwrdigkeit; die Diskurse ber die
-Dialektik des Geistes, die Hermeneutik des Sinns oder die
-Emanzipation der Gattung enthllten sich als Fabeln, denen keine
-Funktion mehr zukomme (Lyotard 1986, 13f.). Die Fundamente der
-neuzeitlichen Metaphysik wrden brchig, das Ende des
-Humanismus, der Subjektivitt, ja der Moderne schlechthin
-kndige sich an (Vattimo 1990, 52f.). Das Wissen selbst sprenge
-im Zuge seiner Entfaltung die vereinheitlichenden,
-universalisierenden, totalisierenden Ambitionen, mit denen es
-seit Descartes belastet sei. Relativittstheorie und
-Quantenphysik bewirkten eine Grundsatzrevision, eine "Mutation
-im Kern der Neuzeit", an der der Absolutheitsanspruch der alten
-Mathesis universalis zerbreche. Auflsung des Ganzen, Ende der
-Einheit, Obsoletheit der Totalitt: "Absolutheit ist nur noch
-eine Idee, ein archimedischer Punkt ist undenkbar, das Operieren
-ohne letztes Fundament wird zur Grundsituation" (Welsch 1988,
-187).
-S
-SDem Verschwinden der Totalitt, heit es weiter, korrespondiert
-das Erscheinen der Pluralitt, dem 'Koma der Moderne' (Matthieu)
-die Geburt der Postmoderne. Wo der szientifische Diskurs der
-Moderne nur den Kult einer monotheistischen Vernunft kannte,
-begreift sich der Postmodernismus als Anwalt des Polytheismus,
-als "Wahrer einer vielfltigen Wirklichkeit gegen ihre
-technologische Eintrbung" (ebd. 221 f.); wo einst die
-Monokultur eines technologischen Zeitalters sich ausbreitete,
-blht heute eine bunte Vielfalt von Horizonten, Lebenswelten,
-Wissensformen. Die Postmoderne 'verwindet' die Metaphysik
-(Vattimo 1990, 53); sie beharrt gegenber der homogenisierenden
-Gewalt des konomischen Diskurses auf der "Heterogenitt der
-Satz-Regelsysteme und Diskursarten" (Lyotard 1987, 263) und
-zeigt sich aggressiv gegen jede Totalisierung. "Krieg dem
-Ganzen, zeugen wir fr das Nicht-Darstellbare, aktivieren wir
-die Widerstreite, retten wir die Ehre des Namens" (Lyotard 1988,
-203). Auch wenn in diesem Krieg noch einige Schlachten verloren
-gehen sollten, glaubt die Postmoderne die strkeren Bataillone
-auf ihrer Seite zu haben. Sie will gegenber Technik und
-konomie das umfassendere Deutungsmuster sein und nicht nur die
-Entwicklungslogik des Wissens, sondern auch die der Gesellschaft
-fr sich haben (Welsch 1988, 218, 4). Das Verschwinden des
-Ganzen sei nicht mehr aufzuhalten, die Freisetzung der Teile
-unvermeidlich. "Die Postmoderne beginnt dort, wo das Ganze
-aufhrt" (ebd. 39).
- S
-SNun gibt es wenig Grnde, die Moderne vor der Kritik zu
-schtzen. Die meisten der gegen sie vorgetragenen Gravamina
-bestehen zu Recht. Es gibt aber auch keinen Grund, sich einem
-Feldzug anzuschlieen, der auf einer so fragwrdigen
-Lagebeurteilung wie der soeben skizzierten beruht. Zunchst
-einmal ist vllig ungeklrt, um welche Art von Pluralitt es
-sich handelt, die den Holismus der Moderne ersetzen soll: um
-eine Pluralitt, die aus der Gleichzeitigkeit des
-Ungleichzeitigen resultiert, also lediglich ein Ensemble noch
-nicht vermittelter Vielheit ist; um die Differenzierungsprodukte
-einer Einheit, die noch im Auersichsein bei sich selbst ist -
-Pluralitt la Hegel; oder um eine materiale, irreduzible
-Pluralitt, an der jeder Homogenisierungsversuch scheitert. Nur
-diese letztere liee sich aussichtsreich mobilisieren, aber auch
-nur dann, wenn sie strategische Relevanz besitzt und nicht blo
-marginaler Natur ist. Lyotards Eingestndnis, das einzige
-unberwindliche Hindernis fr die hegemonialen Tendenzen des
-konomischen Diskurses liege in der Heterogenitt der Satz-
-Regelsysteme, deutet jedoch genau in diese Richtung. Wer der
-zerstrerischen Gewalt der Moderne nur Stze entgegenzusetzen
-hat, hat ihr schon nichts mehr entgegenzusetzen.
-S
-SSchlielich sind auch die Bundesgenossen, auf die sich der
-Postmodernismus glaubt sttzen zu knnen, alles andere als
-vertrauenerweckend. Es mag ja sein, da mit den Innovationen von
-Einstein, Heisenberg und Gdel der Totalittsanspruch der alten
-Mathesis universalis unhaltbar geworden ist. Aber erstens ist
-das mechanische Weltbild durch die neuere Physik nicht einfach
-widerlegt, sondern lediglich auf den mesokosmischen Bereich
-eingeschrnkt worden. Und zweitens kann man den Vorsto von
-Wissenschaft und Technik in den mikro- und makrokosmischen
-Bereich kaum als Beleg fr eine "Einschrnkung des
-Monopolanspruchs der Wissenschaft" oder als Anzeichen fr eine
-Beendigung der "Hegemonie szientifischer Orientierung" nehmen
-(Welsch 1988, 188, 222). Die Flexibilisierung der Wissenschaft
-und die Erweiterung ihres Methodenarsenals begrnden ihre
-Expansion, nicht ihre Selbstlimitation.
-S
-SWie die Postmodernisten ihre eigenen Strke berschtzen, so
-unterschtzen sie die des Gegners. Die Rede von den groen
-Erzhlungen suggeriert, da Totalitt nichts weiter sei als eine
-"Anmaung" (Lyotard 1988a, 213), eine falsche Darstellung der
-Welt, die sich jederzeit durch eine adquatere korrigieren
-liee; der Diskurs der Moderne erscheint so als das Ergebnis
-einer immer schon "illegitimen Erhebung eines in Wirklichkeit
-Partikularen zum vermeintlich Absoluten" (Welsch 1988, 5), als
-bergriff, dem kritizistisch mit dem Hinweis auf die begrenzten
-Kompetenzen des Denkens zu begegnen ist. So ungefhr
-argumentierten vor Jahrzehnten schon Popper und Albert, die sich
-weit mehr dafr interessierten, den Dialektikern totalitre
-Ambitionen nachzuweisen, als den totalisierenden Tendenzen in
-der Wirklichkeit nachzugehen. Totalitt ist aber keine Erfindung
-herrschschtiger Intellektueller, sondern eine Realitt, die
-sich nicht einfach wegdekretieren lt. Sie manifestiert sich in
-der Tendenz des Kapitals, "alle Elemente der Gesellschaft sich
-unterzuordnen oder die ihm noch fehlenden Organe aus ihr heraus
-zu schaffen" (Marx 1974, 189); sie zeigt sich in der
- Universalisierung und Globalisierung der dem Kapitalverhltnis
-eigenen Produktions- und Zirkulationsformen; und nicht zuletzt
-in der massiven Expansion der experimentellen Wissenschaften,
-die immer tiefer in die Infrastrukturen der Materie
-intervenieren und lngst keine Grenzen mehr kennen. Nicht da
-dem Postmodernismus dies vllig entginge. Aber die forcierte,
-wie immer auch inzwischen zurckgenommene oder relativierte
-Behauptung einer Postmoderne, eines Zustands also jenseits der
-fr die Moderne typischen Totalisierung, deutet auf eine
-Verharmlosung, die nicht anders als leichtfertig bezeichnet
-werden kann. Wer fr ein 'Denken des Genusses' eintritt (Vattimo
-1990, 192), mag dies tun, er drckt damit ohnehin nur die
-herrschende Orientierung aus. Er sollte aber nicht die Illusion
-verbreiten, es handle sich um mehr als den Genu von
-Henkersmahlzeiten. Das Ende der Moderne wird nicht der Aufgang
-der Postmoderne sein, sondern das Ende der Welt, genauer: der
-bewohnbaren Welt.
-S
-SSo jedenfalls legt es die dialektische Denkbewegung nahe, die
-das Verhltnis von Erscheinen und Verschwinden ganz anders fat
-als der Postmodernismus. Whrend der letztere das Signum der
-Epoche im Verschwinden der Einheit und im Erscheinen
-vermittlungsloser Vielfalt sieht, insistiert das dialektische
-Denken seit Hegel darauf, da die unvermittelte Vielfalt
-verschwindet und von einer absoluten, in sich differenzierten
-Einheit abgelst wird. Die Hegelsche Logik analysiert die
-Bewegung vom scheinenden zum erscheinenden Wesen, in deren
-Verlauf die dem Wesen eigenen Bestimmungen als reale und
-selbstndige Vermittlungen in die Existenz treten; die
-Geschichtsphilosophie bersetzt diesen Gedanken in einen
-historischen Proze, dessen markanteste Stationen das Erscheinen
-des Gttlichen in Christo und die Realisierung der Vernunft im
-modernen Staate sind. Marx uerte hieran berechtigte Zweifel
-und verschob die wahre Vershnung auf den Sozialismus. Am
-Grundgedanken hielt er nichtsdestoweniger fest. Auch fr ihn ist
-die Heterogenitt der modernen Gesellschaft - die 'Konkurrenz' -
-nichts Neues oder Eigenstndiges gegenber dem Wesen, sondern
-dessen Erscheinungsform. Denn das Wesen der modernen
-Gesellschaft - das Wertgesetz - besteht gerade darin, als
-Negation seiner selbst zu erscheinen, so da der Erscheinung der
-Schein von Selbstndigkeit zukommt. "Innerhalb des
-Wertverhltnisses und des darin einbegriffenen Wertausdrucks
-gilt das abstrakt Allgemeine nicht als Eigenschaft des
-Konkreten, Sinnlich-Wirklichen, sondern umgekehrt das Sinnlich-
-Konkrete als bloe Erscheinungs- oder bestimmte
-Verwirklichungsform des Abstrakt-Allgemeinen (...). Diese
-Verkehrung, wodurch das Sinnlich-Konkrete nur als
-Erscheinungsform des Abstrakt-Allgemeinen, nicht das Abstrakt-
-Allgemeine umgekehrt als Eigenschaft des Konkreten gilt,
-charakterisiert den Wertausdruck" (Marx 1867, 771).
-S
-SDiese Konzeption ist festzuhalten, weil sich nur mit ihrer Hilfe
-Einsicht in die komplizierte Architektur der modernen
-Gesellschaft gewinnen lt. Sie ist aber zugleich zu
-modifizieren, weil Marx, darin ganz Kind des 19. Jhs., die
-selbstzerstrischen Zge der Wertvergesellschaftung
-unterschtzte. Gewi, Marx sah genau, da die kapitalistische
-Produktionsweise die "Springquellen allen Reichtums untergrbt:
- die Erde und den Arbeiter" (MEW 23, 530). Er erkannte ferner mit
-einer Klarheit wie niemand vor ihm, welches selbstnegatorische
-Potential mit dem wachsenden Widerspruch zwischen notwendiger
-und berflssiger Arbeitszeit entsteht (Marx 1974, 592ff.).
-Indes war er felsenfest davon berzeugt, da, wenn schon nicht
-das Kapital, so doch die Menschheit imstande sein wrde, sich
-wie Mnchhausen am eigenen Schopf aus dem Sumpf zu ziehen. Der
-Speer, der die Wunde schlug - die Wissenschaft - galt ihm als
-poena et remedium peccati. Wenn die verwissenschaftlichte
-Produktion unter kapitalistischen Bedingungen den Stoffwechsel
-zwischen Mensch und Erde strte, so zwang sie doch zugleich
-"durch die Zerstrung der blo naturwchsig entstandnen Umstnde
-jenes Stoffwechsels, ihn systematisch als regelndes Gesetz der
-gesellschaftlichen Produktion und in einer der vollen
-menschlichen Entwicklung adquaten Form herzustellen" (MEW 23,
-528). Wenn sie die Arbeitsmittel in "Unterjochungsmittel,
-Exploitationsmittel und Verarmungsmittel des Arbeiters"
-verwandelte und die "gesellschaftliche Kombination der
-Arbeitsprozesse als organisierte Unterdrckung seiner
-individuellen Lebendigkeit, Freiheit und Selbstndigkeit"
-betrieb (ebd. 528f.), so folgte sie damit nur einer geheimen
-Logik, die das, was sie den Individuen nahm, der Gattung in
-tausendfach vergrerter Form zurckerstattete. Fr Marx war die
-kapitalistische Modernisierung, wie fr die meisten brgerlichen
-Denker, ein antientropischer Proze, der, von partiellen
-Rckfllen abgesehen, mit Naturnotwendigkeit zu hheren
-Ordnungen fhrte - und zwar deshalb, weil sich hinter dem Wesen
-'Kapital' noch ein weit umfassenderes Wesen befand: die
-Menschheit. Was immer die Althusser-Schule an Gegenargumenten
-gebracht hat: Marx hat, soweit er Revolutionstheoretiker sein
-wollte, den anthropologischen Diskurs niemals verlassen.
-S
-SDer anthropologische Diskurs aber macht blind. Er zwingt dazu,
-die Bewegung des Scheins als eine Scheinbewegung anzusehen und
-die mit ihr verbundenen Zerstrungen in Fortschritte umzudeuten.
-Erst wenn Klarheit darber besteht, da das Kapitalverhltnis
-nicht das Werkzeug oder der Wegbereiter eines sich in der
-Geschichte entfaltenden Absolutums - der menschlichen Gattung -
-ist, sondern selbst das Absolute, erst dann werden die Folgen
-seiner Expansion als das erkennbar, was sie sind: Momente einer
-beispiellosen Verheerung und Verwstung, die zeitlich und
-rumlich begrenzte Ordnungsgewinne mit einer Steigerung der
-Unordnung in der Umgebung erkauft. Erst dann kann aber auch
-deutlich werden, da dieses Absolute - die von allen
-Umweltbezgen abgelste 'reine Gesellschaft' - nur auf Zeit
-existiert, da es im gleichen Mae, in dem es sich ausdehnt, die
-Bedingungen seiner Existenz zerstrt. Wir sind schon zu tief in
-diesen Proze verstrickt, um an seiner Grundrichtung noch etwas
-ndern zu knnen. Das Bewutsein darber, da die Gesellschaft
-des Erscheinens in Wahrheit eine Gesellschaft des Verschwindens
-ist, knnte aber vielleicht dazu beitragen, das Tempo des
-Erscheinens (und damit auch: des Verschwindens) zu verlangsamen.
-Die Transformation der Anthropologie in Entropologie, wie sie
-Claude Lvi-Strauss schon vor langer Zeit gefordert hat, wre
-dazu ein erster Schritt:
-S
-S"Die Welt hat ohne den Menschen begonnen und wird ohne ihn enden. Die Institutionen, die Sitten und Gebruche, die
-ich mein Leben lang gesammelt und zu verstehen versucht habe, sind die vergnglichen Blten einer Schpfung, im
- Verhltnis zu der sie keinen Sinn besitzen; sie erlauben bestenfalls der Menschheit, ihre Rolle im Rahmen dieser
-Schpfung zu spielen. Abgesehen davon, da diese Rolle dem Menschen keinen unabhngigen Platz verschafft und
-da sein berdies zum Scheitern verurteiltes Bemhen darin besteht, sich vergeblich gegen den universalen Verfall zu
-wehren, erscheint der Mensch selbst als Maschine - vollkommener vielleicht als die brigen -, die an der Auflsung einer
-ursprnglichen Ordnung arbeitet und damit die organisierte Materie in einen Zustand der Trgheit versetzt, der eines
-Tages endgltig sein wird. Seitdem der Mensch zu atmen und sich zu erhalten begonnen hat, seit der Entdeckung des
-Feuers bis zur Erfindung der atomaren Vorrichtungen, hat er - auer wenn er sich fortgepflanzt hat - nichts anderes getan
-als Millionen von Strukturen zerstrt, die niemals mehr integriert werden knnen ... Statt Anthropologie sollte es
-Entropologie heien, der Name einer Disziplin, die sich damit beschftigt, den Proze der Desintegration in seinen
-hchsten Erscheinungsformen zu untersuchen" (Lvi-Strauss 1970, 366f.).
-S
-SDie in diesem Band gesammelten Studien suchen die Mglickeit
-einer solchen dialektischen Entropologie auszuloten. Dies
-geschieht in einem eher indirekten Verfahren, das den neuerdings
-so gern erhobenen apokalyptischen Tonfall so weit wie mglich zu
-temperieren bemht ist - nicht aus einer Skepsis gegen den
-apokalyptischen Gedanken als solchen (fr den die Kritiker in
-diesem Buch gengend Belege finden werden), sondern aus
-Abneigung gegen die wohlfeile Instrumentalisierung, die er in
-der Regel erfhrt. Ist von der Apokalypse die Rede, so selten
-ohne den Verweis auf die Rettung, auf den neuen positiven
-Zustand, der durch allerlei Patentrezepte herbeigefhrt werden
-soll: durch weniger Konsum und mehr Spiritualitt, weniger
-Wachstum und mehr Kommunikation mit dem Bruder Regenwurm: vom
-Erhabenen zum Lcherlichen, man wei es, ist nur ein Schritt.
-Die Kritische Theorie hatte gute Grnde, als sie sich weigerte,
-positiv zu werden und statt dessen darauf bestand, das Gemeinte
-nur indirekt, auf dem Wege der Kritik, zur Sprache zu bringen.
-S
-SDie Kritik ist doppelgleisig angelegt. Auf der einen Seite
-verteidigt sie die Idee einer Gesellschaft des Verschwindens
-gegenber Konzeptionen, die den Proze der Modernisierung
-einseitig als Zivilisierung (Elias), als Disziplinierung
-(Foucault) oder als funktionale Differenzierung (Luhmann)
-darstellen. Auf der anderen Seite greift sie verwandte
-Intentionen auf und versucht sie weiterzuentwickeln: Adornos
-Logik des Zerfalls oder Virilios These vom Nihilismus der
-Geschwindigkeit. Hierzu gehrt auch die Erinnerung an einen zu
-Unrecht vergessenen Autor, der als einer der ersten Technik und
-Entropie in Zusammenhang gebracht hat und deshalb als der
-'eigentliche Vater der kologischen Bewegung' (Mohler)
-bezeichnet worden ist - Friedrich Georg Jnger. Das Zentrum, um
-das die verschiedenen Studien kreisen, erschliet sich am
-leichtesten ber den Essay 'Technik und Wissenschaft als
-Hierophanie'.
-S
- SPA
-SDie Entwicklungskurve der Zivilisation.
-SEine Auseinandersetzung mit Norbert Elias
-S
-S
-S
-S
-S
-S
-SDa der historische Proze nicht blo aus isolierten Ereignissen
-und Bruchstcken besteht, sondern einen bergreifenden Sinn zur
-Erscheinung bringt, gehrt zu den ides directrices des
-abendlndischen Denkens. Wurde dieser Sinn unter der
-Vorherrschaft christlicher berzeugungen lange Zeit als
-Heilsgeschehen bestimmt, so rckte mit der Aufklrung der
-Begriff der 'Zivilisation' in den Vordergrund. Mit ihm wurden
-zwei verschiedene Vorstellungen zusammengebracht: zum einen der
-Gedanke einer allmhlichen Sittenverfeinerung - l'adoucissement
-des moeurs im Sinne Mirabeaus des lteren; zum andern der
-Gedanke eines stufenweise sich vollziehenden geistigen und
-materiellen Fortschritts, wie er etwa in Frankreich den
-Entwrfen Raynals und Condorcets, spter den Theorien Saint-
-Simons, Comtes oder Guizots zugrundelag (Moras 1930). So sah es
-auch die englische Sozialphilosophie, die, nachdem sie noch im
-18. Jh. zwischen dem Fortschritt der Hflichkeit und
-Zivilisation und demjenigen der kommerziellen Knste
-unterschieden hatte (Ferguson 1986, 366), im 19. Jh. beide
-Linien zusammenzog und den Fortschritt der Zivilisation nunmehr
-im bergang von kriegerischen, durch Zwang integrierten
-Gesellschaften zu industriell-gewerblichen Aggregaten sah, die
-einem Zustand dauernden Friedens entgegenstrebten (Spencer 1887,
-II, 124ff., 180). Nichts illustriert die berzeugungskraft
-dieser Vorstellung besser als die Tatsache, da selbst ein Marx,
-der die "tiefe Heuchelei der brgerlichen Zivilisation und die
-von ihr nicht zu trennende Barbarei" brandmarkte (MEW 9, 225),
-keine Schwierigkeiten hatte, vom "great civilizing influence of
-capital" zu sprechen und als dessen Hauptmerkmal die Umwandlung
-der Produktion in ein "System der allgemeinen Ntzlichkeit"
-herauszustellen, "als dessen Trger die Wissenschaft selbst so
-gut erscheint wie alle physischen und geistigen Eigenschaften"
-(MEW 42, 323).
-S
-SIm 20. Jh. ist der Chor der Skeptiker, die diese
-Selbstbeglckwnschung der Moderne nicht mehr akzeptieren, immer
-lauter geworden. Die Bedenken richten sich, wie in anderen
-Texten dieses Bandes deutlich wird, gegen die objektiven Aspekte
-des sogenannten Zivilisationsprozesses, insbesondere gegen die
-Vorstellung einer kumulativen Steigerung von Reichtum und
-Ordnung. Sie richten sich aber auch, worauf im folgenden vor
-allem der Akzent gelegt wird, auf die subjektiven Aspekte, die
-Idee des perfectionnment de l'homme (Condorcet). Stand die
-Kritische Theorie noch weitgehend allein, als sie in den
-vierziger und fnfziger Jahren im Verfall der Konventionen, im
-Absterben des zeremoniellen Moments und im Niedergang von
-Hflichkeit und Takt Indizien fr den "Zerfallscharakter der
-Zivilisation" ausmachte (vgl. Adorno, GS 4, 38ff.; ders. 1956,
-87), so mehren sich heute die Stimmen, die darin nicht blo den
-Ausdruck einer elitren Kulturkritik sehen. So konstatiert
- Richard Sennett eine allgemeine Tendenz zur Zunahme von
-"Unzivilisiertheit", die sich in Distanzverlust,
-Selbstbezogenheit und einer alle sozialen Beziehungen
-berwuchernden "Tyrannei der Intimitt" manifestiere (Sennett
-1983, 299). Neil Postman spricht vom "Verfall der civilit" und
-einer "allgemeinen Miachtung der fr Zusammenknfte im
-ffentlichen Raum geltenden Regeln und Rituale" (Postman 1983,
-151). In einem anderen vieldiskutierten Buch ist gar von einer
-"sterbenden Zivilisation" die Rede, in welcher das Leben immer
-barbarischer und kriegshnlicher werde (Lasch 1986, 261, 47).
-Paul Virilio endlich meint: "Das fortschreitende Verschwinden
-der Hflichkeit, die selber eine gespielte Aufnahme, einen
-Ersatz der primitiven Gastfreundschaft darstellte, uert sich
-heute in einer virilen Form von Kontakt, die man 'Offenheit'
-nennt, und mag letzten Endes zum gewohnheitsmigen Austausch
-schlechter Behandlung fhren" (Virilio 1978, 37).
-S
-SOb diese Diagnosen richtig sind, wird sich sicher nur in
-sorgfltigen empirischen Untersuchungen erweisen lassen. Bis
-dahin aber, und vielleicht als Vorbereitung dazu, mag es
-ntzlich sein, sich mit der Exposition zu befassen, die der
-Zivilisationsbegriff in der bislang grndlichsten Studie zu
-diesem Thema erfahren hat: Norbert Elias' Buch 'ber den Proze
-der Zivilisation'. Ich will im folgenden zunchst die
-wichtigsten Argumente dieses Buches skizzieren und dann einige
-Einwnde vorstellen, die sich heute, ein halbes Jahrhundert nach
-Erscheinen der ersten Auflage, aufdrngen. Abschlieend mchte
-ich die Frage errtern, ob der Zivilisationsbegriff in der ihm
-von Elias verliehenen Fassung ein Konzept ist, in dem sich die
-Problemlage der modernen Gesellschaft reflektieren lt.
-S
-S
-S
-S
-S
-S
-AABI
-S
-S
-SElias' Untersuchung beginnt mit begriffsgeschichtlichen
-Erwgungen. Zivilisation, so der erste Befund, bedeutet im
-deutschen Sprachraum etwas anderes als in Westeuropa, namentlich
-Frankreich und England. Whrend der Begriff dort als Bezeichnung
-fr den wirtschaftlichen, gesellschaftlichen, politischen und
-geistigen Fortschritt insgesamt dient, hat er im Deutschen nur
-einen eingeschrnkten Inhalt. Zivilisation ist hier ein Wert
-zweiten Ranges, eine Qualitt, die sich lediglich auf das
-uere, die Oberflche des Daseins bezieht. Die Bildung des
-Inneren dagegen, der Fortschritt auf geistigem und seelischem
-Gebiet, wird mit dem Begriff 'Kultur' belegt. Was in anderen
-Lndern des Abendlands als einheitliche und kontinuierliche
-Bewegung erscheint, zerfllt damit in Deutschland in zwei
-unterschiedliche Dimensionen, die sich zuweilen zum
-antithetischen Gegensatz verschrfen. Der Westen, lautet ein
-wichtiger Glaubenssatz der deutschen Ideologie bis hin zu den
-'Ideen von 1914', habe nur Zivilisation, wohingegen es die
-Deutschen bis zur Kultur gebracht htten.
-S
- SDa Elias sich dafr entscheidet, die deutsche Version als
-Ausnahme zu behandeln und nicht weiter zu verfolgen, hngt mit
-seinen Vorstellungen ber die in der gesellschaftlichen
-Entwicklung zu bewltigenden Aufgaben zusammen. Diese
-Vorstellungen sind deutlich von der Soziologie des 19. Jhs.,
-insbesondere von Comte und Spencer, beeinflut. Wie der letztere
-sieht Elias die gesellschaftliche Entwicklung als Teil einer
-allgemeinen Evolution, die neben der berorganischen noch die
-organische und unorganische Entwicklung umfat und durch das
-Wechselspiel von Differenzierung und Integration vorangetrieben
-wird. Wie der erstere identifiziert er die
-Funktionsdifferenzierung mit der wirtschaftlichen Berufsteilung,
-die koordinierenden und integrierenden Institutionen mit dem
-Staat1. Eine Hierarchie dieser beiden Dimensionen kennt Elias
-nicht. Fr ihn handelt es sich um prinzipiell gleichrangige
-Erscheinungen, die jeweils unterschiedliche Aspekte ein und
-desselben Substrats darstellen - der Gesellschaft. Da er indes
-den Integrationsinstanzen die Fhigkeit zuspricht, die
-funktionsteiligen Prozesse "bis zu einem gewissen Grade (zu)
-steuern" (1971, 47)2, verschiebt sich der Fokus seiner Theorie
-stark auf die Integrationsebene, auf die Entstehung und
-Entwicklung jener Institutionen, die ber ein besonders hohes
-Steuerungspotential verfgen - die politischen Zentralorgane
-bzw., wie Elias mit Weber formuliert: die Monopolorganisationen
-physischer Gewaltsamkeit.
-S
-SIn dieser Vorentscheidung auf analytischer Ebene liegt die
-Wurzel der regulativen Idee von Elias' Zivilisationstheorie, der
-"Vermutung..., da der Aufbau des 'zivilisierten' Verhaltens
-aufs engste mit der Organisierung der abendlndischen
-Gesellschaften in der Form von 'Staaten' zusammenhngt (I,
-LXXVI). Je fortgeschrittener in einem bestimmten Gebiet die
-Staatsbildung, desto fortgeschrittener auch der Proze der
-Zivilisation; je unentwickelter andererseits die
-Zentralisierung, desto unentwickelter die Sitten, desto
-unvollendeter "jene Nivellierung und Angleichung der
-gesellschaftlichen Standarde (...), die fr diesen ganzen
-Zivilisationsproze charakteristisch ist" (II, 433).
- Deutschland, das seit dem spten Mittelalter keinen Fortschritt
-im Ausbau seiner zentralstaatlichen Institutionen mehr erlebte,
-ist aus diesem Grund fr die Untersuchung des
-Zivilisationsprozesses weniger geeignet als etwa Frankreich, in
-dem diese Institutionen eine kontinuierliche Verstrkung
-erfuhren3.
-S
-SDen Ausbau des Zentralstaates in Frankreich unterteilt Elias in
-drei Etappen. Die erste Etappe fllt zusammen mit der Bildung
-ritterlicher Hfe zu Beginn des Hochmittelalters, welche die bis
-dahin in der weltlichen Herrenschicht dominierende Integration
-qua Kampf durch eine friedlichere und bestndigere Integration
-ersetzen. Auf diese 'ritterlich-hfische' Ordnung folgt im 16.
-Jh. die zweite Etappe, die 'hfisch-absolutistische
-Gesellschaft', die wohl im sozialen Aufbau noch an die
-stndische Gliederung des Mittelalters anknpft, auf politischer
-Ebene aber insofern eine nderung herbeifhrt, als sie die
-physische Gewalt in einer Monopolinstanz konzentriert. Die alte
-Kriegerelite wird nunmehr entmilitarisiert und in einen Hofadel
-verwandelt, was wiederum auf sozialer und wirtschaftlicher Ebene
- die Bildung lngerer und komplexerer Interdependenzketten
-ermglicht. Die funktionale Differenzierung beschleunigt sich
-und lt neue, auf Beruf und produktiver Leistung beruhende
-Eliten entstehen, die ihrerseits nach Partizipation an den
-Entscheidungen des obersten Koordinations- und
-Regulierungsorgans streben.
-S
-SAus dieser Entwicklung geht - nach der Zwischenstufe einer
-'erweiterten hfischen Gesellschaft', in der hfisch-
-aristokratische und hfisch-brgerliche Kreise miteinander
-verkehren - das dritte und bisher letzte Stadium hervor: der
-brgerliche Nationalstaat. In ihm erreichen die Funktionsteilung
-und die allgemeine Interdependenz eine bis dahin unvorstellbare
-Dichte. Zugleich ist die Vernetzung soweit vorangeschritten, da
-die private Monopolisierung der mit der Zentralposition
-verbundenen Chancen nicht lnger perpetuierbar ist. Das
-Privatmonopol einzelner, schreibt Elias, vergesellschaftet sich
-und wird "zu einer Funktion des interdependenten
-Menschengeflechts als eines Ganzen", zu einem "ffentlichen"
-Monopol (II, 157). Darber hinaus zeichnen sich bereits Anstze
-zu einer vierten, endgltig letzten Phase der Gesamtentwicklung
-ab:
-S
-S"Man sieht die ersten Umrisse eines erdumfassenden Spannungssystems von
-Staatenbnden, von berstaatlichen Einheiten verschiedener Art, Vorspiele von
-Ausscheidungs- und Vormachtkmpfen ber die ganze Erde hin, Voraussetzung fr
-die Bildung eines irdischen Gewaltmonopols, eines politischen
-Zentralinstituts der Erde und damit auch fr deren Pazifizierung" (II, 452).
-S
-SDen hier nur knapp skizzierten Stadien der Zentralisierung
-ordnet Elias nun verschiedene Verhaltensmodelle oder -schemata
-zu, die gleichsam den subjektiven Niederschlag dieses Prozesses
-verkrpern. Der polyzentrischen Struktur des Mittelalters
-entspricht das Schema der courtoisie, das sich an den groen
-ritterlichen Feudalhfen bildet (I, 79, 136; II, 96ff., 109ff.,
-354ff.). Seine Merkmale sind: eine gewisse Migung der Affekte,
-eine, freilich noch sehr begrenzte, Aufwertung derjenigen, die
-nicht ber Gewaltmittel verfgen (vor allem der Frauen), die
-Ausbildung hfischer Manieren, die das gesellige Verhalten bei
-Tisch, beim Spiel oder im Turnier regeln, die Orientierung an
-ritterlichen Tugenden, wie sie vor allem von der Kirche (miles
-christianus-Ideal), aber auch von der weltlichen Dichtung
-propagiert werden (Artusepik)4.
-S
-SWhrend dieses Schema den Individuen jedoch noch uerlich
-bleibt und auerhalb des Interaktionszentrums 'Hof' rasch seine
-Wirkung verliert, verdichtet sich die soziale Kontrolle mit dem
-bergang zu einer monozentrischen, auf dem Gewaltmonopol
-beruhenden Konfiguration. Anstelle der blo intermittierenden,
-nur einen kleinen Teil der ritterlichen Existenz erfassenden
-courtoisie tritt jetzt ein neues Schema der Affektregulierung,
-das Elias im Anschlu an die Manierenschriften von Erasmus,
-della Casa, La Salle u.a. als civilit bezeichnet (I, 65ff.,
-89f., 136f.). Der durch die politische, soziale und
-wirtschaftliche Entwicklung in seiner Herrschaftsposition
-erschtterte Adel versucht in dieser Phase, seinen Platz an der
-Spitze der gesellschaftlichen Hierarchie durch einen verstrkten
-Einsatz von Distinktionsstrategien zu behaupten. Ein strenger
- Verhaltenscode entsteht, der mehr und mehr den gesamten Habitus
-umfat. Die hfische Interaktion, vor allem das Essen und die
-Konversation, wird stark ritualisiert, wie Elias anschaulich an
-der Geschichte des Messer- und Gabelrituals demonstriert. Die
-Kleidung wird bewut als Unterscheidungs- und Prestigemittel
-eingesetzt, ebenso die Gestik und der sprachliche Ausdruck.
-Fragen des guten Benehmens und des richtigen Geschmacks werden
-zu Fragen, die ber den Platz in der Rangordnung entscheiden
-knnen; Takt, Delikatesse und Stil zu Formen, von denen das
-soziale berleben abhngen kann. Selbst- und Fremdbeobachtung
-erreichen eine bis dahin unbekannte Intensitt, die
-psychologische Kriegfhrung wird zur unentbehrlichen Waffe in
-der Prestigekonkurrenz.
-S
-SAuch dieses neue, im Vergleich zur courtoisie ungleich strengere Schema der Affektmodellierung ist jedoch nach Elias in
-der Psychostruktur noch nicht sehr fest verankert. Die Tabus und Rituale des hfischen Lebens treten dem einzelnen wohl
-als klar umrissene Imperative entgegen, die ihn zu einer permanenten berwachung seiner Affekte und Triebregungen
-veranlassen. Diese aber erfolgt hauptschlich ber eine bewute Selbststeuerung, psychoanalytisch gesprochen ber
-Ich-Leistungen (Vowinckel 1983, 196). Der Hofmann mu, wie bei Castiglione nachzulesen, seine unterschiedlichen
-Fhigkeiten so ausbalancieren, da er zu einer Art vollkommenen Gesamtkunstwerks wird; er mu, wie bei Gracian,
-seine Leidenschaften bewut domestizieren, jedoch nicht, um sie abzutten, sondern um sie im geeignetsten Moment
-zu befriedigen (ebd. 95). Die soziale Kontrolle vollzieht sich deshalb noch primr ber die Vermittlung des Ichs, das sich
-den Zwngen der sozialen Umwelt anpat, aber keineswegs vllig ausliefert. Sie bleibt dem einzelnen uerlich, wirkt
-"noch nicht als automatisch funktionierender Selbstzwang, als Gewohnheit, die bis zu gewissen Grenzen auch
-funktioniert, wenn der Mensch allein ist; sondern man legt sich hier zunchst immer jemandem andern gegenber, also
-bewuter aus gesellschaftlichen Grnden, Triebverzicht und Zurckhaltung auf. Und die Art der Zurckhaltung, wie ihr
-Ma entsprechen hier der sozialen Stellung dessen oder derer, denen gegenber er sie sich auferlegt" (I, 186). Im
-Stadium der civilit ist die gesellschaftliche Verflechtung schon so stark, um die einzelnen zur Anpassung zu zwingen,
-aber noch nicht stark genug, um die Einzelheit als solche zu negieren und in einen 'Verkehrsknotenpunkt des
-Allgemeinen' (Horkheimer/Adorno) zu verwandeln.
-S
-SWesentlich weiter in dieser Richtung geht das Schema der
-civilisation, das in der zweiten Hlfte des 18. Jhs. die
-civilit ablst (I, 47ff.). Getragen von den Reformgruppen des
-Ancien Rgime - dem Beamtentum und den Spitzen des Brgertums -
-zielt dieses Schema auf eine Universalisierung und
-Stabilisierung der mit der civilit bereits erreichten
-Sittenverfeinerung und Rationalitt. Die Universalisierung
-impliziert die Ausdehnung der Vernunft auf die Gesetze und
-Institutionen des Landes sowie auf die Sitten der gesamten
-Nation. Elias spricht von einer Einschmelzung von
-Verhaltensweisen der funktional oberen Schichten in das der
-aufsteigenden unteren und rckt diesen Vorgang in die Nhe von
-Kolonisationsprozessen. So wie im 19. Jh. die abendlndischen
-Nationen die auereuropische Welt unterworfen und okzidentalen
-Denk- und Verhaltensmustern assimiliert htten, seien zuvor im
-Abendland selbst die Unter- und Mittelschichten den Standards
-der Oberschichten unterworfen und assimiliert worden (II, 341,
-346, 350, 420f.)
-S
-SDie Stabilisierung impliziert die Verfestigung der zivilisierten
-Verhaltensformen zu einem 'Panzer', der die ganze Persnlichkeit
-und jede ihrer uerungen umschliet (I, 332). Dies wird durch
-eine bereits in der frhesten Kindheit einsetzende
-Konditionierung erreicht, die darauf hinarbeitet, da sich im
-einzelnen "gleichsam als eine Relaisstation der
-gesellschaftlichen Standarde, eine automatische
-Selbstberwachung der Triebe im Sinne der jeweiligen
- gesellschaftsblichen Schemata und Modelle, eine 'Vernunft', ein
-differenziertes und stabileres 'ber-Ich' herausbildet, und da
-ein Teil der zurckgehaltenen Triebregungen und Neigungen ihm
-berhaupt nicht mehr unmittelbar zum Bewutsein kommt" (II,
-329). In diesem Sinne erfllt das ber-Ich in der brgerlichen
-Gesellschaft die Steuerungsfunktionen, die in der hfischen
-Gesellschaft noch dem Ich vorbehalten waren.
-S
-SElias bersieht nicht die Unterschiede zwischen diesen beiden
-Formen der Steuerung. Im Rahmen seiner Konstruktion eines
-kontinuierlich verlaufenden Zivilisationsprozesses interpretiert
-er ihre Abfolge jedoch primr als eine Steigerung der sozialen
-und psychischen Integration durch Tieferlegung der
-Kontrollmechanismen. Jene Zwnge, die im Schema der courtoisie
-und der civilit vielfach nur als uere Schranke, als
-Fremdzwang wirkten, werden jetzt verinnerlicht, mit der
-Perspektive, da dadurch der Fremdzwang zunehmend entbehrlich
-wird und irgendwann einmal ganz verschwinden kann (1983, 123f.).
-Wie diese, freilich erst nach Vollendung der Pazifizierung auf
-Weltebene denkbare, neue Form der Selbststeuerung beschaffen
-sein knnte, verrt Elias nicht. Da die Entwicklung in diese
-Richtung geht, erscheint ihm aber als ebenso ausgemacht wie die
-Tendenz zur berwindung des brgerlichen Nationalstaates (1987,
-224f.). Sind einmal die zwischenstaatlichen Spannungen
-beseitigt, so die an Kants Vision vom 'Ewigen Frieden'
-erinnernde Schlupassage des Zivilisationsbuches, kann sich die
-Regelung der sozialen Beziehungen auf das rein sachlich
-Notwendige beschrnken, und knnen sich die Spannungen und
-Widersprche auch in den Menschen selbst mildern. Dann erst
-braucht es nicht mehr die Ausnahme, sondern
-S
-S"kann es die Regel sein, da der einzelne Mensch jenes optimale Gleichgewicht seiner Seele findet, das wir so oft mit
-groen Worten, wie 'Glck' und 'Freiheit' beschwren: ein dauerhaftes Gleichgewicht oder gar den Einklang zwischen
-seinen gesellschaftlichen Aufgaben, zwischen den gesamten Anforderungen seiner sozialen Existenz auf der einen Seite
-und seinen persnlichen Neigungen und Bedrfnissen auf der anderen" (II, 454. Hervorh. i.O. gestr.).
-S
-SDie groe Linie ist damit klar. Zivilisation ist fr Elias ein
-Proze, in dessen Verlauf sich immer strengere Schemata der
-Selbstkontrolle herausbilden und sowohl immer weitere
-Bevlkerungskreise ergreifen als auch psychostrukturell immer
-tiefer gelagert werden. Dieser Proze ist die subjektive Seite
-eines gesamtgesellschaftlichen Differenzierungs- und
-Integrationsvorgangs, der zu einer immer perfekteren Kontrolle
-der Gesellschaft ber die Naturbedingungen ihres berlebens wie
-ber die Bedingungen des sozialen Zusammenlebens fhrt5. Elias
-verschweigt nicht den Preis, den die Individuen dafr zahlen
-mssen: die permanente Konditionierung, die Verdrngung und
-Ansthesierung von Triebregungen, den Aufbau von inneren
-ngsten, die Wahrscheinlichkeit der neurotischen Erkrankung.
-Insgesamt sieht er aber diese Kosten mehr als aufgewogen durch
-die Distanzierungs- und Steuerungsgewinne, die dem einzelnen
-sowohl als der Gesellschaft in diesem Proze zuwachsen. Etwas
-vereinfacht lt sich dieser Proze in dem folgenden Schema
-darstellen:
-S
-S
-S
-S
- AABSoziogenese Ritterlich Hfisch- Brgerlich ' Welt'-
- hfische absolu- indu- gesell-
- Gesell- tistische strielle schaft
- schaft Gesell- Gesell-
- schaft schaft
-
-
-
-Steuerungs- Feudalhof Absoluti- National- Weltstaat
-Zentrum stischer Staat
- Staat
-
-
-Verhaltens- courtoisie civilit civilisa- Weltzivi-
-Code tion lisation
-
-
-Psychogenese Es/Ich Ich-Domi- ber-Ich- Gleichge-
- (undiffe- nanz Dominanz wicht von
- ziert) Ich, Es,
- ber-Ich
-
-
- PA
-II
-S
-S
-AAF 1. Auch der voreingenommene Betrachter wird zugestehen, da Elias'
-Rekonstruktion des Zivilisationsprozesses groe Strken hat. Der
-figurationssoziologische Ansatz trgt politischen, konomischen und
-psychologischen Faktoren gleichermaen Rechnung und gelangt damit zu
-einem breit angelegten Panorama der zivilisatorischen Entwicklung. Die
-konstitutive Rolle der Hfe in der ritterlich-feudalen und
-absolutistischen Gesellschaft wird einleuchtend begrndet, die Bildung
-von Gewalt- und Abgabenmonopolen schlssig nachgezeichnet; lediglich
-die Rolle der Religion wird zu wenig beachtet, was mglicherweise bei
-vergleichenden Untersuchungen ein Nachteil sein knnte. Zu den
-Glanzstcken des Buches gehrt die Herausarbeitung des Parallelismus
-von Soziogenese und Psychogenese, mit der gleichsam eine Brcke
-zwischen der Herrschaftssoziologie Webers, der Differenzierungstheorie
-in der Tradition Durkheims und Spencers und der Freudschen
-Psychoanalyse geschlagen wird.
-
- Dennoch drngen sich bei einer genaueren Betrachtung drei Einwnde
-auf, die zwar aus unterschiedlichen theoretischen Zusammenhngen
-stammen, gleichwohl miteinander kompatibel sind6.
-
- Der erste Einwand ergibt sich aus der dialektischen Theorie und
-richtet sich gegen den soziogenetischen Strang der
-Zivilisationstheorie. Elias, so erscheint es aus dieser Sicht, hat nur
-eine unzureichende Vorstellung von den Integrationsproblemen, die mit
-einem bestimmten Grad der Funktionsdifferenzierung auftreten. Seine
-These, da die Entwicklung zur modernen Gesellschaft von einer immer
-"strafferen Regulierung und berwachung des gesamten
-gesellschaftlichen Verkehrs von stabilen Zentralen" aus begleitet sei
-(II, 227), bersieht, da ein durch kapitalistische Warenproduktion
-bestimmtes System nicht direkt durch die Vorgaben eines planenden
-Zentrums, sondern nur indirekt durch die Vermittlung des Marktes
-gesteuert wird. Das, was ihre Arbeiten gesellschaftlich gelten,
-erfahren die - individuellen oder korporativen - Produzenten immer nur
-post festum, in der Besttigung ihrer Produkte als Wertgren, die
-erst nach Abschlu der Produktion, im Austausch, mglich ist. Hier
-jedoch gilt,
-
- "da die unabhngig voneinander betriebenen, aber als naturwchsige Glieder der gesellschaftlichen Teilung der Arbeit
-allseitig voneinander abhngigen Privatarbeiten fortwhrend auf ihr gesellschaftlich proportionelles Ma reduziert werden, weil
-sich in den zuflligen und stets schwankenden Austauschverhltnissen ihrer Produkte die zu deren Produktion gesellschaftlich
-notwendige Arbeitszeit als regelndes Naturgesetz gewaltsam durchsetzt, wie etwa das Gesetz der Schwere, wenn einem das Haus
-ber dem Kopf zusammenpurzelt" (Marx, MEW 23, 89).
-AAF
- Unter diesen Umstnden ist es eine sehr verkrzte
-Betrachtungsweise, wenn man, wie Elias, Unberechenbarkeit und Willkr
-primr in der physischen Gewaltsamkeit lokalisiert und aus der
-unbestreitbaren Tatsache ihrer Kasernierung im modernen Staat auf eine
-Zunahme der gesamtgesellschaftlichen Stabilitt und Kalkulierbarkeit
-schliet. Auch und gerade nach der Bildung von Gewaltmonopolen auf dem
-Territorium einzelner 'Staatsgesellschaften' bleibt mit dem nationalen
-Binnenmarkt und dem Weltmarkt eine Dimension des Zufalls und der
-Anarchie, die sich individuellen Handlungskalklen grundstzlich
-entzieht. Und obschon dies keineswegs bedeutet, da es die brgerlich-
-industrielle Gesellschaft nicht zu Einheit und Integration zu bringen
- vermag, heit es doch immerhin, da sich diese Einheit und Integration
-"nur a posteriori als innre, stumme, im Barometerwechsel der
-Marktpreise wahrnehmbare, die regellose Willkr der Warenproduzenten
-berwltigende Naturnotwendigkeit" durchsetzt. Elias hat recht, wenn
-er darauf hinweist, da die Kasernierung der politischen Gewalt einen
-wichtigen Schritt zur berwindung des Naturzustands darstellt. Er
-vergit jedoch hinzuzufgen, da sich dieser Naturzustand unter
-brgerlichen Produktionsbedingungen in anderer Form wiederherstellt:
-gewhrleistet doch die Konkurrenz die Existenz der Individuen nur auf
-die Weise, "wie auch im Tierreich das bellum omnium contra omnes die
-Existenzbedingungen aller Arten mehr oder minder erhlt" (ebd. 377).
-
- Diese berlegung zwingt dazu, einen der Eckpfeiler von Elias'
-Konstruktion zu problematisieren: die Idee eines Kontinuums der
-Vergesellschaftung, das sich von der ritterlich-hfischen ber die
-hfisch-absolutistische bis hin zur brgerlich-industriellen
-Gesellschaft erstreckt. Wohl lt sich die Entwicklung von den
-feudalen Minnehfen zu den Residenzen des Barockzeitalters unter dem
-Blickwinkel einer Verdichtung und Intensivierung hfischen Lebens
-begreifen, und kann die Ausbildung einer 'guten Gesellschaft' verfolgt
-werden, deren Auslufer bis in die brgerlichen Salons des 19. Jhs.
-reichen. Diese Art der sozialen Verknpfung, die im wesentlichen auf
-Interaktion, d.h. auf Kommunikation unter Anwesenden beruht, mu indes
-strikt von dem Vergesellschaftungsmodus getrennt werden, der fr eine
-entfaltete Marktgesellschaft typisch ist. Vergesellschaftung ber den
-Markt ist eine paradoxe Form von Vergesellschaftung. Sie erzeugt auf
-der einen Seite, wie Elias richtig gesehen hat, ein hochkomplexes
-System von Interdependenzen, in dem die Individuen so stark vernetzt
-sind wie niemals zuvor in der Geschichte. Auf der anderen Seite aber
-treibt sie durch die Forcierung der Konkurrenz und durch die
-Universalisierung der brgerlichen Rechtsprinzipien den
-Vereinzelungsproze in einer historisch ebenfalls beispiellosen Weise
-voran. Markt, das kann man nicht nachdrcklich genug hervorheben,
-aggregiert nicht nur, er disaggregiert auch; schafft nicht nur neue
-Verflechtungen, sondern negiert immer auch die Verflechtungen, die er
-selbst erzeugt hat.
-
- Das lt sich bereits am Schicksal der kleinsten sozialen Einheit
-zeigen, in der Elias mit Recht das Konditionierungsinstrument der
-brgerlichen Gesellschaft par excellence sieht: der Kleinfamilie.
-Selbst ein Produkt des modernen Differenzierungsprozesses, in dessen
-Verlauf die produktive Lohnarbeit vorrangig den mnnlichen
-Erwachsenen, die nichtproduktive Subsistenzarbeit einschlielich der
-Kindererziehung dagegen den Frauen zugewiesen wurde, befindet sich
-dieser Familientypus heute durch die rechtliche und zunehmend auch
-faktische Gleichstellung der Frauen in einer fortschreitenden Erosion.
-Die Individuen werden aus den bis dahin gltigen, quasistndischen
-Vorgaben des Geschlechts herausgelst und gezwungen, sich selbst zum
-Zentrum ihres eigenen Lebens zu machen. Die fr die Moderne typische
-Temporalisierung erfat auch die Ehe und unterwirft sie den Rhythmen
-der 'seriellen Monogamie' (Shorter). Die Familie wird zur
-'Verhandlungsfamilie auf Zeit' (Beck), deren Mitglieder einen
-stndigen Kampf um den Ausgleich zwischen beruflichen und emotionalen
-Interessen ausfechten mssen. Die Fragmentierung und Atomisierung
-ergreift damit unwiderruflich auch jenen Bereich, der noch dem frhen,
-puritanischen Brgertum als ein so sicheres Fundament gegolten hatte,
-da es von ihm her die gesamte Gesellschaft erneuern zu knnen
-geglaubt hatte.
-
- "In dem zu Ende gedachten Marktmodell der Moderne wird die familien- und ehelose Gesellschaft unterstellt. Jeder mu
-selbstndig, frei fr die Erfordernisse des Marktes sein, um seine konomische Existenz zu sichern. Das Marktsubjekt ist in letzter
-Konsequenz das alleinstehende, nicht partnerschafts-, ehe- oder familien'behinderte' Individuum. Entsprechend ist die
-durchgesetzte Marktgesellschaft auch eine kinderlose Gesellschaft - es sei denn, die Kinder wachsen bei mobilen,
-alleinerziehenden Vtern und Mttern auf" (Beck 1986, 191).
-AAF
- Man mu nur einen Blick auf die Geburtenrate in der Bundesrepublik
-werfen, um sich vom Realittsgehalt dieser berlegungen zu berzeugen.
-
- hnliche Dekompositionserscheinungen zeigen sich auch an
-komplexeren sozialen Aggregaten, die einmal die Struktur der
-brgerlichen Industriegesellschaft prgten. Insbesondere der
-Klassenbegriff, der sich noch im 19. Jh. brgerlichen und
-sozialistischen Theoretikern gleichermaen aufdrngte, hat in den
-fortgeschrittenen kapitalistischen Lndern seine Bedeutung fr die
-Bildung kollektiver Identitten fast vllig verloren. "Der
-unermeliche Druck der Herrschaft", so hat Adorno dies bereits vor
-mehr als vierzig Jahren formuliert, "hat die Massen so dissoziiert,
-da noch die negative Einheit des Unterdrcktseins zerrissen wird, die
-im neunzehnten Jahrhundert sie zur Klasse macht" (Adorno, GS 8,377).
-Nicht da der Gegenstand des Begriffs - die objektive Bndelung von
-Ungleichverteilungen - damit verschwunden wre: soziale Ungleichheiten
-haben nicht ab-, sondern zugenommen. Aber die Auflsung
-klassenspezifischer Lebensformen durch die Erhhung des
-gesamtgesellschaftlichen Konsumniveaus, der Rckgang des
-Beschftigtenanteils im industriellen Sektor, der - in den USA
-besonders drastische - Bedeutungsverlust der Gewerkschaften, die
-allgemeine Schrumpfung der 'Erwerbsarbeitsgesellschaft' (Beck) in den
-hochindustrialisierten Lndern, die Bewltigung der
-Massenarbeitslosigkeit in Form von Unterbeschftigung und
-lebensphasenspezifischer Verteilung der knapper gewordenen Lohnarbeit
-- dies alles hat zu einer Erosion der im Klassenbegriff immer
-mitgedachten kollektiven Identitt gefhrt, durch welche die
-Individuen in zunehmendem Mae auf sich selbst zurckgeworfen werden.
-Soziale Klassen, urteilt Luhmann zutreffend, sind heute Schichten,
-"die darauf verzichten mssen, Interaktion zu regulieren" (Luhmann
-1985c, 131; zur Diskussion ber den Klassenbegriff vgl. auch Ritsert
-1987).
-
- Vielleicht mu man noch einen Schritt weitergehen und von einer
-Erosion der fr die soziale Identittsbildung konstitutiven Sphre der
-ffentlichkeit schlechthin sprechen. Fr Elias steht eine derartige
-Mglichkeit ganz auer Betracht, obwohl der Verfall der aus dem 19.
-Jh. berkommenen Formen von ffentlichkeit zu den Kardinalthemen der
-Weimarer Republik gehrte (Schmitt 1979a): der die Bildung von
-Gewaltmonopolen begleitende Proze der sozialen Verflechtung macht es
-der Zivilisationstheorie zufolge an einem bestimmten Punkt der
-Entwicklung unausweichlich, die privaten Verfgungschancen ber die
-politischen und wirtschaftlichen Apparate aufzuheben und die
-Privatmononopole in ffentliche Monopole umzuwandeln (II, 148ff.,
-438ff.). Aus heutiger Sicht ist die Moderne jedoch nicht nur durch
-eine Erweiterung des ffentlichen auf Kosten des Privaten
-gekennzeichnet, sondern ebenso durch eine Privatisierung des
-ffentlichen, durch die wesentliche Merkmale von ffentlichkeit
-zerstrt werden. Dies gilt, worauf schon Habermas hingewiesen hat, fr
-den Aufstieg der Verbnde und der Massenmedien, die die kritische
-Publizitt durch eine manipulativ erzeugte verdrngen (Habermas 1968).
- Es gilt aber auch in dem umfassenderen Sinne einer berlagerung und
-Modifizierung spezifisch ffentlicher Denk- und Verhaltensmodelle
-durch die private Vorstellungswelt, wie sie Richard Sennett in seinem
-Buch ber das Verschwinden des Public Man darstellt. Die moderne
-Gesellschaft erscheint danach nicht als eine zivilisierte, durch
-Selbstdistanz und rationale Interessenverfolgung bestimmte Vereinigung
-von Menschen, sondern im Gegenteil als ein Ensemble 'destruktiver
-Gemeinschaften', in denen manche sogar eine Wiederkehr der
-Stammesverbnde zu entdecken glauben7.In der 'intimen Gesellschaft'
-der Gegenwart, so Sennett, haben die Menschen die Fhigkeit verloren,
-ffentlich, d.h. unter Absehung von ihrer je besonderen Person, zu
-handeln. Die soziale Interaktion schrumpft zu einem bloen Medium des
-Selbstausdrucks und der Selbstvergewisserung, die Aktivitt zu einer
-nicht endenden Suche nach narzitischen Gratifikationen, die sich
-nicht zuletzt im Streben nach Identifikation mit grandiosen
-'Kollektivpersnlichkeiten' realisiert (Sennett 1983, 251ff.). Auch
-wenn Sennetts Ursachenerforschung mit dem Hinweis auf Erscheinungen
-wie Skularismus und Symbolismus etwas bla ausfllt und in ihren
-historischen Partien nicht durchweg zu berzeugen vermag, sollte die
-Erfahrung mit den Massenbewegungen dieses Jahrhunderts Anla genug
-sein, seine Hypothesen nicht auf die leichte Schulter zu nehmen8.
-
- Die Entwicklung der modernen Gesellschaft, dies kann als Resmee
-des 'dialektischen' Einwands gegen die Zivilisationstheorie
-festgehalten werden, lt sich nicht einfach unter dem Gesichtspunkt
-einer stndigen Ausdehnung der sozialen Verflechtung begreifen, die
-Konkurrenz nicht blo als Medium, das die Bildung immer umfassenderer
-und hherstufiger Aggregate vorantreibt. Vielmehr ist auch das
-Gegenteil zu beobachten. Soziale Verknpfungen, die mit der
-brgerlichen Gesellschaft entstanden sind, werden dekomponiert,
-Solidarittsbeziehungen ausgednnt oder ganz gesprengt.
-Marktvergesellschaftung bedeutet Steigerung der Interdependenz und
-Atomisierung des Sozialen, Vernetzung und Negation aller Bindungen -
-asoziale Sozialitt. Sie forciert die Differenzierung und zerstrt
-doch zugleich durch die universale Vergleichbarkeit aller Arbeiten im
-Tauschwert die Bedingungen der Mglichkeit von Differenz. Sie erzwingt
-eine immer dichter werdende Integration der Gesellschaft und
-verhindert doch, da daraus ein gesellschaftliches Subjekt entsteht.
-Die Integration vollzieht sich hinter dem Rcken der handelnden
-Individuen und macht sich in einer Form geltend, die unmittelbar
-betrachtet als das Gegenteil aller Integration erscheint. Durch ihre
-einseitige Fixierung auf Synthese, die Regressionen zwar nicht
-ausschliet, aber eher als zufalls- denn als systemgeneriert versteht
-(1987, 184), verstellt sich die Zivilisationstheorie die Einsicht in
-den Umstand, da die Logik der Vergesellschaftung auch eine 'Logik des
-Zerfalls' (Adorno) ist. Sie fllt damit noch hinter den
-Reflexionsstand der lteren Soziologie von Comte bis Durkheim zurck,
-der bei allem Vertrauen in die Integrationskraft des Staates oder die
-solidarittsstiftenden Wirkungen der Arbeitsteilung die negative Seite
-der funktionalen Differenzierung nie ganz aus dem Blickfeld geriet.
-Bedenkt man, da 'ber den Proze der Zivilisation' in unmittelbarer
-Zeitgenossenschaft mit der grten Krise der modernen
-Weltwirtschaftsordnung entstand, kann man sich ber diesen
-Reflexionsverlust nicht genug wundern.
-
-
-
- 2. Diese Kritik wird durch den zweiten Einwand erhrtet, der sich
- aus dem Gang der psychoanalytischen Theoriebildung ableiten lt. Die
-Integration Freudscher Begriffe, insbesondere des Strukturmodells des
-psychischen Apparats, gehrt zweifellos zu den starken Seiten der
-Zivilisationstheorie, ermglicht sie es doch Elias, auf
-psychogenetischer Ebene die Unterschiede zwischen brgerlichen und
-vorbrgerlichen Formen weitaus genauer zu erfassen, als es ihm auf
-soziogenetischer Ebene gelingt. So arbeitet Elias przise den Wechsel
-in der Konditionierungsinstanz heraus - den bergang von der
-ffentlich-hfischen zur privat-familialen Form der
-Affektmodellierung. So erkennt er richtig den Wechsel in der
-Konditionierungsmethode - die Umwandlung von Fremdzwang in Selbstzwang
-via Verinnerlichung und Identifikation. Und so vermag er schlielich
-auch deutlich zu machen, zu welch neuartigem Ergebnis diese
-Vernderungen fhren: einem Sozialcharakter, der durch eine bisher
-nicht dagewesene Differenzierung zwischen Ich- und ber-Ich-Funktionen
-auf der einen und Triebfunktionen auf der anderen Seite gekennzeichnet
-ist (vgl. II, 390f.; 1987, 85).
-
- Diese Einsichten fhren Elias jedoch nicht zu einer Revision
-seiner These vom zivilisatorischen Kontinuum. Im Gegenteil. Wie der
-brgerliche Nationalstaat ihm nur als Steigerungsform der mit dem
-Absolutismus bereits erreichten Zentralisierung gilt, so erscheint ihm
-auch das brgerliche Schema der Affektregulierung letztlich nur als
-Fortfhrung und Verdichtung des hfischen Schemas, was nicht nur in
-expliziten Formulierungen, sondern weit mehr noch stilistisch in der
-hufigen Verwendung des Komparativs seinen Ausdruck findet: so etwa,
-wenn Elias vom "bergang zu einem 'rationaleren' Verhalten und Denken,
-ebenso wie (dem) zu einer strkeren Selbstkontrolle" spricht (II,
-394), wenn er den "Zwang zu einer differenzierteren
-Selbstdisziplinierung, zu einer festeren ber-Ich-Bildung" heraushebt
-(II, 351), die Ausbildung einer "stabilere(n), zum guten Teil
-automatisch arbeitende(n) Selbstkontrollapparatur" vermerkt (II, 320)
-oder die Durchsetzung eines "affektneutraleren" Gesamtverhaltens
-behauptet (II, 373f.). Gewi: der brgerliche Sozialcharakter ist
-anders als der aristokratische. Aber fr Elias ist er dies vor allem
-im Sinne eines Mehr an Kontroll- und Steuerungskapazitten, welche im
-aristokratischen Charakter in nuce bereits angelegt waren. Und er
-besitzt dieses Mehr hauptschlich deshalb, weil die brgerliche,
-familial vermittelte Erziehung einen erfolgreichen Weg gefunden hat,
-um die soziale Kontrolle in das Individuum hineinzuverlagern: die
-Verinnerlichung.
-
- Aus psychoanalytischer Sicht kann man diese Auffassung nur als
-sehr selektiv bezeichnen (Lasch 1985, 712ff.). Da die Verinnerlichung
-ein bedeutendes Mittel der zivilisatorischen bzw. kulturellen
-Entwicklung ist, die Voraussetzung dafr, da aus Kulturgegnern
-Kulturtrger werden (Freud IX, 145), ist zwar ein Grundmotiv Freuds,
-der in seinen Arbeiten hufig die disziplinierenden und
-sozialisierenden Funktionen des ber-Ichs hervorgehoben hat: das ber-
-Ich ist die Basis der Religion, der Moral und des sozialen Empfindens,
-es ist der "Trger der Tradition, all der zeitbestndigen Wertungen,
-die sich auf diesem Wege ber Generationen fortgepflanzt haben" (Freud
-I, 505), es tritt dem Individuum als ein kategorischer Imperativ
-entgegen und bewirkt dadurch jene Umwandlung, durch die es erst
-moralisch und sozial wird (Freud III, 315; IX, 145). Im Gegensatz zu
-Elias sieht Freud in diesem Mechanismus jedoch nicht erst eine
-Errungenschaft der Neuzeit; darber hinaus macht er klar, da es sich
-um eine hchst ambivalente Einrichtung handelt. Das ber-Ich ist
- nmlich nicht nur, wie Elias meint, ein "Abdruck der Gesellschaft im
-Innern" (I, 173), es ist gleichzeitig "der Erbe des dipuskomplexes
-und somit Ausdruck der mchtigsten Regungen und wichtigsten
-Libidoschicksale des Es. Durch seine Aufrichtung hat sich das Ich des
-dipuskomplexes bemchtigt und gleichzeitig sich selbst dem Es
-unterworfen. Whrend das Ich wesentlich Reprsentant der Auenwelt,
-der Realitt ist, tritt ihm das ber-Ich als Anwalt der Innenwelt, des
-Es gegenber" (Freud III, 3O3).
-
- Diese Aussage bedarf einer kurzen Erluterung. Freud teilt mit
-Elias die Auffassung, da das ber-Ich im einzelnen die
-gesellschaftliche Allgemeinheit vertritt und damit als Conditio sine
-qua non der Zivilisation bzw. der Kultur fungiert. Whrend Elias
-jedoch dazu neigt, die Aufrichtung dieses ber-Ichs eher
-behavioristisch als Ergebnis von Konditionierungsvorgngen anzusehen,
-eine triebtheoretische Begrndung jedenfalls nicht gibt9, kreisen
-Freuds Bemhungen gerade um diese letztere. Das Soziale, so sein
-Gedanke, kann nur dann im einzelnen seinen Niederschlag finden, wenn
-es sich mit bestimmten Triebregungen legiert und in der Triebkonomie
-selbst einen Sttzpunkt findet. Dies geschieht nach Freud primr in
-der dipalen Phase. Das Kind mu auf dieser Stufe seiner Entwicklung
-auf die intensiven Liebes- und Feindseligkeitswnsche gegenber seinen
-Eltern vezichten, und es lst diese Aufgabe durch Identifizierung,
-durch Neuschpfung des aufgegebenen Objekts in seinem Innern (Freud I,
-502). Teile der libidinsen Energien flieen dem 'Ich-Ideal' zu,
-dessen Definition bei Freud allerdings starken Schwankungen unterliegt
-(vgl. Chasseguet-Smirgel 1981, 215ff.); Teile der aggressiven
-Energien, namentlich die Kastrations- und Todeswnsche gegen den
-dipalen Rivalen, dem Gewissen und dem Schuldgefhl, den wichtigsten
-Komponenten des ber-Ichs (Freud III, 304). Die sozialisierende
-Leistung des ber-Ichs ruht somit triebkonomisch gesehen auf einem
-asozialen, ja antisozialen Fundament: der Aggression, die gleichsam
-nur von auen nach innen umgelenkt wird.
-
- Diese Zusammenzwingung zweier entgegengesetzter Tendenzen fhrt
-nach Freud zu einer uerst labilen Konstellation. Schon in 'Das Ich
-und das Es' notiert er, da je mehr ein Mensch seine Aggression nach
-auen einschrnke, er desto aggressiver und strenger in seinem ber-
-Ich werde. Das ber-Ich werde 'hypermoralisch' und wende sich mit der
-gleichen Grausamkeit gegen das Ich wie in anderen Konflikten das Es
-(Freud III, 320f.). Was hier noch rein individualpsychologisch als
-Neigung zur Zwangsneurose oder zur Melancholie diagnostiziert wird,
-wird spter zu einer These ber die Pathologie der kulturellen
-Gemeinschaften erweitert. Der Preis fr den Kulturfortschritt, heit
-es in 'Das Unbehagen in der Kultur', liege in der "Glckseinbue durch
-die Erhhung des Schuldgefhls" (Freud IX, 26O). Bereits in der
-Familie sei das Zusammenleben nur mglich durch den Verzicht auf die
-dipalen Bedrfnisse und durch die Einsetzung des Gewissens. Jede
-Erweiterung der sozialen Verbnde setze diesen Konflikt fort und habe
-eine weitere Steigerung des Schuldgefhls zur Folge. Der Kulturproze
-gehorcht einer unheilvollen Mechanik. Je mehr im Laufe der
-Vergesellschaftung die unmittelbare Aggression zwischen den Individuen
-abgebaut wird, desto mehr baut sie sich in den Individuen auf. Je
-geringer die Macht der Triebe und Affekte im sozialen Verkehr, desto
-grer die 'gesellschaftliche Produktion von Unbewutheit' (Erdheim)
-und der Druck des Verdrngten auf das Ich (vgl. Freud IX, 258f.). Da
-der Mensch jemals jenes "optimale Gleichgewicht seiner Seele" finden
-knnte, wie Elias dies fr den vollendeten Zivilisationsproze in
- Aussicht stellt, mu nach Freud als eine naive Utopie angesehen
-werden.
-
- Es ist bekannt, da Freud trotz dieser dsteren Perspektive dem
-Ich noch gengend Kraft zutraute, um - notfalls mit Untersttzung der
-Psychoanalyse - der Wiederkehr des Verdrngten standzuhalten. Und es
-ist auch bekannt, worauf sich dieses Vertrauen grndete: auf die
-Annahme, da das ber-Ich der Erbe des dipuskomplexes sei und "erst
-nach der Erledigung desselben" eingesetzt werde (Freud 1964, 85): in
-einem Stadium mithin, in dem die psychosexuelle Entwicklung und die
-Ich-Reifung bereits ein gewisses Niveau erreicht haben. Der Einbruch
-des Sozialen, so kann man zugespitzt formulieren, erfolgt im
-Freudschen Modell auf einer Stufe, auf der das Ich bereits eine solche
-Strke erreicht hat, da es seine unterschiedlichen Phantasien,
-Wnsche und Objektbeziehungen zu einem kohrenten Funktionssystem zu
-integrieren vermag (vgl. Jacobson 1978, 136ff.)
-
- Dieses Modell ist durch den Fortschritt der psychoanalytischen
-Erkenntnis nach Freud sowohl auf individual- wie auf
-sozialpsychologischer Ebene relativiert worden. Auf
-individualpsychologischer Ebene erhellten die wie immer auch
-unterschiedlichen und z.T. gegenstzlichen Forschungen der Englischen
-Schule, der genetischen oder strukturalistischen Schule und der
-Narzimus-Theorie die grundlegende Bedeutung, die der prdipalen
-Entwicklung im Rahmen des Sozialisationsvorgangs zukommt. Melanie
-Klein, Ernest Jones u.a. entdeckten die archaischen Vorstufen des
-ber-Ichs, die weniger durch Introjektionen der ueren Realitt als
-vielmehr durch Einverleibungen vor allem der destruktiv-sadistischen
-Projektionen des Kleinkindes bestimmt sind (vgl. Klein 1928/1985;
-1973, 21, 157ff.; Jones 1978). Ren Spitz, Margaret S. Mahler u.a.
-arbeiteten die konstitutive Funktion der Mutter-Kind-Dyade bzw.
-Symbiose sowie des Loslsungs- und Individuationsvorgangs heraus und
-dokumentierten die vielfltigen pathogenen Wirkungen, die ein
-psychotoxisches oder unzureichendes Verhalten der Mutter auf die
-Psyche des heranwachsenden Kindes haben kann (vgl. Spitz 1967; Mahler
-1972, 1978). Autoren wie Kohut und Kernberg endlich erklrten die
-zunehmende Zahl von Charakterstrungen mit einer mangelhaften Ablsung
-der narzitischen Energien von archaischen Objekten wie dem Gren-
-Selbst und den idealisierten Eltern-Imagines (Kohut 1976; Kernberg
-1978). Freuds Vorstellungen erwiesen sich vor diesem Hintergrund nicht
-als falsch, wohl aber als zu stark auf die vterliche Intervention in
-der dipalen Phase fixiert.
-
- Noch weiter relativiert wurden diese Vorstellungen durch die
-psychoanalytisch orientierte Sozialpsychologie, die mit plausiblen
-Argumenten auf den Klassencharakter und die Historizitt der von Freud
-beschriebenen dipalen Konfiguration hinwies. Klassencharakter: denn
-diese Konfiguration, die durch die Intensitt der Mutter-Kind-Symbiose
-sowie durch die Sprengung derselben durch den verbietenden und Distanz
-zum Lustprinzip erzwingenden Vater bestimmt ist, spiegelt eindeutig
-die Zwnge der brgerlichen Kleinfamilie mit ihrer scharfen
-Rollentrennung. Historizitt: denn dieser Familientypus kann
-angesichts vernderter Arbeitsbedingungen und
-Geschlechtsrollenzuweisungen als kulturell nicht mehr so bestimmend
-wie noch zu Freuds Zeiten angesehen werden.
-
- Dafr sind viele Ursachen verantwortlich, die hier nur angedeutet
-werden knnen: die 'Entwertung all der Eigenschaften, die einmal die
- Vaterkultur getragen haben' (Mitscherlich), in erster Linie der
-individuellen Arbeitserfahrung und des familialen Besitzes von
-Produktionsmitteln; die Entstehung eines nivellierten Gesamtarbeiters
-(Marx), in dem die Proletarisierung Massenschicksal ist; die
-Ausdifferenzierung und Entkoppelung vormals in der Familie
-zusammengefater Lebenslagen; die 'Polizierung' der Familie durch
-brokratische Regelung und Verrechtlichung; schlielich die
-'Sozialisierung' der Elternfunktion durch Massenmedien, peer groups
-und Therapeuten. Das Stadium der 'individualistischen
-Vergesellschaftung' (Adorno), in dem sich Sozialisation ber die
-Identifikation mit einer zugleich bedrohlichen und idealisierten
-Person vollzog, scheint vorber zu sein. "Die unterdrckende
-Trieborganisation scheint kollektiv, und das Ich durch ein ganzes
-System extrafamilialer Einrichtungen und deren Vertreter vorzeitig
-sozialisiert zu sein" (Marcuse 1967, 98; vgl. Mitscherlich 1968,
-185ff., 310ff.; Lasch 1986, 179ff.).
-
- Da Marcuse hier von vorzeitiger Sozialisierung spricht, meint
-nicht mehr und nicht weniger, als da der Zugriff des Ganzen auf das
-Individuum zu einem Zeitpunkt erfolgt, in dem der psychosexuelle
-Reifungsproze noch nicht zur Herausbildung eines stabilen und
-kohrenten Ichs gefhrt hat. Zahlreiche Diagnosen stimmen darin
-berein, da unter den gegenwrtigen Bedingungen des abwesenden Vaters
-ein groer Teil der psychischen Energien an prdipale Objekte
-gebunden bleibt, so da fr den Aufbau und die Besetzung reifer Ich-
-und ber-Ich-Strukturen nur ein vermindertes Quantum zur Verfgung
-steht. Die Folge ist, da die frhkindliche Entwicklung gar nicht mehr
-bis zum entscheidenden dipalen Konflikt gelangt, was wiederum
-zugleich bedeutet, da die prdipalen, archaischen Anteile des ber-
-Ichs gegenber den dipalen ein bergewicht erlangen.
-
- "So haben wir heute das folgende Problem: die hemmende, kontrollierende und leitende Funktion des berichs, die heute
-weitgehend mit der des Ichs zusammenfllt, ist durch die Schwche der Eltern, die nachgiebige Erziehung und das
-gesellschaftliche Klima abgeschwcht. Die sexuellen und aggressiven Triebe halten sich immer weniger an Regeln. Aber wir haben
-immer noch das strengere berich aus der frhen Kindheit, das in der Tiefe des Individuums fortlebt. Daraus resultieren Unruhe,
-Unbehagen, depressive Verstimmungen und Sucht nach Ersatzbefriedigungen"10.
-AAF
- Auch fr die Psyche gilt damit, was wir bereits fr die
-soziogenetische Ebene festgestellt haben: da Vergesellschaftung unter
-Marktbedingungen ein hchst paradoxer Vorgang ist. Verglichen mit
-Freuds Zeiten ist das Netz des Sozialen engmaschiger und strker
-geworden und hat lngst auch den privaten Schonraum der Familie
-erfat, in dem Elias noch eine Enklave des gesellschaftlich nicht
-Geformten sah (I, 226f., 247, 259). Diese Expansion des Sozialen aber
-geht keineswegs einher mit einer kontinuierlich zunehmenden
-'Individualisierung' oder gar 'Massenindividualisierung' (1987, 273,
-242), sondern macht Individuierung zu einer immer schwerer zu
-bewltigenden Aufgabe. Durch den Fortfall jener Faktoren, die in der
-brgerlichen Familie eine sukzessive Einschrnkung und Frustrierung
-der archaischen Wnsche und Phantasien durchsetzten, wird die Macht
-des Unbewuten gestrkt; damit aber die Macht einer Instanz, die, im
-Gegensatz zu den Annahmen eines C.G. Jung, keine hhere Kollektivitt
-verkrpert, sondern deren Negation: die aus der gesellschaftlichen
-Kommunikation ausgeschlossene private Symbolwelt der von ihren
-prdipalen Objekten beherrschten Individuen (vgl. Lorenzer 1970, 92,
-97). Zivilisation, die einmal aus der Domestizierung des Archaischen
-entsprang, schlgt damit in ihr Gegenteil um: in die Wiedererzeugung
-des Archaischen "in der Zivilisation durch die Zivilisation selbst"
- (Adorno 1971, 42). Es spricht gegen die Zivilisationstheorie von
-Elias, da sie noch nicht einmal die Mglichkeit einer derartigen
-Entwicklung errtert11.
-
-
-
- 3. Der letzte hier zu diskutierende Einwand stammt aus der
-Systemtheorie und besagt, da Elias dem Unterschied zwischen
-Interaktions-, Organisations- und Gesellschaftssystemen nicht gengend
-Rechnung trgt. Interaktionssysteme sind, nach der Definition
-Luhmanns, dadurch bestimmt, da Anwesende sich wechselseitig
-wahrnehmen und auf dieser Grundlage miteinander kommunizieren. Wegen
-dieser Bindung an die konkrete Prsenz von Personen knnen sie weder
-in ihren internen noch in ihren externen Beziehungen sonderlich hohe
-Komplexitt erreichen, eine Beschrnkung, die noch dadurch verstrkt
-wird, da die Erfordernisse der thematischen Konzentration und der
-linearen Sequenz der Beitrge sehr zeitraubend sind. -
-Organisationssysteme ermglichen dagegen eine hhere sachliche und
-zeitliche Generalisierung, weil sie auf Mitgliedschaftsregeln
-aufbauen. Auf der Basis solcher Regeln ist es mglich, hochgradig
-knstliche Verhaltensweisen dauerhaft zu reproduzieren, die sich durch
-ein hohes Ma an Motivgeneralisierung und Verhaltensspezifikation
-auszeichnen. - Der Begriff des Gesellschaftssystems schlielich zielt
-auf die umfassendste Form von Kommunikation: das Sozialsystem par
-excellence, das als Bedingung aller anderen sozialen Systeme fungiert
-(damit auch aller Interaktions- und Organisationssysteme). Es ist
-nicht einfach die Summe aller Organisationen und Interaktionen,
-sondern ein System hherer Ordnung. Es schliet neben Interaktionen
-auch interaktionsfreie Handlungen wie z.B. schriftliche Kommunikation
-ein, grenzt das Soziale vom Nichtsozialen ab und ermglicht die
-Ausdifferenzierung von Subsystemen, die auf bestimmte, nur ihnen
-zurechenbare Funktionen spezialisiert sind (Luhmann 1974, 143; 1982,
-11f.).
-
- Mit dieser Unterscheidung verbindet Luhmann eine evolutionre
-Perspektive. Obwohl keine Gesellschaft jemals ganz in Interaktionen
-aufgeht, gilt doch fr archaische Gesellschaften, in denen die
-Funktionsdifferenzierung nur wenig entwickelt ist, da sie
-interaktionsnah gebildet werden (Luhmann 1985, 576). Auch in den
-vormodernen Hochkulturen spielen Interaktionssysteme noch eine
-fhrende Rolle, wenngleich wichtige Funktionen bereits durch
-Organisationen erledigt werden: das Prinzip der Stratifikation, nach
-dem diese Gesellschaften gegliedert sind, hat zur Folge, da die
-Gesellschaft als Ganze durch das Kontaktnetz der Oberschicht
-reprsentiert und symbolisiert wird. Oberschichteninteraktion kann
-deshalb als Integrationmodus stratifizierter Gesellschaften angesehen
-werden (Luhmann 1980, 84).
-
- In der modernen Gesellschaft dagegen, die auf voll durchgefhrter
-funktionaler Differenzierung beruht, kommt dem Interaktionssystem
-keine integrative Aufgabe mehr zu. Wohl bleibt Interaktion eine
-Basisbedingung von Gesellschaft, die sich ja schlielich durch
-soziales Handeln konstituiert. Doch ist die Gesellschaft mit der
-Delegation grundlegender Funktionen an Subsysteme, mit der Entstehung
-ausgedehnter Organisationssysteme und nicht zuletzt mit der
-Erweiterung zur Weltgesellschaft so komplex und berpersnlich
-geworden, da sie sich durch Interaktion nicht mehr reprsentieren,
-geschweige denn bewltigen lt.
-
- "Die Gesellschaft ist, obwohl weitgehend aus Interaktionen bestehend, fr Interaktion unzugnglich geworden. Keine
-Interaktion, wie immer hochgestellt die beteiligten Personen sein mgen, kann in Anspruch nehmen, reprsentativ zu sein fr
-Gesellschaft. Es gibt infolgedessen keine 'gute Gesellschaft' mehr. Die in der Interaktion zugnglichen Erfahrungsrume vermitteln
-nicht mehr das gesellschaftlich notwendige Wissen, sie fhren wohlmglich systematisch in die Irre. Auch die Interaktionsfelder, die
-sich unter irgendwelchen Gesichtspunkten zusammenfgen und aggregieren lassen, lenken die Aufmerksamkeit uerstenfalls auf
-Funktionssysteme, vielleicht auch auf regionale Abgrenzungen (Nationen), nicht aber auf das umfassende System
-gesellschaftlicher Kommunikation" (Luhmann 1985, 585).
-AAF
- Im gleichen Mae, wie die Interaktion an gesamtgesellschaftlicher
-Relevanz verliert, schiebt sich die Organisation in den Vordergrund.
-Dieselben Prozesse, die zur Auseinanderziehung der Systemebenen von
-Gesellschaft und Interaktion fhren - die Ausdifferenzierung und
-durchgehende Monetarisierung der Gesellschaft, die Verrechtlichung der
-Erhaltungs- und Fortsetzungsbedingungen tglicher Lebensfhrung, die
-wachsende Bedeutung von Schulerziehung und Berufswahl fr die
-individuelle Biographie (Luhmann 1981, 360f.) - begnstigen nach
-Luhmann eine massenhaft-spontane 'Autokatalyse' von Organisationen und
-eine entsprechende Verallgemeinerung der diesem Systemtypus eigenen
-Besonderheiten: der Engfhrung von Kommunikation auf Entscheidungen
-und Verknpfungen von Entscheidungen; der Bindung an Weisungsketten,
-mterhierarchien und Kontrollmechanismen; der Unterwerfung unter
-programmierte Ziele und Strategien; der Entlastung von moralischen
-Erwgungen und gesamtgesellschaftlichen Reflexionen.
-
- Allerdings bedeutet diese unbestreitbare Expansion von
-Organisationen und organisationsspezifischen Verhaltensmustern nicht,
-da sich die Gesellschaft in ein einheitliches Organisationssystem
-verwandelt. Die Gesellschaft konstituiert sich heute als
-Weltgesellschaft und bersteigt schon allein dadurch den Horizont des
-Organisierbaren. Auch innerhalb der einzelnen Funktionsbereiche ist
-die Komplexitt so sehr angewachsen, da die Aufgaben der Wirtschaft
-oder der Erziehung durch eine einzige Organisation nicht bewltigt
-werden knnten. Selbst wenn es z.B. gelnge, Produktionsorganisationen
-durch eine weltweite Planung zu integrieren, knnten gleichwohl
-Produktions- und Konsumentscheidungen nicht zu einer einzigen
-Organisation zusammengeschlossen werden (Luhmann 1982, 15).
-Organisierte Sozialsysteme mgen der Rahmen sein, in dem sich ein
-groer, wenn nicht der grte Teil des sozialen Alltagshandelns
-vollzieht. Zu einer Megaorganisation, in der die Unterscheidung von
-Gesellschaftssystem und Organisationssystem hinfllig wrde, fgen sie
-sich nicht.
-
- Im Lichte dieser Unterscheidungen liegt der Grundmangel der
-Zivilisationstheorie in der Totalisierung von Verhaltensformen, die
-fr Interaktionssysteme typisch sind. Diese Totalisierung ist
-historisch gesehen nicht vllig falsch. Sie kann sich darauf berufen,
-da unter den Bedingungen stratifikatorischer Differenzierung in der
-Tat ein spezifisches Interaktionssystem - der Hof -
-Integrationsaufgaben erfllte und insofern von
-gesamtgesellschaftlicher Relevanz war. Elias beschrnkt die Gltigkeit
-der Zivilisationstheorie jedoch ausdrcklich nicht auf diese Phase,
-sondern fat auch die der funktionalen Differenzierung und den
-organisierten Sozialsystemen gemen neuen Verhaltensmuster als
-Manifestation des Zivilisierungsprozesses auf, obgleich er sehr wohl
-einrumt, da das Schema der nichthfischen mittelstndischen
-Zivilisationslinie von dem der hfischen verschieden ist, und obgleich
-er erkennt, da die 'guten Gesellschaften', die nach der hfischen
- kommen, "nicht mehr im entferntesten die gleiche formgebende Kraft"
-haben (II, 416; 1975, 144f., 172ff.). Der Proze der Zivilisation,
-lautet eine mehrfach wiederholte Kernthese, vollzieht sich "ohne
-Bruch", "in einer immer intensiveren Ausbreitungsbewegung", die mit
-der Bildung eines hfischen Sozialcharakters beginnt und - vorerst -
-mit einem von diesem abgeleiteten Nationalcharakter endet (I, 43f.).
-
- Die Behauptung aber, da die "hfisch-aristokratische
-Menschenmodellierung (...) in dieser oder jener Form in die
-berufsbrgerliche ein(mndet) und (...) in ihr aufgehoben
-weitergetragen (wird)" (II, 418), wird der im Begriff der 'Aufhebung'
-liegenden Dialektik nicht gerecht. Gewi gibt es eine Aufhebung im
-Sinne des Bewahrens und Fortfhrens, die sich in der bernahme
-bestimmter Mechanismen der Selbstkontrolle (Langsicht,
-Affektbeherrschung) oder in Erscheinungen wie der 'Demokratisierung
-der Literalitt' (Goody/Watt) zeigt. Aufhebung aber meint auch stets -
-und in diesem Falle mehr als alles andere - Negation, Auer-Geltung-
-Setzen, Beenden. So hat die Demokratisierung der Literalitt, wie
-Goody und Watt gezeigt haben, durchaus nicht nur zu einer kollektiven
-Aneignung des kulturellen Erbes gefhrt, sondern auch dessen
-Verbindlichkeit aufgelst und dessen Homogenitt zerstrt12, und so
-resultiert denn auch die Aufhebung des Privilegs nicht in der
-Verallgemeinerung der in der Oberschicht geltenden Codes, sondern
-allenfalls in deren Musealisierung.
-
- Luhmann zufolge ist diese Entwicklung unausweichlich, denn erstens
-verliert die Oberschichteninteraktion mit zunehmender
-Ausdifferenzierung von Subsystemen ihren Reprsentationscharakter -
-das Ganze lt sich durch keinen Teil mehr darstellen, sondern ist nur
-noch in den Teilen selbst prsent; und zweitens geht durch die
-Radikalisierung der Funktionsdifferenzierung die Conditio sine qua non
-hfischer Interaktion verloren: die Verfgung ber ein ausreichendes
-Quantum nichtfunktionsbezogener Zeit, alteuropisch ausgedrckt: Mue.
-Nur eine Schicht, die ihr gesamtes Dasein 'mig' verbrachte, d.h.
-nicht primr in den Aufgaben der Produktion und Reproduktion des
-unmittelbaren Lebens aufging, konnte jene gesteigerte Fhigkeit zur
-Wahrnehmung des eigenen und des fremden Selbst ausbilden, von der das
-Leben bei Hofe abhing; nur eine Schicht, die auf Reprsentation des
-Ganzen spezialisiert war, konnte sich auf die Stilisierung der
-Umgangsformen, auf die Produktion und Interpretation jener Zeichen
-konzentrieren, in denen sich Rang und Ehre, Achtung oder Miachtung
-dokumentierten. Wenn Zivilisation darin besteht, da man dem Umweg vor
-der Abkrzung, der indirekten Aktion vor der direkten den Vorzug gibt,
-so setzt sie eine Ordnung voraus, die wenigstens ber ein Gut im
-berflu verfgt: Zeit.
-
- Organisierte Sozialsysteme indes, wie sie in der
-berufsbrgerlichen Gesellschaft dominieren, beruhen auf der
-systematischen Verknappung von Zeit. In ihnen geht es, wie man nicht
-nachdrcklich genug hervorheben kann, um Zeitgewinn und um die damit
-verbundenen Konkurrenzvorteile gegenber anderen Organisationen: daher
-die Verkrzung und Kanalisierung der Kommunikation, die simultane
-Erledigung von Aufgaben durch Arbeitsteilung, die Entlastung der
-Operationen von der zeitraubenden Notwendigkeit, fr jeden Einzelfall
-natrlich gewachsene Motive oder moralischen Konsens zu beschaffen13.
-Es ist klar, da nur eine derartige konomisierung der Zeit die
-Organisationen in die Lage versetzt, die Flle der ins Unendliche
-gestiegenen Anforderungen zu bewltigen. Ebenso klar ist aber, da die
- 'Temporalisierung von Komplexitt' nur im Gegenzug gegen die fr die
-traditionellen Oberschichten typischen Formen der Zeitverwendung
-durchgesetzt werden kann - und damit auch im Gegenzug gegen die
-civilisation. Wo die Knappheit der Zeit und die Vordringlichkeit des
-Befristeten (Luhmann) regiert, wird Achtungskommunikation alten Stils
-zum Luxus, der nur noch auerhalb der organisierten Sozialsysteme (und
-hier oft noch nicht einmal gegen Geld) zu haben ist. Gepflegte
-Geselligkeit und galante Konversation, Zivilisierung der Gesten und
-der Sprache, Takt und Respekt, alle diese Formen erweisen sich heute
-als Oberschichtenphnomene, die "nach der Auflsung der
-stratifizierten Gesellschaftsordnung jedenfalls nicht als
-Kultiviertheitserwartung fortgesetzt werden"14.
-
- Nicht da sie vllig verschwnden. Distinktionsstrategien spielen
-auch heute noch eine wichtige Rolle im gesellschaftlichen Leben, vom
-ehemaligen Adel ber die Bildungseliten bis hinab zur Unterwelt
-(Girtler 1989). Aber der ubiquitre Zeitdruck erzwingt doch eine so
-unbersehbare Reduktion und Minimierung aller Schnrkel und Floskeln,
-eine solche Raffung aller umstndlichen Vermittlungen, da sich der
-inter- und intraorganisatorische Kommunikationsstil mehr und mehr
-jener zeitgenssischen Architektur angleicht, die das Ornament zum
-Verbrechen erklrte (A.Loos). Zeitkonomie und Zivilisation schlieen
-einander aus. Wer diesen Gegensatz verleugnet und auch fr die
-Gegenwart noch am Zivilisationsbegriff festhalten will, mu daraus
-alle Inhalte tilgen, die einmal mit Zivilisiertheit verbunden waren.
-
-
-
-
-
-
-
-
-
-
-Anhngern nicht gnzlich entgangen. Besonders Cas Wouters hat sich
-ihnen gestellt und einen Trend zur Informalisierung diagnostiziert,
-den er auf Vernderungen in der Machtbalance zwischen den sozialen
-Klassen, den Generationen und den Geschlechtern zurckfhrt (Wouters
-1979; 1986). Elias hat dann diese Diagnose aufgegriffen und alle
-Versuche abgewiesen, daraus eine Falsifizierung der
-Zivilisationstheorie ablesen zu wollen. Die Informalisierung, so seine
-These, sei im Gegenteil ein Beleg fr die Intensivierung des
-Zivilisationsprozesses, weil sie mit einer "Zunahme des
-gesellschaftlichen Drucks zur Selbstregulierung" einhergehe (Elias
-1989, 60). Dem ist zweierlei entgegenzuhalten. Elias und Wouters haben
-sicher recht, wenn sie in der Informalisierung nicht einfach einen
-Rckfall in Chaos und Regellosigkeit sehen wollen. Selbstverstndlich
-ist die moderne Gesellschaft, bei aller Lockerung von Konventionen und
-Standards, durch ein sehr hohes Ma an Regulierung gekennzeichnet.
-Nur: diese Regulierung ist ein Effekt der organisierten Sozialsysteme,
-die strukturell in keinerlei Beziehungen zu den Interaktionssystemen
-der hfischen Gesellschaft stehen. Der in ihnen endemische
-Rationalisierungszwang drfte weit mehr als alle Vernderungen in den
-Machtbalancen zwischen verschiedenen sozialen Gruppen dazu beigetragen
-haben, da die berkommenen Interaktionsrituale nach und nach ber
-Bord geworfen wurden. Zweitens aber kann die Informalisierung auch
-deswegen keine Intensivierung des Zivilisationsprozesses sein, weil
- die partielle Entstrukturierung der ueren Beziehungen mitnichten
-durch Strukturgewinne im Innern der Subjekte kompensiert wird. Die
-"vorzeitige" Sozialisation, so haben wir im vorigen Abschnitt gesehen,
-fhrt gerade nicht auf eine "hhere Ebene des Bewutseins und
-wahrscheinlich auch eine hhere Ebene der Selbststeuerung" (Wouters
-1979, 294), sondern zu einer Schwchung des Ichs und einer
-Entstrukturierung des ber-Ichs. Weit davon entfernt, ber die von den
-Zivilisationstheoretikern supponierte Souvernitt zu verfgen, die es
-ihm erlaubte, rigide Kontrollen in bestimmte Bereiche zu lockern,
-scheint das Subjekt eher zum Zerfall zu tendieren: zur Spaltung in ein
-uneigentliches Selbst, das sich den externen Funktionsimperativen der
-organisierten Sozialsysteme anpat, und in ein eigentliches Selbst,
-das sich in den Intermundien dieser Systeme entfaltet und berall
-dort, wo es auf keine Schranken mehr stt, den Impulsen seiner
-jeweiligen emotionalen Befindlichkeit folgt (Gerhards 1988, 237f.).
-Wie dnn dabei die Linie ist, die die psychische von der physischen
-Inkontinenz trennt, wei jeder, der die ffentlichen Verkehrsmittel in
-Grostdten benutzt.
-
-
-
-
-
-
-
-
-
-
-eine hfische Zivilisation im Abendland gab und da Norbert Elias ihr
-Theoretiker ist. Ich bezweifle auch nicht, da diese hfische
-Zivilisation in einigen Lndern wie Frankreich auf die aufsteigenden
-brgerlichen Schichten abgefrbt und deren nationalen Habitus geprgt
-hat, wiewohl man hinzufgen sollte, da dies historisch gesehen eher
-die Ausnahme als die Regel war. Das Brgertum ist eine sehr
-abendlndische Erscheinung, und selbst innerhalb des Abendlandes gibt
-es zahlreiche Flle, in denen es sich dem Einflu des Hofes entzog.
-Der Hoffnung des Liberalismus, die Brger mchten sich die Manieren
-der guten Gesellschaft aneignen, whrend die 'historischen Klassen' im
-Verdienen tchtiger werden sollten, hielt schon Karl Kraus entgegen,
-da "aller Wahrscheinlichkeit nach schlielich die historischen
-Klassen ohne irdische Gter und mit schlechten Manieren, die
-vordringenden Schichten aber mit zweifachem Besitzstand die
-Gesellschaft reprsentieren werden" (Kraus 1916, 7). Schlielich ist
-auch unbestritten, da es in der Neuzeit eine weitausgreifende
-Affektmodellierung gegeben hat, in die immer weitere Schichten
-einbezogen wurden.
-
-
-"evolutionr wirkende Kontinuitt des Zivilisationsbegriffs" behauptet
-und die Geschichte der hfischen Affektmodellierung zur "Vorgeschichte
-der Modernisierung", gar zur "Vorgeschichte des modernen
-Sozialcharakters" erklrt (Kuzmics 1989, 82, 89f.). Eine derart
-notwendige Beziehung, wie sie hier unterstellt wird, existiert nicht.
-Es gibt sie historisch nicht, weil die Geschichte zahlreiche hfische
-Gesellschaften kennt, die sich nicht zu berufsbrgerlichen
-Gesellschaften entwickelt, sondern stattdessen in
-Kriegergesellschaften zurckverwandelt haben - Japan nach der Heian-
-ra ist hierfr vielleicht das beste Beispiel; der eigentliche
- Durchbruch zur berufsbrgerlichen Gesellschaft erfolgte dagegen in
-Lndern, in denen nach Elias' eigener Einsicht der Hof nur eine
-geringe oder gar keine Rolle spielte - England und den USA (1975, 104,
-147f.). Es gibt eine solche notwendige Beziehung aber auch nicht im
-logisch-strukturellen Sinne, weil zwischen der Affektmodellierung, wie
-sie fr Interaktionssysteme typisch ist, und derjenigen, wie sie
-Organisationssysteme fordern, ein Hiatus klafft. Mit Robert Muchembled
-ist davon auszugehen, da die fr die hfische Welt typische
-Verfeinerung der Sitten vor allem die Funktion einer Abgrenzung und
-Distanzierung der Oberschichtenkommunikation von anderen
-Kommunikationsformen hatte und Muster entwickelte, die sich nur um den
-Preis des Lcherlichen, Parvenuhaften von anderen Schichten kopieren
-lieen - schon deshalb, weil keine dieser Schichten ber den
-erforderlichen Abstand zur Welt des Geldes und des 'Berufs' verfgte.
-Der Zwang zur Langsicht, die Schemata der Verhaltensregulierung und -
-kontrolle, die fr diese Schichten mageblich sind, resultieren aus
-den Zwngen dieser Welt, nicht aus den Vorgaben der
-Oberschichtenkommunikation; Zivilisierung ist keine Bewegung von oben
-nach unten, die immer noch andauert, sondern eine Bewegung, die die
-Kluft zwischen oben und unten zu zementieren trachtet:
-
-
-Mechanismus zur Nivellierung der Unterschiede. Er bringt im Gegenteil verschiedenartige Wesen hervor, die auf verschiedenen
-Stufen der soziokulturellen Hierarchie angesiedelt sind. Diese Menschen - das gilt selbst noch fr das Ende des Ancien Rgime - sind
-durchaus nicht aus einem Stck gemacht, sondern fgen sich in Gesellschaftsschichten ein, die unterschiedliche Verhaltensstrnge
-und gegenstzliche konomische Entwicklungen beerben. Mit anderen Worten, nichts wre verfehlter, als die Entwicklung der
-Mentalitten vom ausgehenden Mittelalter bis zur Revolution als eine Art unbestimmten Gesamtfortschritt darzustellen, dem sich die
-einzelnen Gruppen dann mehr oder weniger vollkommen anpaten" (Muchembled 1990, 184).
-
-
-Rhythmus durch die Ausdifferenzierung neuer, eigengesetzlicher
-Funktionssysteme und Organisationen bestimmt wird. Jeder dieser Schbe
-ist, psychogenetisch gesehen, mit einer Schwchung, wenn nicht sogar
-mit einem Abbau der bis dahin dominierenden Instanzen verbunden. Das
-brgerliche Ich ist, als psychische Instanz, schwcher als das
-hfische, weil es nicht nur mit dem Es und der Auenwelt, sondern auch
-mit einem ber-Ich zu rechnen hat, das vom Individuum eine
-Staatsfrmigkeit seiner Gesinnungen, nicht blo seiner ueren
-Handlungen verlangt (Vowinckel 1983, 150). Das nachbrgerliche Ich ist
-noch schwcher, weil es nicht mehr auf dem Weg einer Identifikation
-mit dem Aggressor - dem dipalen ber-Ich -Strke gewinnen kann,
-vielmehr schutzlos und unvermittelt der Gewalt prdipaler,
-archaischer Konfigurationen ausgeliefert ist, die den Anspruch auf
-Grandiositt und Omnipotenz erheben. Mit jedem neuen Schub in der
-Entwicklung der Sozialkontrolle erhlt somit das Ich neue und stets
-mchtigere Gegner, die seine Souvernitt fortwhrend einschrnken -
-und damit seine Fhigkeit zu dem, was Elias mit Recht als
-Wesensmerkmale des zivilisierten Habitus herausstellt: Selbstdistanz,
-Selbstkontrolle, Takt, 'taking the role of the other', das Spiel mit
-dem Schein und nicht zuletzt auch die Technik der Simulation, die dem
-protestantischen Kleinbrger als Unaufrichtigkeit erscheinen mag, in
-Wirklichkeit aber die Fhigkeit bedeutet, die anderen mit der Last des
-eigenen Selbst zu verschonen (Sennett 1983, 299).
-
-
-der Zivilisation. Sie verallgemeinert keineswegs die Formen, die in
-der hfischen Zivilisation auf einen kleinen Kreis von Privilegierten
-beschrnkt waren, sondern beseitigt mit dem Privileg auch diese
- Formen. Sie fhrt nicht zu einer Anverwandlung der bisher
-Ausgeschlossenen an die Ausschlieenden, sondern umgekehrt zum
-Vordringen des aus der Zivilisation Ausgeschlossenen. Seit dem 18. Jh.
-ist die vorherrschende Tendenz in der Politik wie in der Kunst eine
-nicht abreiende Kette von Demaskierungen, Entlarvungen und
-Enthllungen, in der eine Konvention und Tradition nach der anderen
-demontiert wird und immer neue Schichten des Verdrngten ans Licht
-gezogen werden; und wenn es eine Zeitlang so schien, als knnte mit
-der Ausweitung des ffentlichen Erziehungswesens ein Gegengewicht
-geschaffen werden, so ist dieses mittlerweile so stark segmentiert und
-mit anderen Aufgaben berfrachtet, da selbst der amerikanische
-Prsident sich alarmiert zeigt. Die sprachlichen Ausdrucksformen der
-Unterschichten, insbesondere die Koppelung von Sexualitt und Gewalt,
-sind lngst gesellschaftsfhig geworden und machen, wie ein Blick in
-den 'Anti-dipus' zeigt, selbst vor dem wissenschaftlichen Diskurs
-nicht mehr halt; die Distanzierung vom Krper, die diesen zum Medium
-der Demonstration festgefgter Konventionen machte, ist einer
-aufdringlichen Thematisierung desselben gewichen, bei der der Krper
-zwar mit Signalen berladen und - wie in der Punk-Bewegung - in
-extremer Weise stilisiert wird, jedoch nichts reprsentiert und nichts
-mehr mitzuteilen hat (Bette 1987; Georgieff 1987); und wer gezwungen
-ist, sich am Straenverkehr zu beteiligen, wird rasch feststellen
-mssen, da auch die Survival-Mentalitt der Unterschichten sich
-allgemeiner Anerkennung erfreut. Elias pflegt in seinen letzten
-Arbeiten hufig auf die sinkenden Unfallziffern zu verweisen, um seine
-These vom gestiegenen Selbstzwang zu erlutern (1978, 22). Doch fnf
-Minuten auf der Autobahn sollten eigentlich gengen, um sich davon zu
-berzeugen, da hier nicht die Zivilisation herrscht, sondern das
-Gesetz des Dschungels. Nicht da dort jeder Mensch jedem Menschen ein
-Wolf wre, das hatte schon Hobbes mit seinem bekannten Diktum nicht
-gemeint. Es gibt auch heute unendlich viele Beispiele von
-Zuvorkommenheit und Hilfsbereitschaft. Aber eine Welt, in der man bei
-jedem Streit um eine Parklcke, bei jeder Beschwerde ber zu lauten
-Partylrm damit rechnen mu, erschossen, erstochen oder
-zusammengeschlagen zu werden, ist von der Zivilisation noch immer
-genau so weit entfernt wie der von Hobbes beschriebene Kriegszustand,
-"which is worst of all, continual fear, and danger of violent death;
-and the life of man, solitary, poor, nasty, brutish, and short"15.
-
-
-Leitbegriff der Zivilisationstheorie zu revidieren. Anstatt in ihm
-nach dem Vorbild der franzsischen Aufklrung zwei nur zufllig-
-historisch verbundene Komplexe zusammenzuzwingen - die hfischen
-Interaktionsregeln und die Rationalittsstrukturen organisierter
-Sozialsysteme - sollte man ihn wieder enger fassen und seiner
-geschichtsphilosophischen Konnotationen entkleiden. Vielleicht hatte
-Kant doch recht, als er vorschlug, den Zivilisationsbegriff auf
-"Manieren, Artigkeit und eine gewisse Klugheit" zu beschrnken,
-vermittels welcher der Mensch 'gesellschaftsfhig' werde - womit er
-natrlich die 'gute Gesellschaft' meinte (Kant 1968, XII, 707). Eine
-solche Eingrenzung htte jedenfalls den Vorzug, da sie uns deutlicher
-als Elias die Vergnglichkeit der Bedingungen vor Augen fhrte, an die
-Zivilisation nun einmal gebunden ist, und sie knnte es vielleicht
-ermglichen, die Theorie der Zivilisierung durch die lngst
-berfllige Theorie der Entzivilisierung zu ergnzen.
-
-
-keine Rcksicht halten, auch als bloe Spiel-Form nicht. - Und ebenso schrumpft in einer Welt, die uns um Mue und die anderen
- Bedingungen des Privaten betrgt, die Subtilitt unseres seelischen Privatlebens" (Anders 1986, 13).
-
-
- 
-
-
-
-
-
-
-
-Zivilisation, so wre dazu kaum etwas geeigneter als das Konzept der
-Disziplinargesellschaft, das Michel Foucault in den siebziger Jahren
-entwickelt hat. Gewi ist der Gegensatz nicht absolut. Beide Autoren
-interessieren sich fr Prozesse der Normierung und Regulierung, beide
-sehen eine enge Beziehung zwischen Individuierung und Subjektivierung
-einerseits, sich verdichtenden Machtverhltnissen andererseits.
-Foucault bezieht diese Entwicklungen jedoch nicht wie Elias auf ein
-Zentrum, und er sieht sie auch nicht aus der Perspektive eines
-zunehmenden Souvernittsgewinns der (Welt-) Gesellschaft und des
-einzelnen. Die moderne Gesellschaft gilt ihm als polyzentrisches
-Geflecht von Disziplinarapparaten und die Individuierung als
-Manifestation der Macht. Anstelle der Vision einer friedlichen
-Kooperation steht bei ihm die eines 'verallgemeinerten Krieges' (1978,
-40)16 , anstelle der Aufhebung willkrlicher Macht deren Verfestigung
-zu 'Herrschaftszustnden' (1985, 11). "Die Menschheit", so Foucaults
-nietzscheanisches Credo, "schreitet nicht langsam von Kampf zu Kampf
-bis zu einer universellen Gegenseitigkeit fort, worin die Regeln sich
-fr immer dem Krieg substituieren; sie verankert alle ihre
-Gewaltsamkeiten in Regelsystemen und bewegt sich von Herrschaft zu
-Herrschaft" (1974, 95).
-
-
-nicht mehr zu berblicken. Vieles davon ist Einfhrung oder Paraphrase
-und wird so schnell vergessen werden, wie es geschrieben wurde17 .
-Doch hat Foucault inzwischen auch ernstzunehmende Gesprchspartner
-gefunden, die so schwerwiegende Einwnde gegen seinen Entwurf
-formuliert haben, da sich dessen einfache Fortschreibung oder
-Kanonisierung verbietet. Ich werde zunchst Foucaults Grundgedanken
-knapp skizzieren, danach die wichtigsten Gegenargumente prsentieren
-und anschlieend errtern, inwieweit die Theorie der
-Disziplinargesellschaft noch zu halten ist.
-
-
-
-
-
-
-
-
-
-
-Genealogie der Disziplin religisen Faktoren ein erhebliches Gewicht
-zu. Schon der vorchristliche, vor allem aber der christliche Orient
-habe einen spezifischen, pastoralen Machttypus entworfen, dessen Pole
-die Herde und der dieselbe zusammenhaltende Hirt oder Schfer seien;
-diese Pastoralmacht habe sich dann vom 2. Jh. an ununterbrochen
-verfeinert und sich mit der politischen Macht assoziiert, wodurch zwei
-verschiedene Machttechniken miteinander verbunden worden seien: das
-kirchliche Gestndnis- und Beichtritual und die Formulierung und
-Vollstreckung des Gesetzes (1982, 17ff.). Aus dieser Kombination, die
- zum erstenmal im Inquisitionsproze praktische Gestalt angenommen
-habe, sei jene doppelte Bedeutung von 'Subjektivierung' entsprungen,
-die seither das Abendland bestimmt habe: Subjektivierung im Sinne
-einer Unterwerfung unter Kontrolle und Abhngigkeit und
-Subjektivierung im Sinne einer Bindung an die eigene Identitt qua
-Bewutsein und Selbsterkenntnis (1987, 247f.)
-
-
-nur geringe Aufmerksamkeit. Weitaus intensiver befat er sich dagegen
-mit dem eigentlichen Formierungsstadium, das er auf das 17. und 18.
-Jh. datiert. Zwar dominiert zu diesem Zeitpunkt mit der absoluten
-Monarchie noch eine Form der Macht, "die wesentlich an der Abschpfung
-und am Tode orientiert war" (1977, 110) - eine Form, die sich
-verfassungsrechtlich in der Souvernitt und der ihr
-korrespondierenden Gesetzgebungskompetenz manifestiert, und die
-strafrechtlich in den Riten und Marterzeremonien der
-'Abschreckungsmacht' erscheint. Zur gleichen Zeit aber bereitet sich
-gesamtgesellschaftlich ein Umbruch vor, in dessen Verlauf auch die
-Macht eine tiefgreifende Transformation erfhrt. Am Beispiel der
-buerlichen Delinquenz zeigt Foucault, da das klassische Zeitalter
-der Schauplatz neuer Formen der Gesetzwidrigkeit ist, die sich nicht
-mehr primr gegen die Rechte des Adels oder des Knigs richten,
-sondern gegen Gter; ein Wandel, mit dem die Bevlkerung auf neue
-Formen der Kapitalakkumulation, der Produktionsverhltnisse, der
-Aneignungsstrukturen reagiert. Mit dem Anwachsen kapitalistischer
-Produktionsapparate und dem demographischen Wachstumsschub des 18.
-Jhs. verbreitern und vervielfachen sich die Konfliktlinien und lassen
-dadurch die klassische, auf der Veranstaltung exemplarischer
-Straffeste beruhende Souvernitts- und Abschreckungsmacht zunehmend
-unwirksam werden (1976, 110, 280).
-
-
-engen Rahmen herauswchst, in den sie durch die Institutionen der
-Monarchie gebannt war, ist die Zeit, in der neue Verfahren und
-Mechanismen der Macht auf den Plan treten; Verfahren, "die nicht mit
-dem Recht, sondern mit der Technik arbeiten, nicht mit dem Gesetz,
-sondern mit der Normalisierung, nicht mit der Strafe, sondern mit der
-Kontrolle, und die sich auf Ebenen und in Formen vollziehen, die ber
-den Staat und seine Apparate hinausgehen" (1977, 110f.). Welche
-Verfahren sind hier gemeint?
-
-
-Ancien Rgime beginnen sich Forderungen der Aufklrer nach
-Humanisierung des Strafrechts und konomisierung der Strafgewalt in
-einer Reihe von Reformen geltend zu machen, die die Ersetzung der
-alten 'konomie der Verausgabung und des Exzesses' durch eine
-'konomie der Kontinuitt und der Dauer' ermglichen. Whrend die
-absolutistische Souvernitts-Macht mit ihrer Sprunghaftigkeit und
-Regellosigkeit sowie der Weitmaschigkeit ihres Kontrollnetzes den
-Gesetzwidrigkeiten der Untertanen weiten Raum lie, bemhen sich die
-Justizaufklrer darum, durch Milderung der Strafen, sorgfltigere
-Kodifizierung und Rationalisierung der Gewaltausbung die Basis fr
-einen neuen gesamtgesellschaftlichen Konsens hinsichtlich der
-Strafgewalt zu schaffen, um eine wirksamere Verteidigung gegen einen
-Gegner zu ermglichen, "der jetzt raffinierter, aber auch verbreiteter
-im gesellschaftlichen Krper ist". Indem sie die Willkr des Souverns
-anprangert, bereitet die Aufklrung zugleich den Boden fr ein neues,
-perfekteres System der sozialen Kontrolle. Richter und Anklger,
- Verteidiger und Angeklagte werden in ein diskursives Gefge
-eingeschlossen, dessen Sinn nicht in der schreckenerregenden
-Wiederherstellung der Souvernitt, sondern in der
-Wiederinkraftsetzung des Strafgesetzbuches bestehen soll (1976, 113,
-141).
-
-
-Definition schuldig bleibt, meint im wesentlichen folgendes: Auf der
-einen Seite haben wir es mit einer Kodifizierung und Rationalisierung
-zu tun, die den Untertanen zweifellos neue Sicherheiten bringt. Die
-Macht wird an Regeln gebunden, das Individuum als Rechtssubjekt
-anerkannt, die Strafe in ein Mittel verwandelt, das die
-Rechtssubjektivitt wiederherstellen soll. Auf der anderen Seite aber
-wird gerade dadurch eine uerste Verfeinerung und Vervollkommnung der
-Unterwerfung ermglicht. Der Kodifizierung entspricht eine zunehmende
-Individualisierung der Strafen und eine Objektivierung von Verbrechen
-und Verbrecher. Das Rechtssubjekt wird Gegenstand einer
-klassifizierenden und vergegenstndlichenden Betrachtungsweise, die
-den einzelnen in ein komplexes Tableau justiziabler Eigenschaften und
-Tatbestnde einordnet. Er wird geprft, beurteilt, registriert, so da
-jede seiner Eigenschaften mittels einer Reihe von Codes und deren
-Korrelierung dokumentierbar wird. Durch die vielfltigen Praktiken der
-berwachung und Kontrolle, der Einstufung und der Zuordnung bildet
-sich, was Foucault als die andere, "dunkle" Seite des Rechtssubjekts
-bezeichnet: das "Disziplinarindividuum", das von den neuen
-Machttechniken fabriziert wird (1976, 396).
-
-
-Strafjustiz. Foucault sprt sie auf in der neuen Einstellung der
-Gesellschaft gegenber dem Wahnsinn, welcher ausgegrenzt, interniert
-und in eine Form der Geisteskrankheit verwandelt wird, mit der die
-Gesellschaft nur noch ber das abstrakte Medium der Psychiatrie
-kommuniziert. Er entdeckt sie in der explosionsartigen Vermehrung der
-Diskurse ber Sexualitt, die zur Bildung eines gigantischen Registers
-der Lste und Perversionen fhrt. Er lokalisiert sie im rztlichen
-Blick und in der wissenschaftlichen Kontrolle der Krankheiten und
-Infektionen, in der administrativen Kontrolle der Heilmittel, der
-Todesflle und Geburten, der Verstellungen und Abwesenheiten,
-schlielich in der militrischen Kontrolle der Deserteure, der
-fiskalischen Kontrolle der Waren, der konomischen Planung der
-Produktionsablufe. In allen Bereichen des gesellschaftlichen Lebens
-ist das klassische Zeitalter der Schauplatz einer unerhrten
-Verdichtung der Diskurse und Identifikationsmechanismen, die allesamt
-nur das eine Ziel haben: die Herstellung des durchschaubaren und damit
-kontrollierbaren Individuums. "Die 'Aufklrung', welche die Freiheiten
-entdeckt hat", schreibt Foucault, "hat auch die Disziplinen erfunden"
-(1976, 285).
-
-
-eng aufgefat werden. Sie darf, erstens, nicht allein auf die
-Implementierung eines bestimmten Diskurstyps reduziert werden, denn
-sie hat auch nicht-diskursive Wurzeln: Etwa die Mechanismen, die in
-den Klstern und Kasernen, Manufakturen und Spitlern, Kollegs und
-Internaten entwickelt wurden. Sie darf, zweitens, nicht als Effekt
-eines Zentrums, einer gesellschaftlichen Zentralinstanz oder einer
-herrschenden Klasse, begriffen werden, da hiermit ihre pluraler,
-multipler Charakter verfehlt wrde: die Disziplinargesellschaft ist
-nicht das Ergebnis einer, sondern zahlreicher Projektionen - der
- Projektion militrischer Methoden auf die Industrie; der
-maschinenfrmigen Funktionsweise auf die lebendige Arbeit; der
-Gefngnisdisziplin auf die Gesellschaft (1976, 284). Und sie darf,
-drittens, auch nicht als bloes Verhltnis der Repression verstanden
-werden, wie dies in der Logik des brgerlichen Legalismus oder der
-marxistischen Auffassung liegt. Die Disziplinarmacht, sagt Foucault,
-setzt zwar Unterwerfung voraus, sie parzelliert die Individuen,
-klassifiziert sie und fgt sie in eine hierarchische Ordnung ein, die
-durch przise Befehlssysteme strukturiert ist. Sie erschpft sich
-jedoch nicht darin, sondern produziert ihrerseits Individuen, die der
-von ihr geschaffenen Ordnung gem sind. "Man mu aufhren, die
-Wirkungen der Macht immer negativ zu beschreiben, als ob sie nur
-'ausschlieen', 'unterdrcken', 'verdrngen', 'zensieren',
-'abstrahieren', 'maskieren', 'verschleiern' wrde. In Wirklichkeit ist
-die Macht produktiv; und sie produziert Gegenstandsbereiche und
-Wahrheitsrituale: das Individuum und seine Erkenntnis sind Ergebnisse
-dieser Produktion" (1976, 250).
-
-
-Macht in der modernen Form des Gefngnisses, wie sie seit 1830 unter
-dem Einflu von Benthams 'Panopticon' (1787) Gestalt gewinnt. Als eine
-Institution, deren Aufgabe sich keineswegs darauf beschrnkt, den
-Freiheitsentzug zu organisieren, vielmehr von Anfang an darin besteht,
-"Transformationen an den Individuen vorzunehmen" (1976, 317),
-verkrpert das Gefngnis gleichsam die Elementarform der
-Disziplinargesellschaft, hnlich wie fr Marx die Ware als
-Elementarform der brgerlichen Gesellschaft fungiert. Das Gefngnis
-ist zugleich Kaserne und Schule, Werkstatt und Spital; es unterdrckt
-die gesellschaftlich unerwnschten Eigenschaften und modelliert die
-erwnschten. Sein Produkt sind Individuen, "die nach den allgemeinen
-Normen einer industriellen Gesellschaft mechanisiert sind" (1976,
-310). Als ein vollkommener Disziplinarapparat erfat es smtliche
-Aspekte des Individuums: seine physische Erscheinung wie seine
-moralische Einstellung, seine Arbeitsneigung wie sein
-Alltagsverhalten; und alle diese Manifestationen werden nicht nur
-kontrolliert und reglementiert, sondern von Grund auf reformiert, bis
-sie den geltenden Standards entsprechen. Das 'Kerkersystem', das
-Foucault zufolge um 1840, dem Erffnungsjahr der Jugendstrafanstalt
-von Mettray, vollstndig ausgebildet ist, enthlt in gebndelter und
-konzentrierter Form all jene Mechanismen der Normalisierung und
-Disziplinierung, die seither zu Strukturmerkmalen der
-Disziplinargesellschaft geworden sind.
-
-
-Ausdehnung und Erweiterung: vom 'Kerker-System' der Gefngnisse und
-geschlossenen Anstalten zu dem, was Foucault den 'Kerker-Archipel'
-bzw. das 'groe Kerker-Kontinuum' nennt (1976, 382f.). Vermittelt ber
-zahlreiche Sttzpunkte - die Waisenhuser, die Asyle fr 'gefallene
-Mdchen', die Lehrlingsheime, die korrespondierenden Einrichtungen wie
-Wohlfahrtsgesellschaften, Sittlichkeitsvereine, Arbeitersiedlungen und
- Wohnheime - breitet sich das panoptische Schema ber die gesamte
-Gesellschaft aus und berzieht alle sozialen Bereiche mit dem groen
-Kerker-Netz, dessen primre Funktion in einer alles umfassenden
-Normierung besteht. Dies sicher nicht ohne Widerstand. Wo Macht ist,
-sagt Foucault, ist auch Widerstand, und er fgt hinzu: wenn es
-Machtbeziehungen gibt, so berhaupt nur deshalb, weil es Freiheit
-gibt, (1977, 116; 1985, 2O). Aber dieser Widerstand ist keine Mauer,
-kein Block, der der Disziplinierung Grenzen setzt; er ist selbst eine
- Manifestation von Macht, eine Art Antikrper, der die Disziplinarmacht
-attackiert und zu Mutationen und Metamorphosen ntigt. Um die
-Widerstnde zu berwinden, geht die Disziplin von dem starren,
-statischen Tableau des klassischen Zeitalters zu neuen, flexibleren
-Formen der Regulierung ber, deren Hauptziel in einer Steigerung der
-Funktionen liegt; und dieses Ziel wird zunehmend nicht nur mittels der
-rigiden Anpassung der Individuen an die Norm erreicht, sondern
-ebensosehr durch Anpassung der Norm an die individuellen Bedingungen
-durch die Verfahren der modernen Humanwissenschaften:
-
-
-Beziehungen ihre Vollendung: Diese verluft von der Teilung der Welt zur Herstellung der Welt; diese wiederum vom Traum einer
-mechanischen Imitation der Welt (durch Gesetze) zu dem einer Erzeugung von Organismen, von der Objektivierung der Welt auf
-die Individuierung der Menschen. Der Akzent der Individuierung selbst wird dabei von der objektivierenden Kontrolle der Einzelnen
-zur subjektivierenden Selbststeuerung und zur Manipulation von Gruppen verlagert. Der Vernderung der Gegenstandsbereiche
-entspricht die der Machttechniken, die Entwicklung von der Gewaltrationalitt zur Testwissenschaft" (Dauk 1989, 131).
-
-
-Subsumtion der Gesellschaft oder eines Teils derselben unter ein vorab
-feststehendes Schema, sondern weit eher der Zirkel von Manipulation
-und rckwirkendem Bedrfnis, wie ihn Horkheimer und Adorno in der
-'Dialektik der Aufklrung' entfalten. Foucault hat von der Dialektik,
-insbesondere von Hegel, nicht viel gehalten (Knzel 1985). Seine These
-indes, da in der Geschichte der Disziplinierung ein Wechsel von
-subsumtionslogischen Praktiken zu netzfrmigen und zirkulren
-Strukturen zu beobachten ist, vollzieht in etwas roheren Begriffen den
-bergang von der Transzendentalitt zur Totalitt, wie ihn Hegel
-gegenber Kant, wenn auch unter ganz anderen Voraussetzungen,
-vollzogen hat. Wie wir sehen werden, rhren die Schwchen der Theorie
-der Disziplinargesellschaft zu einem nicht geringen Teil aus der
-Weigerung Foucaults, daraus die ntigen kategorialen Konsequenzen zu
-ziehen.
-
-
-
-
-
-
-
-
-
-
-hervorgerufen hat, empfiehlt es sich, noch fr einen Augenblick bei
-den Beziehungen zu verweilen, die sich zu hnlich gelagerten
-Bestrebungen in der modernen Soziologie ergeben. Foucaults Analyse
-erinnert an manchen Stellen an Max Weber, der in der Disziplin eine
-Schlsselkategorie der modernen Gesellschaft gesehen hatte - der
-brokratischen Amtsdisziplin, der Parteidisziplin, der Disziplin des
-Massenheeres, der Arbeitsdisziplin und nicht zuletzt der religisen
-Disziplin der 'methodischen Lebensfhrung'. Sie weist, etwa in der
-Behandlung der Manufaktur, Berhrungspunkte zu Marx auf, ferner zu
-Elias, zu Oestreichs Theorie der 'Sozialdisziplinierung' und nicht
-zuletzt zum kritischen Marxismus von Lukcs bis Adorno, dessen
-Zentralthema die Beziehung zwischen Warenform, Rationalisierung und
-Disziplinierung war18.
-
-
-teils schlicht aus Unkenntnis, wie er selbstkritisch mit Bezug auf die
- Kritische Theorie gesteht (1983), teils in bewuter Abgrenzung von
-einer Diskurstradition, die ihm allzusehr von der Obsession einer
-'globalen Geschichte' geschlagen zu sein scheint, d.h. dem
-Unterfangen, den Gesamtzusammenhang einer Epoche oder einer
-Gesellschaft aus einer zentralen Struktur abzuleiten. Nach seiner
-berzeugung ist die Annahme, da sich innerhalb einer Gesellschaft ein
-System homogener Beziehungen feststellen lt, ein Netz von
-Kausalitten, das eine Zurckfhrung der verschiedenen Elemente auf
-ein verborgenes Zentrum gestatte, pure Ideologie, eine Illusion, in
-der sich der 'transzendentale Narzimus' des abendlndischen Denkens
-spiegelt: der Glaube an die Stifterfunktion eines souvernen Subjekts
-und an die Garantie, "da alles, was ihm entgangen ist, ihm
-wiedergegeben werden kann" (1973, 23). So stark ist Foucaults
-antithetische Fixierung auf diesen Subjektivismus, da er die
-Mglichkeit einer nichtsubjektivistischen, um eine Theorie der
-gesellschaftlichen Synthesis zentrierten 'globalen Geschichte', wie
-sie in den oben erwhnten Arbeiten durchaus angelegt ist, an keiner
-Stelle in Erwgung zieht.
-
-
-zu fllen. Macht, im Nietzscheschen Sinne eines lebensphilosophisch-
-ontologisch verstandenen 'Willens zur Macht', avanciert fr ihn zum
-Universalschlssel fr alle gesellschaftlichen und geistigen
-Phnomene. Auf ihr beruhen die Beziehungen zwischen den Geschlechtern
-ebenso wie die zwischen den Generationen, die Beziehungen innerhalb
-einer Institution wie die zwischen Institutionen im ganzen, die
-Beziehungen zwischen Individuen wie die zwischen Gruppen und Klassen.
-Das Individuum selbst ist, wie gezeigt, ein Produkt der Macht, "eine
-Form der Individuation der Disziplin" (1982, 3). Das gleiche gilt fr
-die modernen, um das Individuum zentrierten Diskurse der
-Humanwissenschaften, wie fr den wissenschaftlichen Diskurs
-schlechthin. Man msse, so verkndet Foucault, einer Denktradition
-entsagen, derzufolge es Wissen nur dort geben knne, wo die
-Machtverhltnisse suspendiert seien. "Eher ist wohl anzunehmen, da
-die Macht Wissen hervorbringt (und nicht blo frdert, anwendet,
-ausnutzt); da Macht und Wissen einander unmittelbar einschlieen; da
-es keine Machtbeziehungen gibt, ohne da sich ein entsprechendes
-Wissensfeld konstituiert, und kein Wissen, das nicht gleichzeitig
-Machtbeziehungen voraussetzt und konstituiert" (1976, 39). Wie in der
-idealistischen Philosophie und ihren sptromantischen Wurmfortstzen
-die ganze Welt als Geist oder Wille gedacht wird, so enthllt sich
-auch bei Foucault das Sein als Manifestation eines einzigen Prinzips,
-das in unterschiedlichen Aggregatzustnden auftritt: in reiner,
-bewegter Form als "immerwhrende Schlacht", als Strom von Krften und
-Gegenkrften; und in erstarrter, blockierter Form, in der sich die
-Macht zur 'Herrschaft' verfestigt hat (ebd. 38; 1985, 11). Man fhlt
-sich an die Metaphysik Heraklits erinnert - freilich an eine Version,
-in der der Logos nicht lnger Harmonie stiftet, sondern selbst zu
-einer Funktion des Kampfes geworden ist.
-
-
-Konzept der Disziplinargesellschaft angreifbar gemacht. Die Kritik
-richtet sich vor allem gegen den Reduktionismus, der dieses Konzept
-durchzieht. Die Machttheorie, lautet ein erster Einwand, lse die
-eigensinnige Entwicklungslogik rechtlicher und moralischer Normen in
-die blindzufllige Evolution von Gewaltverhltnissen auf und bergehe
-damit "die unverkennbaren Gewinne an Liberalitt und
- Rechtssicherheit", die doch nicht zuletzt auf straf- und
- strafprozerechtlichem Gebiet evident seien19. Sie reduziere, so der
-zweite Einwand, die komplexen Vorgnge der Sozialisation und
-Individuation in behavioristischer Manier auf eine Folge von
-unentwegten Konditionierungen und setze Individualitt zu einer "durch
-Auenreize produzierte(n), mit beliebig manipulierbaren
-Vorstellungsinhalten belegte(n) Innenwelt" herab; damit werde der
-Gewinn an Freiheit und Ausdrucksmglichkeit verspielt, den die
-"Etablierung und Verinnerlichung der subjektiven Natur" gebracht habe
-(Honneth 1985, 210; Habermas 1985, 337, 342; Turner 1987, 233, 238).
-Ein dritter Einwand zielt auf die machttheoretische Auflsung der
-Geltungsproblematik. Foucault, so Honneth, stelle sich nicht der
-Frage, wie denn die blo unter dem Gesichtspunkt sozialer
-Machtgewinnung entwickelten Diskurse in ganz anderen
-Handlungskontexten, etwa dem der technischen Beherrschung von
-Naturprozessen, von Erfolg gekrnt sein knnten 20. Da die
-vollstndige Leugnung universalistischer Geltungsansprche im Ergebnis
-auf ein "relativistisches Selbstdementi" auch der Machttheorie
-hinauslaufe, hat Habermas in einer scharfsinnigen Argumentation
-dargelegt (Habermas 1985, 327; Fink-Eitel 1980, 67f.; Bambach 1984;
-Taylor 1984). Weder fr die Eigenart normativer noch fr diejenige
-kognitiver Mechanismen, so lt sich die Kritik resmieren, hat die
-Machttheorie einen angemessenen Raum. Sie ist deshalb ungeeignet, die
-Komplexitt moderner Gesellschaften zu erfassen.
-
-
-Mechanismen zuerst zu sprechen, so ist Foucault zwar zuzugeben, da
-eine ganze Reihe von Diskursen in der frhen Neuzeit mit politischen
-Vorzeichen ins Dasein tritt und somit durchaus einer
-machttheoretischen Interpretation entgegenkommt. Es gibt in der Tat
-eine politische Anatomie und eine politische Technologie, wie ja auch
-bekanntlich die konomie sich zunchst als politische konomie
-begreift und offen die enge Verzahnung von Herrschaftsinteressen und
-Wirtschaftsordnung einbekennt. Alle diese Diskursformationen
-verweisen, wie unschwer zu sehen ist, auf die Intensivierung der
-politischen Rationalisierung, welche durch die Entstehung eines
-europischen Staaten- und Weltsystems seit dem 16. Jh. ausgelst wurde
-und namentlich in einigen kontinental-europischen Lndern zu einer
-weitreichenden Militarisierung und Brokratisierung fhrte, aus der
-der well-ordered police state des 17. und 18. Jhs. mit seiner Politik
-der Sozialdisziplinierung hervorging (Raeff 1983; Rassem 1983; Schulze
-1987).
-
-
-vermittelte politische Rationalisierung und deren Ausgreifen auf die
-unterschiedlichsten Lebensbereiche beschreibt, ist ihm nicht zu
-widersprechen. Die Machttheorie zielt indes darber hinaus und setzt
-sich dadurch der Kritik aus. Wenn es nmlich einen herausragenden Zug
-in der Entwicklung seit dem 19. Jh. gibt, dann den, da sowohl die
-Gesellschaft als auch die Wissenschaft immer weniger durch ihr
-politisches Vorzeichen bestimmt sind und sich stattdessen in Formen
-abstrakt und anonym gewordener Verhltnisse realisieren, die sich mit
-dem Begriff der Macht nur mehr um den Preis einer Contradictio in
-adiecto bezeichnen lassen. Die unterschiedslose Subsumtion der
-politisch strukturierten Gesellschaft des Ancien Rgime und der
-modernen kapitalistischen Gesellschaft unter einen Begriff der Macht,
-der von Foucault selbst als "Fortsetzung des Krieges mit anderen
-Mitteln", als eine Form "kriegerischer Herrschaft " und als
-"verallgemeinerter Krieg" (1978, 71, 40; 1976, 38, 217) definiert
- wird, verdeckt die grundlegende Tatsache, da die heutige Welt, wie
-Marx es ausgedrckt hat, eine Welt der sachlichen
-Abhngigkeitsverhltnisse im Gegensatz zu den persnlichen ist, eine
-Welt, in der die Individuen "von Abstraktionen beherrscht werden,
-whrend sie frher voneinander abhingen" (Marx 1974, 81f.).
-
-
-Gesellschaft, der sich nach Marx bekanntlich so sehr anonymisiert, da
-selbst der Kapitalist im Zuge der Entwicklung zum Aktienkapital als
-berflssige Person aus dem Produktionsproze verschwindet. Er gilt in
-noch eminenterem Sinne fr Wissenschaft und Technik, die mit
-Willenskategorien nicht mehr begriffen werden knnen. Wissenschaft und
-Technik gehorchen keinem einzigen der Kriterien, die Foucault fr die
-Macht anfhrt. Sie sind weder relational noch intentional, noch
-partikular-interessengebunden, noch militrisch-kriegerisch, obwohl
-ihnen diese Dimensionen sekundr durchaus zukommen knnen. Ihre
-Kriterien sind ausnahmslose Geltung (solange keine Falsifizierung
-vorliegt), absolute Notwendigkeit, durchgehende rationale
-Gesetzmigkeit und Autonomie im Sinne der Kontrolle ber ihre
-Voraussetzungen. Wissenschaft und Technik sind keine Funktion der
-Macht, sie ersetzen vielmehr das Gefge wechselnder
-Willensverhltnisse durch ein System, das selbstreferentiell und
-'autopoietisch' (Luhmann) prozediert, d.h. nur solche Elemente
-verwendet, die innerhalb des Systems selbst konstituiert werden. Ein
-solches Verstndnis schliet nicht aus, die Autopoiesis von
-Wissenschaft und Technik ihrerseits als gesellschaftlich produziert
-und durch die herrschende gesellschaftliche Struktur vermittelt zu
-begreifen; wohl aber, sie wie Foucault auf ein bloes Machtspiel zu
-reduzieren.
-
-
-Hinblick auf normative Mechanismen. Zwar fehlt der Begriff der 'Norm'
-durchaus nicht in Foucaults Arbeiten, wie dies ja auch bei
-Untersuchungen, die mit dem Strafsystem zu tun haben, kaum zu
-vermeiden ist. Wie Canguilhem jedoch, auf dessen Vorarbeiten er sich
-explizit beruft, versteht Foucault diesen Begriff ausschlielich im
-Sinne der modernen Industrienormen, als ein Richtma, das dazu dient,
-"einem Daseienden, Gegebenen eine Forderung aufzuzwingen, von der aus
-sich Vielfalt und Disparatheit dieses Gegebenen als ein nicht blo
-fremdes, sondern feindliches Unbestimmtes darstellen" (Canguilhem
-1977, 163). Die Macht der Norm kommt nach diesem Verstndnis vor allem
-in der Disziplin zum Ausdruck, in den verschiedenen Techniken der
-Normierung und Normalisierung, die die Individuen einem System
-zwanghaft fixierter Verhaltensschemata unterwerfen und dadurch
-Stabilitt und Homogenitt des Herrschaftsgefges sichern.
-"Disziplinarische Normalisierung", sagt Foucault, "ist der Entwurf
-eines optimalen Modelles, die Operation der Disziplin besteht darin,
-die Leute an dieses Modell anzupassen" (1982, 8).
-
-
-einfngt, die in den herkmmlichen Ideen- und Rechtsgeschichten
-notorisch unterbelichtet bleiben; der Stellenwert, der ihnen in einer
-nichtreduktionistischen Theorie der Rationalisierung zukommt, wird
-noch zu errtern sein. Nicht weniger evident ist indes, da es nur
-einen Ausschnitt aus jenem breiten Spektrum von Formierungs- und
-Kontrollmechanismen erfat, wie es lange vor Foucault eindrucksvoll
-von Kant skizziert worden ist. In seiner Vorlesung ber Pdagogik
-(1803), die Foucault bei seiner Arbeit an der bersetzung der
- 'Anthropologie in pragmatischer Hinsicht' sicher nicht entgangen sein
-wird21, schrnkt Kant die Disziplin auf die Rolle eines blo negativen
-Fundaments ein: Fundament, weil die Disziplin oder Zucht die Tierheit
-in die Menschheit umwandle und verhte, da die Individuen durch ihre
-animalischen Antriebe von ihrer menschlichen Bestimmung abgelenkt
-wrden; nur negativ, weil die Disziplin blo Fehler verhindere, ohne
-selbst eigene positive Ziele geben zu knnen. Neben dieser 'blo
-physischen' Erziehung durch Disziplinierung kennt Kant die praktische
-Erziehung, die sich ihm als ein Bndel komplexer, neben dem ueren
-Verhalten zunehmend auch das Innere erfassender Strategien darstellt:
-als Kultivierung, die die ntigen Fertigkeiten und Geschicklichkeiten
-vermittelt; als Zivilisierung, die die fr den gesellschaftlichen
-Verkehr unentbehrlichen Formen der Affektmodellierung und
-Triebkontrolle bereitstellt; und als Moralisierung, die auf die
-Unterwerfung der je subjektiven Zwecke und Motive unter
-gesellschaftliche, d.h. universalistische Prinzipien zielt. "Der
-Mensch soll nicht blo zu allerlei Zwecken geschickt sein, sondern
-auch die Gesinnung bekommen, da er nur lauter gute Zwecke erwhle.
-Gute Zwecke sind diejenigen, die notwendigerweise von jedermann
-gebilligt werden; und die auch zu gleicher Zeit jedermanns Zwecke sein
-knnen" (Kant 1968, XII, 707).
-
-
-anschlieen: einmal, weil die Ethik, auf der sie beruht, die
-Sozialisation in eine abstrakte Gesellschaft zum Telos hat (Adorno, GS
-6, 211ff.), dann aber auch, weil der Disziplinbegriff mit seiner
-Beschrnkung auf rein negative Funktionen zu eng ist und Kants eigenen
-Darlegungen nicht entspricht: Wenn es nicht nur eine Disziplin des
-Krpers und der Affekte, sondern auch eine Disziplin der reinen
-Vernunft gibt, so sind zumindest die Grenzen zwischen Disziplinierung
-und Kultivierung (im Sinne einer Ausbildung kognitiver Fhigkeiten)
-weit durchlssiger, als Kant wahrhaben will22. Gegenber Foucaults
-extensivem Verstndnis von Disziplin indes, das auch noch
-interaktionsbezogene und normative Mechanismen umfat, ist Kants
-Modell vorzuziehen, weil es die verschiedenen Dimensionen des modernen
-Formierungsprozesses klarer differenziert: die nichtdiskursiven
-Praktiken fr die Schaffung gehorsamer und gelehriger Krper; die
-Formung eines methodisch-disziplinierten wissenschaftlichen Verstandes
-durch Schulung/Unterweisung, welche freilich auf den nichtdiskursiven
-Praktiken des Drills und der Bestrafung aufbaut und sich nicht selten
-darin erschpft, wie ein Blick in die Geschichte der 'Schwarzen
-Pdagogik' lehrt (Rutschky 1977; Stone 1979, 115ff.; de Mause 1980, 66
-ff.); die mit dem Begriff der Zivilisierung umschriebene Sublimierung
-von Interaktionsanforderungen, die fr das Leben bei Hofe oder in der
-guten Gesellschaft erforderlich war; und jene singulre, untrennbar
-mit dem okzidentalen Brgertum verbundene Strategie der Moralisierung,
-die das Prinzip des 'affektiven Individualismus' (Stone) mit der
-Implantation eines 'vorhergehenden Gewissens' verkoppelte (Kittsteiner
-1984). Erst diese letztere Strategie vollendet die berwindung des
-Naturzustands, weil allein sie in jene inneren Reservate vorzudringen
-vermag, die sowohl der Disziplinierung als auch der Kultivierung und
-Zivilisierung als blo uerlichen Konditionierungsweisen unzugnglich
-bleiben. Kant hat daher in der Moralisierung das hchste und zugleich
-am schwersten erreichbare Ziel der Erziehung gesehen:
-
-
-Artigkeit und Anstndigkeit. Aber, uns fr schon moralisiert zu halten, daran fehlt noch sehr viel. Denn die Idee der Moralitt gehrt
-noch zur Kultur; der Gebrauch dieser Idee aber, welcher nur auf das Sittenhnliche in der Ehrliebe und der ueren Anstndigkeit
- hinausluft, macht blo die Zivilisierung aus. So lange aber Staaten alle ihre Krfte auf ihre eiteln und gewaltsamen
-Erweiterungsabsichten verwenden, und so die langsame Bemhung der inneren Bildung der Denkungsart ihrer Brger unaufhrlich
-hemmen, ihnen selbst auch alle Untersttzung in dieser Absicht entziehen, ist nichts von dieser Art zu erwarten; weil dazu eine lange
-innere Bearbeitung des gemeinen Wesens zur Bildung seiner Brger erfordert wird" (Kant 1968, XI, 44f.).
-
-
-pauschalisierender Rede von Normierung/Normalisierung besteht darin,
-da es eine ganze Reihe von Forschungen zu integrieren vermag, von
-denen Foucault nur am Rande oder gar nicht Notiz nimmt, obwohl sie
-sein Thema unmittelbar berhren. Auf dem Gebiet der Disziplinierung
-ist hier etwa an die verschiedenen religs-ethisch motivierten Formen
-der Selbstdisziplin zu denken, wie sie in der frhen Neuzeit vom
-Neostoizismus oder vom Puritanismus propagiert wurden
-(Treiber/Steinert 1980, 90, 104ff.; Leites 1988); auf dem Gebiet der
-Kultivierung an die Bedeutung der Alphabetisierung und
-Literarisierung, die seit dem 16. Jh. einem stets wachsenden Teil der
-Bevlkerung Zugang zu einem der wichtigsten Machtmittel verschafften,
-gleichzeitig aber auch die Basis staatlicher Herrschaft erweiterten
-(Schenda 1981; Spittler 1980); auf dem Gebiet der Zivilisierung
-natrlich an die Arbeiten von Norbert Elias ber die
-Verhaltensnderungen in den weltlichen Oberschichten des Abendlands,
-die zum Vorbild fr zahlreiche weitere Untersuchungen geworden sind
-(Gleichmann 1979, 1984; Krumrey 1984; Schrter 1985). Der Proze der
-Moralisierung endlich ist zu wissenschaftlicher Prominenz
-hauptschlich im Zusammenhang mit den Diskussionen ber die
-protestantische Ethik gelangt, doch war er damit mitnichten zuende: so
-hat z.B. Wolfgang Dreen die berlegenheit der franzsischen
-Revolutionsarmeen gegenber dem Heer friderizianischer Prgung mit der
-greren taktischen Beweglichkeit erklrt, welche das
-Erziehungsprinzip der moralischen Selbstregulierung gegenber einer
-blo mechanischen Disziplin gewhrt (Dreen 1982, 266f.); ein anderes
-Beispiel ist der auffllige Rckgang der Verbrechensrate in der Zeit
-zwischen ca. 1840 und 1930, der von manchen Autoren mit dem Hinweis
-auf jene eigentmliche Intensivierung des Moralbewutseins erklrt
-wird, welche sich an so unterschiedlichen Phnomenen wie der aus der
-evangelikalen Erweckungsbewegung hervorgegangenen Stadtmissionierung,
-den philanthropisch inspirierten Reformen des Sozial- und
-Erziehungswesens und der Ausbreitung des Temperenzlertums ablesen
-lasse23. Ob diese Hypothese stimmt oder nicht - sie steht immerhin in
-Widerspruch zu der von Durkheim anhand der kontrr verlaufenden
-Selbstmordkurve entwickelten Anomiethese -, ist eine Frage, die nur
-empirisch entschieden werden kann. Da sie berhaupt aufgestellt und
-mit plausiblen Argumenten untermauert werden kann, ist allerdings ein
-Indiz fr die Notwendigkeit, den kategorialen Rahmen nicht dadurch von
-vornherein einzuschrnken, da man Moralisierung auf eine Variante der
-Disziplinierung reduziert24.
-
-
-mu, sieht nicht gnstig aus. Die Machttheorie, die das Konzept der
-Disziplinargesellschaft tragen soll, vermag diese Aufgabe nicht zu
-erfllen. Sie ist reduktionistisch und simplifizierend, sie produziert
-Pseudoevidenzen und fhrt dazu, die Bewegung des Gedankens vorschnell
-zu sistieren. Sie prsentiert sich als objektive Genealogie und ist
-doch in Wahrheit reiner Subjektivismus, der alles, was ist, auf Wille
-und Handlung zurckfhrt. Sie verspricht eine neue,
-nichttotalisierende Geschichte und totalisiert doch selbst, nur sehr
-viel schlechter als etwa Marx oder Hegel, indem sie alle Differenzen
-in den allgemeinen Nebel der 'Macht' auflst. Auf dieser Grundlage ist
- das Projekt einer Theorie der Disziplinargesellschaft undurchfhrbar.
-
-
-
-
-
-
-
-
-
-
-in diese Richtung. Habermas, der sich gleichwohl von Foucaults
-Analysen der kapillarischen Wirkungen der Disziplin fasziniert zeigt,
-ist vom "Primat der Lebenswelt" gegenber den vermachteten und
-disziplinr organisierten Subsystemen der modernen Gesellschaft zu
-tief berzeugt, als da er mit der Diagnose eines 'Kerker-Kontinuums'
-sich anfreunden knnte. Eine derartige Charakterisierung erscheint ihm
-als unhaltbar, weil sie die Zweideutigkeit des
-Modernisierungsprozesses, das Nebeneinander von pathologischen und
-emanzipatorischen Zgen, unterschlage. hnlich sieht es Honneth: das
-von Foucault entworfene "Zwangsmodell gesellschaftlicher Ordnung", das
-im Ergebnis auf verblffende Weise mit Adornos Vision der verwalteten
-Welt bereinstimme, sei unbrauchbar, weil in ihm die "normativen und
-kulturellen Orientierungen der vergesellschafteten Subjekte" keinen
-Anteil an der sozialen Integration htten25.
-
-
-Disziplinargesellschaft so aktuell macht. Wie realittsnah Foucaults
-Untersuchungen trotz ihrer theoretischen Schwchen sind, zeigt sich
-nirgends deutlicher als in dem Umstand, da etwa Habermas in seinen
-empirisch gerichteten Gegenwartsdiagnosen dem Konzept der
-Disziplinargesellschaft erheblich nher kommt, als es die theoretisch-
-programmatische Distanzierung gestattet. Nicht anders als Foucault
-konstatiert auch er eine "Ausdehnung und Verdichtung des monetr-
-brokratischen Komplexes", die zu einer Entmchtigung des
-kommunikativen Handelns fhre; nicht anders als der Theoretiker der
-Macht-Wissen-Komplexe registriert auch er das "hypertrophe Wachstum
-der mediengesteuerten Subsysteme, welches ein bergreifen
-administrativer und monetrer Steuerungsmechanismen auf die Lebenswelt
-zur Folge hat" (Habermas 1981, 516, 460, 489). Gewi - Habermas geht
-nicht so weit, auch im Individuum ein bloes Korrelat von
-Machttechniken zu sehen. Da die gesellschaftliche Ordnung der Moderne
-aber auf weite Strecken von nichtnormativen Praktiken regiert wird,
-rumt auch er ein: "Indem sich die Subsysteme Wirtschaft und Staat
-ber die Medien Geld und Macht aus einem in den Horizont der
-Lebenswelt eingelassenen Institutionensystem ausdifferenzieren,
-entstehen formal organisierte Handlungsbereiche, die nicht mehr ber
-den Mechanismus der Verstndigung integriert werden, die sich von
-lebensweltlichen Kontexten abstoen und zu einer Art normfreier
-Sozialitt gerinnen" (ebda; 455). Als deskriptiver Begriff ist das
-Konzept der Disziplinargesellschaft also offenbar doch nicht vllig
-unbrauchbar; und es gewinnt noch an berzeugungskraft, wenn man sieht,
-wie bla und leer der von Habermas als Konterkategorie eingefhrte
-Begriff der Lebenswelt letztlich bleibt.
-
-
-ist zu negieren, soweit es sich zur Totalitt aufspreizt und sich als
-Aussage ber das Ganze der modernen Gesellschaft prsentiert, wie dies
- in der Redeweise vom "Kerker-Gewebe der Gesellschaft" oder vom
-"verallgemeinerte(n) Kerkersystem, das in die Tiefe des
-Gesellschaftskrpers hineinwirkt" (1976, 392, 390), geschieht. Die
-Gesellschaft ist kein Gefngnis und die Vernunft nicht die Folter.
-Festzuhalten aber ist das Konzept, insofern es das Faktum registriert,
-da die Disziplin den brigen von Kant herausgearbeiteten
-Formierungsmechanismen eindeutig den Rang abgelaufen hat. So entpuppt
-sich beispielsweise ein erheblicher Teil der von Elias unter dem Titel
-'Zivilisierung' beschriebenen Konditionierungsvorgnge (etwa des
-Sexualverhaltens oder der Reinlichkeitsdressur) bei nherem Hinsehen
-als eine Variante der Disziplinierung, wohingegen die typischen
-Manifestationen von Zivilisation (im Sinne z.B. des Raffinements der
-Konversation, der Steigerung der Distinktionsfhigkeit oder einfach
-des schonenden und taktvollen Umgangs miteinander) ihren sozialen
-Trger - die hfische Aristokratie und das noch halb aristokratische
-Brgertum des 18. und 19. Jhs. - nicht berlebt haben. Da hfische
-Interaktionsformen ohne wesentlichen Kontinuittsbruch von der
-industriellen Gesellschaft bernommen und zu konstitutiven Merkmalen
-bestimmter Nationalcharaktere erhoben worden seien - diese seine
-Zentralthese belegt Elias nicht, und sie leuchtet auch nicht ein vor
-dem Hintergrund einer Konfiguration, die nicht mehr wie die hfische
-Gesellschaft von einer konomie der Verschwendung geprgt ist, sondern
-von einer 'konomie der Zeit' (Marx), die die Zivilisationskurve des
-Essens auf das Niveau von fast food und die der Erotik auf dasjenige
-von quickies herabgedrckt hat. Wie weiter oben gezeigt, gewinnen denn
-auch seit einiger Zeit Theorien an Plausibilitt, die die Epoche in
-geradem Gegensatz zu Elias im Zeichen einer skularen Entzivilisierung
-sehen.
-
-
-ab. Nicht da moralische Codierungen an Prominenz verlren oder keinen
-Einflu auf Interaktionen und Entscheidungen mehr ausbten. Ganz im
-Gegenteil. Der moralische Protest beispielweise (um nur eine der
-vielfltigen Erscheinungsformen des Moralischen herauszugreifen)
-verfgt heute ber ein so ausgedehntes Themenreservoir und ein so
-breites Rekrutierungsfeld, da seine Regenerationsfhigkeit auf
-lngere Zeit gesichert ist. Es gibt immer wieder eine neue Diktatur,
-auf die sich pltzlich die Aufmerksamkeit richtet, immer wieder eine
-neue Dummheit irgendwelcher Exekutiven, an der sich die Flamme der
-Emprung entznden kann. Im Zeitalter des Satellitenfunks wchst die
-Zahl der Ungerechtigkeiten mit den im Einsatz befindlichen
-Nachrichtenjgern und fhrt dem Dauerprotest immer neue Motive zu.
-
-
-auch der brgerlichen Pdagogik des 19. Jhs. vorschwebte, mssen diese
-Erscheinungsformen strikt getrennt werden. Die brgerlich-
-protestantische Moralisierung zielte auf Formung des Ungeformten, auf
-Domestizierung jenes in den unauslotbaren Tiefen der Seele noch
-fortwirkenden Naturzustandes, der auf staatlich-juridischer Ebene mit
-dem Abschlu des Gesellschaftsvertrages berwunden worden war. Ihr
-Erziehungsmodell war jener von Riesman treffend beschriebene
-innengeleitete Charakter, der sich an die Signale eines frhzeitig
-internalisierten seelischen Kreiselkompasses gebunden fhlte und
-dergestalt individuelle Autonomie mit gesellschaftlicher,
-prinzipiengesteuerter Orientierung verband.
-
-
-die Grundlage entzogen. Schon Freud registrierte, da nur eine
- Minderheit ber ein steuerndes und lenkendes Gewissen verfgte,
-whrend die Mehrzahl davon nur ein bescheidenes Ma mitbekommen habe
-(Freud I; 500); hnlicher Ansicht war Max Weber, fr den das
-'stahlharte Gehuse' des Kapitalismus lngst ohne die Verinnerlichung
-einer spezifischen Berufsethik funktionierte, oder Georg Simmel, fr
-den die Moderne eine Individualisierung wie noch zu Rembrandts oder
-Shakespeares Zeiten ausschlo; die heutigen Individuen, meinte Simmel,
-seien "nichts als die Oszillationen in einer heraklitischen Welt, zu
-deren Totalitt sie die Zugehrigkeit nur um den Preis gewinnen,
-jegliche Substanz und Lebenseinheit dem bloen Jetzt des absoluten
-Werdens preiszugeben" (Simmel 1919, 138). Nicht anders sahen es spter
-so gegenstzliche Autoren wie Adorno, von dessen Auffassung noch
-ausfhrlicher die Rede sein wird, und Arnold Gehlen, fr den die
-Moderne einerseits durch 'Schnittpunktexistenzen', andererseits durch
-eine ungemeine Ausdehnung der Willkr bestimmt war. Gerade weil die
-Individuen in einer von Automatismen und Schematismen geprgten Welt
-nichts Wirkliches mehr verndern knnten, so Gehlens These, strzten
-sie sich in einen ungehemmten Subjektivismus, eine
-'Moralhypertrophie', die ebenso exaltiert wie folgenlos sei26. Da
-eine derart zum Mittel des persnlichen Ausdrucks gewordene Moral noch
-als 'Schrittmacher der sozialen Evolution' (Habermas) fungieren
-knnte, erscheint unwahrscheinlich, was freilich politische und
-soziale Folgen des expressiven Moralismus keineswegs ausschliet. Im
-Hinblick auf die Gesamtgesellschaft jedenfalls drfte die Vermutung
-Luhmanns realistischer sein, da "die Dominanz funktionaler
-Differenzierung, wenn und soweit sie sich als Formprinzip der
-Gesellschaft durchsetzt, die Moral evolutionr abhngt und ideologisch
-wie motivational disprivilegiert"27. Das Ende der Moral ist damit
-nicht erreicht. Wohl aber jener Moralisierung, von der noch Kant
-trumte.
-
-
-aus, die 'dunkle Kehrseite' der Moralisierung und Zivilisierung - die
-Disziplin. Zu den klassischen totalen Institutionen - Kloster und
-Kaserne - sind seit dem 19. Jh. zahllose andere hinzugekommen:
-Institutionen der aufbewahrenden Frsorge wie Blinden- und
-Altersheime, Waisenhuser und Armenasyle; der isolierenden Frsorge
-wie Krankenhuser und Psychiatrien; der Einschlieung und Absonderung
-wie Zuchthuser, Gefangenen-, Konzentrations- und Arbeitslager. Durch
-die Vermehrung und Expansion dieser Disziplinaranlagen verwandelt sich
-die Gesellschaft nicht in ein Kerker-Kontinuum. Wie Goffman zu Recht
-bemerkt, sind totale Institutionen weder mit der Arbeit-Lohn-Struktur
-noch mit der familialen Gliederung, noch, wie man hinzufgen kann, mit
-der auf Konkurrenz gegrndeten Organisation des politischen Systems
-vereinbar (Goffman 1972, 22ff.). Unverkennbar ist jedoch, da
-disziplinre Mechanismen auch in den offenen, durch freie
-Mitgliedschaft gekennzeichneten Institutionen eine dominierende Rolle
-spielen. Disziplinr organisiert, sogar mit einem eigenen
-Disziplinarrecht ausgestattet, ist der gesamte Staatsapparat mit
-seinem stehenden und seinem sitzenden Heer. Disziplinr organisiert
-sind die privaten gewerblichen Betriebe, wovon schon ein einziger
-Blick in eine Fabrikhalle oder ein Groraumbro zeugt
-(Treiber/Steinert 1980; Fritz 1982) - ganz zu schweigen von den rasch
-expandierenden mikroelektronischen Personalinformationssystemen, die
-Zugang, Leistung und Kommunikation innerhalb der Betriebe einer
-lckenlosen Kontrolle unterwerfen und, indem sie das Auge des Meisters
-durch das zwingende Wissen des Computers ersetzen, eine neue Stufe in
-der Evolution der Disziplin ankndigen: die Automatisierung der
- Disziplin (Ortmann 1984, 107ff.; Poster 1984, 115). Der organisierte
-Massensport, vom Volkslauf bis zum Werksfuball, ist eine einzige
-Disziplinaranlage (Rigauer 1982; Eichberg 1986, 185ff.); und ohne
-Disziplin geht im modernen Massentourismus nichts. Auch in der
-politischen Demokratie dominieren brokratische Apparate und
-hierarchisch strukturierte Entscheidungsprozesse. Selbst die
-Opposition gegen diese Apparate und die von ihnen erzwungene Disziplin
-kommt nicht umhin, ihre Anhnger zu reglementieren und dabei ihr
-charismatisches Kapital aufzuzehren. Kein Zweifel: in einer
-Gesellschaft, die den weitaus grten Teil ihrer Funktionen ber
-Organisationen abwickelt, ist Disziplin - die pauschale Anerkennung
-und automatische Befolgung der Mitgliedschaftsregeln - zur Conditio
-sine qua non geworden. Mit seiner berhmten Metapher vom 'stahlharten
-Gehuse' hat Max Weber diese Entwicklung vor mehr als achtzig Jahren
-antizipiert.
-
-
-oder 'strategischen Spielen' (Foucault) zu tun, sondern ist eine Folge
-von Systemprozessen, die sich jeder interaktionistischen Deutung
-entziehen. Die moderne Gesellschaft ist das Ergebnis einer
-weltgeschichtlich einzigartigen Desintegration, in deren Verlauf sich
-der in den vormodernen Kulturen politisch oder religis eingekapselte
-Modus der funktionalen Differenzierung verselbstndigte und zur
-Evolution neuer, hchst unwahrscheinlicher und riskanter Synthesen
-trieb. Anstelle der autarken Lokalgesellschaften des Mittelalters trat
-ein interdependentes Verflechtungssystem, das den gesellschaftlichen
-Stoffwechsel mit der Natur von der Vermittlung durch die Zirkulation
-von Waren abhngig machte; anstelle der direkten, familial, politisch-
-herrschaftlich und religis begrndeten Bindungen eine indirekte
-Synthese, in der die einzelnen ihre Verklammerung in das bergreifende
-Verflechtungsnetz erst auf dem Markt erfuhren.
-
-
-berzeugende Weise dargestellt. Er hat gezeigt, wie die Verdichtung
-von funktionaler Differenzierung und Marktvergesellschaftung dazu
-fhrte, da sich das Wertgesetz als Prinzip der Systemintegration
-durchsetzte, wie dieses Wertgesetz die Homogenisierung der
-Einzelarbeiten durch Messung am Tauschwert, d.h. durch Relationierung
-der in Zeitquanta ausgedrckten abstrakten Arbeit, bewerkstelligte;
-wie diese Homogenisierung mit zunehmender Ausdehnung der Lohnarbeit
-und fortschreitender Vergesellschaftung der Produktion mehr und mehr
-in den Produktionsproze selbst verlagert wurde, indem die Funktionen
-der lebendigen und der toten Arbeit (der Maschinerie) nach
-einheitlichen Zeitmastben koordiniert bzw., um einen Ausdruck Sohn-
-Rethels aufzugreifen, 'kommensuriert' wurden; und wie dadurch die
-abstrakte Zeit aus einem nur ideell gesetzten Mastab zum
-beherrschenden Organisationsprinzip der konomie wird. Damit ist nicht
-gesagt, da die zeitkonomische Durchdringung sich in smtlichen
-Produktionszweigen linear und simultan durchsetzt. Wie die kritische
-Modifizierung der Thesen Sohn-Rethels durch die neueren Forschungen
-des 'Instituts fr Sozialforschung' gezeigt hat, vollzieht sich die
-zeitkonomische Rationalisierung in heterogenen Verlaufsformen, die
-durch die variierenden Marktverhltnisse und durch branchenspezifische
-Besonderheiten geprgt sind28. Der skulare Trend bleibt davon jedoch
-unberhrt. Kapitalisierung bedeutet Objektivierung und Erweiterung der
-zirkulationsbegrndeten Formen von Wissen, Kommunikation und
-Organisation; dagegen Formalisierung und Entwertung aller
-'naturwchsig'-spontanen Kompetenzen, Denk- und Erfahrungsmuster.
- "konomie der Zeit, darein lst sich schlielich alle konomie auf"
-(Marx 1974, 89).
-
-
-Foucault beschriebenen Verallgemeinerung der Disziplin zu suchen.
-Natrlich beginnt die Geschichte der Disziplin nicht erst mit der
-brgerlichen Gesellschaft und der fr sie typischen 'Herauslsung' der
-konomie; und natrlich spielen auerkonomische, insonderheit
-politische Mechanismen wie die Konzentration der Verwaltungs- und
-Kriegsbetriebsmittel im absolutistischen Staat eine nicht
-wegzudenkende Rolle fr den bergang von der bloen 'Virtuosen-' zur
-'Sozialdisziplinierung' (Treiber/Steinert 1980, 89; Dreyfus/Rabinow
-1987, 165; Bauer/Matis 1988, 315ff.). Whrend aber diese frhen Formen
-der Disziplinierung des subjektiven Antriebs und der Gewalt nicht
-entbehren knnen - die Menschen, schreibt Friedrich II. von Preuen,
-"bewegen sich, wenn man sie antreibt, und stehen still, wenn man nur
-einen Augenblick aufhrt, sie vorwrts zu drngen"(Hubatsch 1973, 234)
-- kommt es zu einer Objektivierung und damit zu einer dauerhaften
-Verallgemeinerung der Disziplin erst mit der Totalisierung der
-abstrakten Arbeit und dem damit verbundenen Aufstieg der abstrakt-
-linearen Zeit zur 'Systemzeit'29. Zeitkonomische Imperative fhren zu
-einer Umstrukturierung des konstanten und einer tiefgreifenden
-Vernderung des variablen Kapitals, welche vor allem die Zurichtung
-der motorischen und sensomotorischen Bewegungsablufe und die
-Zurckdrngung des 'Krper-Wissens' betrifft (Bhle 1989).
-Zeitsparende Mechanismen sedimentieren sich im Aufbau der modernen
-Groorganisationen und stellen auch hier das Verhalten unter das
-Diktat der Zeitdisziplin. Selbst scheinbar so eigenstndige Strukturen
-wie die Prinzipien der vertikalen Kommunikation, der Rollentrennung
-und der Entscheidung nach universalistischen Kriterien lassen sich
-nach Luhmann unter dem Gesichtspunkt interpretieren, da sie
-langwierige interne und externe Kommunikationsprozesse abkrzen sollen
-(Luhmann 1983, 15O). Es drfte nicht schwerfallen, auch im sogenannten
-Freizeitbereich Formen zu identifizieren, die der ubiquitren
-Temporalisierung Rechnung tragen und ihr adquate Rezeptions- und
-Verhaltensstile etablieren (Film, Autokultur). Da die
-'Disziplinarzeit' auf die pdagogische Praxis bergreift und hier zu
-grundlegenden Umwlzungen fhrt, indem sie z.B. die Ausbildungs- von
-der Berufszeit lst, hat Foucault gesehen, allerdings sogleich in den
-Rahmen der Machttheorie gepret: "Die Macht tritt der Zeit sehr nahe
-und sichert sich ihre Kontrolle und ihre Ausnutzung" (1976, 206). In
-Wirklichkeit verhlt es sich genau umgekehrt: die Zeit wird nicht zu
-einer Funktion der Macht, sondern die zur Systemzeit gewordene Zeit
-produziert asymmetrische Handlungs- und Befehlsketten und generiert
-damit Machtrelationen, die das Verhalten der einzelnen determinieren.
-
-
-
-
-
-
-
-
-
-
-Einwand erhoben, sie stelle zu einseitig die Aspekte der
-Herrschaftssicherung und Verdinglichung heraus und verfehle damit die
-bei Foucault doch auch angelegte Einsicht, da "jene Vorgnge eines
- organisierten Ausbaus der Sozialkontrolle stets in einem
-lebensweltlichen Horizont von praktischen Konflikten um die
-Legitimitt sozialer Machtansprche verwirklicht sind" (Honneth 1989,
-238). Diese Kritik ist nun ihrerseits von Einseitigkeiten nicht frei,
-geht sie doch stillschweigend darber hinweg, da ich von
-institutionalisierter Sozialkontrolle allein im Hinblick auf
-organisierte Sozialsysteme gesprochen und weder die Mglichkeit von
-Widerstand noch von moralischen Orientierungen bestritten habe.
-Gleichwohl trifft sie einen Punkt, der in meinen Ausfhrungen in der
-Tat zu kurz kam. Auch organisierte Sozialsysteme lassen sich heute
-zunehmend weniger nur aus der Perspektive des 'Kontroll-Paradigmas'
-fassen, also jenes Interpretationsrasters, das vor allem die
-Reglementierung des Erlebens und Handelns von Personen durch
-Organisationen betont und Subjektivitt auf eine bloe
-Ausfhrungsinstanz des Sozialsystems reduziert (Schimank 1986, 73).
-Dieses Paradagma ist zwar nicht falsch, mu jedoch durch eine andere
-Sichtweise ergnzt werden, derzufolge Subjektivitt nicht blo auf den
-Nachvollzug immer schon konstituierter sozialer Ordnungen beschrnkt
-ist, sondern diese, wenn schon nicht konstituiert, so doch
-mitkonstituiert (ebd. 75). Da fr Foucault erst beide Perspektiven
-zusammen ein vollstndiges Bild ergeben, wurde am Ende des ersten
-Abschnittes gezeigt; Foucault selbst hat es noch einmal in der
-Einleitung zum zweiten Band der Histoire de la sexualit
-unterstrichen, in der er darauf verweist, "da jede 'Moral' im weiten
-Sinn die beiden angegebenen Aspekte enthlt: den der Verhaltenscodes
-und den der Subjektivierungsformen" (1986, 41). Honneth hat also
-recht, auf eine angemessene Behandlung der letzteren zu dringen. Im
-Gegensatz zu der weiteren von ihm vorgeschlagenen Interpretation, die
-hierin eine Strke der handlungs- gegenber den systemtheoretischen
-Komponenten von Foucaults Analysen sieht, mchte ich allerdings die
-These vertreten, da die Bercksichtigung der Subjektivitt in
-organisierten Sozialsystemen nur zu einer Flexibilisierung, nicht aber
-zu einer Sprengung des Begriffs der Disziplinargesellschaft fhrt.
-
-
-Komplexitt nicht mehr den gleichen Erklrungswert beanspruchen kann
-wie zu Beginn des Jahrhunderts, als Weber seine Brokratietheorie und
-Taylor seine Methoden der wissenschaftlichen Arbeitsgestaltung und
-Betriebsfhrung entwickelte, wird heute durch zahlreiche
-Untersuchungen besttigt, die einen Wandel der Institutionen zu
-weniger hierarchischen, mehr informalen und kollegialen Strukturen
-dokumentieren. Dies gilt etwa fr die Organisationssoziologie, die
-seit lngerem das Zurcktreten der verfahrensorientiert-unpersnlichen
-Strukturen hinter dienstleistungsorientiert-persnlichen Formen
-registriert und Human-Relations-Gesichtspunkte in den Vordergrund
-stellt (Schluchter 1972, 140ff.; Hage 1980). Es gilt aber auch fr die
-Industriesoziologie, die in wichtigen Bereichen eine Abkehr von den
-bislang dominierenden tayloristischen Formen der Zeitkonomie
-festgestellt hat (Kern/Schumann 1984; Bergmann u.a. 1986; Manske 1987;
-Malsch 1987; Wuntsch 1988, 331ff.; Brandt 1990, 358ff.). Zwar hat sich
-die Ankndigung einer 'Neoindustrialisierung', die eine Zurckdrngung
-der Heteronomie von Industriearbeit ermglichen und die
-"Voraussetzungen fr kompetentes, selbstbewutes Verhalten im
-Arbeitsproze" schaffen sollte (Kern/Schumann 1984, 327; kritisch
-hierzu: Schmiede/v. Greiff 1985), als berzogen erwiesen, doch gilt
-dies ebenso fr die Annahme einer stetigen Steigerung der direkten
-sozialen Kontrolle durch Dequalifizierung der Arbeitskraft einerseits,
-Zentralisierung des Produktionswissens beim Management andererseits.
- Neuere empirische Untersuchungen legen den Schlu nahe, da die
-tayloristischen und fordistischen Strategien der zeitkonomischen
-Arbeitszerlegung nur fr bestimmte Sektoren der Massenproduktion
-galten, whrend sie etwa in der kleinserigen, komplexen
-Maschinenfertigung stets an den hohen Kosten scheiterten, die fr den
-Aufbau leistungsfhiger Arbeitsvorbereitungsabteilungen ntig gewesen
-wren (Manske 1987, 170); sie zeigen zugleich, da der Taylorismus als
-das Mittel zur zentralistischen Kontrolle der Arbeitsausfhrung und
-damit der Arbeiter berall dort seine Grenze findet, wo die
-Besonderheiten von Materialien und Produkten sowie die Marktlage ein
-hohes Ma an betrieblicher Flexibilitt und Reaktionsfhigkeit
-erfordern. Die von Sohn-Rethel (1972) und Bravermann (1977) ganz auf
-der Linie von Marx und Weber beschriebene langfristige Tendenz einer
-fortschreitenden Einschrnkung bzw. Eliminierung der
-Dispositionsspielrume wie auch der kognitiven Kompetenz der
-Arbeitskrfte htte von hier aus gesehen mit Gegentendenzen zu
-rechnen, die anstelle der reinen Subsumtionslogik strker auf
-indirekte, 'systemische' Kontrollen setzen (Baethge/Oberbeck 1986, 22;
-Manske 1987, 175) und dabei die eindimensionalen, auf
-'Fremdbeobachtung' und punktueller Disziplinierung beruhenden
-tayloristischen Mechanismen durch neue, die 'Selbstbeobachtung' und
-aktive Beteiligung des Personals akzentuierenden Strategien
-substituierten (Malsch 1987). Ob sich damit, wie etwa Malsch glaubt,
-die Chance einer kommunikativen Rationalisierung erffnet, mag
-dahingestellt bleiben. Fest steht jedoch, da das Kontroll-Paradigma
-diesen Entwicklungen nur unzureichend Rechnung trgt. "Subjektivitt",
-so folgert Uwe Schimank, "ist in formalen Organisationen nicht nur
-eine mglichst weitgehend sozialem und technischem Reglement zu
-unterwerfende, weil fr die organisatorische Ordnung gefhrliche
-Strgre; sondern Subjektivitt ist eine wesentliche
-Konstitutionsbedingung organisatorischer Ordnung gerade auch in
-hochtechnisierten Produktionsorganisationen" (1986, 86).
-
-
-Abschnitt skizzierten Argumentation erforderlich, stellen sie jedoch
-nicht grundstzlich in Frage. Auch wenn die Bedienung der zunehmend
-komplexer und stranflliger werdenden Produktionsanlagen heute eine
-flexiblere Funktionsvermischung und eine erhhte technisch-
-wissenschaftliche Kompetenz des Personals verlangt (Wuntsch 1988, 28,
-201); auch wenn die Belegschaften ein ganz neuartiges "Drohpotential
-der Datenmanipulation und der Wissenszurckhaltung" erwerben (Malsch
-1987, 79), folgt daraus doch nicht, da die systemische Integration an
-ihre Grenze stt und eine neue Perspektive erffnet, die es
-ermglicht, die organisierten Sozialsysteme "als fragile Gebilde zu
-durchschauen, die in ihrer Existenz vom moralischen Konsens aller
-Beteiligten abhngig bleiben" (Honneth 1985, 334). Bei der
-Subjektivitt, die in organisierten und technisierten Systemen
-operiert, handelt es sich zwar um selbstdeterminierte und insofern
-zweifellos auch zu moralischen Orientierungen befhigte personale
-Systeme, doch ist gerade diese Kompetenz nicht gemeint, wenn von einem
-Beitrag zu den Konstitutionsbedingungen die Rede ist. Gefragt sind
-nicht die moralischen und expressiven, sondern die kognitiven und
-technischen Kompetenzen, mithin jene Fhigkeiten zu formaler
-Rationalitt, diskursiver Symbolisierung und streng linearer
-Wahrnehmung, wie sie nur das im kantischen Sinne disziplinierte und
-kultivierte Individuum besitzt. Gewi geht das Individuum darin nicht
-auf. Es verfgt, auch und gerade im Rahmen informatisierter
-Produktionstechnologien, ber die Fhigkeit, die durch die jeweilige
- Technik gesetzten Grenzen sinnhaften Operierens zu berschreiten, es
-akkumuliert ein Erfahrungswissen, das durch formalisiertes und
-standardisiertes Planungswissen nie vollstndig ersetzt werden kann.
-Dennoch handelt es sich um eine Erfahrung hchst spezifischer Art:
-nicht die spontane, 'naturwchsige' Erfahrung der konkreten Arbeit,
-die eine Wechselbeziehung zwischen dem Arbeitenden, dem Werkzeug und
-dem je besonderen Material unterstellt, sondern die domestizierte,
-disziplinierte Erfahrung innerhalb eines vorstrukturierten technischen
-'Ereignishorizonts', in dem sich die Aktivitt des Subjekts weitgehend
-auf die Selektion und Deutung der Zeichen beschrnkt, die von den
-Informationssystemen in berflle geboten werden (Hartmann 1990, 42).
-Erfahrung in diesem Kontext ist immer wissenschaftliche Erfahrung,
-Produktion immer: Objektivation von Wissenschaft. Die Vernderung
-besteht allenfalls darin, da sich nunmehr nicht blo die
-Wissenschaftler und Ingenieure, sondern Teile der Arbeiterschaft
-selbst in wissenschaftlicher Weise auf die Erfahrung bzw. die
-Produktion beziehen und damit gleichsam von der passiven auf die
-aktive Seite des Abstraktifizierungsprozesses rcken.
-
-
-Unzulnglichkeiten seiner Machttheorie, auch nicht sehen knnen. Er
-hat aber immerhin etwas davon geahnt, wenn er von der "Ersetzung eines
-juridischen und negativen Rasters durch ein technisches und
-strategisches" spricht (1978, 105), wenn er auf neue Machtmechanismen
-verweist, die nicht mehr mit dem Recht, sondern mit der Technik
-arbeiten, wenn er betont, da die Macht nicht mehr nur 'von oben',
-sondern auch 'von unten', d.h. von den Subjekten selbst kommt (1977,
-110, 115). Wenn die direkte Kontrolle la Taylor berflssig wird, so
-nicht, weil das System durch zunehmend autonomere, ihre Qualifikation
-und ihre Intelligenz wiedergewinnende Subjekte in die Defensive
-gedrngt wrde. Sondern genau umgekehrt: weil es, flexibler und
-gleichsam dialektischer geworden, mit den Beitrgen der Subjekte
-selbst rechnen kann, die, vom wissenschaftlichen Code geprgt, die
-permanente Optimierung des Systems zu ihre eigenen Sache gemacht
-haben30.
-
-
-Entwicklung sein, die Foucault unbeachtet gelassen hat, auf die ich
-jedoch zum Schlu wenigstens hinweisen mchte, weil eine Theorie der
-Disziplinargesellschaft sie nicht ignorieren kann: die partielle
-Entdisziplinierung, von der die fortgeschrittenen
-Industriegesellschaften seit einiger Zeit heimgesucht werden. Die
-allgemeine Erhhung des Qualifikationsniveaus im Gefolge der
-'Bildungsrevolution' (Parsons) hat zu einer Entwertung der unteren
-Bildungsabschlsse gefhrt, die die Haupt- und Sonderschulabsolventen
-in eine hnliche Lage geraten lt wie Analphabeten. Die Hauptschule,
-so hat Ulrich Beck es formuliert (1986, 246), verwandelt sich mehr und
-mehr in einen 'Aufbewahrungsort fr arbeitslose Jugendliche', dessen
-Funktionsbestimmung sich in Richtung Beschftigungstherapie
-verschiebt. Die Folge ist nicht nur eine anomische Reaktion der
-betroffenen Jugendlichen, die sich etwa am Phnomen des ansteigenden
-Vandalismus ablesen lt, sondern eine tiefgreifende Entwertung der
-Autoritt der Schule und eine Erosion der von ihr vermittelten
-Disziplin - vor allem in Grostdten mit anhaltend hoher
-Jugendarbeitslosigkeit und hohem Anteil von Angehrigen
-diskriminierter Minderheiten. Whrend sich die Pdagogik an Gymnasien
-eher mit Problemen wie Ehrgeiz, Schulangst, bertriebene Anpassung und
-Kontaktschwierigkeiten konfrontiert sieht, werden an Hauptschulen in
- zunehmendem Mae Verhaltensaufflligkeiten wie Unkonzentriertheit,
-Ungenauigkeit, Interessenmangel, verbale Aggression und Ungehorsam
-gegen den Lehrer registriert (Bach 1987, 58 f.). Auch an den
-Grundschulen mehren sich inzwischen die Unterrichtsstrungen in Form
-von bermotorik, diffuser Aggression, ungerichtetem Agieren und
-didaktisch-methodischer Unansprechbarkeit, so da das Bildungsangebot
-bei einem wachsenden Teil der Schler ins Leere stt (Ziehe 1983;
-Cloer 1982; ders. 1987; Winkel 1988). Wenn die Zeichen nicht trgen,
-so scheint es sowohl der sekundren als offenbar bereits der primren
-Sozialisation in Teilen der Gesellschaft zusehends weniger zu
-gelingen, jene innere Disziplin zu vermitteln, die nicht blo fr das
-Fortkommen, sondern schon fr das pure berleben in einer
-Disziplinargesellschaft unerllich ist. Welches immer die Ursachen
-sein mgen - Wohnverhltnisse, Arbeitslosigkeit, damit
-zusammenhngende defizitre familiale Kommunikation, nicht zuletzt
-auch eine durch Fernsehkonsum vernderte Organisationsform der Sinne -
-fest steht, da man heute nicht mehr schlichtweg von einer
-Verallgemeinerung der Disziplin, sondern allenfalls von einer
-partiellen Erweiterung sprechen kann, bei der ganze Sektoren der
-Gesellschaft als disziplinre Brachen ausgespart bleiben. Je weiter
-aber sich diese Brachen ausdehnen, desto dringlicher wird die Frage,
-ob die von Foucault beschriebene Modernisierung und Humanisierung der
-Disziplin, ihre Abkehr von einer bloen 'Gewaltrationalitt' (Dauk
-1989, 131), nicht der Anfang eines Prozesses sein knnte, in dessen
-Verlauf die Disziplinargesellschaft ihre eigenen Voraussetzungen
-zerstrt. Allein mit den von Foucault bereitgestellten Kategorien wird
-diese Frage nicht zu beantworten sein.
-
- 
-
-
-
-
-
-
-
-
-der Auseinandersetzung mit Elias und Foucault deutlich, erfassen
-wichtige Aspekte der modernen Gesellschaft. Fr eine Gesamtdiagnose
-indes ist ihr Instrumentarium zu grob, ihr begrifflicher Zuschnitt zu
-eng. Es ist deshalb an der Zeit, den Fokus zu erweitern und jene
-beiden Theorien in den Blick zu nehmen, von denen wir uns in der
-Kritik an Elias und Foucault vielfach leiten lieen: die Kritische
-Theorie und die Systemtheorie.
-
-
-geschrieben worden: ber die unterschiedliche Auffassung von Handeln
-und Kommunikation, von Wahrheit und Rationalitt. Nur selten aber, und
-dann gewhnlich am Rande, hat die Debatte das eigentliche Thema
-probandum berhrt, das zwischen beiden Theorien zur Verhandlung steht:
-die moderne Gesellschaft und ihre Entwicklungstendenzen. Dabei ist
-kein Feld von so zentraler Bedeutung wie dieses - stimmen doch beide
-Theorien darin berein, da die Zukunft der Soziologie wesentlich
-davon abhngt, ob es ihr gelingt, einen Begriff ihres Gegenstandes -
-der Gesellschaft - zu entwickeln.
-
-
-Berhrungsangst zu sprechen. Vordringlicher ist es, sie zu
-durchbrechen, indem man den Gegenstand selbst in den Mittelpunkt der
-Errterungen rckt. Dies soll im folgenden in drei Schritten
-geschehen. Im ersten Abschnitt werde ich die Aussagen beider Theorien
-ber den Aufbau der modernen Gesellschaft vergleichen, die sich im
-einen Fall um den Begriff der Totalitt, im anderen Fall um den des
-Systems zentrieren. Im zweiten Abschnitt sollen die wichtigsten Thesen
-ber die Entwicklungstendenzen der modernen Gesellschaft
-herausgestellt werden, wobei ich mich vorrangig auf die Frage
-Differenzierung oder Entdifferenzierung konzentrieren werde. Der
-letzte Abschnitt behandelt die Mglichkeit wechselseitiger
-Lernprozesse beider Theorien im Horizont einer sich anbahnenden
-Konvergenz von Kritik und Affirmation. Der Vergleich wird sich auf
-Adorno und Luhmann als die beiden Autoren beschrnken, bei denen die
-Kritische Theorie und die Systemtheorie in ihrer 'Vollstufe'
-entwickelt sind.
-
-
-
-
-
-
-
-
-
-
-AAF 1. Jeder Anfang ist eine Vorentscheidung. Nach der Systemtheorie
-ist mit Differenz zu beginnen, nach dialektischer Auffassung mit
-Einheit. Folgte man der ersten Position, so wre man in diesem Fall
- schnell fertig. Man wrde zeigen, da fr Luhmann Gesellschaft
-Kommunikation ist und in dieser Eigenschaft sowohl das Ganze
-verkrpert als auch das Wahre einschliet: die Gesamtheit der
-Kommunikationen als Selektion aus der Gesamtheit aller anschlufhigen
-- in Luhmanns Terminologie: 'wahren' - Kommunikationen (1990, 533,
-618f., 175)31. Auf der anderen Seite tauchte dann sogleich die Formel
-vom Ganzen als dem Unwahren sowie Adornos 'Generalverdacht gegen
-Kommunikation' auf (Mrchen 1981, 231). "Alles, was heutzutage
-Kommunikation heit, ausnahmslos, ist nur der Lrm, der die Stummheit
-der Gebannten bertnt" (GS 6, 341). Der Dialog wre zuende, ehe er
-berhaupt eingesetzt htte.
-
- Wir mssen also nach Art der Dialektik beginnen, mit Einheit statt
-mit Differenz. Das ist weniger gewaltsam, als es nach dem ersten
-Vorgeplnkel den Anschein haben knnte, bestimmen doch Adorno wie
-Luhmann die moderne Gesellschaft ganz konventionell, unter Rckgriff
-auf den von Herbert Spencer in die Soziologie eingefhrten Begriff der
-funktionalen Differenzierung. Die moderne Gesellschaft ist nach
-Luhmann kein Organismus und kein Subjekt, sondern "dasjenige
-Sozialsystem, das die letzterreichbare Form funktionaler
-Differenzierung institutionalisiert" (1971, 15). "Modern society,
-then, has to be described as a functionally differentiated system.
-This is its main characteristic, the principle which generates its
-structures" (1984, 64).
-
- Nicht anders sieht es Adorno. Gesellschaft, so verkndet er, sei
-"ein Funktions- und kein Substanzbegriff" (GS 8, 349), Soziologie die
-"Wissenschaft von den gesellschaftlichen Funktionen" (Adorno 1956,
-23). Whrend sich archaische Gesellschaften nicht zuletzt durch ihre
-nur geringe Arbeitsteilung auszeichneten, habe sich die moderne
-Gesellschaft zu einem gigantischen Interdependenzzusammenhang
-entfaltet.
-
- "Mit Gesellschaft im prgnanten Sinn meint man eine Art Gefge zwischen Menschen, in dem alles und alle von allen
-abhngen; in dem das Ganze sich erhlt nur durch die Einheit der von smtlichen Mitgliedern erfllten Funktionen, und in dem
-jedem Einzelnen grundstzlich eine solche Funktion zufllt, whrend zugleich jeder Einzelne durch seine Zugehrigkeit zu dem
-totalen Gefge in weitem Mae bestimmt wird" (ebd. 22; vgl. GS 8,10).
-AAF
- Fr Adorno ist mit dieser Bestimmung allerdings nur erst ein
-Aspekt der modernen Gesellschaft getroffen. Der zweite fr ihn
-wichtige Aspekt ist, da Gesellschaft ebensosehr eine Relations-, ja
-eine 'Vermittlungskategorie' sei (Adorno 1973, 36, 39). Was damit
-gemeint ist, lt sich durch eine Kontrastierung mit der
-funktionalistischen Theorie der Systemdifferenzierung verdeutlichen.
-Diese Theorie, die im brigen, wie das Beispiel Althusser zeigt, auch
-in den Marxismus Eingang gefunden hat, geht davon aus, da die moderne
-Gesellschaft durch die Ausdifferenzierung relativ autonomer
-Subsysteme, Ebenen oder Instanzen gekennzeichnet ist, welche innerhalb
-des Gesamtsystems nebeneinander existieren. Parsons unterscheidet
-dabei bekanntlich das politische, konomische, sozialkulturelle und
-gemeinschaftliche System; Luhmann Teilsysteme fr Politik, Wirtschaft,
-Recht, Erziehung, Religion und Wissenschaft; Althusser die politische,
-konomische und ideologische Ebene. Diese Differenzierung schliet
-nicht aus, da zwischen den Subsystemen Beziehungen bestehen: bei
-Parsons und Luhmann gibt es das Konzept der Interpenetration, bei
-Althusser sogar das Prinzip der Determinierung in letzter Instanz
-durch die konomie. Typisch aber ist, da in all diesen Konzeptionen
-(von deren Unterschieden hier abgesehen werden kann) die Beziehung
- uerlicher Natur ist, eine bloe Wechselwirkung zwischen ansonsten
-getrennten und nach eigengesetzlichen Regeln prozessierenden Sphren.
-
- Adorno bestreitet keineswegs die Existenz solcher autonomer
-Sphren. Die bliche Formel, mit der er Bereiche wie Kunst oder
-Wissenschaft charakterisiert, lautet, sie seien autonom und fait
-social zugleich (GS 7, 16; GS 8, 283). Damit ist jedoch auch gesagt,
-da die Theorie es bei der bloen Feststellung der Autonomie nicht
-belassen kann. Gerade als autonome sind die Teilsysteme vermittelt
-durch die konstitutive Struktur der Gesellschaft, ihre objektive
-'Wesensgleichheit' (Adorno 1973, 25), die in den Teilsystemen
-erscheint und sie ipso facto als Schein, als Reflexionsbestimmung
-durchschaubar macht. Was Adorno fr die Kunst notiert, gilt mutatis
-mutandis auch fr die brigen Bereiche des gesellschaftlichen Ganzen:
-
- "Die Frage nach der Vermittlung von Geist und Gesellschaft reicht weit ber die Musik hinaus, wo man sie allzu leicht auf die
-nach dem Verhltnis von Produktion und Rezeption einengt. Gelten drfte, da jene Vermittlung nicht uerlich, in einem dritten
-Medium zwischen Sache und Gesellschaft stattfinde, sondern innerhalb der Sache. Und zwar nach ihrer objektiven und subjektiven
-Seite. Die gesellschaftliche Totalitt hat in der Gestalt des Problems und der Einheit der knstlerischen Lsungen sich sedimentiert, ist
-darin verschwunden. Weil in ihr Gesellschaft sich verkapselt hat, folgt sie, indem sie autonom sich entfaltet, auch der
-gesellschaftlichen Dynamik, ohne auf sie hinzublicken, ohne direkt mit ihr zu kommunizieren" (GS 14, 409).
-AAF
- In der Bestimmung dieser Wesensgesetzlichkeit, die in den
-Teilsystemen erscheint und diese dadurch als vermittelte konstituiert,
-knpft Adorno an die klassische dialektische Theorie an, die die
-moderne Gesellschaft als brgerliche verstand. Wie Marx, der den
-Schlssel zu diesem System in der politischen konomie suchte, geht
-auch Adorno vom "Primat der konomie" aus (GS 4, 125) und lokalisiert
-hier den tragenden Lebensproze der Gesellschaft. Damit ist vor allem
-die grundlegende Rolle angesprochen, die der gesellschaftlichen Arbeit
-in der Moderne zukommt. Die sozialen Prozesse und Institutionen
-existieren nicht aus eigener Kraft, sie sind "wesentlich
-vergegenstndlichte Arbeit lebendiger Menschen"; selbst so subtile
-Erscheinungen wie Kunst, Philosophie oder Kulturkritik sind vom
-Arbeitsproze abhngig, "in dessen Schicksal verflochten" (GS 8, 17;
-GS 10.1, 18). Ein berhistorisches Gesetz, wie es etwa Engels' Prinzip
-der Determinierung in letzter Instanz aufstellt, ist damit nicht
-behauptet, denn eine 'szientifische Invariantenlehre' lehnt Adorno ab.
-Fr die moderne Gesellschaft allerdings gilt, da sie die "Einheit der
-durch ihre Arbeit das Leben der Gattung reproduzierenden Subjekte" ist
-und daher primr als "Totalitt der Arbeit" konzipiert werden mu (GS
-5, 267, 269). "Soweit die Welt ein System bildet, wird sie dazu eben
-durch die geschlossene Universalitt von gesellschaftlicher Arbeit"
-(ebd. 272).
-
- Von entscheidender Bedeutung ist nun allerdings, da sich dieser
-Primat der Produktion unter brgerlichen Produktionsbedingungen auf
-eine hchst paradoxe Weise uert: als Abstraktion der Produktion von
-sich selbst. Konstitutiv fr den gesellschaftlichen Zusammenhang ist
-nicht die lebendige Arbeit, auch nicht das konkrete Bedrfnis.
-"Grundbestand der Gesellschaft an sich", "magebende Struktur der
-Gesellschaft" (GS 8, 13; GS 10.2, 745) ist vielmehr der Tausch, in dem
-die konkreten Einzelarbeiten auf ihren gemeinsamen Nenner reduziert
-werden - abstrakte Arbeit als Substanz des Wertes. Im Tausch, schreibt
-Adorno, "nicht erst in der wissenschaftlichen Reflexion, wird objektiv
-abstrahiert; wird abgesehen von der qualitativen Beschaffenheit der
-Produzierenden und Konsumierenden, vom Modus der Produktion, sogar vom
-Bedrfnis, das der gesellschaftliche Mechanismus beiher, als
- Sekundres befriedigt" (GS 8, 13).
-
- 'Tausch' in diesem Sinne meint mehr als eine konomische
-Transaktion, meint mehr als den bloen Besitzwechsel konkret-
-ntzlicher Gegenstnde. Der Begriff steht fr eine Gesamtverfassung,
-in der der konkret-materielle Inhalt des gesellschaftlichen Lebens,
-der Stoffwechselproze mit der Natur, und der soziale Zusammenhang
-auseinandergetreten sind und sich zum Gegensatz verselbstndigt haben.
-Ihre Einheit gewinnt die fragmentierte und atomisierte Gesellschaft
-nur mehr auf einem Umweg, ber den Austausch; da aber nur Gleiches,
-Vergleichbares, quivalentes getauscht werden kann, wechseln in der
-Zirkulation nicht Gebrauchswerte den Besitzer, sondern Tauschwerte;
-der Markt, so hat es Alfred Sohn-Rethel formuliert, dem Adorno
-entscheidende Einsichten verdankt, ist ein "zeitlich und rtlich
-bemessenes Vakuum an menschlichem Stoffwechsel mit der Natur" (Sohn-
-Rethel 1972, 80). Das, was die Einheit herstellt, ist der Wert; der
-Wert aber ist eine reine Abstraktion, etwas, in das 'kein Atom
-Naturstoff' eingeht, eine 'blo ideelle' oder 'nur gemeinte
-Bestimmung' (MEW 23, 62; Marx 1974, 173). Brgerliche
-Vergesellschaftung heit dementsprechend abstrakte, reine
-Vergesellschaftung, Integration durch eine Sphre, die in der
-traditionellen Metaphysik als 'Schein', in der idealistischen
-Philosophie als 'Geist' bezeichnet wurde - eine Welt des Symbolischen,
-der Stellvertretung, der Substitution, die alle Erscheinungsformen des
-Sozialen, von der Zirkulation ber Recht und Staat bis zu den
-subtileren Gestalten der Kunst, der Philosophie und der Wissenschaft,
-strukturiert.
-
- "Den Vorwurf des Idealismus", schreibt Adorno, "hat nicht ein jeder zu frchten, der Begriffliches der gesellschaftlichen
-Realitt zurechnet...Mag man, gegenber der leibhaften Realitt und allen handfesten Daten, dies begriffliche Wesen Schein
-nennen, weil es beim quivalententausch mit rechten Dingen und doch nicht mit rechten Dingen zugeht: es ist doch kein Schein,
-zu dem organisierende Wissenschaft die Realitt sublimierte, sondern dieser immanent...Der Tauschwert, gegenber dem
-Gebrauchswert ein blo Gedachtes, herrscht ber das menschliche Bedrfnis und an seiner Stelle; der Schein ber die Wirklichkeit"
-(GS 8, 209).
-AAF
- Diese Hervorhebung des Tauschverhltnisses ist von der
-marxistischen Orthodoxie hufig als Rckfall in brgerliches Denken
-kritisiert worden, als Unfhigkeit, ber den Standpunkt der
-Zirkulation hinauszugehen. Der Vorwurf hat eine gewisse Berechtigung,
-soweit er darauf zielt, da Adorno nicht mit der gebotenen
-Grndlichkeit auf die Einzelheiten der Marxschen Wertformanalyse
-eingegangen ist und deren Begriffe oft nur metaphorisch gebraucht. In
-ihrem Kern ist die Kritik jedoch unhaltbar: einmal, weil Adorno
-keineswegs bei der Zirkulation stehenbleibt und sehr wohl auch die
-entwickelteren Formen des Wertverhltnisses bis hin zur
-Klassenstruktur im Blick hat32; zum anderen, weil sie die fundamentale
-bereinstimmung verdeckt, die hinsichtlich der strukturellen Bedeutung
-der Zirkulation zwischen der Kritischen Theorie und der Kritik der
-politischen konomie besteht. Auch im Kapital fungiert als
-begrifflicher Ausgangspunkt nicht der Arbeitsproze oder ein wie immer
-geartetes 'System der Bedrfnisse', sondern die Abstraktion von der
-Produktion und vom Bedrfnis, wie sie sich in der Zirkulation, im
-Austausch von Waren gem ihren Werten, tagtglich vollzieht; und wenn
-es ein Gliederungsprinzip gibt, einen Grundgedanken, um den sich das
-System der politischen konomie organisiert, so ist er hier, in den
-verschiedenen Metamorphosen dieser Fundamentalabstraktion zu suchen,
-die vom einfachen Tausch ber den Geld- und Kapitalbegriff bis zu den
-Oberflchenbestimmungen der 'trinitarischen Formel' reichen. Indem
- Adorno diesen Gedanken, in wie metaphorischer Form auch immer,
-festhlt und zu der These zuspitzt, da die Produktion nur
-gegenstandskonstitutiv, nicht aber gesellschaftskonstitutiv ist, steht
-er Marx nher als alle postmarxschen Arbeitsmythologien, die die Rede
-vom Scheincharakter der Zirkulation allzu wrtlich, nmlich
-brgerlich-aufklrerisch nehmen. Die Einheit der brgerlichen
-Gesellschaft ist keine Einheit der Arbeit, sondern eine des Wertes,
-der Abstraktion von der Arbeit.
-
- Diese Einheit aber, und damit kehren wir zum Ausgangspunkt zurck,
-existiert nicht unmittelbar, sondern nur als Proze, als "eine
-Einheit, die sich durch den Trennungs-, durch den
-Abstraktionsmechanismus hindurch berhaupt eigentlich erst vollzieht"
-(Adorno 1973, 47). Die konstitutive Struktur, der Wert, ist keine
-isolierte, unbewegliche Instanz, die auf andere Instanzen diese oder
-jene Wirkung ausbt. Sie erzeugt vielmehr unablssig neue Formen, in
-denen sie sich zugleich manifestiert und verbirgt - so wie es Hegel
-fr die Sphren des subjektiven, objektiven und absoluten Geistes
-beschrieben hat, Marx fr die verschiedenen 'Verkncherungen' des
-Mehrwerts vom Profit ber den Produktionspreis bis hin zu den
-'mystischen' Formen von Zins, Arbeitslohn und Rente. Das Wesen mu
-erscheinen; die Gesamtheit seiner Erscheinungen aber ist: das System.
-Das System ist die dialektische Ordnung der Erscheinungsformen der
-Struktur, die Struktur wiederum ist nichts anderes als das System, auf
-seinen einfachsten und abstraktesten Ausdruck gebracht. Der hier von
-Adorno anvisierte Theorietypus liee sich am angemessensten als eine
-'strukturalistische Systemtheorie' charakterisieren, die die
-Einsichten des Strukturalismus und der Systemtheorie aufnimmt, sie
-aber dialektisiert und dadurch ihre Einseitigkeiten vermeidet.
-
- Es ist nur scheinbar ein Widerspruch hierzu, wenn Adorno an
-anderer Stelle davon spricht, da sich das dialektische Denken
-zunehmend von der Systemform entfernen msse, oder wenn er die
-negative Dialektik geradezu als 'Antisystem' definiert (GS 8, 308; GS
-20.1, 165ff; GS 6, 10). Gewi gibt es neben dem Schler Hegels und
-Marxens auch den Schler Nietzsches und Benjamins, dessen
-antisystematische Affekte sich methodisch in der Bevorzugung der
-'Mikrologie' und des Aphorismus niederschlagen und mitunter in
-emphatischen Bekenntnissen kulminieren wie demjenigen, da der
-wirklich freie Gedanke mit dem System unvereinbar sei (Adorno 1974,
-266). Es wre indes ein vlliges Miverstndnis von Adornos Position,
-wenn man darin eine Absage an das systematische Denken oder gar eine
-Leugnung des Systemcharakters der gesellschaftlichen Realitt sehen
-wollte. Da die brgerliche Gesellschaft ein System ist, eine Einheit
-also, die aus einem Punkt heraus erzeugt und nicht nur die uerliche
-Ordnung eines vorgegebenen Stoffes ist, steht fr Adorno auer Frage,
-ebenso wie die Gltigkeit der Kategorien, mit denen Hegel und vor
-allem Marx dieses System beschrieben haben. Anders wre seine im
-Positivismusstreit immer wieder geuerte Mahnung unverstndlich, da
-die Soziologie ihr Objekt verfehle, wenn sie darauf verzichte,
-"Gesellschaft als System" zu denken, wenn sie sich mit bloen
-Systematisierungen begnge, anstatt "das den Prozeduren und Daten
-wissenschaftlicher Erkenntnis vorgeordnete System der Gesellschaft" zu
-rekonstruieren (GS 8, 210, 356). Die Mikrologie setzt an jedem Punkt
-die Gltigkeit der Marxschen Strukturanalysen voraus, sie ist mglich
-nur auf dem Boden des dialektischen Begriffs, auch wenn sie darauf
-verzichtet, diesen im Einzelfall zu explizieren. Bei aller Kritik, die
-Adorno an Hegels Identifikation des Systems mit dem absoluten Subjekt
- gebt hat, hat er doch an der Notwendigkeit und Angemessenheit des
-Systembegriffs zu keiner Zeit einen Zweifel gelassen:
-
- "Ist jenes Subjekt-Objekt, zu dem seine (scil. Hegels) Philosophie sich entwickelt, kein System des vershnten absoluten
-Geistes, so erfhrt der Geist doch die Welt als System. Sein Name trifft den unerbittlichen Zusammenschlu aller Teilmomente und
-Teilakte der brgerlichen Gesellschaft durch das Tauschprinzip zu einem Ganzen genauer als irrationalere wie der des Lebens,
-selbst wenn dieser der Irrationalitt der Welt, ihrer Unvershntheit mit den vernnftigen Interessen einer ihrer selbst bewuten
-Menschheit, besser anstnde. Nur ist die Vernunft jenes Zusammenschlusses zur Totalitt selber die Unvernunft, die Totalitt des
-Negativen" (GS 5, 324): eben die des Tauschs, der die Einzelnen einem ihnen fremden Gesetz unterwirft.
-AAF
- Da diese Negativitt das System, das sie konstituiert, zugleich
-in den Untergang treibt, wird weiter unten darzustellen sein.
-
-
-
- 2. Der zentrale Stellenwert, den die dialektische Theorie dem
-Systembegriff zuweist, hat ihr wenig Anerkennung bei derjenigen
-Theorie eingetragen, die sich diesen Begriff fr ihre
-Selbstbeschreibung zu eigen gemacht hat: der Systemtheorie. Vom
-"ehrwrdige(n) Konzept der brgerlichen bzw. proletarischen,
-wirtschaftlich konstituierten Gesellschaft" (1974, 217) spricht
-Luhmann im gleichen Ton wie ein Raketenkonstrukteur von den Bemhungen
-des Schneiders von Ulm; vom "negatorische(n) Apparat brgerlicher
-Gesellschaftskritik im Sinne von Rousseau, Hegel oder Marx" (1979,
-105) wie von einem berflssigen Ballast, dessen man sich tunlichst
-entledigen sollte. Zwar konzediert Luhmann diesem Theorietypus das
-"Erstgeburtsrecht als reflexive Theorie", doch bemngelt er
-gleichzeitig "die eigentmliche Schmalspurigkeit, die zu geringe und
-zu unbestimmte Komplexitt, die Fixierung auf wenige Gesichtspunkte,
-an die man mit vermeintlich eindeutigen Effekten Negationen anknpfen
-kann" (1982, 193).
-
- Die Grnde fr diese abschtzig-distanzierende Haltung sind rasch
-benannt. Die Theorie der brgerlichen Gesellschaft, sowohl in ihrer
-affirmativen als auch in ihrer kritischen Gestalt, ist nach Luhmann
-die letzte in einer Serie von Selbstthematisierungen des
-Gesellschaftssystems, die die Gesellschaft unzureichend, nmlich auf
-der Basis ontologischer und anthropologischer Prmissen zu begreifen
-versuchte. Im Gegensatz zu der bis auf Aristoteles zurckgehenden
-'alteuropischen' Lehre, welche die Gesellschaft als societas civilis,
-d.h. als primr politisch konstituierte Ordnung verstand, habe die
-Theorie der brgerlichen Gesellschaft zwar neues Terrain betreten,
-indem sie den Akzent auf das Wirtschaftssystem verlagert habe; doch
-seien die anthropologisch-ontologischen Begrndungsmuster im Prinzip
-beibehalten worden. Wie die Aristoteliker den Primat der Politik,
-htten auch die brgerlichen Theoretiker den Primat der konomie mit
-Naturbegriffen begrndet und ihre Gesellschaftskonzeption darauf
-aufgebaut - wobei es nach Luhmann eine zweitrangige Frage ist, ob
-diese Naturbegriffe naturrechtlicher oder materialistischer Provenienz
-waren: beide Anstze htten die Gesellschaft als Aggregat von
-natrlichen Bedrfnissen und Befriedigungsmglichkeiten konzipiert und
-die Teilsysteme auf dieses Kernsystem bezogen (1974, 142, 206). Marx
-erscheint aus dieser Sicht gleichsam nur als Schlupunkt in der
-Selbstthematisierung der brgerlichen Gesellschaft, sein Materialismus
-nicht als Durchbruch zu einer neuen, die brgerliche Welt
-transzendierenden Auffassung, sondern als brgerliche Philosophie par
-excellence (1981, 235). Obwohl Luhmann nicht ausschliet, da von der
-marxistisch-sozialistischen Selbstkritik der brgerlichen Gesellschaft
- bestimmte politische Effekte ausgehen knnten, hlt er deren Potential
-doch fr erschpft. Ein wirkliches Verstndnis, das sich auf der Hhe
-der Zeit befindet, ist nach seiner berzeugung weder von den
-Apologeten der brgerlichen Gesellschaft zu erwarten noch von deren
-Kritikern. Gefordert ist vielmehr eine grundlegende Neuorientierung,
-die die Gesellschaftstheorie von anthropologischen und humanistischen
-Prmissen abkoppelt und auf ein anderes, die Eigenstndigkeit und
-Eigenlogik des Sozialen bercksichtigendes Fundament stellt.
-
- Nun ist sicher nicht zu bestreiten, da ontologische Motive in dem
-von Luhmann inkriminierten Sinne eine wichtige Rolle in der
-materialistischen Dialektik spielen: nicht blo in den kruden
-Varianten, die man in den Lehrbchern des real kaum noch existierenden
-Sozialismus findet, sondern schon bei Marx, der seine
-Revolutionstheorie vollstndig auf eine Ontologie der Arbeit grndet,
-und auch bei Adorno, der im Gebrauchswert das "Ineffabile der Utopie"
-sieht und seine Kritik am brgerlichen System auf die Idee eines
-"Vorrangs des Objekts" sttzt (vgl. GS 6, 22, 184ff.). Was indes die
-Darstellung dieses System betrifft, die Untersuchung seines inneren
-Baus, so greift Luhmanns Kritik zu kurz. Weder Marx noch Adorno
-benutzen Naturbegriffe oder ontologische Argumente. Vielmehr zeigen
-sie przise, da die brgerliche Gesellschaft anstatt auf der
-konkreten Arbeit oder dem Bedrfnis auf der Abstraktion von der Arbeit
-und vom Bedrfnis beruht, auf Verhltnissen, die sich hinter dem
-Rcken der handelnden Personen herausbilden und sich zu einem
-hochkomplexen Gefge verdinglichter und subjektivierter Bestimmungen
-entfalten. Da Luhmann dies im brigen nicht ganz fremd ist, zeigt
-sich an solchen Stellen, an denen er auf Marxsche Analysen (wie etwa
-die des Geldes) rekurriert und ihnen "ihr volles Recht" bescheinigt
-(1980, 253f.).
-
- Luhmanns Vorschlag, die Gesellschaft unter Absehung von allen
-empirisch-materiellen Elementen zu definieren, kann man unter diesen
-Umstnden wohl kaum als die kopernikanische Revolution begreifen, als
-die er ihn prsentiert. Weit davon entfernt, die dialektische Theorie
-durch einen radikalen Paradigmenwechsel zu berholen, wiederholt er
-lediglich (ohne allerdings die Begrndung mitzuvollziehen) deren
-Einsicht, da der gesellschaftliche Lebensproze unter brgerlichen
-Produktionsbedingungen in doppelter Gestalt erscheint: als
-gegenstndlich-materielle, aber private Produktion einerseits, als
-gesellschaftlicher, aber immaterieller Zusammenhang andererseits.
-Konkret und privat im Sinne von ungesellschaftlich, das sind nach
-Luhmann die Individuen, die als autonome, 'autopoietische' Systeme
-"auerhalb aller sozialen Systeme" operieren und dabei, obwohl
-wesentlich Bewutsein, doch einen engen Bezug zum organisch-
-materiellen Leben haben (1985, 359, 296f.). Die Gesellschaft hingegen
-ist Kommunikation und nichts als Kommunikation. Sie konstituiert sich
-zwar aus den Erwartungen und Kommunikationen psychischer Systeme, geht
-aber in dieser ihrer Genesis nicht auf, bildet "eine freischwebend
-konsolidierte Realitt, ein sich selbst grndendes Unternehmen" (ebd.
-173), eben 'reine' Kommunikation.
-
- "Ganz grob kann man das System der Gesellschaft charakterisieren als Gesamtheit der freinander zugnglichen,
-kommunikativ erreichbaren Erlebnisse und Handlungen. Kommunikation verwebt die Gesellschaft zur Einheit" (1981, 309).
-AAF
- Ersetzt man Kommunikation durch Zirkulation, so hat man exakt die
-Marxsche These, nach der die brgerliche Gesellschaft ihre Einheit und
-ihren Selbstbezug allein vermge der Ausdifferenzierung einer
- eigenstndigen Sphre der abstrakten Allgemeinheit neben und auer der
-empirisch-materiellen Dimension der Produktion und des Konsums
-herzustellen vermag.
-
- Die eigentliche Differenz zwischen Systemtheorie und Dialektik
-liegt deshalb nicht darin, da die erstere Gesellschaft auf
-Kommunikation reduziert und alle nichtkommunikativen Elemente, die mit
-der Aneignung der Natur zusammenhngen, eskamotiert (so Ganmann
-1986a, 148ff.). Da in der brgerlichen Gesellschaft die in der
-Produktion erfolgende Naturaneignung nicht unmittelbar
-gesellschaftlich ist, es vielmehr erst durch die Vermittlung der
-Zirkulation wird, ist schlielich der Kardinaleinwand der Marxschen
-Theorie gegen die Warenproduktion. Die Differenz liegt auf der
-methodischen Ebene, in der Art und Anordnung der Kategorien, aus denen
-das brgerliche System besteht. Whrend fr die Kritische Theorie
-Gesellschaft eine Vermittlungskategorie ist, die zwar nicht im
-identischen Subjekt-Objekt, wohl aber in einer konstitutiven Struktur
-(dem 'Wesensgesetz') grndet und von diesem 'inneren Kern' her
-rekonstruiert werden mu, lehnt Luhmann einen solchen Ansatz ab. Da er
-den Strukturbegriff nur in der Fassung kennt, wie er innerhalb der
-funktionalistischen Tradition durch Parsons und Merton berliefert ist
-- als Manifestation invarianter, nichtkontingenter Beziehungen
-zwischen Elementen (1985, 377ff.) -, kann er der Struktur allenfalls
-im Hinblick auf vormoderne Gesellschaften einen privilegierten Rang
-zugestehen; fr die moderne Gesellschaft dagegen erscheint ihm die
-Struktur, von dieser Prmisse her durchaus konsequent, als gegenber
-der Funktion von zweitrangiger Bedeutung. Die Einheit der modernen
-Gesellschaft, so konstatiert er, existiere nur in der Differenz der
-Funktionssysteme:
-
- "sie ist nichts anderes als deren wechselseitige Autonomie und Unsubstituierbarkeit. Sie ist nichts anderes als die Umsetzung
-dieser Struktur in ein Miteinander von hochgetriebener Unabhngigkeit und Abhngigkeit. Sie ist, mit anderen Worten, die dadurch
-entstandene, evolutionr hchst unwahrscheinliche Komplexitt" (1986, 216f.).
-AAF
- Diese Auffassung darf nun nicht so verstanden werden, als gebe es
-nach Luhmann kein Gesamtsystem, als sei die Gesellschaft nichts weiter
-als die Summe der von den Teilsystemen erfllten Funktionen. Auch
-Luhmanns Entwurf bleibt insofern der Tradition
-gesamtgesellschaftlicher Theorie verpflichtet, als in ihm der
-Gesellschaftsbegriff Begrndungsfunktionen erfllt, "das heit den
-Horizont des Mglichen und Erwartbaren definiert und letzte
-grundlegende Reduktionen einrichtet" (1974, 145). Diese
-Begrndungsfunktion manifestiert sich erstens nach auen, in der
-Abgrenzung des Sozialen vom Nichtsozialen, die durch die
-Unterscheidung von Kommunikation und Nichtkommunikation erreicht wird.
-"Gesellschaft betreibt Kommunikation, und was immer Kommunikation
-betreibt, ist Gesellschaft" (1985, 555). Sie manifestiert sich
-zweitens in der internen Strukturierung, im Aufbau von Teilsystemen,
-die auf bestimmte, nur ihnen zurechenbare Funktionen spezialisiert
-sind. Und sie manifestiert sich drittens auch in einem Zugriff auf
-diese Teilsysteme, der dafr sorgt, da sich keines derselben auf
-Kosten anderer Teilsysteme totalisiert: z.B. durch Einbau von
-Beschrnkungen in die Reflexionsstruktur der Teilsysteme (1977, 245).
-Insofern kann auch Luhmann von der "Einheit der Gesellschaft" sprechen
-und Dimensionen angeben, in denen diese Einheit sich zeigt (vgl. 1974,
-147, 149; 1985, 37f.; 1986, 202, 205).
-
- Der Unterschied zur dialektischen Theorie liegt darin, da diese
- Einheit den Phnomenen uerlich bleibt, mit ihnen nicht vermittelt
-ist. Gelangt fr Adorno die gesellschaftliche Determinierung in den
-Phnomenen selbst zum Ausdruck, so da die deutende Analyse das
-Einzelne auf sein Allgemeines hin durchsichtig zu machen vermag, so
-rutscht sie bei Luhmann gleichsam zwischen die Phnomene, in die
-"Interdependenz und (den) Abstimmungszwang unter den Folgeproblemen
-strkerer Differenzierung" (1974, 147). Die Teilsysteme sind in der
-modernen Gesellschaft per definitionem nicht Manifestationen der
-Gesamtgesellschaft bzw. der konstitutiven Struktur, sie sind
-Manifestationen einer Funktion und damit gerade nicht des Ganzen; da
-sie gleichwohl einem bergeordneten Zusammenhang angehren, zeigt sich
-nicht in ihnen selbst, sondern nur in ihrer Umwelt, in der
-Mannigfaltigkeit innergesellschaftlicher System-Umwelt-Differenzen.
-Von hier aus wird die eigenwillige, der Auffassung Adornos kontrr
-entgegengesetzte Deutung verstndlich, die Luhmann dem
-traditionsreichen Begriff der Integration verleiht:
-
- "Mit dem bergang von segmentrer zu schichtenmiger und von schichtenmiger zu funktionaler Primrdifferenzierung
-des Gesellschaftssystems ndert sich die Zugriffsform des gesamtgesellschaftlichen Systems auf die Teilsysteme; sie verlagert sich
-von den Strukturen der Teilsysteme auf ihre innergesellschaftliche Umwelt. Die Gesellschaft kann bei zunehmender Komplexitt
-immer weniger garantieren, da alle Teilsysteme unter gleichen Strukturen gleichfrmig operieren und sich aus diesem Grunde
-nicht bermig belasten. Integration mu vielmehr dadurch vermittelt werden, da alle Teilsysteme freinander
-innergesellschaftliche Umwelt sind. Ein Teilsystem gehrt dann weniger dadurch der Gesellschaft an, da es in seiner Strukturwahl
-sich nach den Erfordernissen, Werten oder gar Normen richtet, die fr alle Systeme gelten, sondern dadurch, da es sich an einer
-nichtbeliebig geordneten, als Gesellschaft garantierten und vorstrukturierten Umwelt auszurichten hat" (1977, 243f.).
-AAF
- Gegenber diesem Ansatz sind unterschiedliche Reaktionsformen
-mglich. Man kann ihn in toto zurckweisen und von auen her, etwa vom
-Standpunkt einer dialektisch-materialistischen Konzeption, monieren,
-da Luhmann der Oberflche der brgerlichen Gesellschaft verhaftet
-bleibt und beispielsweise auerstande ist, den Geldfetisch zu
-durchschauen (Blanke/Jrgens/Kastendiek 1975, 381ff.; Giegel 1975,
-96ff.; Ganmann 1986). Das mag zutreffen, endet aber in den meisten
-Fllen mit einer Rehabilitation eben jener Philosophie der Arbeit,
-deren mangelnde Tragfhigkeit Luhmann wohl zu Recht herausstellt. Man
-kann ferner immanent-kritisch fragen, ob Luhmann sein eigenes
-"postdialektisches Forschungsprogramm" realisiert und Analysen
-entwickelt, aus denen hervorgeht, wie die Gesellschaft die ihr
-zugewiesene Aufgabe der Einregulierung der innergesellschaftlichen
-Umwelt erfllt; wobei man dann feststellen wird, da sich der sonst so
-beredte Autor an dieser 'theoriebautechnisch' so wichtigen
-Scharnierstelle in Schweigen hllt. Jedenfalls hat Luhmann
-bemerkenswert wenig Energie daran gesetzt, den "Leerplatz" zu fllen,
-den er schon 1970 an der Stelle einer den heutigen Verhltnissen
-angemessenen Theorie des Gesellschaftssystems entdeckte (1974, 152).
+.\\\ WRITER 6 \\\
+C:\SW70\VORLAGEN\STANDARD.LAY
+C:\SW70\TREIBER\FM$65011.GPM
+12
+00000
+00010
+00109
+00001
+00001
+00001
+00002
+00002
+00000
+00006
+00000
+00000
+Blumentritt
+
+
+
+
+
+
+
+
+
+0
+17280
+11520
+0
+0
+JA
+3
+75
+0
+20
+0
+0
+0
+0
+0
+0
+0
+NEIN
+
+
+
+0
+2
+1
+Grund - Absatzlayout
+GA
+0
+0
+0
+0
+0
+1
+24
+0
+1
+0
+1
+NEIN
+NEIN
+NEIN
+240
+0
+0
+20
+0
+0
+0
+0
+0
+1
+0
+NEIN
+
+1
+566
+0
+0
+Einrckung links
+EL
+0
+566
+0
+0
+0
+1
+24
+0
+1
+0
+1
+NEIN
+NEIN
+NEIN
+240
+0
+0
+20
+0
+0
+0
+0
+0
+0
+0
+NEIN
+
+1
+566
+0
+0
+Grund - Seitenlayout
+GS
+480
+720
+269
+1133
+1680
+1680
+0
+0
+1
+NEIN
+0
+0
+
+
+
+
+
+
+
+
+0
+
+0
+
+
+
+
+
+
+
+KABAAB
+
+
+
+
+
+
+
+
+S t e f a n B r e u e r
+
+
+G e s e l l s c h a f t d e s V e r s c h w i n d e n s
+
+
+
+
+
+ PA
+
+
+Inhalt
+
+S
+S
+S
+S
+SVorwort
+S
+S
+S
+SDie Entwicklungskurve der Zivilisation.
+SEine Auseinandersetzung mit Norbert Elias
+S
+S
+S
+SProduktive Disziplin. Foucaults Theorie der
+Disziplinargesellschaft
+S
+S
+S
+SAdorno, Luhmann: Die moderne Gesellschaft zwischen
+Selbstreferenz und Selbstdestruktion
+S
+S
+S
+S'Nicht der Anfang, das Ende trgt die Last'.
+SFriedrich Georg Jnger und die Perfektion der Technik
+S
+S
+S
+SDer Nihilismus der Geschwindigkeit.
+SZum Werk Paul Virilios
+S
+S
+S
+STechnik und Wissenschaft als Hierophanie
+S
+S
+S
+SGtterdmmerung
+S
+ SPA
+SVorwort
+S
+S
+S
+S
+S
+S
+S... Wir ordnens. Es zerfllt.
+S Wir ordnens wieder und zerfallen selbst.
+S Rilke, Duineser Elegien
+S
+SDie Gegenwart, so versichert man uns seit einiger Zeit, stehe im
+Zeichen eines groen Verschwindens. Die Metaerzhlungen, welche
+die Spielregeln des modernen Wissens legitimierten, lsten sich
+auf oder verlren an Glaubwrdigkeit; die Diskurse ber die
+Dialektik des Geistes, die Hermeneutik des Sinns oder die
+Emanzipation der Gattung enthllten sich als Fabeln, denen keine
+Funktion mehr zukomme (Lyotard 1986, 13f.). Die Fundamente der
+neuzeitlichen Metaphysik wrden brchig, das Ende des
+Humanismus, der Subjektivitt, ja der Moderne schlechthin
+kndige sich an (Vattimo 1990, 52f.). Das Wissen selbst sprenge
+im Zuge seiner Entfaltung die vereinheitlichenden,
+universalisierenden, totalisierenden Ambitionen, mit denen es
+seit Descartes belastet sei. Relativittstheorie und
+Quantenphysik bewirkten eine Grundsatzrevision, eine "Mutation
+im Kern der Neuzeit", an der der Absolutheitsanspruch der alten
+Mathesis universalis zerbreche. Auflsung des Ganzen, Ende der
+Einheit, Obsoletheit der Totalitt: "Absolutheit ist nur noch
+eine Idee, ein archimedischer Punkt ist undenkbar, das Operieren
+ohne letztes Fundament wird zur Grundsituation" (Welsch 1988,
+187).
+S
+SDem Verschwinden der Totalitt, heit es weiter, korrespondiert
+das Erscheinen der Pluralitt, dem 'Koma der Moderne' (Matthieu)
+die Geburt der Postmoderne. Wo der szientifische Diskurs der
+Moderne nur den Kult einer monotheistischen Vernunft kannte,
+begreift sich der Postmodernismus als Anwalt des Polytheismus,
+als "Wahrer einer vielfltigen Wirklichkeit gegen ihre
+technologische Eintrbung" (ebd. 221 f.); wo einst die
+Monokultur eines technologischen Zeitalters sich ausbreitete,
+blht heute eine bunte Vielfalt von Horizonten, Lebenswelten,
+Wissensformen. Die Postmoderne 'verwindet' die Metaphysik
+(Vattimo 1990, 53); sie beharrt gegenber der homogenisierenden
+Gewalt des konomischen Diskurses auf der "Heterogenitt der
+Satz-Regelsysteme und Diskursarten" (Lyotard 1987, 263) und
+zeigt sich aggressiv gegen jede Totalisierung. "Krieg dem
+Ganzen, zeugen wir fr das Nicht-Darstellbare, aktivieren wir
+die Widerstreite, retten wir die Ehre des Namens" (Lyotard 1988,
+203). Auch wenn in diesem Krieg noch einige Schlachten verloren
+gehen sollten, glaubt die Postmoderne die strkeren Bataillone
+auf ihrer Seite zu haben. Sie will gegenber Technik und
+konomie das umfassendere Deutungsmuster sein und nicht nur die
+Entwicklungslogik des Wissens, sondern auch die der Gesellschaft
+fr sich haben (Welsch 1988, 218, 4). Das Verschwinden des
+Ganzen sei nicht mehr aufzuhalten, die Freisetzung der Teile
+unvermeidlich. "Die Postmoderne beginnt dort, wo das Ganze
+aufhrt" (ebd. 39).
+ S
+SNun gibt es wenig Grnde, die Moderne vor der Kritik zu
+schtzen. Die meisten der gegen sie vorgetragenen Gravamina
+bestehen zu Recht. Es gibt aber auch keinen Grund, sich einem
+Feldzug anzuschlieen, der auf einer so fragwrdigen
+Lagebeurteilung wie der soeben skizzierten beruht. Zunchst
+einmal ist vllig ungeklrt, um welche Art von Pluralitt es
+sich handelt, die den Holismus der Moderne ersetzen soll: um
+eine Pluralitt, die aus der Gleichzeitigkeit des
+Ungleichzeitigen resultiert, also lediglich ein Ensemble noch
+nicht vermittelter Vielheit ist; um die Differenzierungsprodukte
+einer Einheit, die noch im Auersichsein bei sich selbst ist -
+Pluralitt la Hegel; oder um eine materiale, irreduzible
+Pluralitt, an der jeder Homogenisierungsversuch scheitert. Nur
+diese letztere liee sich aussichtsreich mobilisieren, aber auch
+nur dann, wenn sie strategische Relevanz besitzt und nicht blo
+marginaler Natur ist. Lyotards Eingestndnis, das einzige
+unberwindliche Hindernis fr die hegemonialen Tendenzen des
+konomischen Diskurses liege in der Heterogenitt der Satz-
+Regelsysteme, deutet jedoch genau in diese Richtung. Wer der
+zerstrerischen Gewalt der Moderne nur Stze entgegenzusetzen
+hat, hat ihr schon nichts mehr entgegenzusetzen.
+S
+SSchlielich sind auch die Bundesgenossen, auf die sich der
+Postmodernismus glaubt sttzen zu knnen, alles andere als
+vertrauenerweckend. Es mag ja sein, da mit den Innovationen von
+Einstein, Heisenberg und Gdel der Totalittsanspruch der alten
+Mathesis universalis unhaltbar geworden ist. Aber erstens ist
+das mechanische Weltbild durch die neuere Physik nicht einfach
+widerlegt, sondern lediglich auf den mesokosmischen Bereich
+eingeschrnkt worden. Und zweitens kann man den Vorsto von
+Wissenschaft und Technik in den mikro- und makrokosmischen
+Bereich kaum als Beleg fr eine "Einschrnkung des
+Monopolanspruchs der Wissenschaft" oder als Anzeichen fr eine
+Beendigung der "Hegemonie szientifischer Orientierung" nehmen
+(Welsch 1988, 188, 222). Die Flexibilisierung der Wissenschaft
+und die Erweiterung ihres Methodenarsenals begrnden ihre
+Expansion, nicht ihre Selbstlimitation.
+S
+SWie die Postmodernisten ihre eigenen Strke berschtzen, so
+unterschtzen sie die des Gegners. Die Rede von den groen
+Erzhlungen suggeriert, da Totalitt nichts weiter sei als eine
+"Anmaung" (Lyotard 1988a, 213), eine falsche Darstellung der
+Welt, die sich jederzeit durch eine adquatere korrigieren
+liee; der Diskurs der Moderne erscheint so als das Ergebnis
+einer immer schon "illegitimen Erhebung eines in Wirklichkeit
+Partikularen zum vermeintlich Absoluten" (Welsch 1988, 5), als
+bergriff, dem kritizistisch mit dem Hinweis auf die begrenzten
+Kompetenzen des Denkens zu begegnen ist. So ungefhr
+argumentierten vor Jahrzehnten schon Popper und Albert, die sich
+weit mehr dafr interessierten, den Dialektikern totalitre
+Ambitionen nachzuweisen, als den totalisierenden Tendenzen in
+der Wirklichkeit nachzugehen. Totalitt ist aber keine Erfindung
+herrschschtiger Intellektueller, sondern eine Realitt, die
+sich nicht einfach wegdekretieren lt. Sie manifestiert sich in
+der Tendenz des Kapitals, "alle Elemente der Gesellschaft sich
+unterzuordnen oder die ihm noch fehlenden Organe aus ihr heraus
+zu schaffen" (Marx 1974, 189); sie zeigt sich in der
+ Universalisierung und Globalisierung der dem Kapitalverhltnis
+eigenen Produktions- und Zirkulationsformen; und nicht zuletzt
+in der massiven Expansion der experimentellen Wissenschaften,
+die immer tiefer in die Infrastrukturen der Materie
+intervenieren und lngst keine Grenzen mehr kennen. Nicht da
+dem Postmodernismus dies vllig entginge. Aber die forcierte,
+wie immer auch inzwischen zurckgenommene oder relativierte
+Behauptung einer Postmoderne, eines Zustands also jenseits der
+fr die Moderne typischen Totalisierung, deutet auf eine
+Verharmlosung, die nicht anders als leichtfertig bezeichnet
+werden kann. Wer fr ein 'Denken des Genusses' eintritt (Vattimo
+1990, 192), mag dies tun, er drckt damit ohnehin nur die
+herrschende Orientierung aus. Er sollte aber nicht die Illusion
+verbreiten, es handle sich um mehr als den Genu von
+Henkersmahlzeiten. Das Ende der Moderne wird nicht der Aufgang
+der Postmoderne sein, sondern das Ende der Welt, genauer: der
+bewohnbaren Welt.
+S
+SSo jedenfalls legt es die dialektische Denkbewegung nahe, die
+das Verhltnis von Erscheinen und Verschwinden ganz anders fat
+als der Postmodernismus. Whrend der letztere das Signum der
+Epoche im Verschwinden der Einheit und im Erscheinen
+vermittlungsloser Vielfalt sieht, insistiert das dialektische
+Denken seit Hegel darauf, da die unvermittelte Vielfalt
+verschwindet und von einer absoluten, in sich differenzierten
+Einheit abgelst wird. Die Hegelsche Logik analysiert die
+Bewegung vom scheinenden zum erscheinenden Wesen, in deren
+Verlauf die dem Wesen eigenen Bestimmungen als reale und
+selbstndige Vermittlungen in die Existenz treten; die
+Geschichtsphilosophie bersetzt diesen Gedanken in einen
+historischen Proze, dessen markanteste Stationen das Erscheinen
+des Gttlichen in Christo und die Realisierung der Vernunft im
+modernen Staate sind. Marx uerte hieran berechtigte Zweifel
+und verschob die wahre Vershnung auf den Sozialismus. Am
+Grundgedanken hielt er nichtsdestoweniger fest. Auch fr ihn ist
+die Heterogenitt der modernen Gesellschaft - die 'Konkurrenz' -
+nichts Neues oder Eigenstndiges gegenber dem Wesen, sondern
+dessen Erscheinungsform. Denn das Wesen der modernen
+Gesellschaft - das Wertgesetz - besteht gerade darin, als
+Negation seiner selbst zu erscheinen, so da der Erscheinung der
+Schein von Selbstndigkeit zukommt. "Innerhalb des
+Wertverhltnisses und des darin einbegriffenen Wertausdrucks
+gilt das abstrakt Allgemeine nicht als Eigenschaft des
+Konkreten, Sinnlich-Wirklichen, sondern umgekehrt das Sinnlich-
+Konkrete als bloe Erscheinungs- oder bestimmte
+Verwirklichungsform des Abstrakt-Allgemeinen (...). Diese
+Verkehrung, wodurch das Sinnlich-Konkrete nur als
+Erscheinungsform des Abstrakt-Allgemeinen, nicht das Abstrakt-
+Allgemeine umgekehrt als Eigenschaft des Konkreten gilt,
+charakterisiert den Wertausdruck" (Marx 1867, 771).
+S
+SDiese Konzeption ist festzuhalten, weil sich nur mit ihrer Hilfe
+Einsicht in die komplizierte Architektur der modernen
+Gesellschaft gewinnen lt. Sie ist aber zugleich zu
+modifizieren, weil Marx, darin ganz Kind des 19. Jhs., die
+selbstzerstrischen Zge der Wertvergesellschaftung
+unterschtzte. Gewi, Marx sah genau, da die kapitalistische
+Produktionsweise die "Springquellen allen Reichtums untergrbt:
+ die Erde und den Arbeiter" (MEW 23, 530). Er erkannte ferner mit
+einer Klarheit wie niemand vor ihm, welches selbstnegatorische
+Potential mit dem wachsenden Widerspruch zwischen notwendiger
+und berflssiger Arbeitszeit entsteht (Marx 1974, 592ff.).
+Indes war er felsenfest davon berzeugt, da, wenn schon nicht
+das Kapital, so doch die Menschheit imstande sein wrde, sich
+wie Mnchhausen am eigenen Schopf aus dem Sumpf zu ziehen. Der
+Speer, der die Wunde schlug - die Wissenschaft - galt ihm als
+poena et remedium peccati. Wenn die verwissenschaftlichte
+Produktion unter kapitalistischen Bedingungen den Stoffwechsel
+zwischen Mensch und Erde strte, so zwang sie doch zugleich
+"durch die Zerstrung der blo naturwchsig entstandnen Umstnde
+jenes Stoffwechsels, ihn systematisch als regelndes Gesetz der
+gesellschaftlichen Produktion und in einer der vollen
+menschlichen Entwicklung adquaten Form herzustellen" (MEW 23,
+528). Wenn sie die Arbeitsmittel in "Unterjochungsmittel,
+Exploitationsmittel und Verarmungsmittel des Arbeiters"
+verwandelte und die "gesellschaftliche Kombination der
+Arbeitsprozesse als organisierte Unterdrckung seiner
+individuellen Lebendigkeit, Freiheit und Selbstndigkeit"
+betrieb (ebd. 528f.), so folgte sie damit nur einer geheimen
+Logik, die das, was sie den Individuen nahm, der Gattung in
+tausendfach vergrerter Form zurckerstattete. Fr Marx war die
+kapitalistische Modernisierung, wie fr die meisten brgerlichen
+Denker, ein antientropischer Proze, der, von partiellen
+Rckfllen abgesehen, mit Naturnotwendigkeit zu hheren
+Ordnungen fhrte - und zwar deshalb, weil sich hinter dem Wesen
+'Kapital' noch ein weit umfassenderes Wesen befand: die
+Menschheit. Was immer die Althusser-Schule an Gegenargumenten
+gebracht hat: Marx hat, soweit er Revolutionstheoretiker sein
+wollte, den anthropologischen Diskurs niemals verlassen.
+S
+SDer anthropologische Diskurs aber macht blind. Er zwingt dazu,
+die Bewegung des Scheins als eine Scheinbewegung anzusehen und
+die mit ihr verbundenen Zerstrungen in Fortschritte umzudeuten.
+Erst wenn Klarheit darber besteht, da das Kapitalverhltnis
+nicht das Werkzeug oder der Wegbereiter eines sich in der
+Geschichte entfaltenden Absolutums - der menschlichen Gattung -
+ist, sondern selbst das Absolute, erst dann werden die Folgen
+seiner Expansion als das erkennbar, was sie sind: Momente einer
+beispiellosen Verheerung und Verwstung, die zeitlich und
+rumlich begrenzte Ordnungsgewinne mit einer Steigerung der
+Unordnung in der Umgebung erkauft. Erst dann kann aber auch
+deutlich werden, da dieses Absolute - die von allen
+Umweltbezgen abgelste 'reine Gesellschaft' - nur auf Zeit
+existiert, da es im gleichen Mae, in dem es sich ausdehnt, die
+Bedingungen seiner Existenz zerstrt. Wir sind schon zu tief in
+diesen Proze verstrickt, um an seiner Grundrichtung noch etwas
+ndern zu knnen. Das Bewutsein darber, da die Gesellschaft
+des Erscheinens in Wahrheit eine Gesellschaft des Verschwindens
+ist, knnte aber vielleicht dazu beitragen, das Tempo des
+Erscheinens (und damit auch: des Verschwindens) zu verlangsamen.
+Die Transformation der Anthropologie in Entropologie, wie sie
+Claude Lvi-Strauss schon vor langer Zeit gefordert hat, wre
+dazu ein erster Schritt:
+S
+S"Die Welt hat ohne den Menschen begonnen und wird ohne ihn enden. Die Institutionen, die Sitten und Gebruche, die
+ich mein Leben lang gesammelt und zu verstehen versucht habe, sind die vergnglichen Blten einer Schpfung, im
+ Verhltnis zu der sie keinen Sinn besitzen; sie erlauben bestenfalls der Menschheit, ihre Rolle im Rahmen dieser
+Schpfung zu spielen. Abgesehen davon, da diese Rolle dem Menschen keinen unabhngigen Platz verschafft und
+da sein berdies zum Scheitern verurteiltes Bemhen darin besteht, sich vergeblich gegen den universalen Verfall zu
+wehren, erscheint der Mensch selbst als Maschine - vollkommener vielleicht als die brigen -, die an der Auflsung einer
+ursprnglichen Ordnung arbeitet und damit die organisierte Materie in einen Zustand der Trgheit versetzt, der eines
+Tages endgltig sein wird. Seitdem der Mensch zu atmen und sich zu erhalten begonnen hat, seit der Entdeckung des
+Feuers bis zur Erfindung der atomaren Vorrichtungen, hat er - auer wenn er sich fortgepflanzt hat - nichts anderes getan
+als Millionen von Strukturen zerstrt, die niemals mehr integriert werden knnen ... Statt Anthropologie sollte es
+Entropologie heien, der Name einer Disziplin, die sich damit beschftigt, den Proze der Desintegration in seinen
+hchsten Erscheinungsformen zu untersuchen" (Lvi-Strauss 1970, 366f.).
+S
+SDie in diesem Band gesammelten Studien suchen die Mglickeit
+einer solchen dialektischen Entropologie auszuloten. Dies
+geschieht in einem eher indirekten Verfahren, das den neuerdings
+so gern erhobenen apokalyptischen Tonfall so weit wie mglich zu
+temperieren bemht ist - nicht aus einer Skepsis gegen den
+apokalyptischen Gedanken als solchen (fr den die Kritiker in
+diesem Buch gengend Belege finden werden), sondern aus
+Abneigung gegen die wohlfeile Instrumentalisierung, die er in
+der Regel erfhrt. Ist von der Apokalypse die Rede, so selten
+ohne den Verweis auf die Rettung, auf den neuen positiven
+Zustand, der durch allerlei Patentrezepte herbeigefhrt werden
+soll: durch weniger Konsum und mehr Spiritualitt, weniger
+Wachstum und mehr Kommunikation mit dem Bruder Regenwurm: vom
+Erhabenen zum Lcherlichen, man wei es, ist nur ein Schritt.
+Die Kritische Theorie hatte gute Grnde, als sie sich weigerte,
+positiv zu werden und statt dessen darauf bestand, das Gemeinte
+nur indirekt, auf dem Wege der Kritik, zur Sprache zu bringen.
+S
+SDie Kritik ist doppelgleisig angelegt. Auf der einen Seite
+verteidigt sie die Idee einer Gesellschaft des Verschwindens
+gegenber Konzeptionen, die den Proze der Modernisierung
+einseitig als Zivilisierung (Elias), als Disziplinierung
+(Foucault) oder als funktionale Differenzierung (Luhmann)
+darstellen. Auf der anderen Seite greift sie verwandte
+Intentionen auf und versucht sie weiterzuentwickeln: Adornos
+Logik des Zerfalls oder Virilios These vom Nihilismus der
+Geschwindigkeit. Hierzu gehrt auch die Erinnerung an einen zu
+Unrecht vergessenen Autor, der als einer der ersten Technik und
+Entropie in Zusammenhang gebracht hat und deshalb als der
+'eigentliche Vater der kologischen Bewegung' (Mohler)
+bezeichnet worden ist - Friedrich Georg Jnger. Das Zentrum, um
+das die verschiedenen Studien kreisen, erschliet sich am
+leichtesten ber den Essay 'Technik und Wissenschaft als
+Hierophanie'.
+S
+ SPA
+SDie Entwicklungskurve der Zivilisation.
+SEine Auseinandersetzung mit Norbert Elias
+S
+S
+S
+S
+S
+S
+SDa der historische Proze nicht blo aus isolierten Ereignissen
+und Bruchstcken besteht, sondern einen bergreifenden Sinn zur
+Erscheinung bringt, gehrt zu den ides directrices des
+abendlndischen Denkens. Wurde dieser Sinn unter der
+Vorherrschaft christlicher berzeugungen lange Zeit als
+Heilsgeschehen bestimmt, so rckte mit der Aufklrung der
+Begriff der 'Zivilisation' in den Vordergrund. Mit ihm wurden
+zwei verschiedene Vorstellungen zusammengebracht: zum einen der
+Gedanke einer allmhlichen Sittenverfeinerung - l'adoucissement
+des moeurs im Sinne Mirabeaus des lteren; zum andern der
+Gedanke eines stufenweise sich vollziehenden geistigen und
+materiellen Fortschritts, wie er etwa in Frankreich den
+Entwrfen Raynals und Condorcets, spter den Theorien Saint-
+Simons, Comtes oder Guizots zugrundelag (Moras 1930). So sah es
+auch die englische Sozialphilosophie, die, nachdem sie noch im
+18. Jh. zwischen dem Fortschritt der Hflichkeit und
+Zivilisation und demjenigen der kommerziellen Knste
+unterschieden hatte (Ferguson 1986, 366), im 19. Jh. beide
+Linien zusammenzog und den Fortschritt der Zivilisation nunmehr
+im bergang von kriegerischen, durch Zwang integrierten
+Gesellschaften zu industriell-gewerblichen Aggregaten sah, die
+einem Zustand dauernden Friedens entgegenstrebten (Spencer 1887,
+II, 124ff., 180). Nichts illustriert die berzeugungskraft
+dieser Vorstellung besser als die Tatsache, da selbst ein Marx,
+der die "tiefe Heuchelei der brgerlichen Zivilisation und die
+von ihr nicht zu trennende Barbarei" brandmarkte (MEW 9, 225),
+keine Schwierigkeiten hatte, vom "great civilizing influence of
+capital" zu sprechen und als dessen Hauptmerkmal die Umwandlung
+der Produktion in ein "System der allgemeinen Ntzlichkeit"
+herauszustellen, "als dessen Trger die Wissenschaft selbst so
+gut erscheint wie alle physischen und geistigen Eigenschaften"
+(MEW 42, 323).
+S
+SIm 20. Jh. ist der Chor der Skeptiker, die diese
+Selbstbeglckwnschung der Moderne nicht mehr akzeptieren, immer
+lauter geworden. Die Bedenken richten sich, wie in anderen
+Texten dieses Bandes deutlich wird, gegen die objektiven Aspekte
+des sogenannten Zivilisationsprozesses, insbesondere gegen die
+Vorstellung einer kumulativen Steigerung von Reichtum und
+Ordnung. Sie richten sich aber auch, worauf im folgenden vor
+allem der Akzent gelegt wird, auf die subjektiven Aspekte, die
+Idee des perfectionnment de l'homme (Condorcet). Stand die
+Kritische Theorie noch weitgehend allein, als sie in den
+vierziger und fnfziger Jahren im Verfall der Konventionen, im
+Absterben des zeremoniellen Moments und im Niedergang von
+Hflichkeit und Takt Indizien fr den "Zerfallscharakter der
+Zivilisation" ausmachte (vgl. Adorno, GS 4, 38ff.; ders. 1956,
+87), so mehren sich heute die Stimmen, die darin nicht blo den
+Ausdruck einer elitren Kulturkritik sehen. So konstatiert
+ Richard Sennett eine allgemeine Tendenz zur Zunahme von
+"Unzivilisiertheit", die sich in Distanzverlust,
+Selbstbezogenheit und einer alle sozialen Beziehungen
+berwuchernden "Tyrannei der Intimitt" manifestiere (Sennett
+1983, 299). Neil Postman spricht vom "Verfall der civilit" und
+einer "allgemeinen Miachtung der fr Zusammenknfte im
+ffentlichen Raum geltenden Regeln und Rituale" (Postman 1983,
+151). In einem anderen vieldiskutierten Buch ist gar von einer
+"sterbenden Zivilisation" die Rede, in welcher das Leben immer
+barbarischer und kriegshnlicher werde (Lasch 1986, 261, 47).
+Paul Virilio endlich meint: "Das fortschreitende Verschwinden
+der Hflichkeit, die selber eine gespielte Aufnahme, einen
+Ersatz der primitiven Gastfreundschaft darstellte, uert sich
+heute in einer virilen Form von Kontakt, die man 'Offenheit'
+nennt, und mag letzten Endes zum gewohnheitsmigen Austausch
+schlechter Behandlung fhren" (Virilio 1978, 37).
+S
+SOb diese Diagnosen richtig sind, wird sich sicher nur in
+sorgfltigen empirischen Untersuchungen erweisen lassen. Bis
+dahin aber, und vielleicht als Vorbereitung dazu, mag es
+ntzlich sein, sich mit der Exposition zu befassen, die der
+Zivilisationsbegriff in der bislang grndlichsten Studie zu
+diesem Thema erfahren hat: Norbert Elias' Buch 'ber den Proze
+der Zivilisation'. Ich will im folgenden zunchst die
+wichtigsten Argumente dieses Buches skizzieren und dann einige
+Einwnde vorstellen, die sich heute, ein halbes Jahrhundert nach
+Erscheinen der ersten Auflage, aufdrngen. Abschlieend mchte
+ich die Frage errtern, ob der Zivilisationsbegriff in der ihm
+von Elias verliehenen Fassung ein Konzept ist, in dem sich die
+Problemlage der modernen Gesellschaft reflektieren lt.
+S
+S
+S
+S
+S
+S
+AABI
+S
+S
+SElias' Untersuchung beginnt mit begriffsgeschichtlichen
+Erwgungen. Zivilisation, so der erste Befund, bedeutet im
+deutschen Sprachraum etwas anderes als in Westeuropa, namentlich
+Frankreich und England. Whrend der Begriff dort als Bezeichnung
+fr den wirtschaftlichen, gesellschaftlichen, politischen und
+geistigen Fortschritt insgesamt dient, hat er im Deutschen nur
+einen eingeschrnkten Inhalt. Zivilisation ist hier ein Wert
+zweiten Ranges, eine Qualitt, die sich lediglich auf das
+uere, die Oberflche des Daseins bezieht. Die Bildung des
+Inneren dagegen, der Fortschritt auf geistigem und seelischem
+Gebiet, wird mit dem Begriff 'Kultur' belegt. Was in anderen
+Lndern des Abendlands als einheitliche und kontinuierliche
+Bewegung erscheint, zerfllt damit in Deutschland in zwei
+unterschiedliche Dimensionen, die sich zuweilen zum
+antithetischen Gegensatz verschrfen. Der Westen, lautet ein
+wichtiger Glaubenssatz der deutschen Ideologie bis hin zu den
+'Ideen von 1914', habe nur Zivilisation, wohingegen es die
+Deutschen bis zur Kultur gebracht htten.
+S
+ SDa Elias sich dafr entscheidet, die deutsche Version als
+Ausnahme zu behandeln und nicht weiter zu verfolgen, hngt mit
+seinen Vorstellungen ber die in der gesellschaftlichen
+Entwicklung zu bewltigenden Aufgaben zusammen. Diese
+Vorstellungen sind deutlich von der Soziologie des 19. Jhs.,
+insbesondere von Comte und Spencer, beeinflut. Wie der letztere
+sieht Elias die gesellschaftliche Entwicklung als Teil einer
+allgemeinen Evolution, die neben der berorganischen noch die
+organische und unorganische Entwicklung umfat und durch das
+Wechselspiel von Differenzierung und Integration vorangetrieben
+wird. Wie der erstere identifiziert er die
+Funktionsdifferenzierung mit der wirtschaftlichen Berufsteilung,
+die koordinierenden und integrierenden Institutionen mit dem
+Staat1. Eine Hierarchie dieser beiden Dimensionen kennt Elias
+nicht. Fr ihn handelt es sich um prinzipiell gleichrangige
+Erscheinungen, die jeweils unterschiedliche Aspekte ein und
+desselben Substrats darstellen - der Gesellschaft. Da er indes
+den Integrationsinstanzen die Fhigkeit zuspricht, die
+funktionsteiligen Prozesse "bis zu einem gewissen Grade (zu)
+steuern" (1971, 47)2, verschiebt sich der Fokus seiner Theorie
+stark auf die Integrationsebene, auf die Entstehung und
+Entwicklung jener Institutionen, die ber ein besonders hohes
+Steuerungspotential verfgen - die politischen Zentralorgane
+bzw., wie Elias mit Weber formuliert: die Monopolorganisationen
+physischer Gewaltsamkeit.
+S
+SIn dieser Vorentscheidung auf analytischer Ebene liegt die
+Wurzel der regulativen Idee von Elias' Zivilisationstheorie, der
+"Vermutung..., da der Aufbau des 'zivilisierten' Verhaltens
+aufs engste mit der Organisierung der abendlndischen
+Gesellschaften in der Form von 'Staaten' zusammenhngt (I,
+LXXVI). Je fortgeschrittener in einem bestimmten Gebiet die
+Staatsbildung, desto fortgeschrittener auch der Proze der
+Zivilisation; je unentwickelter andererseits die
+Zentralisierung, desto unentwickelter die Sitten, desto
+unvollendeter "jene Nivellierung und Angleichung der
+gesellschaftlichen Standarde (...), die fr diesen ganzen
+Zivilisationsproze charakteristisch ist" (II, 433).
+ Deutschland, das seit dem spten Mittelalter keinen Fortschritt
+im Ausbau seiner zentralstaatlichen Institutionen mehr erlebte,
+ist aus diesem Grund fr die Untersuchung des
+Zivilisationsprozesses weniger geeignet als etwa Frankreich, in
+dem diese Institutionen eine kontinuierliche Verstrkung
+erfuhren3.
+S
+SDen Ausbau des Zentralstaates in Frankreich unterteilt Elias in
+drei Etappen. Die erste Etappe fllt zusammen mit der Bildung
+ritterlicher Hfe zu Beginn des Hochmittelalters, welche die bis
+dahin in der weltlichen Herrenschicht dominierende Integration
+qua Kampf durch eine friedlichere und bestndigere Integration
+ersetzen. Auf diese 'ritterlich-hfische' Ordnung folgt im 16.
+Jh. die zweite Etappe, die 'hfisch-absolutistische
+Gesellschaft', die wohl im sozialen Aufbau noch an die
+stndische Gliederung des Mittelalters anknpft, auf politischer
+Ebene aber insofern eine nderung herbeifhrt, als sie die
+physische Gewalt in einer Monopolinstanz konzentriert. Die alte
+Kriegerelite wird nunmehr entmilitarisiert und in einen Hofadel
+verwandelt, was wiederum auf sozialer und wirtschaftlicher Ebene
+ die Bildung lngerer und komplexerer Interdependenzketten
+ermglicht. Die funktionale Differenzierung beschleunigt sich
+und lt neue, auf Beruf und produktiver Leistung beruhende
+Eliten entstehen, die ihrerseits nach Partizipation an den
+Entscheidungen des obersten Koordinations- und
+Regulierungsorgans streben.
+S
+SAus dieser Entwicklung geht - nach der Zwischenstufe einer
+'erweiterten hfischen Gesellschaft', in der hfisch-
+aristokratische und hfisch-brgerliche Kreise miteinander
+verkehren - das dritte und bisher letzte Stadium hervor: der
+brgerliche Nationalstaat. In ihm erreichen die Funktionsteilung
+und die allgemeine Interdependenz eine bis dahin unvorstellbare
+Dichte. Zugleich ist die Vernetzung soweit vorangeschritten, da
+die private Monopolisierung der mit der Zentralposition
+verbundenen Chancen nicht lnger perpetuierbar ist. Das
+Privatmonopol einzelner, schreibt Elias, vergesellschaftet sich
+und wird "zu einer Funktion des interdependenten
+Menschengeflechts als eines Ganzen", zu einem "ffentlichen"
+Monopol (II, 157). Darber hinaus zeichnen sich bereits Anstze
+zu einer vierten, endgltig letzten Phase der Gesamtentwicklung
+ab:
+S
+S"Man sieht die ersten Umrisse eines erdumfassenden Spannungssystems von
+Staatenbnden, von berstaatlichen Einheiten verschiedener Art, Vorspiele von
+Ausscheidungs- und Vormachtkmpfen ber die ganze Erde hin, Voraussetzung fr
+die Bildung eines irdischen Gewaltmonopols, eines politischen
+Zentralinstituts der Erde und damit auch fr deren Pazifizierung" (II, 452).
+S
+SDen hier nur knapp skizzierten Stadien der Zentralisierung
+ordnet Elias nun verschiedene Verhaltensmodelle oder -schemata
+zu, die gleichsam den subjektiven Niederschlag dieses Prozesses
+verkrpern. Der polyzentrischen Struktur des Mittelalters
+entspricht das Schema der courtoisie, das sich an den groen
+ritterlichen Feudalhfen bildet (I, 79, 136; II, 96ff., 109ff.,
+354ff.). Seine Merkmale sind: eine gewisse Migung der Affekte,
+eine, freilich noch sehr begrenzte, Aufwertung derjenigen, die
+nicht ber Gewaltmittel verfgen (vor allem der Frauen), die
+Ausbildung hfischer Manieren, die das gesellige Verhalten bei
+Tisch, beim Spiel oder im Turnier regeln, die Orientierung an
+ritterlichen Tugenden, wie sie vor allem von der Kirche (miles
+christianus-Ideal), aber auch von der weltlichen Dichtung
+propagiert werden (Artusepik)4.
+S
+SWhrend dieses Schema den Individuen jedoch noch uerlich
+bleibt und auerhalb des Interaktionszentrums 'Hof' rasch seine
+Wirkung verliert, verdichtet sich die soziale Kontrolle mit dem
+bergang zu einer monozentrischen, auf dem Gewaltmonopol
+beruhenden Konfiguration. Anstelle der blo intermittierenden,
+nur einen kleinen Teil der ritterlichen Existenz erfassenden
+courtoisie tritt jetzt ein neues Schema der Affektregulierung,
+das Elias im Anschlu an die Manierenschriften von Erasmus,
+della Casa, La Salle u.a. als civilit bezeichnet (I, 65ff.,
+89f., 136f.). Der durch die politische, soziale und
+wirtschaftliche Entwicklung in seiner Herrschaftsposition
+erschtterte Adel versucht in dieser Phase, seinen Platz an der
+Spitze der gesellschaftlichen Hierarchie durch einen verstrkten
+Einsatz von Distinktionsstrategien zu behaupten. Ein strenger
+ Verhaltenscode entsteht, der mehr und mehr den gesamten Habitus
+umfat. Die hfische Interaktion, vor allem das Essen und die
+Konversation, wird stark ritualisiert, wie Elias anschaulich an
+der Geschichte des Messer- und Gabelrituals demonstriert. Die
+Kleidung wird bewut als Unterscheidungs- und Prestigemittel
+eingesetzt, ebenso die Gestik und der sprachliche Ausdruck.
+Fragen des guten Benehmens und des richtigen Geschmacks werden
+zu Fragen, die ber den Platz in der Rangordnung entscheiden
+knnen; Takt, Delikatesse und Stil zu Formen, von denen das
+soziale berleben abhngen kann. Selbst- und Fremdbeobachtung
+erreichen eine bis dahin unbekannte Intensitt, die
+psychologische Kriegfhrung wird zur unentbehrlichen Waffe in
+der Prestigekonkurrenz.
+S
+SAuch dieses neue, im Vergleich zur courtoisie ungleich strengere Schema der Affektmodellierung ist jedoch nach Elias in
+der Psychostruktur noch nicht sehr fest verankert. Die Tabus und Rituale des hfischen Lebens treten dem einzelnen wohl
+als klar umrissene Imperative entgegen, die ihn zu einer permanenten berwachung seiner Affekte und Triebregungen
+veranlassen. Diese aber erfolgt hauptschlich ber eine bewute Selbststeuerung, psychoanalytisch gesprochen ber
+Ich-Leistungen (Vowinckel 1983, 196). Der Hofmann mu, wie bei Castiglione nachzulesen, seine unterschiedlichen
+Fhigkeiten so ausbalancieren, da er zu einer Art vollkommenen Gesamtkunstwerks wird; er mu, wie bei Gracian,
+seine Leidenschaften bewut domestizieren, jedoch nicht, um sie abzutten, sondern um sie im geeignetsten Moment
+zu befriedigen (ebd. 95). Die soziale Kontrolle vollzieht sich deshalb noch primr ber die Vermittlung des Ichs, das sich
+den Zwngen der sozialen Umwelt anpat, aber keineswegs vllig ausliefert. Sie bleibt dem einzelnen uerlich, wirkt
+"noch nicht als automatisch funktionierender Selbstzwang, als Gewohnheit, die bis zu gewissen Grenzen auch
+funktioniert, wenn der Mensch allein ist; sondern man legt sich hier zunchst immer jemandem andern gegenber, also
+bewuter aus gesellschaftlichen Grnden, Triebverzicht und Zurckhaltung auf. Und die Art der Zurckhaltung, wie ihr
+Ma entsprechen hier der sozialen Stellung dessen oder derer, denen gegenber er sie sich auferlegt" (I, 186). Im
+Stadium der civilit ist die gesellschaftliche Verflechtung schon so stark, um die einzelnen zur Anpassung zu zwingen,
+aber noch nicht stark genug, um die Einzelheit als solche zu negieren und in einen 'Verkehrsknotenpunkt des
+Allgemeinen' (Horkheimer/Adorno) zu verwandeln.
+S
+SWesentlich weiter in dieser Richtung geht das Schema der
+civilisation, das in der zweiten Hlfte des 18. Jhs. die
+civilit ablst (I, 47ff.). Getragen von den Reformgruppen des
+Ancien Rgime - dem Beamtentum und den Spitzen des Brgertums -
+zielt dieses Schema auf eine Universalisierung und
+Stabilisierung der mit der civilit bereits erreichten
+Sittenverfeinerung und Rationalitt. Die Universalisierung
+impliziert die Ausdehnung der Vernunft auf die Gesetze und
+Institutionen des Landes sowie auf die Sitten der gesamten
+Nation. Elias spricht von einer Einschmelzung von
+Verhaltensweisen der funktional oberen Schichten in das der
+aufsteigenden unteren und rckt diesen Vorgang in die Nhe von
+Kolonisationsprozessen. So wie im 19. Jh. die abendlndischen
+Nationen die auereuropische Welt unterworfen und okzidentalen
+Denk- und Verhaltensmustern assimiliert htten, seien zuvor im
+Abendland selbst die Unter- und Mittelschichten den Standards
+der Oberschichten unterworfen und assimiliert worden (II, 341,
+346, 350, 420f.)
+S
+SDie Stabilisierung impliziert die Verfestigung der zivilisierten
+Verhaltensformen zu einem 'Panzer', der die ganze Persnlichkeit
+und jede ihrer uerungen umschliet (I, 332). Dies wird durch
+eine bereits in der frhesten Kindheit einsetzende
+Konditionierung erreicht, die darauf hinarbeitet, da sich im
+einzelnen "gleichsam als eine Relaisstation der
+gesellschaftlichen Standarde, eine automatische
+Selbstberwachung der Triebe im Sinne der jeweiligen
+ gesellschaftsblichen Schemata und Modelle, eine 'Vernunft', ein
+differenziertes und stabileres 'ber-Ich' herausbildet, und da
+ein Teil der zurckgehaltenen Triebregungen und Neigungen ihm
+berhaupt nicht mehr unmittelbar zum Bewutsein kommt" (II,
+329). In diesem Sinne erfllt das ber-Ich in der brgerlichen
+Gesellschaft die Steuerungsfunktionen, die in der hfischen
+Gesellschaft noch dem Ich vorbehalten waren.
+S
+SElias bersieht nicht die Unterschiede zwischen diesen beiden
+Formen der Steuerung. Im Rahmen seiner Konstruktion eines
+kontinuierlich verlaufenden Zivilisationsprozesses interpretiert
+er ihre Abfolge jedoch primr als eine Steigerung der sozialen
+und psychischen Integration durch Tieferlegung der
+Kontrollmechanismen. Jene Zwnge, die im Schema der courtoisie
+und der civilit vielfach nur als uere Schranke, als
+Fremdzwang wirkten, werden jetzt verinnerlicht, mit der
+Perspektive, da dadurch der Fremdzwang zunehmend entbehrlich
+wird und irgendwann einmal ganz verschwinden kann (1983, 123f.).
+Wie diese, freilich erst nach Vollendung der Pazifizierung auf
+Weltebene denkbare, neue Form der Selbststeuerung beschaffen
+sein knnte, verrt Elias nicht. Da die Entwicklung in diese
+Richtung geht, erscheint ihm aber als ebenso ausgemacht wie die
+Tendenz zur berwindung des brgerlichen Nationalstaates (1987,
+224f.). Sind einmal die zwischenstaatlichen Spannungen
+beseitigt, so die an Kants Vision vom 'Ewigen Frieden'
+erinnernde Schlupassage des Zivilisationsbuches, kann sich die
+Regelung der sozialen Beziehungen auf das rein sachlich
+Notwendige beschrnken, und knnen sich die Spannungen und
+Widersprche auch in den Menschen selbst mildern. Dann erst
+braucht es nicht mehr die Ausnahme, sondern
+S
+S"kann es die Regel sein, da der einzelne Mensch jenes optimale Gleichgewicht seiner Seele findet, das wir so oft mit
+groen Worten, wie 'Glck' und 'Freiheit' beschwren: ein dauerhaftes Gleichgewicht oder gar den Einklang zwischen
+seinen gesellschaftlichen Aufgaben, zwischen den gesamten Anforderungen seiner sozialen Existenz auf der einen Seite
+und seinen persnlichen Neigungen und Bedrfnissen auf der anderen" (II, 454. Hervorh. i.O. gestr.).
+S
+SDie groe Linie ist damit klar. Zivilisation ist fr Elias ein
+Proze, in dessen Verlauf sich immer strengere Schemata der
+Selbstkontrolle herausbilden und sowohl immer weitere
+Bevlkerungskreise ergreifen als auch psychostrukturell immer
+tiefer gelagert werden. Dieser Proze ist die subjektive Seite
+eines gesamtgesellschaftlichen Differenzierungs- und
+Integrationsvorgangs, der zu einer immer perfekteren Kontrolle
+der Gesellschaft ber die Naturbedingungen ihres berlebens wie
+ber die Bedingungen des sozialen Zusammenlebens fhrt5. Elias
+verschweigt nicht den Preis, den die Individuen dafr zahlen
+mssen: die permanente Konditionierung, die Verdrngung und
+Ansthesierung von Triebregungen, den Aufbau von inneren
+ngsten, die Wahrscheinlichkeit der neurotischen Erkrankung.
+Insgesamt sieht er aber diese Kosten mehr als aufgewogen durch
+die Distanzierungs- und Steuerungsgewinne, die dem einzelnen
+sowohl als der Gesellschaft in diesem Proze zuwachsen. Etwas
+vereinfacht lt sich dieser Proze in dem folgenden Schema
+darstellen:
+S
+S
+S
+S
+ AABSoziogenese Ritterlich Hfisch- Brgerlich ' Welt'-
+ hfische absolu- indu- gesell-
+ Gesell- tistische strielle schaft
+ schaft Gesell- Gesell-
+ schaft schaft
+
+
+
+Steuerungs- Feudalhof Absoluti- National- Weltstaat
+Zentrum stischer Staat
+ Staat
+
+
+Verhaltens- courtoisie civilit civilisa- Weltzivi-
+Code tion lisation
+
+
+Psychogenese Es/Ich Ich-Domi- ber-Ich- Gleichge-
+ (undiffe- nanz Dominanz wicht von
+ ziert) Ich, Es,
+ ber-Ich
+
+
+ PA
+II
+S
+S
+AAF 1. Auch der voreingenommene Betrachter wird zugestehen, da Elias'
+Rekonstruktion des Zivilisationsprozesses groe Strken hat. Der
+figurationssoziologische Ansatz trgt politischen, konomischen und
+psychologischen Faktoren gleichermaen Rechnung und gelangt damit zu
+einem breit angelegten Panorama der zivilisatorischen Entwicklung. Die
+konstitutive Rolle der Hfe in der ritterlich-feudalen und
+absolutistischen Gesellschaft wird einleuchtend begrndet, die Bildung
+von Gewalt- und Abgabenmonopolen schlssig nachgezeichnet; lediglich
+die Rolle der Religion wird zu wenig beachtet, was mglicherweise bei
+vergleichenden Untersuchungen ein Nachteil sein knnte. Zu den
+Glanzstcken des Buches gehrt die Herausarbeitung des Parallelismus
+von Soziogenese und Psychogenese, mit der gleichsam eine Brcke
+zwischen der Herrschaftssoziologie Webers, der Differenzierungstheorie
+in der Tradition Durkheims und Spencers und der Freudschen
+Psychoanalyse geschlagen wird.
+
+ Dennoch drngen sich bei einer genaueren Betrachtung drei Einwnde
+auf, die zwar aus unterschiedlichen theoretischen Zusammenhngen
+stammen, gleichwohl miteinander kompatibel sind6.
+
+ Der erste Einwand ergibt sich aus der dialektischen Theorie und
+richtet sich gegen den soziogenetischen Strang der
+Zivilisationstheorie. Elias, so erscheint es aus dieser Sicht, hat nur
+eine unzureichende Vorstellung von den Integrationsproblemen, die mit
+einem bestimmten Grad der Funktionsdifferenzierung auftreten. Seine
+These, da die Entwicklung zur modernen Gesellschaft von einer immer
+"strafferen Regulierung und berwachung des gesamten
+gesellschaftlichen Verkehrs von stabilen Zentralen" aus begleitet sei
+(II, 227), bersieht, da ein durch kapitalistische Warenproduktion
+bestimmtes System nicht direkt durch die Vorgaben eines planenden
+Zentrums, sondern nur indirekt durch die Vermittlung des Marktes
+gesteuert wird. Das, was ihre Arbeiten gesellschaftlich gelten,
+erfahren die - individuellen oder korporativen - Produzenten immer nur
+post festum, in der Besttigung ihrer Produkte als Wertgren, die
+erst nach Abschlu der Produktion, im Austausch, mglich ist. Hier
+jedoch gilt,
+
+ "da die unabhngig voneinander betriebenen, aber als naturwchsige Glieder der gesellschaftlichen Teilung der Arbeit
+allseitig voneinander abhngigen Privatarbeiten fortwhrend auf ihr gesellschaftlich proportionelles Ma reduziert werden, weil
+sich in den zuflligen und stets schwankenden Austauschverhltnissen ihrer Produkte die zu deren Produktion gesellschaftlich
+notwendige Arbeitszeit als regelndes Naturgesetz gewaltsam durchsetzt, wie etwa das Gesetz der Schwere, wenn einem das Haus
+ber dem Kopf zusammenpurzelt" (Marx, MEW 23, 89).
+AAF
+ Unter diesen Umstnden ist es eine sehr verkrzte
+Betrachtungsweise, wenn man, wie Elias, Unberechenbarkeit und Willkr
+primr in der physischen Gewaltsamkeit lokalisiert und aus der
+unbestreitbaren Tatsache ihrer Kasernierung im modernen Staat auf eine
+Zunahme der gesamtgesellschaftlichen Stabilitt und Kalkulierbarkeit
+schliet. Auch und gerade nach der Bildung von Gewaltmonopolen auf dem
+Territorium einzelner 'Staatsgesellschaften' bleibt mit dem nationalen
+Binnenmarkt und dem Weltmarkt eine Dimension des Zufalls und der
+Anarchie, die sich individuellen Handlungskalklen grundstzlich
+entzieht. Und obschon dies keineswegs bedeutet, da es die brgerlich-
+industrielle Gesellschaft nicht zu Einheit und Integration zu bringen
+ vermag, heit es doch immerhin, da sich diese Einheit und Integration
+"nur a posteriori als innre, stumme, im Barometerwechsel der
+Marktpreise wahrnehmbare, die regellose Willkr der Warenproduzenten
+berwltigende Naturnotwendigkeit" durchsetzt. Elias hat recht, wenn
+er darauf hinweist, da die Kasernierung der politischen Gewalt einen
+wichtigen Schritt zur berwindung des Naturzustands darstellt. Er
+vergit jedoch hinzuzufgen, da sich dieser Naturzustand unter
+brgerlichen Produktionsbedingungen in anderer Form wiederherstellt:
+gewhrleistet doch die Konkurrenz die Existenz der Individuen nur auf
+die Weise, "wie auch im Tierreich das bellum omnium contra omnes die
+Existenzbedingungen aller Arten mehr oder minder erhlt" (ebd. 377).
+
+ Diese berlegung zwingt dazu, einen der Eckpfeiler von Elias'
+Konstruktion zu problematisieren: die Idee eines Kontinuums der
+Vergesellschaftung, das sich von der ritterlich-hfischen ber die
+hfisch-absolutistische bis hin zur brgerlich-industriellen
+Gesellschaft erstreckt. Wohl lt sich die Entwicklung von den
+feudalen Minnehfen zu den Residenzen des Barockzeitalters unter dem
+Blickwinkel einer Verdichtung und Intensivierung hfischen Lebens
+begreifen, und kann die Ausbildung einer 'guten Gesellschaft' verfolgt
+werden, deren Auslufer bis in die brgerlichen Salons des 19. Jhs.
+reichen. Diese Art der sozialen Verknpfung, die im wesentlichen auf
+Interaktion, d.h. auf Kommunikation unter Anwesenden beruht, mu indes
+strikt von dem Vergesellschaftungsmodus getrennt werden, der fr eine
+entfaltete Marktgesellschaft typisch ist. Vergesellschaftung ber den
+Markt ist eine paradoxe Form von Vergesellschaftung. Sie erzeugt auf
+der einen Seite, wie Elias richtig gesehen hat, ein hochkomplexes
+System von Interdependenzen, in dem die Individuen so stark vernetzt
+sind wie niemals zuvor in der Geschichte. Auf der anderen Seite aber
+treibt sie durch die Forcierung der Konkurrenz und durch die
+Universalisierung der brgerlichen Rechtsprinzipien den
+Vereinzelungsproze in einer historisch ebenfalls beispiellosen Weise
+voran. Markt, das kann man nicht nachdrcklich genug hervorheben,
+aggregiert nicht nur, er disaggregiert auch; schafft nicht nur neue
+Verflechtungen, sondern negiert immer auch die Verflechtungen, die er
+selbst erzeugt hat.
+
+ Das lt sich bereits am Schicksal der kleinsten sozialen Einheit
+zeigen, in der Elias mit Recht das Konditionierungsinstrument der
+brgerlichen Gesellschaft par excellence sieht: der Kleinfamilie.
+Selbst ein Produkt des modernen Differenzierungsprozesses, in dessen
+Verlauf die produktive Lohnarbeit vorrangig den mnnlichen
+Erwachsenen, die nichtproduktive Subsistenzarbeit einschlielich der
+Kindererziehung dagegen den Frauen zugewiesen wurde, befindet sich
+dieser Familientypus heute durch die rechtliche und zunehmend auch
+faktische Gleichstellung der Frauen in einer fortschreitenden Erosion.
+Die Individuen werden aus den bis dahin gltigen, quasistndischen
+Vorgaben des Geschlechts herausgelst und gezwungen, sich selbst zum
+Zentrum ihres eigenen Lebens zu machen. Die fr die Moderne typische
+Temporalisierung erfat auch die Ehe und unterwirft sie den Rhythmen
+der 'seriellen Monogamie' (Shorter). Die Familie wird zur
+'Verhandlungsfamilie auf Zeit' (Beck), deren Mitglieder einen
+stndigen Kampf um den Ausgleich zwischen beruflichen und emotionalen
+Interessen ausfechten mssen. Die Fragmentierung und Atomisierung
+ergreift damit unwiderruflich auch jenen Bereich, der noch dem frhen,
+puritanischen Brgertum als ein so sicheres Fundament gegolten hatte,
+da es von ihm her die gesamte Gesellschaft erneuern zu knnen
+geglaubt hatte.
+
+ "In dem zu Ende gedachten Marktmodell der Moderne wird die familien- und ehelose Gesellschaft unterstellt. Jeder mu
+selbstndig, frei fr die Erfordernisse des Marktes sein, um seine konomische Existenz zu sichern. Das Marktsubjekt ist in letzter
+Konsequenz das alleinstehende, nicht partnerschafts-, ehe- oder familien'behinderte' Individuum. Entsprechend ist die
+durchgesetzte Marktgesellschaft auch eine kinderlose Gesellschaft - es sei denn, die Kinder wachsen bei mobilen,
+alleinerziehenden Vtern und Mttern auf" (Beck 1986, 191).
+AAF
+ Man mu nur einen Blick auf die Geburtenrate in der Bundesrepublik
+werfen, um sich vom Realittsgehalt dieser berlegungen zu berzeugen.
+
+ hnliche Dekompositionserscheinungen zeigen sich auch an
+komplexeren sozialen Aggregaten, die einmal die Struktur der
+brgerlichen Industriegesellschaft prgten. Insbesondere der
+Klassenbegriff, der sich noch im 19. Jh. brgerlichen und
+sozialistischen Theoretikern gleichermaen aufdrngte, hat in den
+fortgeschrittenen kapitalistischen Lndern seine Bedeutung fr die
+Bildung kollektiver Identitten fast vllig verloren. "Der
+unermeliche Druck der Herrschaft", so hat Adorno dies bereits vor
+mehr als vierzig Jahren formuliert, "hat die Massen so dissoziiert,
+da noch die negative Einheit des Unterdrcktseins zerrissen wird, die
+im neunzehnten Jahrhundert sie zur Klasse macht" (Adorno, GS 8,377).
+Nicht da der Gegenstand des Begriffs - die objektive Bndelung von
+Ungleichverteilungen - damit verschwunden wre: soziale Ungleichheiten
+haben nicht ab-, sondern zugenommen. Aber die Auflsung
+klassenspezifischer Lebensformen durch die Erhhung des
+gesamtgesellschaftlichen Konsumniveaus, der Rckgang des
+Beschftigtenanteils im industriellen Sektor, der - in den USA
+besonders drastische - Bedeutungsverlust der Gewerkschaften, die
+allgemeine Schrumpfung der 'Erwerbsarbeitsgesellschaft' (Beck) in den
+hochindustrialisierten Lndern, die Bewltigung der
+Massenarbeitslosigkeit in Form von Unterbeschftigung und
+lebensphasenspezifischer Verteilung der knapper gewordenen Lohnarbeit
+- dies alles hat zu einer Erosion der im Klassenbegriff immer
+mitgedachten kollektiven Identitt gefhrt, durch welche die
+Individuen in zunehmendem Mae auf sich selbst zurckgeworfen werden.
+Soziale Klassen, urteilt Luhmann zutreffend, sind heute Schichten,
+"die darauf verzichten mssen, Interaktion zu regulieren" (Luhmann
+1985c, 131; zur Diskussion ber den Klassenbegriff vgl. auch Ritsert
+1987).
+
+ Vielleicht mu man noch einen Schritt weitergehen und von einer
+Erosion der fr die soziale Identittsbildung konstitutiven Sphre der
+ffentlichkeit schlechthin sprechen. Fr Elias steht eine derartige
+Mglichkeit ganz auer Betracht, obwohl der Verfall der aus dem 19.
+Jh. berkommenen Formen von ffentlichkeit zu den Kardinalthemen der
+Weimarer Republik gehrte (Schmitt 1979a): der die Bildung von
+Gewaltmonopolen begleitende Proze der sozialen Verflechtung macht es
+der Zivilisationstheorie zufolge an einem bestimmten Punkt der
+Entwicklung unausweichlich, die privaten Verfgungschancen ber die
+politischen und wirtschaftlichen Apparate aufzuheben und die
+Privatmononopole in ffentliche Monopole umzuwandeln (II, 148ff.,
+438ff.). Aus heutiger Sicht ist die Moderne jedoch nicht nur durch
+eine Erweiterung des ffentlichen auf Kosten des Privaten
+gekennzeichnet, sondern ebenso durch eine Privatisierung des
+ffentlichen, durch die wesentliche Merkmale von ffentlichkeit
+zerstrt werden. Dies gilt, worauf schon Habermas hingewiesen hat, fr
+den Aufstieg der Verbnde und der Massenmedien, die die kritische
+Publizitt durch eine manipulativ erzeugte verdrngen (Habermas 1968).
+ Es gilt aber auch in dem umfassenderen Sinne einer berlagerung und
+Modifizierung spezifisch ffentlicher Denk- und Verhaltensmodelle
+durch die private Vorstellungswelt, wie sie Richard Sennett in seinem
+Buch ber das Verschwinden des Public Man darstellt. Die moderne
+Gesellschaft erscheint danach nicht als eine zivilisierte, durch
+Selbstdistanz und rationale Interessenverfolgung bestimmte Vereinigung
+von Menschen, sondern im Gegenteil als ein Ensemble 'destruktiver
+Gemeinschaften', in denen manche sogar eine Wiederkehr der
+Stammesverbnde zu entdecken glauben7.In der 'intimen Gesellschaft'
+der Gegenwart, so Sennett, haben die Menschen die Fhigkeit verloren,
+ffentlich, d.h. unter Absehung von ihrer je besonderen Person, zu
+handeln. Die soziale Interaktion schrumpft zu einem bloen Medium des
+Selbstausdrucks und der Selbstvergewisserung, die Aktivitt zu einer
+nicht endenden Suche nach narzitischen Gratifikationen, die sich
+nicht zuletzt im Streben nach Identifikation mit grandiosen
+'Kollektivpersnlichkeiten' realisiert (Sennett 1983, 251ff.). Auch
+wenn Sennetts Ursachenerforschung mit dem Hinweis auf Erscheinungen
+wie Skularismus und Symbolismus etwas bla ausfllt und in ihren
+historischen Partien nicht durchweg zu berzeugen vermag, sollte die
+Erfahrung mit den Massenbewegungen dieses Jahrhunderts Anla genug
+sein, seine Hypothesen nicht auf die leichte Schulter zu nehmen8.
+
+ Die Entwicklung der modernen Gesellschaft, dies kann als Resmee
+des 'dialektischen' Einwands gegen die Zivilisationstheorie
+festgehalten werden, lt sich nicht einfach unter dem Gesichtspunkt
+einer stndigen Ausdehnung der sozialen Verflechtung begreifen, die
+Konkurrenz nicht blo als Medium, das die Bildung immer umfassenderer
+und hherstufiger Aggregate vorantreibt. Vielmehr ist auch das
+Gegenteil zu beobachten. Soziale Verknpfungen, die mit der
+brgerlichen Gesellschaft entstanden sind, werden dekomponiert,
+Solidarittsbeziehungen ausgednnt oder ganz gesprengt.
+Marktvergesellschaftung bedeutet Steigerung der Interdependenz und
+Atomisierung des Sozialen, Vernetzung und Negation aller Bindungen -
+asoziale Sozialitt. Sie forciert die Differenzierung und zerstrt
+doch zugleich durch die universale Vergleichbarkeit aller Arbeiten im
+Tauschwert die Bedingungen der Mglichkeit von Differenz. Sie erzwingt
+eine immer dichter werdende Integration der Gesellschaft und
+verhindert doch, da daraus ein gesellschaftliches Subjekt entsteht.
+Die Integration vollzieht sich hinter dem Rcken der handelnden
+Individuen und macht sich in einer Form geltend, die unmittelbar
+betrachtet als das Gegenteil aller Integration erscheint. Durch ihre
+einseitige Fixierung auf Synthese, die Regressionen zwar nicht
+ausschliet, aber eher als zufalls- denn als systemgeneriert versteht
+(1987, 184), verstellt sich die Zivilisationstheorie die Einsicht in
+den Umstand, da die Logik der Vergesellschaftung auch eine 'Logik des
+Zerfalls' (Adorno) ist. Sie fllt damit noch hinter den
+Reflexionsstand der lteren Soziologie von Comte bis Durkheim zurck,
+der bei allem Vertrauen in die Integrationskraft des Staates oder die
+solidarittsstiftenden Wirkungen der Arbeitsteilung die negative Seite
+der funktionalen Differenzierung nie ganz aus dem Blickfeld geriet.
+Bedenkt man, da 'ber den Proze der Zivilisation' in unmittelbarer
+Zeitgenossenschaft mit der grten Krise der modernen
+Weltwirtschaftsordnung entstand, kann man sich ber diesen
+Reflexionsverlust nicht genug wundern.
+
+
+
+ 2. Diese Kritik wird durch den zweiten Einwand erhrtet, der sich
+ aus dem Gang der psychoanalytischen Theoriebildung ableiten lt. Die
+Integration Freudscher Begriffe, insbesondere des Strukturmodells des
+psychischen Apparats, gehrt zweifellos zu den starken Seiten der
+Zivilisationstheorie, ermglicht sie es doch Elias, auf
+psychogenetischer Ebene die Unterschiede zwischen brgerlichen und
+vorbrgerlichen Formen weitaus genauer zu erfassen, als es ihm auf
+soziogenetischer Ebene gelingt. So arbeitet Elias przise den Wechsel
+in der Konditionierungsinstanz heraus - den bergang von der
+ffentlich-hfischen zur privat-familialen Form der
+Affektmodellierung. So erkennt er richtig den Wechsel in der
+Konditionierungsmethode - die Umwandlung von Fremdzwang in Selbstzwang
+via Verinnerlichung und Identifikation. Und so vermag er schlielich
+auch deutlich zu machen, zu welch neuartigem Ergebnis diese
+Vernderungen fhren: einem Sozialcharakter, der durch eine bisher
+nicht dagewesene Differenzierung zwischen Ich- und ber-Ich-Funktionen
+auf der einen und Triebfunktionen auf der anderen Seite gekennzeichnet
+ist (vgl. II, 390f.; 1987, 85).
+
+ Diese Einsichten fhren Elias jedoch nicht zu einer Revision
+seiner These vom zivilisatorischen Kontinuum. Im Gegenteil. Wie der
+brgerliche Nationalstaat ihm nur als Steigerungsform der mit dem
+Absolutismus bereits erreichten Zentralisierung gilt, so erscheint ihm
+auch das brgerliche Schema der Affektregulierung letztlich nur als
+Fortfhrung und Verdichtung des hfischen Schemas, was nicht nur in
+expliziten Formulierungen, sondern weit mehr noch stilistisch in der
+hufigen Verwendung des Komparativs seinen Ausdruck findet: so etwa,
+wenn Elias vom "bergang zu einem 'rationaleren' Verhalten und Denken,
+ebenso wie (dem) zu einer strkeren Selbstkontrolle" spricht (II,
+394), wenn er den "Zwang zu einer differenzierteren
+Selbstdisziplinierung, zu einer festeren ber-Ich-Bildung" heraushebt
+(II, 351), die Ausbildung einer "stabilere(n), zum guten Teil
+automatisch arbeitende(n) Selbstkontrollapparatur" vermerkt (II, 320)
+oder die Durchsetzung eines "affektneutraleren" Gesamtverhaltens
+behauptet (II, 373f.). Gewi: der brgerliche Sozialcharakter ist
+anders als der aristokratische. Aber fr Elias ist er dies vor allem
+im Sinne eines Mehr an Kontroll- und Steuerungskapazitten, welche im
+aristokratischen Charakter in nuce bereits angelegt waren. Und er
+besitzt dieses Mehr hauptschlich deshalb, weil die brgerliche,
+familial vermittelte Erziehung einen erfolgreichen Weg gefunden hat,
+um die soziale Kontrolle in das Individuum hineinzuverlagern: die
+Verinnerlichung.
+
+ Aus psychoanalytischer Sicht kann man diese Auffassung nur als
+sehr selektiv bezeichnen (Lasch 1985, 712ff.). Da die Verinnerlichung
+ein bedeutendes Mittel der zivilisatorischen bzw. kulturellen
+Entwicklung ist, die Voraussetzung dafr, da aus Kulturgegnern
+Kulturtrger werden (Freud IX, 145), ist zwar ein Grundmotiv Freuds,
+der in seinen Arbeiten hufig die disziplinierenden und
+sozialisierenden Funktionen des ber-Ichs hervorgehoben hat: das ber-
+Ich ist die Basis der Religion, der Moral und des sozialen Empfindens,
+es ist der "Trger der Tradition, all der zeitbestndigen Wertungen,
+die sich auf diesem Wege ber Generationen fortgepflanzt haben" (Freud
+I, 505), es tritt dem Individuum als ein kategorischer Imperativ
+entgegen und bewirkt dadurch jene Umwandlung, durch die es erst
+moralisch und sozial wird (Freud III, 315; IX, 145). Im Gegensatz zu
+Elias sieht Freud in diesem Mechanismus jedoch nicht erst eine
+Errungenschaft der Neuzeit; darber hinaus macht er klar, da es sich
+um eine hchst ambivalente Einrichtung handelt. Das ber-Ich ist
+ nmlich nicht nur, wie Elias meint, ein "Abdruck der Gesellschaft im
+Innern" (I, 173), es ist gleichzeitig "der Erbe des dipuskomplexes
+und somit Ausdruck der mchtigsten Regungen und wichtigsten
+Libidoschicksale des Es. Durch seine Aufrichtung hat sich das Ich des
+dipuskomplexes bemchtigt und gleichzeitig sich selbst dem Es
+unterworfen. Whrend das Ich wesentlich Reprsentant der Auenwelt,
+der Realitt ist, tritt ihm das ber-Ich als Anwalt der Innenwelt, des
+Es gegenber" (Freud III, 3O3).
+
+ Diese Aussage bedarf einer kurzen Erluterung. Freud teilt mit
+Elias die Auffassung, da das ber-Ich im einzelnen die
+gesellschaftliche Allgemeinheit vertritt und damit als Conditio sine
+qua non der Zivilisation bzw. der Kultur fungiert. Whrend Elias
+jedoch dazu neigt, die Aufrichtung dieses ber-Ichs eher
+behavioristisch als Ergebnis von Konditionierungsvorgngen anzusehen,
+eine triebtheoretische Begrndung jedenfalls nicht gibt9, kreisen
+Freuds Bemhungen gerade um diese letztere. Das Soziale, so sein
+Gedanke, kann nur dann im einzelnen seinen Niederschlag finden, wenn
+es sich mit bestimmten Triebregungen legiert und in der Triebkonomie
+selbst einen Sttzpunkt findet. Dies geschieht nach Freud primr in
+der dipalen Phase. Das Kind mu auf dieser Stufe seiner Entwicklung
+auf die intensiven Liebes- und Feindseligkeitswnsche gegenber seinen
+Eltern vezichten, und es lst diese Aufgabe durch Identifizierung,
+durch Neuschpfung des aufgegebenen Objekts in seinem Innern (Freud I,
+502). Teile der libidinsen Energien flieen dem 'Ich-Ideal' zu,
+dessen Definition bei Freud allerdings starken Schwankungen unterliegt
+(vgl. Chasseguet-Smirgel 1981, 215ff.); Teile der aggressiven
+Energien, namentlich die Kastrations- und Todeswnsche gegen den
+dipalen Rivalen, dem Gewissen und dem Schuldgefhl, den wichtigsten
+Komponenten des ber-Ichs (Freud III, 304). Die sozialisierende
+Leistung des ber-Ichs ruht somit triebkonomisch gesehen auf einem
+asozialen, ja antisozialen Fundament: der Aggression, die gleichsam
+nur von auen nach innen umgelenkt wird.
+
+ Diese Zusammenzwingung zweier entgegengesetzter Tendenzen fhrt
+nach Freud zu einer uerst labilen Konstellation. Schon in 'Das Ich
+und das Es' notiert er, da je mehr ein Mensch seine Aggression nach
+auen einschrnke, er desto aggressiver und strenger in seinem ber-
+Ich werde. Das ber-Ich werde 'hypermoralisch' und wende sich mit der
+gleichen Grausamkeit gegen das Ich wie in anderen Konflikten das Es
+(Freud III, 320f.). Was hier noch rein individualpsychologisch als
+Neigung zur Zwangsneurose oder zur Melancholie diagnostiziert wird,
+wird spter zu einer These ber die Pathologie der kulturellen
+Gemeinschaften erweitert. Der Preis fr den Kulturfortschritt, heit
+es in 'Das Unbehagen in der Kultur', liege in der "Glckseinbue durch
+die Erhhung des Schuldgefhls" (Freud IX, 26O). Bereits in der
+Familie sei das Zusammenleben nur mglich durch den Verzicht auf die
+dipalen Bedrfnisse und durch die Einsetzung des Gewissens. Jede
+Erweiterung der sozialen Verbnde setze diesen Konflikt fort und habe
+eine weitere Steigerung des Schuldgefhls zur Folge. Der Kulturproze
+gehorcht einer unheilvollen Mechanik. Je mehr im Laufe der
+Vergesellschaftung die unmittelbare Aggression zwischen den Individuen
+abgebaut wird, desto mehr baut sie sich in den Individuen auf. Je
+geringer die Macht der Triebe und Affekte im sozialen Verkehr, desto
+grer die 'gesellschaftliche Produktion von Unbewutheit' (Erdheim)
+und der Druck des Verdrngten auf das Ich (vgl. Freud IX, 258f.). Da
+der Mensch jemals jenes "optimale Gleichgewicht seiner Seele" finden
+knnte, wie Elias dies fr den vollendeten Zivilisationsproze in
+ Aussicht stellt, mu nach Freud als eine naive Utopie angesehen
+werden.
+
+ Es ist bekannt, da Freud trotz dieser dsteren Perspektive dem
+Ich noch gengend Kraft zutraute, um - notfalls mit Untersttzung der
+Psychoanalyse - der Wiederkehr des Verdrngten standzuhalten. Und es
+ist auch bekannt, worauf sich dieses Vertrauen grndete: auf die
+Annahme, da das ber-Ich der Erbe des dipuskomplexes sei und "erst
+nach der Erledigung desselben" eingesetzt werde (Freud 1964, 85): in
+einem Stadium mithin, in dem die psychosexuelle Entwicklung und die
+Ich-Reifung bereits ein gewisses Niveau erreicht haben. Der Einbruch
+des Sozialen, so kann man zugespitzt formulieren, erfolgt im
+Freudschen Modell auf einer Stufe, auf der das Ich bereits eine solche
+Strke erreicht hat, da es seine unterschiedlichen Phantasien,
+Wnsche und Objektbeziehungen zu einem kohrenten Funktionssystem zu
+integrieren vermag (vgl. Jacobson 1978, 136ff.)
+
+ Dieses Modell ist durch den Fortschritt der psychoanalytischen
+Erkenntnis nach Freud sowohl auf individual- wie auf
+sozialpsychologischer Ebene relativiert worden. Auf
+individualpsychologischer Ebene erhellten die wie immer auch
+unterschiedlichen und z.T. gegenstzlichen Forschungen der Englischen
+Schule, der genetischen oder strukturalistischen Schule und der
+Narzimus-Theorie die grundlegende Bedeutung, die der prdipalen
+Entwicklung im Rahmen des Sozialisationsvorgangs zukommt. Melanie
+Klein, Ernest Jones u.a. entdeckten die archaischen Vorstufen des
+ber-Ichs, die weniger durch Introjektionen der ueren Realitt als
+vielmehr durch Einverleibungen vor allem der destruktiv-sadistischen
+Projektionen des Kleinkindes bestimmt sind (vgl. Klein 1928/1985;
+1973, 21, 157ff.; Jones 1978). Ren Spitz, Margaret S. Mahler u.a.
+arbeiteten die konstitutive Funktion der Mutter-Kind-Dyade bzw.
+Symbiose sowie des Loslsungs- und Individuationsvorgangs heraus und
+dokumentierten die vielfltigen pathogenen Wirkungen, die ein
+psychotoxisches oder unzureichendes Verhalten der Mutter auf die
+Psyche des heranwachsenden Kindes haben kann (vgl. Spitz 1967; Mahler
+1972, 1978). Autoren wie Kohut und Kernberg endlich erklrten die
+zunehmende Zahl von Charakterstrungen mit einer mangelhaften Ablsung
+der narzitischen Energien von archaischen Objekten wie dem Gren-
+Selbst und den idealisierten Eltern-Imagines (Kohut 1976; Kernberg
+1978). Freuds Vorstellungen erwiesen sich vor diesem Hintergrund nicht
+als falsch, wohl aber als zu stark auf die vterliche Intervention in
+der dipalen Phase fixiert.
+
+ Noch weiter relativiert wurden diese Vorstellungen durch die
+psychoanalytisch orientierte Sozialpsychologie, die mit plausiblen
+Argumenten auf den Klassencharakter und die Historizitt der von Freud
+beschriebenen dipalen Konfiguration hinwies. Klassencharakter: denn
+diese Konfiguration, die durch die Intensitt der Mutter-Kind-Symbiose
+sowie durch die Sprengung derselben durch den verbietenden und Distanz
+zum Lustprinzip erzwingenden Vater bestimmt ist, spiegelt eindeutig
+die Zwnge der brgerlichen Kleinfamilie mit ihrer scharfen
+Rollentrennung. Historizitt: denn dieser Familientypus kann
+angesichts vernderter Arbeitsbedingungen und
+Geschlechtsrollenzuweisungen als kulturell nicht mehr so bestimmend
+wie noch zu Freuds Zeiten angesehen werden.
+
+ Dafr sind viele Ursachen verantwortlich, die hier nur angedeutet
+werden knnen: die 'Entwertung all der Eigenschaften, die einmal die
+ Vaterkultur getragen haben' (Mitscherlich), in erster Linie der
+individuellen Arbeitserfahrung und des familialen Besitzes von
+Produktionsmitteln; die Entstehung eines nivellierten Gesamtarbeiters
+(Marx), in dem die Proletarisierung Massenschicksal ist; die
+Ausdifferenzierung und Entkoppelung vormals in der Familie
+zusammengefater Lebenslagen; die 'Polizierung' der Familie durch
+brokratische Regelung und Verrechtlichung; schlielich die
+'Sozialisierung' der Elternfunktion durch Massenmedien, peer groups
+und Therapeuten. Das Stadium der 'individualistischen
+Vergesellschaftung' (Adorno), in dem sich Sozialisation ber die
+Identifikation mit einer zugleich bedrohlichen und idealisierten
+Person vollzog, scheint vorber zu sein. "Die unterdrckende
+Trieborganisation scheint kollektiv, und das Ich durch ein ganzes
+System extrafamilialer Einrichtungen und deren Vertreter vorzeitig
+sozialisiert zu sein" (Marcuse 1967, 98; vgl. Mitscherlich 1968,
+185ff., 310ff.; Lasch 1986, 179ff.).
+
+ Da Marcuse hier von vorzeitiger Sozialisierung spricht, meint
+nicht mehr und nicht weniger, als da der Zugriff des Ganzen auf das
+Individuum zu einem Zeitpunkt erfolgt, in dem der psychosexuelle
+Reifungsproze noch nicht zur Herausbildung eines stabilen und
+kohrenten Ichs gefhrt hat. Zahlreiche Diagnosen stimmen darin
+berein, da unter den gegenwrtigen Bedingungen des abwesenden Vaters
+ein groer Teil der psychischen Energien an prdipale Objekte
+gebunden bleibt, so da fr den Aufbau und die Besetzung reifer Ich-
+und ber-Ich-Strukturen nur ein vermindertes Quantum zur Verfgung
+steht. Die Folge ist, da die frhkindliche Entwicklung gar nicht mehr
+bis zum entscheidenden dipalen Konflikt gelangt, was wiederum
+zugleich bedeutet, da die prdipalen, archaischen Anteile des ber-
+Ichs gegenber den dipalen ein bergewicht erlangen.
+
+ "So haben wir heute das folgende Problem: die hemmende, kontrollierende und leitende Funktion des berichs, die heute
+weitgehend mit der des Ichs zusammenfllt, ist durch die Schwche der Eltern, die nachgiebige Erziehung und das
+gesellschaftliche Klima abgeschwcht. Die sexuellen und aggressiven Triebe halten sich immer weniger an Regeln. Aber wir haben
+immer noch das strengere berich aus der frhen Kindheit, das in der Tiefe des Individuums fortlebt. Daraus resultieren Unruhe,
+Unbehagen, depressive Verstimmungen und Sucht nach Ersatzbefriedigungen"10.
+AAF
+ Auch fr die Psyche gilt damit, was wir bereits fr die
+soziogenetische Ebene festgestellt haben: da Vergesellschaftung unter
+Marktbedingungen ein hchst paradoxer Vorgang ist. Verglichen mit
+Freuds Zeiten ist das Netz des Sozialen engmaschiger und strker
+geworden und hat lngst auch den privaten Schonraum der Familie
+erfat, in dem Elias noch eine Enklave des gesellschaftlich nicht
+Geformten sah (I, 226f., 247, 259). Diese Expansion des Sozialen aber
+geht keineswegs einher mit einer kontinuierlich zunehmenden
+'Individualisierung' oder gar 'Massenindividualisierung' (1987, 273,
+242), sondern macht Individuierung zu einer immer schwerer zu
+bewltigenden Aufgabe. Durch den Fortfall jener Faktoren, die in der
+brgerlichen Familie eine sukzessive Einschrnkung und Frustrierung
+der archaischen Wnsche und Phantasien durchsetzten, wird die Macht
+des Unbewuten gestrkt; damit aber die Macht einer Instanz, die, im
+Gegensatz zu den Annahmen eines C.G. Jung, keine hhere Kollektivitt
+verkrpert, sondern deren Negation: die aus der gesellschaftlichen
+Kommunikation ausgeschlossene private Symbolwelt der von ihren
+prdipalen Objekten beherrschten Individuen (vgl. Lorenzer 1970, 92,
+97). Zivilisation, die einmal aus der Domestizierung des Archaischen
+entsprang, schlgt damit in ihr Gegenteil um: in die Wiedererzeugung
+des Archaischen "in der Zivilisation durch die Zivilisation selbst"
+ (Adorno 1971, 42). Es spricht gegen die Zivilisationstheorie von
+Elias, da sie noch nicht einmal die Mglichkeit einer derartigen
+Entwicklung errtert11.
+
+
+
+ 3. Der letzte hier zu diskutierende Einwand stammt aus der
+Systemtheorie und besagt, da Elias dem Unterschied zwischen
+Interaktions-, Organisations- und Gesellschaftssystemen nicht gengend
+Rechnung trgt. Interaktionssysteme sind, nach der Definition
+Luhmanns, dadurch bestimmt, da Anwesende sich wechselseitig
+wahrnehmen und auf dieser Grundlage miteinander kommunizieren. Wegen
+dieser Bindung an die konkrete Prsenz von Personen knnen sie weder
+in ihren internen noch in ihren externen Beziehungen sonderlich hohe
+Komplexitt erreichen, eine Beschrnkung, die noch dadurch verstrkt
+wird, da die Erfordernisse der thematischen Konzentration und der
+linearen Sequenz der Beitrge sehr zeitraubend sind. -
+Organisationssysteme ermglichen dagegen eine hhere sachliche und
+zeitliche Generalisierung, weil sie auf Mitgliedschaftsregeln
+aufbauen. Auf der Basis solcher Regeln ist es mglich, hochgradig
+knstliche Verhaltensweisen dauerhaft zu reproduzieren, die sich durch
+ein hohes Ma an Motivgeneralisierung und Verhaltensspezifikation
+auszeichnen. - Der Begriff des Gesellschaftssystems schlielich zielt
+auf die umfassendste Form von Kommunikation: das Sozialsystem par
+excellence, das als Bedingung aller anderen sozialen Systeme fungiert
+(damit auch aller Interaktions- und Organisationssysteme). Es ist
+nicht einfach die Summe aller Organisationen und Interaktionen,
+sondern ein System hherer Ordnung. Es schliet neben Interaktionen
+auch interaktionsfreie Handlungen wie z.B. schriftliche Kommunikation
+ein, grenzt das Soziale vom Nichtsozialen ab und ermglicht die
+Ausdifferenzierung von Subsystemen, die auf bestimmte, nur ihnen
+zurechenbare Funktionen spezialisiert sind (Luhmann 1974, 143; 1982,
+11f.).
+
+ Mit dieser Unterscheidung verbindet Luhmann eine evolutionre
+Perspektive. Obwohl keine Gesellschaft jemals ganz in Interaktionen
+aufgeht, gilt doch fr archaische Gesellschaften, in denen die
+Funktionsdifferenzierung nur wenig entwickelt ist, da sie
+interaktionsnah gebildet werden (Luhmann 1985, 576). Auch in den
+vormodernen Hochkulturen spielen Interaktionssysteme noch eine
+fhrende Rolle, wenngleich wichtige Funktionen bereits durch
+Organisationen erledigt werden: das Prinzip der Stratifikation, nach
+dem diese Gesellschaften gegliedert sind, hat zur Folge, da die
+Gesellschaft als Ganze durch das Kontaktnetz der Oberschicht
+reprsentiert und symbolisiert wird. Oberschichteninteraktion kann
+deshalb als Integrationmodus stratifizierter Gesellschaften angesehen
+werden (Luhmann 1980, 84).
+
+ In der modernen Gesellschaft dagegen, die auf voll durchgefhrter
+funktionaler Differenzierung beruht, kommt dem Interaktionssystem
+keine integrative Aufgabe mehr zu. Wohl bleibt Interaktion eine
+Basisbedingung von Gesellschaft, die sich ja schlielich durch
+soziales Handeln konstituiert. Doch ist die Gesellschaft mit der
+Delegation grundlegender Funktionen an Subsysteme, mit der Entstehung
+ausgedehnter Organisationssysteme und nicht zuletzt mit der
+Erweiterung zur Weltgesellschaft so komplex und berpersnlich
+geworden, da sie sich durch Interaktion nicht mehr reprsentieren,
+geschweige denn bewltigen lt.
+
+ "Die Gesellschaft ist, obwohl weitgehend aus Interaktionen bestehend, fr Interaktion unzugnglich geworden. Keine
+Interaktion, wie immer hochgestellt die beteiligten Personen sein mgen, kann in Anspruch nehmen, reprsentativ zu sein fr
+Gesellschaft. Es gibt infolgedessen keine 'gute Gesellschaft' mehr. Die in der Interaktion zugnglichen Erfahrungsrume vermitteln
+nicht mehr das gesellschaftlich notwendige Wissen, sie fhren wohlmglich systematisch in die Irre. Auch die Interaktionsfelder, die
+sich unter irgendwelchen Gesichtspunkten zusammenfgen und aggregieren lassen, lenken die Aufmerksamkeit uerstenfalls auf
+Funktionssysteme, vielleicht auch auf regionale Abgrenzungen (Nationen), nicht aber auf das umfassende System
+gesellschaftlicher Kommunikation" (Luhmann 1985, 585).
+AAF
+ Im gleichen Mae, wie die Interaktion an gesamtgesellschaftlicher
+Relevanz verliert, schiebt sich die Organisation in den Vordergrund.
+Dieselben Prozesse, die zur Auseinanderziehung der Systemebenen von
+Gesellschaft und Interaktion fhren - die Ausdifferenzierung und
+durchgehende Monetarisierung der Gesellschaft, die Verrechtlichung der
+Erhaltungs- und Fortsetzungsbedingungen tglicher Lebensfhrung, die
+wachsende Bedeutung von Schulerziehung und Berufswahl fr die
+individuelle Biographie (Luhmann 1981, 360f.) - begnstigen nach
+Luhmann eine massenhaft-spontane 'Autokatalyse' von Organisationen und
+eine entsprechende Verallgemeinerung der diesem Systemtypus eigenen
+Besonderheiten: der Engfhrung von Kommunikation auf Entscheidungen
+und Verknpfungen von Entscheidungen; der Bindung an Weisungsketten,
+mterhierarchien und Kontrollmechanismen; der Unterwerfung unter
+programmierte Ziele und Strategien; der Entlastung von moralischen
+Erwgungen und gesamtgesellschaftlichen Reflexionen.
+
+ Allerdings bedeutet diese unbestreitbare Expansion von
+Organisationen und organisationsspezifischen Verhaltensmustern nicht,
+da sich die Gesellschaft in ein einheitliches Organisationssystem
+verwandelt. Die Gesellschaft konstituiert sich heute als
+Weltgesellschaft und bersteigt schon allein dadurch den Horizont des
+Organisierbaren. Auch innerhalb der einzelnen Funktionsbereiche ist
+die Komplexitt so sehr angewachsen, da die Aufgaben der Wirtschaft
+oder der Erziehung durch eine einzige Organisation nicht bewltigt
+werden knnten. Selbst wenn es z.B. gelnge, Produktionsorganisationen
+durch eine weltweite Planung zu integrieren, knnten gleichwohl
+Produktions- und Konsumentscheidungen nicht zu einer einzigen
+Organisation zusammengeschlossen werden (Luhmann 1982, 15).
+Organisierte Sozialsysteme mgen der Rahmen sein, in dem sich ein
+groer, wenn nicht der grte Teil des sozialen Alltagshandelns
+vollzieht. Zu einer Megaorganisation, in der die Unterscheidung von
+Gesellschaftssystem und Organisationssystem hinfllig wrde, fgen sie
+sich nicht.
+
+ Im Lichte dieser Unterscheidungen liegt der Grundmangel der
+Zivilisationstheorie in der Totalisierung von Verhaltensformen, die
+fr Interaktionssysteme typisch sind. Diese Totalisierung ist
+historisch gesehen nicht vllig falsch. Sie kann sich darauf berufen,
+da unter den Bedingungen stratifikatorischer Differenzierung in der
+Tat ein spezifisches Interaktionssystem - der Hof -
+Integrationsaufgaben erfllte und insofern von
+gesamtgesellschaftlicher Relevanz war. Elias beschrnkt die Gltigkeit
+der Zivilisationstheorie jedoch ausdrcklich nicht auf diese Phase,
+sondern fat auch die der funktionalen Differenzierung und den
+organisierten Sozialsystemen gemen neuen Verhaltensmuster als
+Manifestation des Zivilisierungsprozesses auf, obgleich er sehr wohl
+einrumt, da das Schema der nichthfischen mittelstndischen
+Zivilisationslinie von dem der hfischen verschieden ist, und obgleich
+er erkennt, da die 'guten Gesellschaften', die nach der hfischen
+ kommen, "nicht mehr im entferntesten die gleiche formgebende Kraft"
+haben (II, 416; 1975, 144f., 172ff.). Der Proze der Zivilisation,
+lautet eine mehrfach wiederholte Kernthese, vollzieht sich "ohne
+Bruch", "in einer immer intensiveren Ausbreitungsbewegung", die mit
+der Bildung eines hfischen Sozialcharakters beginnt und - vorerst -
+mit einem von diesem abgeleiteten Nationalcharakter endet (I, 43f.).
+
+ Die Behauptung aber, da die "hfisch-aristokratische
+Menschenmodellierung (...) in dieser oder jener Form in die
+berufsbrgerliche ein(mndet) und (...) in ihr aufgehoben
+weitergetragen (wird)" (II, 418), wird der im Begriff der 'Aufhebung'
+liegenden Dialektik nicht gerecht. Gewi gibt es eine Aufhebung im
+Sinne des Bewahrens und Fortfhrens, die sich in der bernahme
+bestimmter Mechanismen der Selbstkontrolle (Langsicht,
+Affektbeherrschung) oder in Erscheinungen wie der 'Demokratisierung
+der Literalitt' (Goody/Watt) zeigt. Aufhebung aber meint auch stets -
+und in diesem Falle mehr als alles andere - Negation, Auer-Geltung-
+Setzen, Beenden. So hat die Demokratisierung der Literalitt, wie
+Goody und Watt gezeigt haben, durchaus nicht nur zu einer kollektiven
+Aneignung des kulturellen Erbes gefhrt, sondern auch dessen
+Verbindlichkeit aufgelst und dessen Homogenitt zerstrt12, und so
+resultiert denn auch die Aufhebung des Privilegs nicht in der
+Verallgemeinerung der in der Oberschicht geltenden Codes, sondern
+allenfalls in deren Musealisierung.
+
+ Luhmann zufolge ist diese Entwicklung unausweichlich, denn erstens
+verliert die Oberschichteninteraktion mit zunehmender
+Ausdifferenzierung von Subsystemen ihren Reprsentationscharakter -
+das Ganze lt sich durch keinen Teil mehr darstellen, sondern ist nur
+noch in den Teilen selbst prsent; und zweitens geht durch die
+Radikalisierung der Funktionsdifferenzierung die Conditio sine qua non
+hfischer Interaktion verloren: die Verfgung ber ein ausreichendes
+Quantum nichtfunktionsbezogener Zeit, alteuropisch ausgedrckt: Mue.
+Nur eine Schicht, die ihr gesamtes Dasein 'mig' verbrachte, d.h.
+nicht primr in den Aufgaben der Produktion und Reproduktion des
+unmittelbaren Lebens aufging, konnte jene gesteigerte Fhigkeit zur
+Wahrnehmung des eigenen und des fremden Selbst ausbilden, von der das
+Leben bei Hofe abhing; nur eine Schicht, die auf Reprsentation des
+Ganzen spezialisiert war, konnte sich auf die Stilisierung der
+Umgangsformen, auf die Produktion und Interpretation jener Zeichen
+konzentrieren, in denen sich Rang und Ehre, Achtung oder Miachtung
+dokumentierten. Wenn Zivilisation darin besteht, da man dem Umweg vor
+der Abkrzung, der indirekten Aktion vor der direkten den Vorzug gibt,
+so setzt sie eine Ordnung voraus, die wenigstens ber ein Gut im
+berflu verfgt: Zeit.
+
+ Organisierte Sozialsysteme indes, wie sie in der
+berufsbrgerlichen Gesellschaft dominieren, beruhen auf der
+systematischen Verknappung von Zeit. In ihnen geht es, wie man nicht
+nachdrcklich genug hervorheben kann, um Zeitgewinn und um die damit
+verbundenen Konkurrenzvorteile gegenber anderen Organisationen: daher
+die Verkrzung und Kanalisierung der Kommunikation, die simultane
+Erledigung von Aufgaben durch Arbeitsteilung, die Entlastung der
+Operationen von der zeitraubenden Notwendigkeit, fr jeden Einzelfall
+natrlich gewachsene Motive oder moralischen Konsens zu beschaffen13.
+Es ist klar, da nur eine derartige konomisierung der Zeit die
+Organisationen in die Lage versetzt, die Flle der ins Unendliche
+gestiegenen Anforderungen zu bewltigen. Ebenso klar ist aber, da die
+ 'Temporalisierung von Komplexitt' nur im Gegenzug gegen die fr die
+traditionellen Oberschichten typischen Formen der Zeitverwendung
+durchgesetzt werden kann - und damit auch im Gegenzug gegen die
+civilisation. Wo die Knappheit der Zeit und die Vordringlichkeit des
+Befristeten (Luhmann) regiert, wird Achtungskommunikation alten Stils
+zum Luxus, der nur noch auerhalb der organisierten Sozialsysteme (und
+hier oft noch nicht einmal gegen Geld) zu haben ist. Gepflegte
+Geselligkeit und galante Konversation, Zivilisierung der Gesten und
+der Sprache, Takt und Respekt, alle diese Formen erweisen sich heute
+als Oberschichtenphnomene, die "nach der Auflsung der
+stratifizierten Gesellschaftsordnung jedenfalls nicht als
+Kultiviertheitserwartung fortgesetzt werden"14.
+
+ Nicht da sie vllig verschwnden. Distinktionsstrategien spielen
+auch heute noch eine wichtige Rolle im gesellschaftlichen Leben, vom
+ehemaligen Adel ber die Bildungseliten bis hinab zur Unterwelt
+(Girtler 1989). Aber der ubiquitre Zeitdruck erzwingt doch eine so
+unbersehbare Reduktion und Minimierung aller Schnrkel und Floskeln,
+eine solche Raffung aller umstndlichen Vermittlungen, da sich der
+inter- und intraorganisatorische Kommunikationsstil mehr und mehr
+jener zeitgenssischen Architektur angleicht, die das Ornament zum
+Verbrechen erklrte (A.Loos). Zeitkonomie und Zivilisation schlieen
+einander aus. Wer diesen Gegensatz verleugnet und auch fr die
+Gegenwart noch am Zivilisationsbegriff festhalten will, mu daraus
+alle Inhalte tilgen, die einmal mit Zivilisiertheit verbunden waren.
+
+
+
+
+
+
+
+
+
+
+Anhngern nicht gnzlich entgangen. Besonders Cas Wouters hat sich
+ihnen gestellt und einen Trend zur Informalisierung diagnostiziert,
+den er auf Vernderungen in der Machtbalance zwischen den sozialen
+Klassen, den Generationen und den Geschlechtern zurckfhrt (Wouters
+1979; 1986). Elias hat dann diese Diagnose aufgegriffen und alle
+Versuche abgewiesen, daraus eine Falsifizierung der
+Zivilisationstheorie ablesen zu wollen. Die Informalisierung, so seine
+These, sei im Gegenteil ein Beleg fr die Intensivierung des
+Zivilisationsprozesses, weil sie mit einer "Zunahme des
+gesellschaftlichen Drucks zur Selbstregulierung" einhergehe (Elias
+1989, 60). Dem ist zweierlei entgegenzuhalten. Elias und Wouters haben
+sicher recht, wenn sie in der Informalisierung nicht einfach einen
+Rckfall in Chaos und Regellosigkeit sehen wollen. Selbstverstndlich
+ist die moderne Gesellschaft, bei aller Lockerung von Konventionen und
+Standards, durch ein sehr hohes Ma an Regulierung gekennzeichnet.
+Nur: diese Regulierung ist ein Effekt der organisierten Sozialsysteme,
+die strukturell in keinerlei Beziehungen zu den Interaktionssystemen
+der hfischen Gesellschaft stehen. Der in ihnen endemische
+Rationalisierungszwang drfte weit mehr als alle Vernderungen in den
+Machtbalancen zwischen verschiedenen sozialen Gruppen dazu beigetragen
+haben, da die berkommenen Interaktionsrituale nach und nach ber
+Bord geworfen wurden. Zweitens aber kann die Informalisierung auch
+deswegen keine Intensivierung des Zivilisationsprozesses sein, weil
+ die partielle Entstrukturierung der ueren Beziehungen mitnichten
+durch Strukturgewinne im Innern der Subjekte kompensiert wird. Die
+"vorzeitige" Sozialisation, so haben wir im vorigen Abschnitt gesehen,
+fhrt gerade nicht auf eine "hhere Ebene des Bewutseins und
+wahrscheinlich auch eine hhere Ebene der Selbststeuerung" (Wouters
+1979, 294), sondern zu einer Schwchung des Ichs und einer
+Entstrukturierung des ber-Ichs. Weit davon entfernt, ber die von den
+Zivilisationstheoretikern supponierte Souvernitt zu verfgen, die es
+ihm erlaubte, rigide Kontrollen in bestimmte Bereiche zu lockern,
+scheint das Subjekt eher zum Zerfall zu tendieren: zur Spaltung in ein
+uneigentliches Selbst, das sich den externen Funktionsimperativen der
+organisierten Sozialsysteme anpat, und in ein eigentliches Selbst,
+das sich in den Intermundien dieser Systeme entfaltet und berall
+dort, wo es auf keine Schranken mehr stt, den Impulsen seiner
+jeweiligen emotionalen Befindlichkeit folgt (Gerhards 1988, 237f.).
+Wie dnn dabei die Linie ist, die die psychische von der physischen
+Inkontinenz trennt, wei jeder, der die ffentlichen Verkehrsmittel in
+Grostdten benutzt.
+
+
+
+
+
+
+
+
+
+
+eine hfische Zivilisation im Abendland gab und da Norbert Elias ihr
+Theoretiker ist. Ich bezweifle auch nicht, da diese hfische
+Zivilisation in einigen Lndern wie Frankreich auf die aufsteigenden
+brgerlichen Schichten abgefrbt und deren nationalen Habitus geprgt
+hat, wiewohl man hinzufgen sollte, da dies historisch gesehen eher
+die Ausnahme als die Regel war. Das Brgertum ist eine sehr
+abendlndische Erscheinung, und selbst innerhalb des Abendlandes gibt
+es zahlreiche Flle, in denen es sich dem Einflu des Hofes entzog.
+Der Hoffnung des Liberalismus, die Brger mchten sich die Manieren
+der guten Gesellschaft aneignen, whrend die 'historischen Klassen' im
+Verdienen tchtiger werden sollten, hielt schon Karl Kraus entgegen,
+da "aller Wahrscheinlichkeit nach schlielich die historischen
+Klassen ohne irdische Gter und mit schlechten Manieren, die
+vordringenden Schichten aber mit zweifachem Besitzstand die
+Gesellschaft reprsentieren werden" (Kraus 1916, 7). Schlielich ist
+auch unbestritten, da es in der Neuzeit eine weitausgreifende
+Affektmodellierung gegeben hat, in die immer weitere Schichten
+einbezogen wurden.
+
+
+"evolutionr wirkende Kontinuitt des Zivilisationsbegriffs" behauptet
+und die Geschichte der hfischen Affektmodellierung zur "Vorgeschichte
+der Modernisierung", gar zur "Vorgeschichte des modernen
+Sozialcharakters" erklrt (Kuzmics 1989, 82, 89f.). Eine derart
+notwendige Beziehung, wie sie hier unterstellt wird, existiert nicht.
+Es gibt sie historisch nicht, weil die Geschichte zahlreiche hfische
+Gesellschaften kennt, die sich nicht zu berufsbrgerlichen
+Gesellschaften entwickelt, sondern stattdessen in
+Kriegergesellschaften zurckverwandelt haben - Japan nach der Heian-
+ra ist hierfr vielleicht das beste Beispiel; der eigentliche
+ Durchbruch zur berufsbrgerlichen Gesellschaft erfolgte dagegen in
+Lndern, in denen nach Elias' eigener Einsicht der Hof nur eine
+geringe oder gar keine Rolle spielte - England und den USA (1975, 104,
+147f.). Es gibt eine solche notwendige Beziehung aber auch nicht im
+logisch-strukturellen Sinne, weil zwischen der Affektmodellierung, wie
+sie fr Interaktionssysteme typisch ist, und derjenigen, wie sie
+Organisationssysteme fordern, ein Hiatus klafft. Mit Robert Muchembled
+ist davon auszugehen, da die fr die hfische Welt typische
+Verfeinerung der Sitten vor allem die Funktion einer Abgrenzung und
+Distanzierung der Oberschichtenkommunikation von anderen
+Kommunikationsformen hatte und Muster entwickelte, die sich nur um den
+Preis des Lcherlichen, Parvenuhaften von anderen Schichten kopieren
+lieen - schon deshalb, weil keine dieser Schichten ber den
+erforderlichen Abstand zur Welt des Geldes und des 'Berufs' verfgte.
+Der Zwang zur Langsicht, die Schemata der Verhaltensregulierung und -
+kontrolle, die fr diese Schichten mageblich sind, resultieren aus
+den Zwngen dieser Welt, nicht aus den Vorgaben der
+Oberschichtenkommunikation; Zivilisierung ist keine Bewegung von oben
+nach unten, die immer noch andauert, sondern eine Bewegung, die die
+Kluft zwischen oben und unten zu zementieren trachtet:
+
+
+Mechanismus zur Nivellierung der Unterschiede. Er bringt im Gegenteil verschiedenartige Wesen hervor, die auf verschiedenen
+Stufen der soziokulturellen Hierarchie angesiedelt sind. Diese Menschen - das gilt selbst noch fr das Ende des Ancien Rgime - sind
+durchaus nicht aus einem Stck gemacht, sondern fgen sich in Gesellschaftsschichten ein, die unterschiedliche Verhaltensstrnge
+und gegenstzliche konomische Entwicklungen beerben. Mit anderen Worten, nichts wre verfehlter, als die Entwicklung der
+Mentalitten vom ausgehenden Mittelalter bis zur Revolution als eine Art unbestimmten Gesamtfortschritt darzustellen, dem sich die
+einzelnen Gruppen dann mehr oder weniger vollkommen anpaten" (Muchembled 1990, 184).
+
+
+Rhythmus durch die Ausdifferenzierung neuer, eigengesetzlicher
+Funktionssysteme und Organisationen bestimmt wird. Jeder dieser Schbe
+ist, psychogenetisch gesehen, mit einer Schwchung, wenn nicht sogar
+mit einem Abbau der bis dahin dominierenden Instanzen verbunden. Das
+brgerliche Ich ist, als psychische Instanz, schwcher als das
+hfische, weil es nicht nur mit dem Es und der Auenwelt, sondern auch
+mit einem ber-Ich zu rechnen hat, das vom Individuum eine
+Staatsfrmigkeit seiner Gesinnungen, nicht blo seiner ueren
+Handlungen verlangt (Vowinckel 1983, 150). Das nachbrgerliche Ich ist
+noch schwcher, weil es nicht mehr auf dem Weg einer Identifikation
+mit dem Aggressor - dem dipalen ber-Ich -Strke gewinnen kann,
+vielmehr schutzlos und unvermittelt der Gewalt prdipaler,
+archaischer Konfigurationen ausgeliefert ist, die den Anspruch auf
+Grandiositt und Omnipotenz erheben. Mit jedem neuen Schub in der
+Entwicklung der Sozialkontrolle erhlt somit das Ich neue und stets
+mchtigere Gegner, die seine Souvernitt fortwhrend einschrnken -
+und damit seine Fhigkeit zu dem, was Elias mit Recht als
+Wesensmerkmale des zivilisierten Habitus herausstellt: Selbstdistanz,
+Selbstkontrolle, Takt, 'taking the role of the other', das Spiel mit
+dem Schein und nicht zuletzt auch die Technik der Simulation, die dem
+protestantischen Kleinbrger als Unaufrichtigkeit erscheinen mag, in
+Wirklichkeit aber die Fhigkeit bedeutet, die anderen mit der Last des
+eigenen Selbst zu verschonen (Sennett 1983, 299).
+
+
+der Zivilisation. Sie verallgemeinert keineswegs die Formen, die in
+der hfischen Zivilisation auf einen kleinen Kreis von Privilegierten
+beschrnkt waren, sondern beseitigt mit dem Privileg auch diese
+ Formen. Sie fhrt nicht zu einer Anverwandlung der bisher
+Ausgeschlossenen an die Ausschlieenden, sondern umgekehrt zum
+Vordringen des aus der Zivilisation Ausgeschlossenen. Seit dem 18. Jh.
+ist die vorherrschende Tendenz in der Politik wie in der Kunst eine
+nicht abreiende Kette von Demaskierungen, Entlarvungen und
+Enthllungen, in der eine Konvention und Tradition nach der anderen
+demontiert wird und immer neue Schichten des Verdrngten ans Licht
+gezogen werden; und wenn es eine Zeitlang so schien, als knnte mit
+der Ausweitung des ffentlichen Erziehungswesens ein Gegengewicht
+geschaffen werden, so ist dieses mittlerweile so stark segmentiert und
+mit anderen Aufgaben berfrachtet, da selbst der amerikanische
+Prsident sich alarmiert zeigt. Die sprachlichen Ausdrucksformen der
+Unterschichten, insbesondere die Koppelung von Sexualitt und Gewalt,
+sind lngst gesellschaftsfhig geworden und machen, wie ein Blick in
+den 'Anti-dipus' zeigt, selbst vor dem wissenschaftlichen Diskurs
+nicht mehr halt; die Distanzierung vom Krper, die diesen zum Medium
+der Demonstration festgefgter Konventionen machte, ist einer
+aufdringlichen Thematisierung desselben gewichen, bei der der Krper
+zwar mit Signalen berladen und - wie in der Punk-Bewegung - in
+extremer Weise stilisiert wird, jedoch nichts reprsentiert und nichts
+mehr mitzuteilen hat (Bette 1987; Georgieff 1987); und wer gezwungen
+ist, sich am Straenverkehr zu beteiligen, wird rasch feststellen
+mssen, da auch die Survival-Mentalitt der Unterschichten sich
+allgemeiner Anerkennung erfreut. Elias pflegt in seinen letzten
+Arbeiten hufig auf die sinkenden Unfallziffern zu verweisen, um seine
+These vom gestiegenen Selbstzwang zu erlutern (1978, 22). Doch fnf
+Minuten auf der Autobahn sollten eigentlich gengen, um sich davon zu
+berzeugen, da hier nicht die Zivilisation herrscht, sondern das
+Gesetz des Dschungels. Nicht da dort jeder Mensch jedem Menschen ein
+Wolf wre, das hatte schon Hobbes mit seinem bekannten Diktum nicht
+gemeint. Es gibt auch heute unendlich viele Beispiele von
+Zuvorkommenheit und Hilfsbereitschaft. Aber eine Welt, in der man bei
+jedem Streit um eine Parklcke, bei jeder Beschwerde ber zu lauten
+Partylrm damit rechnen mu, erschossen, erstochen oder
+zusammengeschlagen zu werden, ist von der Zivilisation noch immer
+genau so weit entfernt wie der von Hobbes beschriebene Kriegszustand,
+"which is worst of all, continual fear, and danger of violent death;
+and the life of man, solitary, poor, nasty, brutish, and short"15.
+
+
+Leitbegriff der Zivilisationstheorie zu revidieren. Anstatt in ihm
+nach dem Vorbild der franzsischen Aufklrung zwei nur zufllig-
+historisch verbundene Komplexe zusammenzuzwingen - die hfischen
+Interaktionsregeln und die Rationalittsstrukturen organisierter
+Sozialsysteme - sollte man ihn wieder enger fassen und seiner
+geschichtsphilosophischen Konnotationen entkleiden. Vielleicht hatte
+Kant doch recht, als er vorschlug, den Zivilisationsbegriff auf
+"Manieren, Artigkeit und eine gewisse Klugheit" zu beschrnken,
+vermittels welcher der Mensch 'gesellschaftsfhig' werde - womit er
+natrlich die 'gute Gesellschaft' meinte (Kant 1968, XII, 707). Eine
+solche Eingrenzung htte jedenfalls den Vorzug, da sie uns deutlicher
+als Elias die Vergnglichkeit der Bedingungen vor Augen fhrte, an die
+Zivilisation nun einmal gebunden ist, und sie knnte es vielleicht
+ermglichen, die Theorie der Zivilisierung durch die lngst
+berfllige Theorie der Entzivilisierung zu ergnzen.
+
+
+keine Rcksicht halten, auch als bloe Spiel-Form nicht. - Und ebenso schrumpft in einer Welt, die uns um Mue und die anderen
+ Bedingungen des Privaten betrgt, die Subtilitt unseres seelischen Privatlebens" (Anders 1986, 13).
+
+
+ 
+
+
+
+
+
+
+
+Zivilisation, so wre dazu kaum etwas geeigneter als das Konzept der
+Disziplinargesellschaft, das Michel Foucault in den siebziger Jahren
+entwickelt hat. Gewi ist der Gegensatz nicht absolut. Beide Autoren
+interessieren sich fr Prozesse der Normierung und Regulierung, beide
+sehen eine enge Beziehung zwischen Individuierung und Subjektivierung
+einerseits, sich verdichtenden Machtverhltnissen andererseits.
+Foucault bezieht diese Entwicklungen jedoch nicht wie Elias auf ein
+Zentrum, und er sieht sie auch nicht aus der Perspektive eines
+zunehmenden Souvernittsgewinns der (Welt-) Gesellschaft und des
+einzelnen. Die moderne Gesellschaft gilt ihm als polyzentrisches
+Geflecht von Disziplinarapparaten und die Individuierung als
+Manifestation der Macht. Anstelle der Vision einer friedlichen
+Kooperation steht bei ihm die eines 'verallgemeinerten Krieges' (1978,
+40)16 , anstelle der Aufhebung willkrlicher Macht deren Verfestigung
+zu 'Herrschaftszustnden' (1985, 11). "Die Menschheit", so Foucaults
+nietzscheanisches Credo, "schreitet nicht langsam von Kampf zu Kampf
+bis zu einer universellen Gegenseitigkeit fort, worin die Regeln sich
+fr immer dem Krieg substituieren; sie verankert alle ihre
+Gewaltsamkeiten in Regelsystemen und bewegt sich von Herrschaft zu
+Herrschaft" (1974, 95).
+
+
+nicht mehr zu berblicken. Vieles davon ist Einfhrung oder Paraphrase
+und wird so schnell vergessen werden, wie es geschrieben wurde17 .
+Doch hat Foucault inzwischen auch ernstzunehmende Gesprchspartner
+gefunden, die so schwerwiegende Einwnde gegen seinen Entwurf
+formuliert haben, da sich dessen einfache Fortschreibung oder
+Kanonisierung verbietet. Ich werde zunchst Foucaults Grundgedanken
+knapp skizzieren, danach die wichtigsten Gegenargumente prsentieren
+und anschlieend errtern, inwieweit die Theorie der
+Disziplinargesellschaft noch zu halten ist.
+
+
+
+
+
+
+
+
+
+
+Genealogie der Disziplin religisen Faktoren ein erhebliches Gewicht
+zu. Schon der vorchristliche, vor allem aber der christliche Orient
+habe einen spezifischen, pastoralen Machttypus entworfen, dessen Pole
+die Herde und der dieselbe zusammenhaltende Hirt oder Schfer seien;
+diese Pastoralmacht habe sich dann vom 2. Jh. an ununterbrochen
+verfeinert und sich mit der politischen Macht assoziiert, wodurch zwei
+verschiedene Machttechniken miteinander verbunden worden seien: das
+kirchliche Gestndnis- und Beichtritual und die Formulierung und
+Vollstreckung des Gesetzes (1982, 17ff.). Aus dieser Kombination, die
+ zum erstenmal im Inquisitionsproze praktische Gestalt angenommen
+habe, sei jene doppelte Bedeutung von 'Subjektivierung' entsprungen,
+die seither das Abendland bestimmt habe: Subjektivierung im Sinne
+einer Unterwerfung unter Kontrolle und Abhngigkeit und
+Subjektivierung im Sinne einer Bindung an die eigene Identitt qua
+Bewutsein und Selbsterkenntnis (1987, 247f.)
+
+
+nur geringe Aufmerksamkeit. Weitaus intensiver befat er sich dagegen
+mit dem eigentlichen Formierungsstadium, das er auf das 17. und 18.
+Jh. datiert. Zwar dominiert zu diesem Zeitpunkt mit der absoluten
+Monarchie noch eine Form der Macht, "die wesentlich an der Abschpfung
+und am Tode orientiert war" (1977, 110) - eine Form, die sich
+verfassungsrechtlich in der Souvernitt und der ihr
+korrespondierenden Gesetzgebungskompetenz manifestiert, und die
+strafrechtlich in den Riten und Marterzeremonien der
+'Abschreckungsmacht' erscheint. Zur gleichen Zeit aber bereitet sich
+gesamtgesellschaftlich ein Umbruch vor, in dessen Verlauf auch die
+Macht eine tiefgreifende Transformation erfhrt. Am Beispiel der
+buerlichen Delinquenz zeigt Foucault, da das klassische Zeitalter
+der Schauplatz neuer Formen der Gesetzwidrigkeit ist, die sich nicht
+mehr primr gegen die Rechte des Adels oder des Knigs richten,
+sondern gegen Gter; ein Wandel, mit dem die Bevlkerung auf neue
+Formen der Kapitalakkumulation, der Produktionsverhltnisse, der
+Aneignungsstrukturen reagiert. Mit dem Anwachsen kapitalistischer
+Produktionsapparate und dem demographischen Wachstumsschub des 18.
+Jhs. verbreitern und vervielfachen sich die Konfliktlinien und lassen
+dadurch die klassische, auf der Veranstaltung exemplarischer
+Straffeste beruhende Souvernitts- und Abschreckungsmacht zunehmend
+unwirksam werden (1976, 110, 280).
+
+
+engen Rahmen herauswchst, in den sie durch die Institutionen der
+Monarchie gebannt war, ist die Zeit, in der neue Verfahren und
+Mechanismen der Macht auf den Plan treten; Verfahren, "die nicht mit
+dem Recht, sondern mit der Technik arbeiten, nicht mit dem Gesetz,
+sondern mit der Normalisierung, nicht mit der Strafe, sondern mit der
+Kontrolle, und die sich auf Ebenen und in Formen vollziehen, die ber
+den Staat und seine Apparate hinausgehen" (1977, 110f.). Welche
+Verfahren sind hier gemeint?
+
+
+Ancien Rgime beginnen sich Forderungen der Aufklrer nach
+Humanisierung des Strafrechts und konomisierung der Strafgewalt in
+einer Reihe von Reformen geltend zu machen, die die Ersetzung der
+alten 'konomie der Verausgabung und des Exzesses' durch eine
+'konomie der Kontinuitt und der Dauer' ermglichen. Whrend die
+absolutistische Souvernitts-Macht mit ihrer Sprunghaftigkeit und
+Regellosigkeit sowie der Weitmaschigkeit ihres Kontrollnetzes den
+Gesetzwidrigkeiten der Untertanen weiten Raum lie, bemhen sich die
+Justizaufklrer darum, durch Milderung der Strafen, sorgfltigere
+Kodifizierung und Rationalisierung der Gewaltausbung die Basis fr
+einen neuen gesamtgesellschaftlichen Konsens hinsichtlich der
+Strafgewalt zu schaffen, um eine wirksamere Verteidigung gegen einen
+Gegner zu ermglichen, "der jetzt raffinierter, aber auch verbreiteter
+im gesellschaftlichen Krper ist". Indem sie die Willkr des Souverns
+anprangert, bereitet die Aufklrung zugleich den Boden fr ein neues,
+perfekteres System der sozialen Kontrolle. Richter und Anklger,
+ Verteidiger und Angeklagte werden in ein diskursives Gefge
+eingeschlossen, dessen Sinn nicht in der schreckenerregenden
+Wiederherstellung der Souvernitt, sondern in der
+Wiederinkraftsetzung des Strafgesetzbuches bestehen soll (1976, 113,
+141).
+
+
+Definition schuldig bleibt, meint im wesentlichen folgendes: Auf der
+einen Seite haben wir es mit einer Kodifizierung und Rationalisierung
+zu tun, die den Untertanen zweifellos neue Sicherheiten bringt. Die
+Macht wird an Regeln gebunden, das Individuum als Rechtssubjekt
+anerkannt, die Strafe in ein Mittel verwandelt, das die
+Rechtssubjektivitt wiederherstellen soll. Auf der anderen Seite aber
+wird gerade dadurch eine uerste Verfeinerung und Vervollkommnung der
+Unterwerfung ermglicht. Der Kodifizierung entspricht eine zunehmende
+Individualisierung der Strafen und eine Objektivierung von Verbrechen
+und Verbrecher. Das Rechtssubjekt wird Gegenstand einer
+klassifizierenden und vergegenstndlichenden Betrachtungsweise, die
+den einzelnen in ein komplexes Tableau justiziabler Eigenschaften und
+Tatbestnde einordnet. Er wird geprft, beurteilt, registriert, so da
+jede seiner Eigenschaften mittels einer Reihe von Codes und deren
+Korrelierung dokumentierbar wird. Durch die vielfltigen Praktiken der
+berwachung und Kontrolle, der Einstufung und der Zuordnung bildet
+sich, was Foucault als die andere, "dunkle" Seite des Rechtssubjekts
+bezeichnet: das "Disziplinarindividuum", das von den neuen
+Machttechniken fabriziert wird (1976, 396).
+
+
+Strafjustiz. Foucault sprt sie auf in der neuen Einstellung der
+Gesellschaft gegenber dem Wahnsinn, welcher ausgegrenzt, interniert
+und in eine Form der Geisteskrankheit verwandelt wird, mit der die
+Gesellschaft nur noch ber das abstrakte Medium der Psychiatrie
+kommuniziert. Er entdeckt sie in der explosionsartigen Vermehrung der
+Diskurse ber Sexualitt, die zur Bildung eines gigantischen Registers
+der Lste und Perversionen fhrt. Er lokalisiert sie im rztlichen
+Blick und in der wissenschaftlichen Kontrolle der Krankheiten und
+Infektionen, in der administrativen Kontrolle der Heilmittel, der
+Todesflle und Geburten, der Verstellungen und Abwesenheiten,
+schlielich in der militrischen Kontrolle der Deserteure, der
+fiskalischen Kontrolle der Waren, der konomischen Planung der
+Produktionsablufe. In allen Bereichen des gesellschaftlichen Lebens
+ist das klassische Zeitalter der Schauplatz einer unerhrten
+Verdichtung der Diskurse und Identifikationsmechanismen, die allesamt
+nur das eine Ziel haben: die Herstellung des durchschaubaren und damit
+kontrollierbaren Individuums. "Die 'Aufklrung', welche die Freiheiten
+entdeckt hat", schreibt Foucault, "hat auch die Disziplinen erfunden"
+(1976, 285).
+
+
+eng aufgefat werden. Sie darf, erstens, nicht allein auf die
+Implementierung eines bestimmten Diskurstyps reduziert werden, denn
+sie hat auch nicht-diskursive Wurzeln: Etwa die Mechanismen, die in
+den Klstern und Kasernen, Manufakturen und Spitlern, Kollegs und
+Internaten entwickelt wurden. Sie darf, zweitens, nicht als Effekt
+eines Zentrums, einer gesellschaftlichen Zentralinstanz oder einer
+herrschenden Klasse, begriffen werden, da hiermit ihre pluraler,
+multipler Charakter verfehlt wrde: die Disziplinargesellschaft ist
+nicht das Ergebnis einer, sondern zahlreicher Projektionen - der
+ Projektion militrischer Methoden auf die Industrie; der
+maschinenfrmigen Funktionsweise auf die lebendige Arbeit; der
+Gefngnisdisziplin auf die Gesellschaft (1976, 284). Und sie darf,
+drittens, auch nicht als bloes Verhltnis der Repression verstanden
+werden, wie dies in der Logik des brgerlichen Legalismus oder der
+marxistischen Auffassung liegt. Die Disziplinarmacht, sagt Foucault,
+setzt zwar Unterwerfung voraus, sie parzelliert die Individuen,
+klassifiziert sie und fgt sie in eine hierarchische Ordnung ein, die
+durch przise Befehlssysteme strukturiert ist. Sie erschpft sich
+jedoch nicht darin, sondern produziert ihrerseits Individuen, die der
+von ihr geschaffenen Ordnung gem sind. "Man mu aufhren, die
+Wirkungen der Macht immer negativ zu beschreiben, als ob sie nur
+'ausschlieen', 'unterdrcken', 'verdrngen', 'zensieren',
+'abstrahieren', 'maskieren', 'verschleiern' wrde. In Wirklichkeit ist
+die Macht produktiv; und sie produziert Gegenstandsbereiche und
+Wahrheitsrituale: das Individuum und seine Erkenntnis sind Ergebnisse
+dieser Produktion" (1976, 250).
+
+
+Macht in der modernen Form des Gefngnisses, wie sie seit 1830 unter
+dem Einflu von Benthams 'Panopticon' (1787) Gestalt gewinnt. Als eine
+Institution, deren Aufgabe sich keineswegs darauf beschrnkt, den
+Freiheitsentzug zu organisieren, vielmehr von Anfang an darin besteht,
+"Transformationen an den Individuen vorzunehmen" (1976, 317),
+verkrpert das Gefngnis gleichsam die Elementarform der
+Disziplinargesellschaft, hnlich wie fr Marx die Ware als
+Elementarform der brgerlichen Gesellschaft fungiert. Das Gefngnis
+ist zugleich Kaserne und Schule, Werkstatt und Spital; es unterdrckt
+die gesellschaftlich unerwnschten Eigenschaften und modelliert die
+erwnschten. Sein Produkt sind Individuen, "die nach den allgemeinen
+Normen einer industriellen Gesellschaft mechanisiert sind" (1976,
+310). Als ein vollkommener Disziplinarapparat erfat es smtliche
+Aspekte des Individuums: seine physische Erscheinung wie seine
+moralische Einstellung, seine Arbeitsneigung wie sein
+Alltagsverhalten; und alle diese Manifestationen werden nicht nur
+kontrolliert und reglementiert, sondern von Grund auf reformiert, bis
+sie den geltenden Standards entsprechen. Das 'Kerkersystem', das
+Foucault zufolge um 1840, dem Erffnungsjahr der Jugendstrafanstalt
+von Mettray, vollstndig ausgebildet ist, enthlt in gebndelter und
+konzentrierter Form all jene Mechanismen der Normalisierung und
+Disziplinierung, die seither zu Strukturmerkmalen der
+Disziplinargesellschaft geworden sind.
+
+
+Ausdehnung und Erweiterung: vom 'Kerker-System' der Gefngnisse und
+geschlossenen Anstalten zu dem, was Foucault den 'Kerker-Archipel'
+bzw. das 'groe Kerker-Kontinuum' nennt (1976, 382f.). Vermittelt ber
+zahlreiche Sttzpunkte - die Waisenhuser, die Asyle fr 'gefallene
+Mdchen', die Lehrlingsheime, die korrespondierenden Einrichtungen wie
+Wohlfahrtsgesellschaften, Sittlichkeitsvereine, Arbeitersiedlungen und
+ Wohnheime - breitet sich das panoptische Schema ber die gesamte
+Gesellschaft aus und berzieht alle sozialen Bereiche mit dem groen
+Kerker-Netz, dessen primre Funktion in einer alles umfassenden
+Normierung besteht. Dies sicher nicht ohne Widerstand. Wo Macht ist,
+sagt Foucault, ist auch Widerstand, und er fgt hinzu: wenn es
+Machtbeziehungen gibt, so berhaupt nur deshalb, weil es Freiheit
+gibt, (1977, 116; 1985, 2O). Aber dieser Widerstand ist keine Mauer,
+kein Block, der der Disziplinierung Grenzen setzt; er ist selbst eine
+ Manifestation von Macht, eine Art Antikrper, der die Disziplinarmacht
+attackiert und zu Mutationen und Metamorphosen ntigt. Um die
+Widerstnde zu berwinden, geht die Disziplin von dem starren,
+statischen Tableau des klassischen Zeitalters zu neuen, flexibleren
+Formen der Regulierung ber, deren Hauptziel in einer Steigerung der
+Funktionen liegt; und dieses Ziel wird zunehmend nicht nur mittels der
+rigiden Anpassung der Individuen an die Norm erreicht, sondern
+ebensosehr durch Anpassung der Norm an die individuellen Bedingungen
+durch die Verfahren der modernen Humanwissenschaften:
+
+
+Beziehungen ihre Vollendung: Diese verluft von der Teilung der Welt zur Herstellung der Welt; diese wiederum vom Traum einer
+mechanischen Imitation der Welt (durch Gesetze) zu dem einer Erzeugung von Organismen, von der Objektivierung der Welt auf
+die Individuierung der Menschen. Der Akzent der Individuierung selbst wird dabei von der objektivierenden Kontrolle der Einzelnen
+zur subjektivierenden Selbststeuerung und zur Manipulation von Gruppen verlagert. Der Vernderung der Gegenstandsbereiche
+entspricht die der Machttechniken, die Entwicklung von der Gewaltrationalitt zur Testwissenschaft" (Dauk 1989, 131).
+
+
+Subsumtion der Gesellschaft oder eines Teils derselben unter ein vorab
+feststehendes Schema, sondern weit eher der Zirkel von Manipulation
+und rckwirkendem Bedrfnis, wie ihn Horkheimer und Adorno in der
+'Dialektik der Aufklrung' entfalten. Foucault hat von der Dialektik,
+insbesondere von Hegel, nicht viel gehalten (Knzel 1985). Seine These
+indes, da in der Geschichte der Disziplinierung ein Wechsel von
+subsumtionslogischen Praktiken zu netzfrmigen und zirkulren
+Strukturen zu beobachten ist, vollzieht in etwas roheren Begriffen den
+bergang von der Transzendentalitt zur Totalitt, wie ihn Hegel
+gegenber Kant, wenn auch unter ganz anderen Voraussetzungen,
+vollzogen hat. Wie wir sehen werden, rhren die Schwchen der Theorie
+der Disziplinargesellschaft zu einem nicht geringen Teil aus der
+Weigerung Foucaults, daraus die ntigen kategorialen Konsequenzen zu
+ziehen.
+
+
+
+
+
+
+
+
+
+
+hervorgerufen hat, empfiehlt es sich, noch fr einen Augenblick bei
+den Beziehungen zu verweilen, die sich zu hnlich gelagerten
+Bestrebungen in der modernen Soziologie ergeben. Foucaults Analyse
+erinnert an manchen Stellen an Max Weber, der in der Disziplin eine
+Schlsselkategorie der modernen Gesellschaft gesehen hatte - der
+brokratischen Amtsdisziplin, der Parteidisziplin, der Disziplin des
+Massenheeres, der Arbeitsdisziplin und nicht zuletzt der religisen
+Disziplin der 'methodischen Lebensfhrung'. Sie weist, etwa in der
+Behandlung der Manufaktur, Berhrungspunkte zu Marx auf, ferner zu
+Elias, zu Oestreichs Theorie der 'Sozialdisziplinierung' und nicht
+zuletzt zum kritischen Marxismus von Lukcs bis Adorno, dessen
+Zentralthema die Beziehung zwischen Warenform, Rationalisierung und
+Disziplinierung war18.
+
+
+teils schlicht aus Unkenntnis, wie er selbstkritisch mit Bezug auf die
+ Kritische Theorie gesteht (1983), teils in bewuter Abgrenzung von
+einer Diskurstradition, die ihm allzusehr von der Obsession einer
+'globalen Geschichte' geschlagen zu sein scheint, d.h. dem
+Unterfangen, den Gesamtzusammenhang einer Epoche oder einer
+Gesellschaft aus einer zentralen Struktur abzuleiten. Nach seiner
+berzeugung ist die Annahme, da sich innerhalb einer Gesellschaft ein
+System homogener Beziehungen feststellen lt, ein Netz von
+Kausalitten, das eine Zurckfhrung der verschiedenen Elemente auf
+ein verborgenes Zentrum gestatte, pure Ideologie, eine Illusion, in
+der sich der 'transzendentale Narzimus' des abendlndischen Denkens
+spiegelt: der Glaube an die Stifterfunktion eines souvernen Subjekts
+und an die Garantie, "da alles, was ihm entgangen ist, ihm
+wiedergegeben werden kann" (1973, 23). So stark ist Foucaults
+antithetische Fixierung auf diesen Subjektivismus, da er die
+Mglichkeit einer nichtsubjektivistischen, um eine Theorie der
+gesellschaftlichen Synthesis zentrierten 'globalen Geschichte', wie
+sie in den oben erwhnten Arbeiten durchaus angelegt ist, an keiner
+Stelle in Erwgung zieht.
+
+
+zu fllen. Macht, im Nietzscheschen Sinne eines lebensphilosophisch-
+ontologisch verstandenen 'Willens zur Macht', avanciert fr ihn zum
+Universalschlssel fr alle gesellschaftlichen und geistigen
+Phnomene. Auf ihr beruhen die Beziehungen zwischen den Geschlechtern
+ebenso wie die zwischen den Generationen, die Beziehungen innerhalb
+einer Institution wie die zwischen Institutionen im ganzen, die
+Beziehungen zwischen Individuen wie die zwischen Gruppen und Klassen.
+Das Individuum selbst ist, wie gezeigt, ein Produkt der Macht, "eine
+Form der Individuation der Disziplin" (1982, 3). Das gleiche gilt fr
+die modernen, um das Individuum zentrierten Diskurse der
+Humanwissenschaften, wie fr den wissenschaftlichen Diskurs
+schlechthin. Man msse, so verkndet Foucault, einer Denktradition
+entsagen, derzufolge es Wissen nur dort geben knne, wo die
+Machtverhltnisse suspendiert seien. "Eher ist wohl anzunehmen, da
+die Macht Wissen hervorbringt (und nicht blo frdert, anwendet,
+ausnutzt); da Macht und Wissen einander unmittelbar einschlieen; da
+es keine Machtbeziehungen gibt, ohne da sich ein entsprechendes
+Wissensfeld konstituiert, und kein Wissen, das nicht gleichzeitig
+Machtbeziehungen voraussetzt und konstituiert" (1976, 39). Wie in der
+idealistischen Philosophie und ihren sptromantischen Wurmfortstzen
+die ganze Welt als Geist oder Wille gedacht wird, so enthllt sich
+auch bei Foucault das Sein als Manifestation eines einzigen Prinzips,
+das in unterschiedlichen Aggregatzustnden auftritt: in reiner,
+bewegter Form als "immerwhrende Schlacht", als Strom von Krften und
+Gegenkrften; und in erstarrter, blockierter Form, in der sich die
+Macht zur 'Herrschaft' verfestigt hat (ebd. 38; 1985, 11). Man fhlt
+sich an die Metaphysik Heraklits erinnert - freilich an eine Version,
+in der der Logos nicht lnger Harmonie stiftet, sondern selbst zu
+einer Funktion des Kampfes geworden ist.
+
+
+Konzept der Disziplinargesellschaft angreifbar gemacht. Die Kritik
+richtet sich vor allem gegen den Reduktionismus, der dieses Konzept
+durchzieht. Die Machttheorie, lautet ein erster Einwand, lse die
+eigensinnige Entwicklungslogik rechtlicher und moralischer Normen in
+die blindzufllige Evolution von Gewaltverhltnissen auf und bergehe
+damit "die unverkennbaren Gewinne an Liberalitt und
+ Rechtssicherheit", die doch nicht zuletzt auf straf- und
+ strafprozerechtlichem Gebiet evident seien19. Sie reduziere, so der
+zweite Einwand, die komplexen Vorgnge der Sozialisation und
+Individuation in behavioristischer Manier auf eine Folge von
+unentwegten Konditionierungen und setze Individualitt zu einer "durch
+Auenreize produzierte(n), mit beliebig manipulierbaren
+Vorstellungsinhalten belegte(n) Innenwelt" herab; damit werde der
+Gewinn an Freiheit und Ausdrucksmglichkeit verspielt, den die
+"Etablierung und Verinnerlichung der subjektiven Natur" gebracht habe
+(Honneth 1985, 210; Habermas 1985, 337, 342; Turner 1987, 233, 238).
+Ein dritter Einwand zielt auf die machttheoretische Auflsung der
+Geltungsproblematik. Foucault, so Honneth, stelle sich nicht der
+Frage, wie denn die blo unter dem Gesichtspunkt sozialer
+Machtgewinnung entwickelten Diskurse in ganz anderen
+Handlungskontexten, etwa dem der technischen Beherrschung von
+Naturprozessen, von Erfolg gekrnt sein knnten 20. Da die
+vollstndige Leugnung universalistischer Geltungsansprche im Ergebnis
+auf ein "relativistisches Selbstdementi" auch der Machttheorie
+hinauslaufe, hat Habermas in einer scharfsinnigen Argumentation
+dargelegt (Habermas 1985, 327; Fink-Eitel 1980, 67f.; Bambach 1984;
+Taylor 1984). Weder fr die Eigenart normativer noch fr diejenige
+kognitiver Mechanismen, so lt sich die Kritik resmieren, hat die
+Machttheorie einen angemessenen Raum. Sie ist deshalb ungeeignet, die
+Komplexitt moderner Gesellschaften zu erfassen.
+
+
+Mechanismen zuerst zu sprechen, so ist Foucault zwar zuzugeben, da
+eine ganze Reihe von Diskursen in der frhen Neuzeit mit politischen
+Vorzeichen ins Dasein tritt und somit durchaus einer
+machttheoretischen Interpretation entgegenkommt. Es gibt in der Tat
+eine politische Anatomie und eine politische Technologie, wie ja auch
+bekanntlich die konomie sich zunchst als politische konomie
+begreift und offen die enge Verzahnung von Herrschaftsinteressen und
+Wirtschaftsordnung einbekennt. Alle diese Diskursformationen
+verweisen, wie unschwer zu sehen ist, auf die Intensivierung der
+politischen Rationalisierung, welche durch die Entstehung eines
+europischen Staaten- und Weltsystems seit dem 16. Jh. ausgelst wurde
+und namentlich in einigen kontinental-europischen Lndern zu einer
+weitreichenden Militarisierung und Brokratisierung fhrte, aus der
+der well-ordered police state des 17. und 18. Jhs. mit seiner Politik
+der Sozialdisziplinierung hervorging (Raeff 1983; Rassem 1983; Schulze
+1987).
+
+
+vermittelte politische Rationalisierung und deren Ausgreifen auf die
+unterschiedlichsten Lebensbereiche beschreibt, ist ihm nicht zu
+widersprechen. Die Machttheorie zielt indes darber hinaus und setzt
+sich dadurch der Kritik aus. Wenn es nmlich einen herausragenden Zug
+in der Entwicklung seit dem 19. Jh. gibt, dann den, da sowohl die
+Gesellschaft als auch die Wissenschaft immer weniger durch ihr
+politisches Vorzeichen bestimmt sind und sich stattdessen in Formen
+abstrakt und anonym gewordener Verhltnisse realisieren, die sich mit
+dem Begriff der Macht nur mehr um den Preis einer Contradictio in
+adiecto bezeichnen lassen. Die unterschiedslose Subsumtion der
+politisch strukturierten Gesellschaft des Ancien Rgime und der
+modernen kapitalistischen Gesellschaft unter einen Begriff der Macht,
+der von Foucault selbst als "Fortsetzung des Krieges mit anderen
+Mitteln", als eine Form "kriegerischer Herrschaft " und als
+"verallgemeinerter Krieg" (1978, 71, 40; 1976, 38, 217) definiert
+ wird, verdeckt die grundlegende Tatsache, da die heutige Welt, wie
+Marx es ausgedrckt hat, eine Welt der sachlichen
+Abhngigkeitsverhltnisse im Gegensatz zu den persnlichen ist, eine
+Welt, in der die Individuen "von Abstraktionen beherrscht werden,
+whrend sie frher voneinander abhingen" (Marx 1974, 81f.).
+
+
+Gesellschaft, der sich nach Marx bekanntlich so sehr anonymisiert, da
+selbst der Kapitalist im Zuge der Entwicklung zum Aktienkapital als
+berflssige Person aus dem Produktionsproze verschwindet. Er gilt in
+noch eminenterem Sinne fr Wissenschaft und Technik, die mit
+Willenskategorien nicht mehr begriffen werden knnen. Wissenschaft und
+Technik gehorchen keinem einzigen der Kriterien, die Foucault fr die
+Macht anfhrt. Sie sind weder relational noch intentional, noch
+partikular-interessengebunden, noch militrisch-kriegerisch, obwohl
+ihnen diese Dimensionen sekundr durchaus zukommen knnen. Ihre
+Kriterien sind ausnahmslose Geltung (solange keine Falsifizierung
+vorliegt), absolute Notwendigkeit, durchgehende rationale
+Gesetzmigkeit und Autonomie im Sinne der Kontrolle ber ihre
+Voraussetzungen. Wissenschaft und Technik sind keine Funktion der
+Macht, sie ersetzen vielmehr das Gefge wechselnder
+Willensverhltnisse durch ein System, das selbstreferentiell und
+'autopoietisch' (Luhmann) prozediert, d.h. nur solche Elemente
+verwendet, die innerhalb des Systems selbst konstituiert werden. Ein
+solches Verstndnis schliet nicht aus, die Autopoiesis von
+Wissenschaft und Technik ihrerseits als gesellschaftlich produziert
+und durch die herrschende gesellschaftliche Struktur vermittelt zu
+begreifen; wohl aber, sie wie Foucault auf ein bloes Machtspiel zu
+reduzieren.
+
+
+Hinblick auf normative Mechanismen. Zwar fehlt der Begriff der 'Norm'
+durchaus nicht in Foucaults Arbeiten, wie dies ja auch bei
+Untersuchungen, die mit dem Strafsystem zu tun haben, kaum zu
+vermeiden ist. Wie Canguilhem jedoch, auf dessen Vorarbeiten er sich
+explizit beruft, versteht Foucault diesen Begriff ausschlielich im
+Sinne der modernen Industrienormen, als ein Richtma, das dazu dient,
+"einem Daseienden, Gegebenen eine Forderung aufzuzwingen, von der aus
+sich Vielfalt und Disparatheit dieses Gegebenen als ein nicht blo
+fremdes, sondern feindliches Unbestimmtes darstellen" (Canguilhem
+1977, 163). Die Macht der Norm kommt nach diesem Verstndnis vor allem
+in der Disziplin zum Ausdruck, in den verschiedenen Techniken der
+Normierung und Normalisierung, die die Individuen einem System
+zwanghaft fixierter Verhaltensschemata unterwerfen und dadurch
+Stabilitt und Homogenitt des Herrschaftsgefges sichern.
+"Disziplinarische Normalisierung", sagt Foucault, "ist der Entwurf
+eines optimalen Modelles, die Operation der Disziplin besteht darin,
+die Leute an dieses Modell anzupassen" (1982, 8).
+
+
+einfngt, die in den herkmmlichen Ideen- und Rechtsgeschichten
+notorisch unterbelichtet bleiben; der Stellenwert, der ihnen in einer
+nichtreduktionistischen Theorie der Rationalisierung zukommt, wird
+noch zu errtern sein. Nicht weniger evident ist indes, da es nur
+einen Ausschnitt aus jenem breiten Spektrum von Formierungs- und
+Kontrollmechanismen erfat, wie es lange vor Foucault eindrucksvoll
+von Kant skizziert worden ist. In seiner Vorlesung ber Pdagogik
+(1803), die Foucault bei seiner Arbeit an der bersetzung der
+ 'Anthropologie in pragmatischer Hinsicht' sicher nicht entgangen sein
+wird21, schrnkt Kant die Disziplin auf die Rolle eines blo negativen
+Fundaments ein: Fundament, weil die Disziplin oder Zucht die Tierheit
+in die Menschheit umwandle und verhte, da die Individuen durch ihre
+animalischen Antriebe von ihrer menschlichen Bestimmung abgelenkt
+wrden; nur negativ, weil die Disziplin blo Fehler verhindere, ohne
+selbst eigene positive Ziele geben zu knnen. Neben dieser 'blo
+physischen' Erziehung durch Disziplinierung kennt Kant die praktische
+Erziehung, die sich ihm als ein Bndel komplexer, neben dem ueren
+Verhalten zunehmend auch das Innere erfassender Strategien darstellt:
+als Kultivierung, die die ntigen Fertigkeiten und Geschicklichkeiten
+vermittelt; als Zivilisierung, die die fr den gesellschaftlichen
+Verkehr unentbehrlichen Formen der Affektmodellierung und
+Triebkontrolle bereitstellt; und als Moralisierung, die auf die
+Unterwerfung der je subjektiven Zwecke und Motive unter
+gesellschaftliche, d.h. universalistische Prinzipien zielt. "Der
+Mensch soll nicht blo zu allerlei Zwecken geschickt sein, sondern
+auch die Gesinnung bekommen, da er nur lauter gute Zwecke erwhle.
+Gute Zwecke sind diejenigen, die notwendigerweise von jedermann
+gebilligt werden; und die auch zu gleicher Zeit jedermanns Zwecke sein
+knnen" (Kant 1968, XII, 707).
+
+
+anschlieen: einmal, weil die Ethik, auf der sie beruht, die
+Sozialisation in eine abstrakte Gesellschaft zum Telos hat (Adorno, GS
+6, 211ff.), dann aber auch, weil der Disziplinbegriff mit seiner
+Beschrnkung auf rein negative Funktionen zu eng ist und Kants eigenen
+Darlegungen nicht entspricht: Wenn es nicht nur eine Disziplin des
+Krpers und der Affekte, sondern auch eine Disziplin der reinen
+Vernunft gibt, so sind zumindest die Grenzen zwischen Disziplinierung
+und Kultivierung (im Sinne einer Ausbildung kognitiver Fhigkeiten)
+weit durchlssiger, als Kant wahrhaben will22. Gegenber Foucaults
+extensivem Verstndnis von Disziplin indes, das auch noch
+interaktionsbezogene und normative Mechanismen umfat, ist Kants
+Modell vorzuziehen, weil es die verschiedenen Dimensionen des modernen
+Formierungsprozesses klarer differenziert: die nichtdiskursiven
+Praktiken fr die Schaffung gehorsamer und gelehriger Krper; die
+Formung eines methodisch-disziplinierten wissenschaftlichen Verstandes
+durch Schulung/Unterweisung, welche freilich auf den nichtdiskursiven
+Praktiken des Drills und der Bestrafung aufbaut und sich nicht selten
+darin erschpft, wie ein Blick in die Geschichte der 'Schwarzen
+Pdagogik' lehrt (Rutschky 1977; Stone 1979, 115ff.; de Mause 1980, 66
+ff.); die mit dem Begriff der Zivilisierung umschriebene Sublimierung
+von Interaktionsanforderungen, die fr das Leben bei Hofe oder in der
+guten Gesellschaft erforderlich war; und jene singulre, untrennbar
+mit dem okzidentalen Brgertum verbundene Strategie der Moralisierung,
+die das Prinzip des 'affektiven Individualismus' (Stone) mit der
+Implantation eines 'vorhergehenden Gewissens' verkoppelte (Kittsteiner
+1984). Erst diese letztere Strategie vollendet die berwindung des
+Naturzustands, weil allein sie in jene inneren Reservate vorzudringen
+vermag, die sowohl der Disziplinierung als auch der Kultivierung und
+Zivilisierung als blo uerlichen Konditionierungsweisen unzugnglich
+bleiben. Kant hat daher in der Moralisierung das hchste und zugleich
+am schwersten erreichbare Ziel der Erziehung gesehen:
+
+
+Artigkeit und Anstndigkeit. Aber, uns fr schon moralisiert zu halten, daran fehlt noch sehr viel. Denn die Idee der Moralitt gehrt
+noch zur Kultur; der Gebrauch dieser Idee aber, welcher nur auf das Sittenhnliche in der Ehrliebe und der ueren Anstndigkeit
+ hinausluft, macht blo die Zivilisierung aus. So lange aber Staaten alle ihre Krfte auf ihre eiteln und gewaltsamen
+Erweiterungsabsichten verwenden, und so die langsame Bemhung der inneren Bildung der Denkungsart ihrer Brger unaufhrlich
+hemmen, ihnen selbst auch alle Untersttzung in dieser Absicht entziehen, ist nichts von dieser Art zu erwarten; weil dazu eine lange
+innere Bearbeitung des gemeinen Wesens zur Bildung seiner Brger erfordert wird" (Kant 1968, XI, 44f.).
+
+
+pauschalisierender Rede von Normierung/Normalisierung besteht darin,
+da es eine ganze Reihe von Forschungen zu integrieren vermag, von
+denen Foucault nur am Rande oder gar nicht Notiz nimmt, obwohl sie
+sein Thema unmittelbar berhren. Auf dem Gebiet der Disziplinierung
+ist hier etwa an die verschiedenen religs-ethisch motivierten Formen
+der Selbstdisziplin zu denken, wie sie in der frhen Neuzeit vom
+Neostoizismus oder vom Puritanismus propagiert wurden
+(Treiber/Steinert 1980, 90, 104ff.; Leites 1988); auf dem Gebiet der
+Kultivierung an die Bedeutung der Alphabetisierung und
+Literarisierung, die seit dem 16. Jh. einem stets wachsenden Teil der
+Bevlkerung Zugang zu einem der wichtigsten Machtmittel verschafften,
+gleichzeitig aber auch die Basis staatlicher Herrschaft erweiterten
+(Schenda 1981; Spittler 1980); auf dem Gebiet der Zivilisierung
+natrlich an die Arbeiten von Norbert Elias ber die
+Verhaltensnderungen in den weltlichen Oberschichten des Abendlands,
+die zum Vorbild fr zahlreiche weitere Untersuchungen geworden sind
+(Gleichmann 1979, 1984; Krumrey 1984; Schrter 1985). Der Proze der
+Moralisierung endlich ist zu wissenschaftlicher Prominenz
+hauptschlich im Zusammenhang mit den Diskussionen ber die
+protestantische Ethik gelangt, doch war er damit mitnichten zuende: so
+hat z.B. Wolfgang Dreen die berlegenheit der franzsischen
+Revolutionsarmeen gegenber dem Heer friderizianischer Prgung mit der
+greren taktischen Beweglichkeit erklrt, welche das
+Erziehungsprinzip der moralischen Selbstregulierung gegenber einer
+blo mechanischen Disziplin gewhrt (Dreen 1982, 266f.); ein anderes
+Beispiel ist der auffllige Rckgang der Verbrechensrate in der Zeit
+zwischen ca. 1840 und 1930, der von manchen Autoren mit dem Hinweis
+auf jene eigentmliche Intensivierung des Moralbewutseins erklrt
+wird, welche sich an so unterschiedlichen Phnomenen wie der aus der
+evangelikalen Erweckungsbewegung hervorgegangenen Stadtmissionierung,
+den philanthropisch inspirierten Reformen des Sozial- und
+Erziehungswesens und der Ausbreitung des Temperenzlertums ablesen
+lasse23. Ob diese Hypothese stimmt oder nicht - sie steht immerhin in
+Widerspruch zu der von Durkheim anhand der kontrr verlaufenden
+Selbstmordkurve entwickelten Anomiethese -, ist eine Frage, die nur
+empirisch entschieden werden kann. Da sie berhaupt aufgestellt und
+mit plausiblen Argumenten untermauert werden kann, ist allerdings ein
+Indiz fr die Notwendigkeit, den kategorialen Rahmen nicht dadurch von
+vornherein einzuschrnken, da man Moralisierung auf eine Variante der
+Disziplinierung reduziert24.
+
+
+mu, sieht nicht gnstig aus. Die Machttheorie, die das Konzept der
+Disziplinargesellschaft tragen soll, vermag diese Aufgabe nicht zu
+erfllen. Sie ist reduktionistisch und simplifizierend, sie produziert
+Pseudoevidenzen und fhrt dazu, die Bewegung des Gedankens vorschnell
+zu sistieren. Sie prsentiert sich als objektive Genealogie und ist
+doch in Wahrheit reiner Subjektivismus, der alles, was ist, auf Wille
+und Handlung zurckfhrt. Sie verspricht eine neue,
+nichttotalisierende Geschichte und totalisiert doch selbst, nur sehr
+viel schlechter als etwa Marx oder Hegel, indem sie alle Differenzen
+in den allgemeinen Nebel der 'Macht' auflst. Auf dieser Grundlage ist
+ das Projekt einer Theorie der Disziplinargesellschaft undurchfhrbar.
+
+
+
+
+
+
+
+
+
+
+in diese Richtung. Habermas, der sich gleichwohl von Foucaults
+Analysen der kapillarischen Wirkungen der Disziplin fasziniert zeigt,
+ist vom "Primat der Lebenswelt" gegenber den vermachteten und
+disziplinr organisierten Subsystemen der modernen Gesellschaft zu
+tief berzeugt, als da er mit der Diagnose eines 'Kerker-Kontinuums'
+sich anfreunden knnte. Eine derartige Charakterisierung erscheint ihm
+als unhaltbar, weil sie die Zweideutigkeit des
+Modernisierungsprozesses, das Nebeneinander von pathologischen und
+emanzipatorischen Zgen, unterschlage. hnlich sieht es Honneth: das
+von Foucault entworfene "Zwangsmodell gesellschaftlicher Ordnung", das
+im Ergebnis auf verblffende Weise mit Adornos Vision der verwalteten
+Welt bereinstimme, sei unbrauchbar, weil in ihm die "normativen und
+kulturellen Orientierungen der vergesellschafteten Subjekte" keinen
+Anteil an der sozialen Integration htten25.
+
+
+Disziplinargesellschaft so aktuell macht. Wie realittsnah Foucaults
+Untersuchungen trotz ihrer theoretischen Schwchen sind, zeigt sich
+nirgends deutlicher als in dem Umstand, da etwa Habermas in seinen
+empirisch gerichteten Gegenwartsdiagnosen dem Konzept der
+Disziplinargesellschaft erheblich nher kommt, als es die theoretisch-
+programmatische Distanzierung gestattet. Nicht anders als Foucault
+konstatiert auch er eine "Ausdehnung und Verdichtung des monetr-
+brokratischen Komplexes", die zu einer Entmchtigung des
+kommunikativen Handelns fhre; nicht anders als der Theoretiker der
+Macht-Wissen-Komplexe registriert auch er das "hypertrophe Wachstum
+der mediengesteuerten Subsysteme, welches ein bergreifen
+administrativer und monetrer Steuerungsmechanismen auf die Lebenswelt
+zur Folge hat" (Habermas 1981, 516, 460, 489). Gewi - Habermas geht
+nicht so weit, auch im Individuum ein bloes Korrelat von
+Machttechniken zu sehen. Da die gesellschaftliche Ordnung der Moderne
+aber auf weite Strecken von nichtnormativen Praktiken regiert wird,
+rumt auch er ein: "Indem sich die Subsysteme Wirtschaft und Staat
+ber die Medien Geld und Macht aus einem in den Horizont der
+Lebenswelt eingelassenen Institutionensystem ausdifferenzieren,
+entstehen formal organisierte Handlungsbereiche, die nicht mehr ber
+den Mechanismus der Verstndigung integriert werden, die sich von
+lebensweltlichen Kontexten abstoen und zu einer Art normfreier
+Sozialitt gerinnen" (ebda; 455). Als deskriptiver Begriff ist das
+Konzept der Disziplinargesellschaft also offenbar doch nicht vllig
+unbrauchbar; und es gewinnt noch an berzeugungskraft, wenn man sieht,
+wie bla und leer der von Habermas als Konterkategorie eingefhrte
+Begriff der Lebenswelt letztlich bleibt.
+
+
+ist zu negieren, soweit es sich zur Totalitt aufspreizt und sich als
+Aussage ber das Ganze der modernen Gesellschaft prsentiert, wie dies
+ in der Redeweise vom "Kerker-Gewebe der Gesellschaft" oder vom
+"verallgemeinerte(n) Kerkersystem, das in die Tiefe des
+Gesellschaftskrpers hineinwirkt" (1976, 392, 390), geschieht. Die
+Gesellschaft ist kein Gefngnis und die Vernunft nicht die Folter.
+Festzuhalten aber ist das Konzept, insofern es das Faktum registriert,
+da die Disziplin den brigen von Kant herausgearbeiteten
+Formierungsmechanismen eindeutig den Rang abgelaufen hat. So entpuppt
+sich beispielsweise ein erheblicher Teil der von Elias unter dem Titel
+'Zivilisierung' beschriebenen Konditionierungsvorgnge (etwa des
+Sexualverhaltens oder der Reinlichkeitsdressur) bei nherem Hinsehen
+als eine Variante der Disziplinierung, wohingegen die typischen
+Manifestationen von Zivilisation (im Sinne z.B. des Raffinements der
+Konversation, der Steigerung der Distinktionsfhigkeit oder einfach
+des schonenden und taktvollen Umgangs miteinander) ihren sozialen
+Trger - die hfische Aristokratie und das noch halb aristokratische
+Brgertum des 18. und 19. Jhs. - nicht berlebt haben. Da hfische
+Interaktionsformen ohne wesentlichen Kontinuittsbruch von der
+industriellen Gesellschaft bernommen und zu konstitutiven Merkmalen
+bestimmter Nationalcharaktere erhoben worden seien - diese seine
+Zentralthese belegt Elias nicht, und sie leuchtet auch nicht ein vor
+dem Hintergrund einer Konfiguration, die nicht mehr wie die hfische
+Gesellschaft von einer konomie der Verschwendung geprgt ist, sondern
+von einer 'konomie der Zeit' (Marx), die die Zivilisationskurve des
+Essens auf das Niveau von fast food und die der Erotik auf dasjenige
+von quickies herabgedrckt hat. Wie weiter oben gezeigt, gewinnen denn
+auch seit einiger Zeit Theorien an Plausibilitt, die die Epoche in
+geradem Gegensatz zu Elias im Zeichen einer skularen Entzivilisierung
+sehen.
+
+
+ab. Nicht da moralische Codierungen an Prominenz verlren oder keinen
+Einflu auf Interaktionen und Entscheidungen mehr ausbten. Ganz im
+Gegenteil. Der moralische Protest beispielweise (um nur eine der
+vielfltigen Erscheinungsformen des Moralischen herauszugreifen)
+verfgt heute ber ein so ausgedehntes Themenreservoir und ein so
+breites Rekrutierungsfeld, da seine Regenerationsfhigkeit auf
+lngere Zeit gesichert ist. Es gibt immer wieder eine neue Diktatur,
+auf die sich pltzlich die Aufmerksamkeit richtet, immer wieder eine
+neue Dummheit irgendwelcher Exekutiven, an der sich die Flamme der
+Emprung entznden kann. Im Zeitalter des Satellitenfunks wchst die
+Zahl der Ungerechtigkeiten mit den im Einsatz befindlichen
+Nachrichtenjgern und fhrt dem Dauerprotest immer neue Motive zu.
+
+
+auch der brgerlichen Pdagogik des 19. Jhs. vorschwebte, mssen diese
+Erscheinungsformen strikt getrennt werden. Die brgerlich-
+protestantische Moralisierung zielte auf Formung des Ungeformten, auf
+Domestizierung jenes in den unauslotbaren Tiefen der Seele noch
+fortwirkenden Naturzustandes, der auf staatlich-juridischer Ebene mit
+dem Abschlu des Gesellschaftsvertrages berwunden worden war. Ihr
+Erziehungsmodell war jener von Riesman treffend beschriebene
+innengeleitete Charakter, der sich an die Signale eines frhzeitig
+internalisierten seelischen Kreiselkompasses gebunden fhlte und
+dergestalt individuelle Autonomie mit gesellschaftlicher,
+prinzipiengesteuerter Orientierung verband.
+
+
+die Grundlage entzogen. Schon Freud registrierte, da nur eine
+ Minderheit ber ein steuerndes und lenkendes Gewissen verfgte,
+whrend die Mehrzahl davon nur ein bescheidenes Ma mitbekommen habe
+(Freud I; 500); hnlicher Ansicht war Max Weber, fr den das
+'stahlharte Gehuse' des Kapitalismus lngst ohne die Verinnerlichung
+einer spezifischen Berufsethik funktionierte, oder Georg Simmel, fr
+den die Moderne eine Individualisierung wie noch zu Rembrandts oder
+Shakespeares Zeiten ausschlo; die heutigen Individuen, meinte Simmel,
+seien "nichts als die Oszillationen in einer heraklitischen Welt, zu
+deren Totalitt sie die Zugehrigkeit nur um den Preis gewinnen,
+jegliche Substanz und Lebenseinheit dem bloen Jetzt des absoluten
+Werdens preiszugeben" (Simmel 1919, 138). Nicht anders sahen es spter
+so gegenstzliche Autoren wie Adorno, von dessen Auffassung noch
+ausfhrlicher die Rede sein wird, und Arnold Gehlen, fr den die
+Moderne einerseits durch 'Schnittpunktexistenzen', andererseits durch
+eine ungemeine Ausdehnung der Willkr bestimmt war. Gerade weil die
+Individuen in einer von Automatismen und Schematismen geprgten Welt
+nichts Wirkliches mehr verndern knnten, so Gehlens These, strzten
+sie sich in einen ungehemmten Subjektivismus, eine
+'Moralhypertrophie', die ebenso exaltiert wie folgenlos sei26. Da
+eine derart zum Mittel des persnlichen Ausdrucks gewordene Moral noch
+als 'Schrittmacher der sozialen Evolution' (Habermas) fungieren
+knnte, erscheint unwahrscheinlich, was freilich politische und
+soziale Folgen des expressiven Moralismus keineswegs ausschliet. Im
+Hinblick auf die Gesamtgesellschaft jedenfalls drfte die Vermutung
+Luhmanns realistischer sein, da "die Dominanz funktionaler
+Differenzierung, wenn und soweit sie sich als Formprinzip der
+Gesellschaft durchsetzt, die Moral evolutionr abhngt und ideologisch
+wie motivational disprivilegiert"27. Das Ende der Moral ist damit
+nicht erreicht. Wohl aber jener Moralisierung, von der noch Kant
+trumte.
+
+
+aus, die 'dunkle Kehrseite' der Moralisierung und Zivilisierung - die
+Disziplin. Zu den klassischen totalen Institutionen - Kloster und
+Kaserne - sind seit dem 19. Jh. zahllose andere hinzugekommen:
+Institutionen der aufbewahrenden Frsorge wie Blinden- und
+Altersheime, Waisenhuser und Armenasyle; der isolierenden Frsorge
+wie Krankenhuser und Psychiatrien; der Einschlieung und Absonderung
+wie Zuchthuser, Gefangenen-, Konzentrations- und Arbeitslager. Durch
+die Vermehrung und Expansion dieser Disziplinaranlagen verwandelt sich
+die Gesellschaft nicht in ein Kerker-Kontinuum. Wie Goffman zu Recht
+bemerkt, sind totale Institutionen weder mit der Arbeit-Lohn-Struktur
+noch mit der familialen Gliederung, noch, wie man hinzufgen kann, mit
+der auf Konkurrenz gegrndeten Organisation des politischen Systems
+vereinbar (Goffman 1972, 22ff.). Unverkennbar ist jedoch, da
+disziplinre Mechanismen auch in den offenen, durch freie
+Mitgliedschaft gekennzeichneten Institutionen eine dominierende Rolle
+spielen. Disziplinr organisiert, sogar mit einem eigenen
+Disziplinarrecht ausgestattet, ist der gesamte Staatsapparat mit
+seinem stehenden und seinem sitzenden Heer. Disziplinr organisiert
+sind die privaten gewerblichen Betriebe, wovon schon ein einziger
+Blick in eine Fabrikhalle oder ein Groraumbro zeugt
+(Treiber/Steinert 1980; Fritz 1982) - ganz zu schweigen von den rasch
+expandierenden mikroelektronischen Personalinformationssystemen, die
+Zugang, Leistung und Kommunikation innerhalb der Betriebe einer
+lckenlosen Kontrolle unterwerfen und, indem sie das Auge des Meisters
+durch das zwingende Wissen des Computers ersetzen, eine neue Stufe in
+der Evolution der Disziplin ankndigen: die Automatisierung der
+ Disziplin (Ortmann 1984, 107ff.; Poster 1984, 115). Der organisierte
+Massensport, vom Volkslauf bis zum Werksfuball, ist eine einzige
+Disziplinaranlage (Rigauer 1982; Eichberg 1986, 185ff.); und ohne
+Disziplin geht im modernen Massentourismus nichts. Auch in der
+politischen Demokratie dominieren brokratische Apparate und
+hierarchisch strukturierte Entscheidungsprozesse. Selbst die
+Opposition gegen diese Apparate und die von ihnen erzwungene Disziplin
+kommt nicht umhin, ihre Anhnger zu reglementieren und dabei ihr
+charismatisches Kapital aufzuzehren. Kein Zweifel: in einer
+Gesellschaft, die den weitaus grten Teil ihrer Funktionen ber
+Organisationen abwickelt, ist Disziplin - die pauschale Anerkennung
+und automatische Befolgung der Mitgliedschaftsregeln - zur Conditio
+sine qua non geworden. Mit seiner berhmten Metapher vom 'stahlharten
+Gehuse' hat Max Weber diese Entwicklung vor mehr als achtzig Jahren
+antizipiert.
+
+
+oder 'strategischen Spielen' (Foucault) zu tun, sondern ist eine Folge
+von Systemprozessen, die sich jeder interaktionistischen Deutung
+entziehen. Die moderne Gesellschaft ist das Ergebnis einer
+weltgeschichtlich einzigartigen Desintegration, in deren Verlauf sich
+der in den vormodernen Kulturen politisch oder religis eingekapselte
+Modus der funktionalen Differenzierung verselbstndigte und zur
+Evolution neuer, hchst unwahrscheinlicher und riskanter Synthesen
+trieb. Anstelle der autarken Lokalgesellschaften des Mittelalters trat
+ein interdependentes Verflechtungssystem, das den gesellschaftlichen
+Stoffwechsel mit der Natur von der Vermittlung durch die Zirkulation
+von Waren abhngig machte; anstelle der direkten, familial, politisch-
+herrschaftlich und religis begrndeten Bindungen eine indirekte
+Synthese, in der die einzelnen ihre Verklammerung in das bergreifende
+Verflechtungsnetz erst auf dem Markt erfuhren.
+
+
+berzeugende Weise dargestellt. Er hat gezeigt, wie die Verdichtung
+von funktionaler Differenzierung und Marktvergesellschaftung dazu
+fhrte, da sich das Wertgesetz als Prinzip der Systemintegration
+durchsetzte, wie dieses Wertgesetz die Homogenisierung der
+Einzelarbeiten durch Messung am Tauschwert, d.h. durch Relationierung
+der in Zeitquanta ausgedrckten abstrakten Arbeit, bewerkstelligte;
+wie diese Homogenisierung mit zunehmender Ausdehnung der Lohnarbeit
+und fortschreitender Vergesellschaftung der Produktion mehr und mehr
+in den Produktionsproze selbst verlagert wurde, indem die Funktionen
+der lebendigen und der toten Arbeit (der Maschinerie) nach
+einheitlichen Zeitmastben koordiniert bzw., um einen Ausdruck Sohn-
+Rethels aufzugreifen, 'kommensuriert' wurden; und wie dadurch die
+abstrakte Zeit aus einem nur ideell gesetzten Mastab zum
+beherrschenden Organisationsprinzip der konomie wird. Damit ist nicht
+gesagt, da die zeitkonomische Durchdringung sich in smtlichen
+Produktionszweigen linear und simultan durchsetzt. Wie die kritische
+Modifizierung der Thesen Sohn-Rethels durch die neueren Forschungen
+des 'Instituts fr Sozialforschung' gezeigt hat, vollzieht sich die
+zeitkonomische Rationalisierung in heterogenen Verlaufsformen, die
+durch die variierenden Marktverhltnisse und durch branchenspezifische
+Besonderheiten geprgt sind28. Der skulare Trend bleibt davon jedoch
+unberhrt. Kapitalisierung bedeutet Objektivierung und Erweiterung der
+zirkulationsbegrndeten Formen von Wissen, Kommunikation und
+Organisation; dagegen Formalisierung und Entwertung aller
+'naturwchsig'-spontanen Kompetenzen, Denk- und Erfahrungsmuster.
+ "konomie der Zeit, darein lst sich schlielich alle konomie auf"
+(Marx 1974, 89).
+
+
+Foucault beschriebenen Verallgemeinerung der Disziplin zu suchen.
+Natrlich beginnt die Geschichte der Disziplin nicht erst mit der
+brgerlichen Gesellschaft und der fr sie typischen 'Herauslsung' der
+konomie; und natrlich spielen auerkonomische, insonderheit
+politische Mechanismen wie die Konzentration der Verwaltungs- und
+Kriegsbetriebsmittel im absolutistischen Staat eine nicht
+wegzudenkende Rolle fr den bergang von der bloen 'Virtuosen-' zur
+'Sozialdisziplinierung' (Treiber/Steinert 1980, 89; Dreyfus/Rabinow
+1987, 165; Bauer/Matis 1988, 315ff.). Whrend aber diese frhen Formen
+der Disziplinierung des subjektiven Antriebs und der Gewalt nicht
+entbehren knnen - die Menschen, schreibt Friedrich II. von Preuen,
+"bewegen sich, wenn man sie antreibt, und stehen still, wenn man nur
+einen Augenblick aufhrt, sie vorwrts zu drngen"(Hubatsch 1973, 234)
+- kommt es zu einer Objektivierung und damit zu einer dauerhaften
+Verallgemeinerung der Disziplin erst mit der Totalisierung der
+abstrakten Arbeit und dem damit verbundenen Aufstieg der abstrakt-
+linearen Zeit zur 'Systemzeit'29. Zeitkonomische Imperative fhren zu
+einer Umstrukturierung des konstanten und einer tiefgreifenden
+Vernderung des variablen Kapitals, welche vor allem die Zurichtung
+der motorischen und sensomotorischen Bewegungsablufe und die
+Zurckdrngung des 'Krper-Wissens' betrifft (Bhle 1989).
+Zeitsparende Mechanismen sedimentieren sich im Aufbau der modernen
+Groorganisationen und stellen auch hier das Verhalten unter das
+Diktat der Zeitdisziplin. Selbst scheinbar so eigenstndige Strukturen
+wie die Prinzipien der vertikalen Kommunikation, der Rollentrennung
+und der Entscheidung nach universalistischen Kriterien lassen sich
+nach Luhmann unter dem Gesichtspunkt interpretieren, da sie
+langwierige interne und externe Kommunikationsprozesse abkrzen sollen
+(Luhmann 1983, 15O). Es drfte nicht schwerfallen, auch im sogenannten
+Freizeitbereich Formen zu identifizieren, die der ubiquitren
+Temporalisierung Rechnung tragen und ihr adquate Rezeptions- und
+Verhaltensstile etablieren (Film, Autokultur). Da die
+'Disziplinarzeit' auf die pdagogische Praxis bergreift und hier zu
+grundlegenden Umwlzungen fhrt, indem sie z.B. die Ausbildungs- von
+der Berufszeit lst, hat Foucault gesehen, allerdings sogleich in den
+Rahmen der Machttheorie gepret: "Die Macht tritt der Zeit sehr nahe
+und sichert sich ihre Kontrolle und ihre Ausnutzung" (1976, 206). In
+Wirklichkeit verhlt es sich genau umgekehrt: die Zeit wird nicht zu
+einer Funktion der Macht, sondern die zur Systemzeit gewordene Zeit
+produziert asymmetrische Handlungs- und Befehlsketten und generiert
+damit Machtrelationen, die das Verhalten der einzelnen determinieren.
+
+
+
+
+
+
+
+
+
+
+Einwand erhoben, sie stelle zu einseitig die Aspekte der
+Herrschaftssicherung und Verdinglichung heraus und verfehle damit die
+bei Foucault doch auch angelegte Einsicht, da "jene Vorgnge eines
+ organisierten Ausbaus der Sozialkontrolle stets in einem
+lebensweltlichen Horizont von praktischen Konflikten um die
+Legitimitt sozialer Machtansprche verwirklicht sind" (Honneth 1989,
+238). Diese Kritik ist nun ihrerseits von Einseitigkeiten nicht frei,
+geht sie doch stillschweigend darber hinweg, da ich von
+institutionalisierter Sozialkontrolle allein im Hinblick auf
+organisierte Sozialsysteme gesprochen und weder die Mglichkeit von
+Widerstand noch von moralischen Orientierungen bestritten habe.
+Gleichwohl trifft sie einen Punkt, der in meinen Ausfhrungen in der
+Tat zu kurz kam. Auch organisierte Sozialsysteme lassen sich heute
+zunehmend weniger nur aus der Perspektive des 'Kontroll-Paradigmas'
+fassen, also jenes Interpretationsrasters, das vor allem die
+Reglementierung des Erlebens und Handelns von Personen durch
+Organisationen betont und Subjektivitt auf eine bloe
+Ausfhrungsinstanz des Sozialsystems reduziert (Schimank 1986, 73).
+Dieses Paradagma ist zwar nicht falsch, mu jedoch durch eine andere
+Sichtweise ergnzt werden, derzufolge Subjektivitt nicht blo auf den
+Nachvollzug immer schon konstituierter sozialer Ordnungen beschrnkt
+ist, sondern diese, wenn schon nicht konstituiert, so doch
+mitkonstituiert (ebd. 75). Da fr Foucault erst beide Perspektiven
+zusammen ein vollstndiges Bild ergeben, wurde am Ende des ersten
+Abschnittes gezeigt; Foucault selbst hat es noch einmal in der
+Einleitung zum zweiten Band der Histoire de la sexualit
+unterstrichen, in der er darauf verweist, "da jede 'Moral' im weiten
+Sinn die beiden angegebenen Aspekte enthlt: den der Verhaltenscodes
+und den der Subjektivierungsformen" (1986, 41). Honneth hat also
+recht, auf eine angemessene Behandlung der letzteren zu dringen. Im
+Gegensatz zu der weiteren von ihm vorgeschlagenen Interpretation, die
+hierin eine Strke der handlungs- gegenber den systemtheoretischen
+Komponenten von Foucaults Analysen sieht, mchte ich allerdings die
+These vertreten, da die Bercksichtigung der Subjektivitt in
+organisierten Sozialsystemen nur zu einer Flexibilisierung, nicht aber
+zu einer Sprengung des Begriffs der Disziplinargesellschaft fhrt.
+
+
+Komplexitt nicht mehr den gleichen Erklrungswert beanspruchen kann
+wie zu Beginn des Jahrhunderts, als Weber seine Brokratietheorie und
+Taylor seine Methoden der wissenschaftlichen Arbeitsgestaltung und
+Betriebsfhrung entwickelte, wird heute durch zahlreiche
+Untersuchungen besttigt, die einen Wandel der Institutionen zu
+weniger hierarchischen, mehr informalen und kollegialen Strukturen
+dokumentieren. Dies gilt etwa fr die Organisationssoziologie, die
+seit lngerem das Zurcktreten der verfahrensorientiert-unpersnlichen
+Strukturen hinter dienstleistungsorientiert-persnlichen Formen
+registriert und Human-Relations-Gesichtspunkte in den Vordergrund
+stellt (Schluchter 1972, 140ff.; Hage 1980). Es gilt aber auch fr die
+Industriesoziologie, die in wichtigen Bereichen eine Abkehr von den
+bislang dominierenden tayloristischen Formen der Zeitkonomie
+festgestellt hat (Kern/Schumann 1984; Bergmann u.a. 1986; Manske 1987;
+Malsch 1987; Wuntsch 1988, 331ff.; Brandt 1990, 358ff.). Zwar hat sich
+die Ankndigung einer 'Neoindustrialisierung', die eine Zurckdrngung
+der Heteronomie von Industriearbeit ermglichen und die
+"Voraussetzungen fr kompetentes, selbstbewutes Verhalten im
+Arbeitsproze" schaffen sollte (Kern/Schumann 1984, 327; kritisch
+hierzu: Schmiede/v. Greiff 1985), als berzogen erwiesen, doch gilt
+dies ebenso fr die Annahme einer stetigen Steigerung der direkten
+sozialen Kontrolle durch Dequalifizierung der Arbeitskraft einerseits,
+Zentralisierung des Produktionswissens beim Management andererseits.
+ Neuere empirische Untersuchungen legen den Schlu nahe, da die
+tayloristischen und fordistischen Strategien der zeitkonomischen
+Arbeitszerlegung nur fr bestimmte Sektoren der Massenproduktion
+galten, whrend sie etwa in der kleinserigen, komplexen
+Maschinenfertigung stets an den hohen Kosten scheiterten, die fr den
+Aufbau leistungsfhiger Arbeitsvorbereitungsabteilungen ntig gewesen
+wren (Manske 1987, 170); sie zeigen zugleich, da der Taylorismus als
+das Mittel zur zentralistischen Kontrolle der Arbeitsausfhrung und
+damit der Arbeiter berall dort seine Grenze findet, wo die
+Besonderheiten von Materialien und Produkten sowie die Marktlage ein
+hohes Ma an betrieblicher Flexibilitt und Reaktionsfhigkeit
+erfordern. Die von Sohn-Rethel (1972) und Bravermann (1977) ganz auf
+der Linie von Marx und Weber beschriebene langfristige Tendenz einer
+fortschreitenden Einschrnkung bzw. Eliminierung der
+Dispositionsspielrume wie auch der kognitiven Kompetenz der
+Arbeitskrfte htte von hier aus gesehen mit Gegentendenzen zu
+rechnen, die anstelle der reinen Subsumtionslogik strker auf
+indirekte, 'systemische' Kontrollen setzen (Baethge/Oberbeck 1986, 22;
+Manske 1987, 175) und dabei die eindimensionalen, auf
+'Fremdbeobachtung' und punktueller Disziplinierung beruhenden
+tayloristischen Mechanismen durch neue, die 'Selbstbeobachtung' und
+aktive Beteiligung des Personals akzentuierenden Strategien
+substituierten (Malsch 1987). Ob sich damit, wie etwa Malsch glaubt,
+die Chance einer kommunikativen Rationalisierung erffnet, mag
+dahingestellt bleiben. Fest steht jedoch, da das Kontroll-Paradigma
+diesen Entwicklungen nur unzureichend Rechnung trgt. "Subjektivitt",
+so folgert Uwe Schimank, "ist in formalen Organisationen nicht nur
+eine mglichst weitgehend sozialem und technischem Reglement zu
+unterwerfende, weil fr die organisatorische Ordnung gefhrliche
+Strgre; sondern Subjektivitt ist eine wesentliche
+Konstitutionsbedingung organisatorischer Ordnung gerade auch in
+hochtechnisierten Produktionsorganisationen" (1986, 86).
+
+
+Abschnitt skizzierten Argumentation erforderlich, stellen sie jedoch
+nicht grundstzlich in Frage. Auch wenn die Bedienung der zunehmend
+komplexer und stranflliger werdenden Produktionsanlagen heute eine
+flexiblere Funktionsvermischung und eine erhhte technisch-
+wissenschaftliche Kompetenz des Personals verlangt (Wuntsch 1988, 28,
+201); auch wenn die Belegschaften ein ganz neuartiges "Drohpotential
+der Datenmanipulation und der Wissenszurckhaltung" erwerben (Malsch
+1987, 79), folgt daraus doch nicht, da die systemische Integration an
+ihre Grenze stt und eine neue Perspektive erffnet, die es
+ermglicht, die organisierten Sozialsysteme "als fragile Gebilde zu
+durchschauen, die in ihrer Existenz vom moralischen Konsens aller
+Beteiligten abhngig bleiben" (Honneth 1985, 334). Bei der
+Subjektivitt, die in organisierten und technisierten Systemen
+operiert, handelt es sich zwar um selbstdeterminierte und insofern
+zweifellos auch zu moralischen Orientierungen befhigte personale
+Systeme, doch ist gerade diese Kompetenz nicht gemeint, wenn von einem
+Beitrag zu den Konstitutionsbedingungen die Rede ist. Gefragt sind
+nicht die moralischen und expressiven, sondern die kognitiven und
+technischen Kompetenzen, mithin jene Fhigkeiten zu formaler
+Rationalitt, diskursiver Symbolisierung und streng linearer
+Wahrnehmung, wie sie nur das im kantischen Sinne disziplinierte und
+kultivierte Individuum besitzt. Gewi geht das Individuum darin nicht
+auf. Es verfgt, auch und gerade im Rahmen informatisierter
+Produktionstechnologien, ber die Fhigkeit, die durch die jeweilige
+ Technik gesetzten Grenzen sinnhaften Operierens zu berschreiten, es
+akkumuliert ein Erfahrungswissen, das durch formalisiertes und
+standardisiertes Planungswissen nie vollstndig ersetzt werden kann.
+Dennoch handelt es sich um eine Erfahrung hchst spezifischer Art:
+nicht die spontane, 'naturwchsige' Erfahrung der konkreten Arbeit,
+die eine Wechselbeziehung zwischen dem Arbeitenden, dem Werkzeug und
+dem je besonderen Material unterstellt, sondern die domestizierte,
+disziplinierte Erfahrung innerhalb eines vorstrukturierten technischen
+'Ereignishorizonts', in dem sich die Aktivitt des Subjekts weitgehend
+auf die Selektion und Deutung der Zeichen beschrnkt, die von den
+Informationssystemen in berflle geboten werden (Hartmann 1990, 42).
+Erfahrung in diesem Kontext ist immer wissenschaftliche Erfahrung,
+Produktion immer: Objektivation von Wissenschaft. Die Vernderung
+besteht allenfalls darin, da sich nunmehr nicht blo die
+Wissenschaftler und Ingenieure, sondern Teile der Arbeiterschaft
+selbst in wissenschaftlicher Weise auf die Erfahrung bzw. die
+Produktion beziehen und damit gleichsam von der passiven auf die
+aktive Seite des Abstraktifizierungsprozesses rcken.
+
+
+Unzulnglichkeiten seiner Machttheorie, auch nicht sehen knnen. Er
+hat aber immerhin etwas davon geahnt, wenn er von der "Ersetzung eines
+juridischen und negativen Rasters durch ein technisches und
+strategisches" spricht (1978, 105), wenn er auf neue Machtmechanismen
+verweist, die nicht mehr mit dem Recht, sondern mit der Technik
+arbeiten, wenn er betont, da die Macht nicht mehr nur 'von oben',
+sondern auch 'von unten', d.h. von den Subjekten selbst kommt (1977,
+110, 115). Wenn die direkte Kontrolle la Taylor berflssig wird, so
+nicht, weil das System durch zunehmend autonomere, ihre Qualifikation
+und ihre Intelligenz wiedergewinnende Subjekte in die Defensive
+gedrngt wrde. Sondern genau umgekehrt: weil es, flexibler und
+gleichsam dialektischer geworden, mit den Beitrgen der Subjekte
+selbst rechnen kann, die, vom wissenschaftlichen Code geprgt, die
+permanente Optimierung des Systems zu ihre eigenen Sache gemacht
+haben30.
+
+
+Entwicklung sein, die Foucault unbeachtet gelassen hat, auf die ich
+jedoch zum Schlu wenigstens hinweisen mchte, weil eine Theorie der
+Disziplinargesellschaft sie nicht ignorieren kann: die partielle
+Entdisziplinierung, von der die fortgeschrittenen
+Industriegesellschaften seit einiger Zeit heimgesucht werden. Die
+allgemeine Erhhung des Qualifikationsniveaus im Gefolge der
+'Bildungsrevolution' (Parsons) hat zu einer Entwertung der unteren
+Bildungsabschlsse gefhrt, die die Haupt- und Sonderschulabsolventen
+in eine hnliche Lage geraten lt wie Analphabeten. Die Hauptschule,
+so hat Ulrich Beck es formuliert (1986, 246), verwandelt sich mehr und
+mehr in einen 'Aufbewahrungsort fr arbeitslose Jugendliche', dessen
+Funktionsbestimmung sich in Richtung Beschftigungstherapie
+verschiebt. Die Folge ist nicht nur eine anomische Reaktion der
+betroffenen Jugendlichen, die sich etwa am Phnomen des ansteigenden
+Vandalismus ablesen lt, sondern eine tiefgreifende Entwertung der
+Autoritt der Schule und eine Erosion der von ihr vermittelten
+Disziplin - vor allem in Grostdten mit anhaltend hoher
+Jugendarbeitslosigkeit und hohem Anteil von Angehrigen
+diskriminierter Minderheiten. Whrend sich die Pdagogik an Gymnasien
+eher mit Problemen wie Ehrgeiz, Schulangst, bertriebene Anpassung und
+Kontaktschwierigkeiten konfrontiert sieht, werden an Hauptschulen in
+ zunehmendem Mae Verhaltensaufflligkeiten wie Unkonzentriertheit,
+Ungenauigkeit, Interessenmangel, verbale Aggression und Ungehorsam
+gegen den Lehrer registriert (Bach 1987, 58 f.). Auch an den
+Grundschulen mehren sich inzwischen die Unterrichtsstrungen in Form
+von bermotorik, diffuser Aggression, ungerichtetem Agieren und
+didaktisch-methodischer Unansprechbarkeit, so da das Bildungsangebot
+bei einem wachsenden Teil der Schler ins Leere stt (Ziehe 1983;
+Cloer 1982; ders. 1987; Winkel 1988). Wenn die Zeichen nicht trgen,
+so scheint es sowohl der sekundren als offenbar bereits der primren
+Sozialisation in Teilen der Gesellschaft zusehends weniger zu
+gelingen, jene innere Disziplin zu vermitteln, die nicht blo fr das
+Fortkommen, sondern schon fr das pure berleben in einer
+Disziplinargesellschaft unerllich ist. Welches immer die Ursachen
+sein mgen - Wohnverhltnisse, Arbeitslosigkeit, damit
+zusammenhngende defizitre familiale Kommunikation, nicht zuletzt
+auch eine durch Fernsehkonsum vernderte Organisationsform der Sinne -
+fest steht, da man heute nicht mehr schlichtweg von einer
+Verallgemeinerung der Disziplin, sondern allenfalls von einer
+partiellen Erweiterung sprechen kann, bei der ganze Sektoren der
+Gesellschaft als disziplinre Brachen ausgespart bleiben. Je weiter
+aber sich diese Brachen ausdehnen, desto dringlicher wird die Frage,
+ob die von Foucault beschriebene Modernisierung und Humanisierung der
+Disziplin, ihre Abkehr von einer bloen 'Gewaltrationalitt' (Dauk
+1989, 131), nicht der Anfang eines Prozesses sein knnte, in dessen
+Verlauf die Disziplinargesellschaft ihre eigenen Voraussetzungen
+zerstrt. Allein mit den von Foucault bereitgestellten Kategorien wird
+diese Frage nicht zu beantworten sein.
+
+ 
+
+
+
+
+
+
+
+
+der Auseinandersetzung mit Elias und Foucault deutlich, erfassen
+wichtige Aspekte der modernen Gesellschaft. Fr eine Gesamtdiagnose
+indes ist ihr Instrumentarium zu grob, ihr begrifflicher Zuschnitt zu
+eng. Es ist deshalb an der Zeit, den Fokus zu erweitern und jene
+beiden Theorien in den Blick zu nehmen, von denen wir uns in der
+Kritik an Elias und Foucault vielfach leiten lieen: die Kritische
+Theorie und die Systemtheorie.
+
+
+geschrieben worden: ber die unterschiedliche Auffassung von Handeln
+und Kommunikation, von Wahrheit und Rationalitt. Nur selten aber, und
+dann gewhnlich am Rande, hat die Debatte das eigentliche Thema
+probandum berhrt, das zwischen beiden Theorien zur Verhandlung steht:
+die moderne Gesellschaft und ihre Entwicklungstendenzen. Dabei ist
+kein Feld von so zentraler Bedeutung wie dieses - stimmen doch beide
+Theorien darin berein, da die Zukunft der Soziologie wesentlich
+davon abhngt, ob es ihr gelingt, einen Begriff ihres Gegenstandes -
+der Gesellschaft - zu entwickeln.
+
+
+Berhrungsangst zu sprechen. Vordringlicher ist es, sie zu
+durchbrechen, indem man den Gegenstand selbst in den Mittelpunkt der
+Errterungen rckt. Dies soll im folgenden in drei Schritten
+geschehen. Im ersten Abschnitt werde ich die Aussagen beider Theorien
+ber den Aufbau der modernen Gesellschaft vergleichen, die sich im
+einen Fall um den Begriff der Totalitt, im anderen Fall um den des
+Systems zentrieren. Im zweiten Abschnitt sollen die wichtigsten Thesen
+ber die Entwicklungstendenzen der modernen Gesellschaft
+herausgestellt werden, wobei ich mich vorrangig auf die Frage
+Differenzierung oder Entdifferenzierung konzentrieren werde. Der
+letzte Abschnitt behandelt die Mglichkeit wechselseitiger
+Lernprozesse beider Theorien im Horizont einer sich anbahnenden
+Konvergenz von Kritik und Affirmation. Der Vergleich wird sich auf
+Adorno und Luhmann als die beiden Autoren beschrnken, bei denen die
+Kritische Theorie und die Systemtheorie in ihrer 'Vollstufe'
+entwickelt sind.
+
+
+
+
+
+
+
+
+
+
+AAF 1. Jeder Anfang ist eine Vorentscheidung. Nach der Systemtheorie
+ist mit Differenz zu beginnen, nach dialektischer Auffassung mit
+Einheit. Folgte man der ersten Position, so wre man in diesem Fall
+ schnell fertig. Man wrde zeigen, da fr Luhmann Gesellschaft
+Kommunikation ist und in dieser Eigenschaft sowohl das Ganze
+verkrpert als auch das Wahre einschliet: die Gesamtheit der
+Kommunikationen als Selektion aus der Gesamtheit aller anschlufhigen
+- in Luhmanns Terminologie: 'wahren' - Kommunikationen (1990, 533,
+618f., 175)31. Auf der anderen Seite tauchte dann sogleich die Formel
+vom Ganzen als dem Unwahren sowie Adornos 'Generalverdacht gegen
+Kommunikation' auf (Mrchen 1981, 231). "Alles, was heutzutage
+Kommunikation heit, ausnahmslos, ist nur der Lrm, der die Stummheit
+der Gebannten bertnt" (GS 6, 341). Der Dialog wre zuende, ehe er
+berhaupt eingesetzt htte.
+
+ Wir mssen also nach Art der Dialektik beginnen, mit Einheit statt
+mit Differenz. Das ist weniger gewaltsam, als es nach dem ersten
+Vorgeplnkel den Anschein haben knnte, bestimmen doch Adorno wie
+Luhmann die moderne Gesellschaft ganz konventionell, unter Rckgriff
+auf den von Herbert Spencer in die Soziologie eingefhrten Begriff der
+funktionalen Differenzierung. Die moderne Gesellschaft ist nach
+Luhmann kein Organismus und kein Subjekt, sondern "dasjenige
+Sozialsystem, das die letzterreichbare Form funktionaler
+Differenzierung institutionalisiert" (1971, 15). "Modern society,
+then, has to be described as a functionally differentiated system.
+This is its main characteristic, the principle which generates its
+structures" (1984, 64).
+
+ Nicht anders sieht es Adorno. Gesellschaft, so verkndet er, sei
+"ein Funktions- und kein Substanzbegriff" (GS 8, 349), Soziologie die
+"Wissenschaft von den gesellschaftlichen Funktionen" (Adorno 1956,
+23). Whrend sich archaische Gesellschaften nicht zuletzt durch ihre
+nur geringe Arbeitsteilung auszeichneten, habe sich die moderne
+Gesellschaft zu einem gigantischen Interdependenzzusammenhang
+entfaltet.
+
+ "Mit Gesellschaft im prgnanten Sinn meint man eine Art Gefge zwischen Menschen, in dem alles und alle von allen
+abhngen; in dem das Ganze sich erhlt nur durch die Einheit der von smtlichen Mitgliedern erfllten Funktionen, und in dem
+jedem Einzelnen grundstzlich eine solche Funktion zufllt, whrend zugleich jeder Einzelne durch seine Zugehrigkeit zu dem
+totalen Gefge in weitem Mae bestimmt wird" (ebd. 22; vgl. GS 8,10).
+AAF
+ Fr Adorno ist mit dieser Bestimmung allerdings nur erst ein
+Aspekt der modernen Gesellschaft getroffen. Der zweite fr ihn
+wichtige Aspekt ist, da Gesellschaft ebensosehr eine Relations-, ja
+eine 'Vermittlungskategorie' sei (Adorno 1973, 36, 39). Was damit
+gemeint ist, lt sich durch eine Kontrastierung mit der
+funktionalistischen Theorie der Systemdifferenzierung verdeutlichen.
+Diese Theorie, die im brigen, wie das Beispiel Althusser zeigt, auch
+in den Marxismus Eingang gefunden hat, geht davon aus, da die moderne
+Gesellschaft durch die Ausdifferenzierung relativ autonomer
+Subsysteme, Ebenen oder Instanzen gekennzeichnet ist, welche innerhalb
+des Gesamtsystems nebeneinander existieren. Parsons unterscheidet
+dabei bekanntlich das politische, konomische, sozialkulturelle und
+gemeinschaftliche System; Luhmann Teilsysteme fr Politik, Wirtschaft,
+Recht, Erziehung, Religion und Wissenschaft; Althusser die politische,
+konomische und ideologische Ebene. Diese Differenzierung schliet
+nicht aus, da zwischen den Subsystemen Beziehungen bestehen: bei
+Parsons und Luhmann gibt es das Konzept der Interpenetration, bei
+Althusser sogar das Prinzip der Determinierung in letzter Instanz
+durch die konomie. Typisch aber ist, da in all diesen Konzeptionen
+(von deren Unterschieden hier abgesehen werden kann) die Beziehung
+ uerlicher Natur ist, eine bloe Wechselwirkung zwischen ansonsten
+getrennten und nach eigengesetzlichen Regeln prozessierenden Sphren.
+
+ Adorno bestreitet keineswegs die Existenz solcher autonomer
+Sphren. Die bliche Formel, mit der er Bereiche wie Kunst oder
+Wissenschaft charakterisiert, lautet, sie seien autonom und fait
+social zugleich (GS 7, 16; GS 8, 283). Damit ist jedoch auch gesagt,
+da die Theorie es bei der bloen Feststellung der Autonomie nicht
+belassen kann. Gerade als autonome sind die Teilsysteme vermittelt
+durch die konstitutive Struktur der Gesellschaft, ihre objektive
+'Wesensgleichheit' (Adorno 1973, 25), die in den Teilsystemen
+erscheint und sie ipso facto als Schein, als Reflexionsbestimmung
+durchschaubar macht. Was Adorno fr die Kunst notiert, gilt mutatis
+mutandis auch fr die brigen Bereiche des gesellschaftlichen Ganzen:
+
+ "Die Frage nach der Vermittlung von Geist und Gesellschaft reicht weit ber die Musik hinaus, wo man sie allzu leicht auf die
+nach dem Verhltnis von Produktion und Rezeption einengt. Gelten drfte, da jene Vermittlung nicht uerlich, in einem dritten
+Medium zwischen Sache und Gesellschaft stattfinde, sondern innerhalb der Sache. Und zwar nach ihrer objektiven und subjektiven
+Seite. Die gesellschaftliche Totalitt hat in der Gestalt des Problems und der Einheit der knstlerischen Lsungen sich sedimentiert, ist
+darin verschwunden. Weil in ihr Gesellschaft sich verkapselt hat, folgt sie, indem sie autonom sich entfaltet, auch der
+gesellschaftlichen Dynamik, ohne auf sie hinzublicken, ohne direkt mit ihr zu kommunizieren" (GS 14, 409).
+AAF
+ In der Bestimmung dieser Wesensgesetzlichkeit, die in den
+Teilsystemen erscheint und diese dadurch als vermittelte konstituiert,
+knpft Adorno an die klassische dialektische Theorie an, die die
+moderne Gesellschaft als brgerliche verstand. Wie Marx, der den
+Schlssel zu diesem System in der politischen konomie suchte, geht
+auch Adorno vom "Primat der konomie" aus (GS 4, 125) und lokalisiert
+hier den tragenden Lebensproze der Gesellschaft. Damit ist vor allem
+die grundlegende Rolle angesprochen, die der gesellschaftlichen Arbeit
+in der Moderne zukommt. Die sozialen Prozesse und Institutionen
+existieren nicht aus eigener Kraft, sie sind "wesentlich
+vergegenstndlichte Arbeit lebendiger Menschen"; selbst so subtile
+Erscheinungen wie Kunst, Philosophie oder Kulturkritik sind vom
+Arbeitsproze abhngig, "in dessen Schicksal verflochten" (GS 8, 17;
+GS 10.1, 18). Ein berhistorisches Gesetz, wie es etwa Engels' Prinzip
+der Determinierung in letzter Instanz aufstellt, ist damit nicht
+behauptet, denn eine 'szientifische Invariantenlehre' lehnt Adorno ab.
+Fr die moderne Gesellschaft allerdings gilt, da sie die "Einheit der
+durch ihre Arbeit das Leben der Gattung reproduzierenden Subjekte" ist
+und daher primr als "Totalitt der Arbeit" konzipiert werden mu (GS
+5, 267, 269). "Soweit die Welt ein System bildet, wird sie dazu eben
+durch die geschlossene Universalitt von gesellschaftlicher Arbeit"
+(ebd. 272).
+
+ Von entscheidender Bedeutung ist nun allerdings, da sich dieser
+Primat der Produktion unter brgerlichen Produktionsbedingungen auf
+eine hchst paradoxe Weise uert: als Abstraktion der Produktion von
+sich selbst. Konstitutiv fr den gesellschaftlichen Zusammenhang ist
+nicht die lebendige Arbeit, auch nicht das konkrete Bedrfnis.
+"Grundbestand der Gesellschaft an sich", "magebende Struktur der
+Gesellschaft" (GS 8, 13; GS 10.2, 745) ist vielmehr der Tausch, in dem
+die konkreten Einzelarbeiten auf ihren gemeinsamen Nenner reduziert
+werden - abstrakte Arbeit als Substanz des Wertes. Im Tausch, schreibt
+Adorno, "nicht erst in der wissenschaftlichen Reflexion, wird objektiv
+abstrahiert; wird abgesehen von der qualitativen Beschaffenheit der
+Produzierenden und Konsumierenden, vom Modus der Produktion, sogar vom
+Bedrfnis, das der gesellschaftliche Mechanismus beiher, als
+ Sekundres befriedigt" (GS 8, 13).
+
+ 'Tausch' in diesem Sinne meint mehr als eine konomische
+Transaktion, meint mehr als den bloen Besitzwechsel konkret-
+ntzlicher Gegenstnde. Der Begriff steht fr eine Gesamtverfassung,
+in der der konkret-materielle Inhalt des gesellschaftlichen Lebens,
+der Stoffwechselproze mit der Natur, und der soziale Zusammenhang
+auseinandergetreten sind und sich zum Gegensatz verselbstndigt haben.
+Ihre Einheit gewinnt die fragmentierte und atomisierte Gesellschaft
+nur mehr auf einem Umweg, ber den Austausch; da aber nur Gleiches,
+Vergleichbares, quivalentes getauscht werden kann, wechseln in der
+Zirkulation nicht Gebrauchswerte den Besitzer, sondern Tauschwerte;
+der Markt, so hat es Alfred Sohn-Rethel formuliert, dem Adorno
+entscheidende Einsichten verdankt, ist ein "zeitlich und rtlich
+bemessenes Vakuum an menschlichem Stoffwechsel mit der Natur" (Sohn-
+Rethel 1972, 80). Das, was die Einheit herstellt, ist der Wert; der
+Wert aber ist eine reine Abstraktion, etwas, in das 'kein Atom
+Naturstoff' eingeht, eine 'blo ideelle' oder 'nur gemeinte
+Bestimmung' (MEW 23, 62; Marx 1974, 173). Brgerliche
+Vergesellschaftung heit dementsprechend abstrakte, reine
+Vergesellschaftung, Integration durch eine Sphre, die in der
+traditionellen Metaphysik als 'Schein', in der idealistischen
+Philosophie als 'Geist' bezeichnet wurde - eine Welt des Symbolischen,
+der Stellvertretung, der Substitution, die alle Erscheinungsformen des
+Sozialen, von der Zirkulation ber Recht und Staat bis zu den
+subtileren Gestalten der Kunst, der Philosophie und der Wissenschaft,
+strukturiert.
+
+ "Den Vorwurf des Idealismus", schreibt Adorno, "hat nicht ein jeder zu frchten, der Begriffliches der gesellschaftlichen
+Realitt zurechnet...Mag man, gegenber der leibhaften Realitt und allen handfesten Daten, dies begriffliche Wesen Schein
+nennen, weil es beim quivalententausch mit rechten Dingen und doch nicht mit rechten Dingen zugeht: es ist doch kein Schein,
+zu dem organisierende Wissenschaft die Realitt sublimierte, sondern dieser immanent...Der Tauschwert, gegenber dem
+Gebrauchswert ein blo Gedachtes, herrscht ber das menschliche Bedrfnis und an seiner Stelle; der Schein ber die Wirklichkeit"
+(GS 8, 209).
+AAF
+ Diese Hervorhebung des Tauschverhltnisses ist von der
+marxistischen Orthodoxie hufig als Rckfall in brgerliches Denken
+kritisiert worden, als Unfhigkeit, ber den Standpunkt der
+Zirkulation hinauszugehen. Der Vorwurf hat eine gewisse Berechtigung,
+soweit er darauf zielt, da Adorno nicht mit der gebotenen
+Grndlichkeit auf die Einzelheiten der Marxschen Wertformanalyse
+eingegangen ist und deren Begriffe oft nur metaphorisch gebraucht. In
+ihrem Kern ist die Kritik jedoch unhaltbar: einmal, weil Adorno
+keineswegs bei der Zirkulation stehenbleibt und sehr wohl auch die
+entwickelteren Formen des Wertverhltnisses bis hin zur
+Klassenstruktur im Blick hat32; zum anderen, weil sie die fundamentale
+bereinstimmung verdeckt, die hinsichtlich der strukturellen Bedeutung
+der Zirkulation zwischen der Kritischen Theorie und der Kritik der
+politischen konomie besteht. Auch im Kapital fungiert als
+begrifflicher Ausgangspunkt nicht der Arbeitsproze oder ein wie immer
+geartetes 'System der Bedrfnisse', sondern die Abstraktion von der
+Produktion und vom Bedrfnis, wie sie sich in der Zirkulation, im
+Austausch von Waren gem ihren Werten, tagtglich vollzieht; und wenn
+es ein Gliederungsprinzip gibt, einen Grundgedanken, um den sich das
+System der politischen konomie organisiert, so ist er hier, in den
+verschiedenen Metamorphosen dieser Fundamentalabstraktion zu suchen,
+die vom einfachen Tausch ber den Geld- und Kapitalbegriff bis zu den
+Oberflchenbestimmungen der 'trinitarischen Formel' reichen. Indem
+ Adorno diesen Gedanken, in wie metaphorischer Form auch immer,
+festhlt und zu der These zuspitzt, da die Produktion nur
+gegenstandskonstitutiv, nicht aber gesellschaftskonstitutiv ist, steht
+er Marx nher als alle postmarxschen Arbeitsmythologien, die die Rede
+vom Scheincharakter der Zirkulation allzu wrtlich, nmlich
+brgerlich-aufklrerisch nehmen. Die Einheit der brgerlichen
+Gesellschaft ist keine Einheit der Arbeit, sondern eine des Wertes,
+der Abstraktion von der Arbeit.
+
+ Diese Einheit aber, und damit kehren wir zum Ausgangspunkt zurck,
+existiert nicht unmittelbar, sondern nur als Proze, als "eine
+Einheit, die sich durch den Trennungs-, durch den
+Abstraktionsmechanismus hindurch berhaupt eigentlich erst vollzieht"
+(Adorno 1973, 47). Die konstitutive Struktur, der Wert, ist keine
+isolierte, unbewegliche Instanz, die auf andere Instanzen diese oder
+jene Wirkung ausbt. Sie erzeugt vielmehr unablssig neue Formen, in
+denen sie sich zugleich manifestiert und verbirgt - so wie es Hegel
+fr die Sphren des subjektiven, objektiven und absoluten Geistes
+beschrieben hat, Marx fr die verschiedenen 'Verkncherungen' des
+Mehrwerts vom Profit ber den Produktionspreis bis hin zu den
+'mystischen' Formen von Zins, Arbeitslohn und Rente. Das Wesen mu
+erscheinen; die Gesamtheit seiner Erscheinungen aber ist: das System.
+Das System ist die dialektische Ordnung der Erscheinungsformen der
+Struktur, die Struktur wiederum ist nichts anderes als das System, auf
+seinen einfachsten und abstraktesten Ausdruck gebracht. Der hier von
+Adorno anvisierte Theorietypus liee sich am angemessensten als eine
+'strukturalistische Systemtheorie' charakterisieren, die die
+Einsichten des Strukturalismus und der Systemtheorie aufnimmt, sie
+aber dialektisiert und dadurch ihre Einseitigkeiten vermeidet.
+
+ Es ist nur scheinbar ein Widerspruch hierzu, wenn Adorno an
+anderer Stelle davon spricht, da sich das dialektische Denken
+zunehmend von der Systemform entfernen msse, oder wenn er die
+negative Dialektik geradezu als 'Antisystem' definiert (GS 8, 308; GS
+20.1, 165ff; GS 6, 10). Gewi gibt es neben dem Schler Hegels und
+Marxens auch den Schler Nietzsches und Benjamins, dessen
+antisystematische Affekte sich methodisch in der Bevorzugung der
+'Mikrologie' und des Aphorismus niederschlagen und mitunter in
+emphatischen Bekenntnissen kulminieren wie demjenigen, da der
+wirklich freie Gedanke mit dem System unvereinbar sei (Adorno 1974,
+266). Es wre indes ein vlliges Miverstndnis von Adornos Position,
+wenn man darin eine Absage an das systematische Denken oder gar eine
+Leugnung des Systemcharakters der gesellschaftlichen Realitt sehen
+wollte. Da die brgerliche Gesellschaft ein System ist, eine Einheit
+also, die aus einem Punkt heraus erzeugt und nicht nur die uerliche
+Ordnung eines vorgegebenen Stoffes ist, steht fr Adorno auer Frage,
+ebenso wie die Gltigkeit der Kategorien, mit denen Hegel und vor
+allem Marx dieses System beschrieben haben. Anders wre seine im
+Positivismusstreit immer wieder geuerte Mahnung unverstndlich, da
+die Soziologie ihr Objekt verfehle, wenn sie darauf verzichte,
+"Gesellschaft als System" zu denken, wenn sie sich mit bloen
+Systematisierungen begnge, anstatt "das den Prozeduren und Daten
+wissenschaftlicher Erkenntnis vorgeordnete System der Gesellschaft" zu
+rekonstruieren (GS 8, 210, 356). Die Mikrologie setzt an jedem Punkt
+die Gltigkeit der Marxschen Strukturanalysen voraus, sie ist mglich
+nur auf dem Boden des dialektischen Begriffs, auch wenn sie darauf
+verzichtet, diesen im Einzelfall zu explizieren. Bei aller Kritik, die
+Adorno an Hegels Identifikation des Systems mit dem absoluten Subjekt
+ gebt hat, hat er doch an der Notwendigkeit und Angemessenheit des
+Systembegriffs zu keiner Zeit einen Zweifel gelassen:
+
+ "Ist jenes Subjekt-Objekt, zu dem seine (scil. Hegels) Philosophie sich entwickelt, kein System des vershnten absoluten
+Geistes, so erfhrt der Geist doch die Welt als System. Sein Name trifft den unerbittlichen Zusammenschlu aller Teilmomente und
+Teilakte der brgerlichen Gesellschaft durch das Tauschprinzip zu einem Ganzen genauer als irrationalere wie der des Lebens,
+selbst wenn dieser der Irrationalitt der Welt, ihrer Unvershntheit mit den vernnftigen Interessen einer ihrer selbst bewuten
+Menschheit, besser anstnde. Nur ist die Vernunft jenes Zusammenschlusses zur Totalitt selber die Unvernunft, die Totalitt des
+Negativen" (GS 5, 324): eben die des Tauschs, der die Einzelnen einem ihnen fremden Gesetz unterwirft.
+AAF
+ Da diese Negativitt das System, das sie konstituiert, zugleich
+in den Untergang treibt, wird weiter unten darzustellen sein.
+
+
+
+ 2. Der zentrale Stellenwert, den die dialektische Theorie dem
+Systembegriff zuweist, hat ihr wenig Anerkennung bei derjenigen
+Theorie eingetragen, die sich diesen Begriff fr ihre
+Selbstbeschreibung zu eigen gemacht hat: der Systemtheorie. Vom
+"ehrwrdige(n) Konzept der brgerlichen bzw. proletarischen,
+wirtschaftlich konstituierten Gesellschaft" (1974, 217) spricht
+Luhmann im gleichen Ton wie ein Raketenkonstrukteur von den Bemhungen
+des Schneiders von Ulm; vom "negatorische(n) Apparat brgerlicher
+Gesellschaftskritik im Sinne von Rousseau, Hegel oder Marx" (1979,
+105) wie von einem berflssigen Ballast, dessen man sich tunlichst
+entledigen sollte. Zwar konzediert Luhmann diesem Theorietypus das
+"Erstgeburtsrecht als reflexive Theorie", doch bemngelt er
+gleichzeitig "die eigentmliche Schmalspurigkeit, die zu geringe und
+zu unbestimmte Komplexitt, die Fixierung auf wenige Gesichtspunkte,
+an die man mit vermeintlich eindeutigen Effekten Negationen anknpfen
+kann" (1982, 193).
+
+ Die Grnde fr diese abschtzig-distanzierende Haltung sind rasch
+benannt. Die Theorie der brgerlichen Gesellschaft, sowohl in ihrer
+affirmativen als auch in ihrer kritischen Gestalt, ist nach Luhmann
+die letzte in einer Serie von Selbstthematisierungen des
+Gesellschaftssystems, die die Gesellschaft unzureichend, nmlich auf
+der Basis ontologischer und anthropologischer Prmissen zu begreifen
+versuchte. Im Gegensatz zu der bis auf Aristoteles zurckgehenden
+'alteuropischen' Lehre, welche die Gesellschaft als societas civilis,
+d.h. als primr politisch konstituierte Ordnung verstand, habe die
+Theorie der brgerlichen Gesellschaft zwar neues Terrain betreten,
+indem sie den Akzent auf das Wirtschaftssystem verlagert habe; doch
+seien die anthropologisch-ontologischen Begrndungsmuster im Prinzip
+beibehalten worden. Wie die Aristoteliker den Primat der Politik,
+htten auch die brgerlichen Theoretiker den Primat der konomie mit
+Naturbegriffen begrndet und ihre Gesellschaftskonzeption darauf
+aufgebaut - wobei es nach Luhmann eine zweitrangige Frage ist, ob
+diese Naturbegriffe naturrechtlicher oder materialistischer Provenienz
+waren: beide Anstze htten die Gesellschaft als Aggregat von
+natrlichen Bedrfnissen und Befriedigungsmglichkeiten konzipiert und
+die Teilsysteme auf dieses Kernsystem bezogen (1974, 142, 206). Marx
+erscheint aus dieser Sicht gleichsam nur als Schlupunkt in der
+Selbstthematisierung der brgerlichen Gesellschaft, sein Materialismus
+nicht als Durchbruch zu einer neuen, die brgerliche Welt
+transzendierenden Auffassung, sondern als brgerliche Philosophie par
+excellence (1981, 235). Obwohl Luhmann nicht ausschliet, da von der
+marxistisch-sozialistischen Selbstkritik der brgerlichen Gesellschaft
+ bestimmte politische Effekte ausgehen knnten, hlt er deren Potential
+doch fr erschpft. Ein wirkliches Verstndnis, das sich auf der Hhe
+der Zeit befindet, ist nach seiner berzeugung weder von den
+Apologeten der brgerlichen Gesellschaft zu erwarten noch von deren
+Kritikern. Gefordert ist vielmehr eine grundlegende Neuorientierung,
+die die Gesellschaftstheorie von anthropologischen und humanistischen
+Prmissen abkoppelt und auf ein anderes, die Eigenstndigkeit und
+Eigenlogik des Sozialen bercksichtigendes Fundament stellt.
+
+ Nun ist sicher nicht zu bestreiten, da ontologische Motive in dem
+von Luhmann inkriminierten Sinne eine wichtige Rolle in der
+materialistischen Dialektik spielen: nicht blo in den kruden
+Varianten, die man in den Lehrbchern des real kaum noch existierenden
+Sozialismus findet, sondern schon bei Marx, der seine
+Revolutionstheorie vollstndig auf eine Ontologie der Arbeit grndet,
+und auch bei Adorno, der im Gebrauchswert das "Ineffabile der Utopie"
+sieht und seine Kritik am brgerlichen System auf die Idee eines
+"Vorrangs des Objekts" sttzt (vgl. GS 6, 22, 184ff.). Was indes die
+Darstellung dieses System betrifft, die Untersuchung seines inneren
+Baus, so greift Luhmanns Kritik zu kurz. Weder Marx noch Adorno
+benutzen Naturbegriffe oder ontologische Argumente. Vielmehr zeigen
+sie przise, da die brgerliche Gesellschaft anstatt auf der
+konkreten Arbeit oder dem Bedrfnis auf der Abstraktion von der Arbeit
+und vom Bedrfnis beruht, auf Verhltnissen, die sich hinter dem
+Rcken der handelnden Personen herausbilden und sich zu einem
+hochkomplexen Gefge verdinglichter und subjektivierter Bestimmungen
+entfalten. Da Luhmann dies im brigen nicht ganz fremd ist, zeigt
+sich an solchen Stellen, an denen er auf Marxsche Analysen (wie etwa
+die des Geldes) rekurriert und ihnen "ihr volles Recht" bescheinigt
+(1980, 253f.).
+
+ Luhmanns Vorschlag, die Gesellschaft unter Absehung von allen
+empirisch-materiellen Elementen zu definieren, kann man unter diesen
+Umstnden wohl kaum als die kopernikanische Revolution begreifen, als
+die er ihn prsentiert. Weit davon entfernt, die dialektische Theorie
+durch einen radikalen Paradigmenwechsel zu berholen, wiederholt er
+lediglich (ohne allerdings die Begrndung mitzuvollziehen) deren
+Einsicht, da der gesellschaftliche Lebensproze unter brgerlichen
+Produktionsbedingungen in doppelter Gestalt erscheint: als
+gegenstndlich-materielle, aber private Produktion einerseits, als
+gesellschaftlicher, aber immaterieller Zusammenhang andererseits.
+Konkret und privat im Sinne von ungesellschaftlich, das sind nach
+Luhmann die Individuen, die als autonome, 'autopoietische' Systeme
+"auerhalb aller sozialen Systeme" operieren und dabei, obwohl
+wesentlich Bewutsein, doch einen engen Bezug zum organisch-
+materiellen Leben haben (1985, 359, 296f.). Die Gesellschaft hingegen
+ist Kommunikation und nichts als Kommunikation. Sie konstituiert sich
+zwar aus den Erwartungen und Kommunikationen psychischer Systeme, geht
+aber in dieser ihrer Genesis nicht auf, bildet "eine freischwebend
+konsolidierte Realitt, ein sich selbst grndendes Unternehmen" (ebd.
+173), eben 'reine' Kommunikation.
+
+ "Ganz grob kann man das System der Gesellschaft charakterisieren als Gesamtheit der freinander zugnglichen,
+kommunikativ erreichbaren Erlebnisse und Handlungen. Kommunikation verwebt die Gesellschaft zur Einheit" (1981, 309).
+AAF
+ Ersetzt man Kommunikation durch Zirkulation, so hat man exakt die
+Marxsche These, nach der die brgerliche Gesellschaft ihre Einheit und
+ihren Selbstbezug allein vermge der Ausdifferenzierung einer
+ eigenstndigen Sphre der abstrakten Allgemeinheit neben und auer der
+empirisch-materiellen Dimension der Produktion und des Konsums
+herzustellen vermag.
+
+ Die eigentliche Differenz zwischen Systemtheorie und Dialektik
+liegt deshalb nicht darin, da die erstere Gesellschaft auf
+Kommunikation reduziert und alle nichtkommunikativen Elemente, die mit
+der Aneignung der Natur zusammenhngen, eskamotiert (so Ganmann
+1986a, 148ff.). Da in der brgerlichen Gesellschaft die in der
+Produktion erfolgende Naturaneignung nicht unmittelbar
+gesellschaftlich ist, es vielmehr erst durch die Vermittlung der
+Zirkulation wird, ist schlielich der Kardinaleinwand der Marxschen
+Theorie gegen die Warenproduktion. Die Differenz liegt auf der
+methodischen Ebene, in der Art und Anordnung der Kategorien, aus denen
+das brgerliche System besteht. Whrend fr die Kritische Theorie
+Gesellschaft eine Vermittlungskategorie ist, die zwar nicht im
+identischen Subjekt-Objekt, wohl aber in einer konstitutiven Struktur
+(dem 'Wesensgesetz') grndet und von diesem 'inneren Kern' her
+rekonstruiert werden mu, lehnt Luhmann einen solchen Ansatz ab. Da er
+den Strukturbegriff nur in der Fassung kennt, wie er innerhalb der
+funktionalistischen Tradition durch Parsons und Merton berliefert ist
+- als Manifestation invarianter, nichtkontingenter Beziehungen
+zwischen Elementen (1985, 377ff.) -, kann er der Struktur allenfalls
+im Hinblick auf vormoderne Gesellschaften einen privilegierten Rang
+zugestehen; fr die moderne Gesellschaft dagegen erscheint ihm die
+Struktur, von dieser Prmisse her durchaus konsequent, als gegenber
+der Funktion von zweitrangiger Bedeutung. Die Einheit der modernen
+Gesellschaft, so konstatiert er, existiere nur in der Differenz der
+Funktionssysteme:
+
+ "sie ist nichts anderes als deren wechselseitige Autonomie und Unsubstituierbarkeit. Sie ist nichts anderes als die Umsetzung
+dieser Struktur in ein Miteinander von hochgetriebener Unabhngigkeit und Abhngigkeit. Sie ist, mit anderen Worten, die dadurch
+entstandene, evolutionr hchst unwahrscheinliche Komplexitt" (1986, 216f.).
+AAF
+ Diese Auffassung darf nun nicht so verstanden werden, als gebe es
+nach Luhmann kein Gesamtsystem, als sei die Gesellschaft nichts weiter
+als die Summe der von den Teilsystemen erfllten Funktionen. Auch
+Luhmanns Entwurf bleibt insofern der Tradition
+gesamtgesellschaftlicher Theorie verpflichtet, als in ihm der
+Gesellschaftsbegriff Begrndungsfunktionen erfllt, "das heit den
+Horizont des Mglichen und Erwartbaren definiert und letzte
+grundlegende Reduktionen einrichtet" (1974, 145). Diese
+Begrndungsfunktion manifestiert sich erstens nach auen, in der
+Abgrenzung des Sozialen vom Nichtsozialen, die durch die
+Unterscheidung von Kommunikation und Nichtkommunikation erreicht wird.
+"Gesellschaft betreibt Kommunikation, und was immer Kommunikation
+betreibt, ist Gesellschaft" (1985, 555). Sie manifestiert sich
+zweitens in der internen Strukturierung, im Aufbau von Teilsystemen,
+die auf bestimmte, nur ihnen zurechenbare Funktionen spezialisiert
+sind. Und sie manifestiert sich drittens auch in einem Zugriff auf
+diese Teilsysteme, der dafr sorgt, da sich keines derselben auf
+Kosten anderer Teilsysteme totalisiert: z.B. durch Einbau von
+Beschrnkungen in die Reflexionsstruktur der Teilsysteme (1977, 245).
+Insofern kann auch Luhmann von der "Einheit der Gesellschaft" sprechen
+und Dimensionen angeben, in denen diese Einheit sich zeigt (vgl. 1974,
+147, 149; 1985, 37f.; 1986, 202, 205).
+
+ Der Unterschied zur dialektischen Theorie liegt darin, da diese
+ Einheit den Phnomenen uerlich bleibt, mit ihnen nicht vermittelt
+ist. Gelangt fr Adorno die gesellschaftliche Determinierung in den
+Phnomenen selbst zum Ausdruck, so da die deutende Analyse das
+Einzelne auf sein Allgemeines hin durchsichtig zu machen vermag, so
+rutscht sie bei Luhmann gleichsam zwischen die Phnomene, in die
+"Interdependenz und (den) Abstimmungszwang unter den Folgeproblemen
+strkerer Differenzierung" (1974, 147). Die Teilsysteme sind in der
+modernen Gesellschaft per definitionem nicht Manifestationen der
+Gesamtgesellschaft bzw. der konstitutiven Struktur, sie sind
+Manifestationen einer Funktion und damit gerade nicht des Ganzen; da
+sie gleichwohl einem bergeordneten Zusammenhang angehren, zeigt sich
+nicht in ihnen selbst, sondern nur in ihrer Umwelt, in der
+Mannigfaltigkeit innergesellschaftlicher System-Umwelt-Differenzen.
+Von hier aus wird die eigenwillige, der Auffassung Adornos kontrr
+entgegengesetzte Deutung verstndlich, die Luhmann dem
+traditionsreichen Begriff der Integration verleiht:
+
+ "Mit dem bergang von segmentrer zu schichtenmiger und von schichtenmiger zu funktionaler Primrdifferenzierung
+des Gesellschaftssystems ndert sich die Zugriffsform des gesamtgesellschaftlichen Systems auf die Teilsysteme; sie verlagert sich
+von den Strukturen der Teilsysteme auf ihre innergesellschaftliche Umwelt. Die Gesellschaft kann bei zunehmender Komplexitt
+immer weniger garantieren, da alle Teilsysteme unter gleichen Strukturen gleichfrmig operieren und sich aus diesem Grunde
+nicht bermig belasten. Integration mu vielmehr dadurch vermittelt werden, da alle Teilsysteme freinander
+innergesellschaftliche Umwelt sind. Ein Teilsystem gehrt dann weniger dadurch der Gesellschaft an, da es in seiner Strukturwahl
+sich nach den Erfordernissen, Werten oder gar Normen richtet, die fr alle Systeme gelten, sondern dadurch, da es sich an einer
+nichtbeliebig geordneten, als Gesellschaft garantierten und vorstrukturierten Umwelt auszurichten hat" (1977, 243f.).
+AAF
+ Gegenber diesem Ansatz sind unterschiedliche Reaktionsformen
+mglich. Man kann ihn in toto zurckweisen und von auen her, etwa vom
+Standpunkt einer dialektisch-materialistischen Konzeption, monieren,
+da Luhmann der Oberflche der brgerlichen Gesellschaft verhaftet
+bleibt und beispielsweise auerstande ist, den Geldfetisch zu
+durchschauen (Blanke/Jrgens/Kastendiek 1975, 381ff.; Giegel 1975,
+96ff.; Ganmann 1986). Das mag zutreffen, endet aber in den meisten
+Fllen mit einer Rehabilitation eben jener Philosophie der Arbeit,
+deren mangelnde Tragfhigkeit Luhmann wohl zu Recht herausstellt. Man
+kann ferner immanent-kritisch fragen, ob Luhmann sein eigenes
+"postdialektisches Forschungsprogramm" realisiert und Analysen
+entwickelt, aus denen hervorgeht, wie die Gesellschaft die ihr
+zugewiesene Aufgabe der Einregulierung der innergesellschaftlichen
+Umwelt erfllt; wobei man dann feststellen wird, da sich der sonst so
+beredte Autor an dieser 'theoriebautechnisch' so wichtigen
+Scharnierstelle in Schweigen hllt. Jedenfalls hat Luhmann
+bemerkenswert wenig Energie daran gesetzt, den "Leerplatz" zu fllen,
+den er schon 1970 an der Stelle einer den heutigen Verhltnissen
+angemessenen Theorie des Gesellschaftssystems entdeckte (1974, 152).
 \ No newline at end of file
diff --git a/testautomation/writer/required/includes/w_004_.inc b/testautomation/writer/required/includes/w_004_.inc
index b157722ee145..ea1972cbafb7 100755..100644
--- a/testautomation/writer/required/includes/w_004_.inc
+++ b/testautomation/writer/required/includes/w_004_.inc
@@ -463,6 +463,7 @@ testcase tInsertComment
printlog " Insert / Comment"
InsertNoteWriter
+ wait 500
Kontext "DocumentWriter"
sNoteText = "Comment inserted by testtool !"
Call wTypeKeys (sNoteText)
diff --git a/testtools/com/sun/star/comp/bridge/TestComponent.java b/testtools/com/sun/star/comp/bridge/TestComponent.java
index a399595f0164..f5f5c1f455b8 100644
--- a/testtools/com/sun/star/comp/bridge/TestComponent.java
+++ b/testtools/com/sun/star/comp/bridge/TestComponent.java
@@ -1310,23 +1310,4 @@ public class TestComponent {
return xSingleServiceFactory;
}
-
- /**
- * Writes the service information into the given registry key.
- * This method is called by the <code>JavaLoader</code>
- * <p>
- * @return returns true if the operation succeeded
- * @param regKey the registryKey
- * @see com.sun.star.comp.loader.JavaLoader
- */
- public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
- boolean result = true;
-
- result = result & FactoryHelper.writeRegistryServiceInfo(_TestObject.class.getName(), _TestObject.__serviceName, regKey);
- result = result & FactoryHelper.writeRegistryServiceInfo(_PerformancTestObject.class.getName(),
- _PerformancTestObject.__serviceName, regKey);
-
- return result;
- }
-
}
diff --git a/testtools/prj/build.lst b/testtools/prj/build.lst
index 24dce4119821..775075aa83f0 100644
--- a/testtools/prj/build.lst
+++ b/testtools/prj/build.lst
@@ -1,6 +1,6 @@
-tt testtools : cpputools io remotebridges stoc javaunohelper pyuno cli_ure offapi NULL
+tt testtools : cpputools io remotebridges stoc javaunohelper pyuno cli_ure offapi ure NULL
tt testtools\inc nmake - all tt_inc NULL
-tt testtools\source\bridgetest nmake - all tt_bridgetest tt_bridgetest_idl tt_javaTestObjs tt_inc NULL
+tt testtools\source\bridgetest nmake - all tt_bridgetest tt_bridgetest_idl tt_inc NULL
tt testtools\source\bridgetest\cli nmake - w,vc7 tt_cli tt_bridgetest tt_bridgetest_idl tt_inc NULL
tt testtools\source\bridgetest\idl nmake - all tt_bridgetest_idl tt_inc NULL
tt testtools\com\sun\star\comp\bridge nmake - all tt_javaTestObjs tt_bridgetest_idl tt_inc NULL
diff --git a/testtools/source/bridgetest/bridgetest.component b/testtools/source/bridgetest/bridgetest.component
new file mode 100644
index 000000000000..e2dec0b74c77
--- /dev/null
+++ b/testtools/source/bridgetest/bridgetest.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.bridge.BridgeTest">
+ <service name="com.sun.star.test.bridge.BridgeTest"/>
+ </implementation>
+</component>
diff --git a/testtools/source/bridgetest/bridgetest.cxx b/testtools/source/bridgetest/bridgetest.cxx
index 46204319966d..70cec6b74abf 100644
--- a/testtools/source/bridgetest/bridgetest.cxx
+++ b/testtools/source/bridgetest/bridgetest.cxx
@@ -47,7 +47,6 @@
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/lang/XComponent.hpp>
#include <com/sun/star/lang/XMain.hpp>
-#include <com/sun/star/registry/XRegistryKey.hpp>
#include <com/sun/star/bridge/UnoUrlResolver.hpp>
#include <com/sun/star/bridge/XUnoUrlResolver.hpp>
#include "com/sun/star/uno/RuntimeException.hpp"
@@ -1323,27 +1322,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo( void *, void * pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- Reference< XRegistryKey > xNewKey(
- reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
- OUString( RTL_CONSTASCII_USTRINGPARAM("/" IMPLNAME "/UNO/SERVICES") ) ) );
- xNewKey->createKey( OUString( RTL_CONSTASCII_USTRINGPARAM(SERVICENAME) ) );
-
- return sal_True;
- }
- catch (InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * )
{
diff --git a/testtools/source/bridgetest/constructors.component b/testtools/source/bridgetest/constructors.component
new file mode 100644
index 000000000000..3f3957c7c859
--- /dev/null
+++ b/testtools/source/bridgetest/constructors.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="comp.test.testtools.bridgetest.Constructors">
+ <service name="test.testtools.bridgetest.Constructors"/>
+ </implementation>
+ <implementation name="comp.test.testtools.bridgetest.Constructors2">
+ <service name="test.testtools.bridgetest.Constructors2"/>
+ </implementation>
+</component>
diff --git a/testtools/source/bridgetest/constructors.cxx b/testtools/source/bridgetest/constructors.cxx
index feff9fef567d..085a21d07fa3 100644
--- a/testtools/source/bridgetest/constructors.cxx
+++ b/testtools/source/bridgetest/constructors.cxx
@@ -508,10 +508,3 @@ extern "C" void SAL_CALL component_getImplementationEnvironment(
{
*envTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-
-extern "C" ::sal_Bool SAL_CALL component_writeInfo(
- void * serviceManager, void * registryKey)
-{
- return ::cppu::component_writeInfoHelper(
- serviceManager, registryKey, entries);
-}
diff --git a/testtools/source/bridgetest/cppobj.component b/testtools/source/bridgetest/cppobj.component
new file mode 100644
index 000000000000..239e8e348702
--- /dev/null
+++ b/testtools/source/bridgetest/cppobj.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.bridge.CppTestObject">
+ <service name="com.sun.star.test.bridge.CppTestObject"/>
+ </implementation>
+</component>
diff --git a/testtools/source/bridgetest/cppobj.cxx b/testtools/source/bridgetest/cppobj.cxx
index 68c725240971..4c8d690aab06 100644
--- a/testtools/source/bridgetest/cppobj.cxx
+++ b/testtools/source/bridgetest/cppobj.cxx
@@ -42,7 +42,6 @@
#include "cppuhelper/compbase_ex.hxx"
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/lang/XComponent.hpp>
-#include <com/sun/star/registry/XRegistryKey.hpp>
#include "com/sun/star/uno/Any.hxx"
#include "com/sun/star/uno/RuntimeException.hpp"
#include "com/sun/star/uno/Sequence.hxx"
@@ -1182,27 +1181,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo( void *, void * pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- Reference< XRegistryKey > xNewKey(
- reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey(
- OUString( RTL_CONSTASCII_USTRINGPARAM("/" IMPLNAME "/UNO/SERVICES") ) ) );
- xNewKey->createKey( OUString( RTL_CONSTASCII_USTRINGPARAM(SERVICENAME) ) );
-
- return sal_True;
- }
- catch (InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * )
{
diff --git a/testtools/source/bridgetest/makefile.mk b/testtools/source/bridgetest/makefile.mk
index 9b75a1aed1e3..945af7c0f0ba 100644
--- a/testtools/source/bridgetest/makefile.mk
+++ b/testtools/source/bridgetest/makefile.mk
@@ -41,18 +41,23 @@ DLLPRE = # no leading "lib" on .so files
BATCH_SUFFIX=.bat
GIVE_EXEC_RIGHTS=@echo
MY_URE_INTERNAL_JAVA_DIR=$(strip $(subst,\,/ file:///$(shell @$(WRAPCMD) echo $(SOLARBINDIR))))
-MY_LOCAL_CLASSDIR=$(strip $(subst,\,/ file:///$(shell $(WRAPCMD) echo $(PWD)$/$(CLASSDIR))))
+MY_LOCAL_CLASSDIR=$(strip $(subst,\,/ file:///$(shell $(WRAPCMD) echo $(PWD)/$(CLASSDIR)/)))
.ELIF "$(GUI)"=="OS2"
BATCH_SUFFIX=.cmd
GIVE_EXEC_RIGHTS=@echo
MY_URE_INTERNAL_JAVA_DIR=$(strip $(subst,\,/ file:///$(shell @$(WRAPCMD) echo $(SOLARBINDIR))))
-MY_LOCAL_CLASSDIR=$(strip $(subst,\,/ file:///$(shell $(WRAPCMD) echo $(PWD)$/$(CLASSDIR))))
+MY_LOCAL_CLASSDIR=$(strip $(subst,\,/ file:///$(shell $(WRAPCMD) echo $(PWD)/$(CLASSDIR)/)))
.ELSE
GIVE_EXEC_RIGHTS=chmod +x
MY_URE_INTERNAL_JAVA_DIR=file://$(SOLARBINDIR)
-MY_LOCAL_CLASSDIR=file://$(PWD)$/$(CLASSDIR)
+MY_LOCAL_CLASSDIR=file://$(PWD)/$(CLASSDIR)/
.ENDIF
+my_components = bridgetest constructors cppobj
+.IF "$(SOLAR_JAVA)" != ""
+my_components += testComponent
+.END
+
.IF "$(GUI)"=="WNT"
.IF "$(compcheck)" != ""
CFLAGSCXX += -DCOMPCHECK
@@ -122,6 +127,7 @@ JAVATARGETS=\
.IF "$(L10N_framework)"==""
ALLTAR: \
runtest \
+ $(DLLDEST)/services.rdb \
$(DLLDEST)$/uno_types.rdb \
$(DLLDEST)$/uno_services.rdb \
$(DLLDEST)$/bridgetest_server$(BATCH_SUFFIX) \
@@ -130,7 +136,8 @@ ALLTAR: \
#################################################################
-runtest : $(DLLDEST)$/uno_types.rdb $(DLLDEST)$/uno_services.rdb makefile.mk
+runtest : $(DLLDEST)$/uno_types.rdb $(DLLDEST)$/uno_services.rdb makefile.mk \
+ $(SHL1TARGETN) $(SHL2TARGETN) $(SHL3TARGETN)
.IF "$(COM)$(OS)$(CPU)" == "GCCMACOSXP"
@echo "Mac OSX PPC GCC fails this test!, likely broken UNO bridge. Fix me."
.ELSE
@@ -139,14 +146,18 @@ runtest : $(DLLDEST)$/uno_types.rdb $(DLLDEST)$/uno_services.rdb makefile.mk
-s com.sun.star.test.bridge.BridgeTest -- \
com.sun.star.test.bridge.CppTestObject
.ENDIF
-
+
+$(DLLDEST)/services.rdb :
+ $(COPY) $(SOLARXMLDIR)/ure/services.rdb $@
+
$(DLLDEST)$/uno_types.rdb : $(SOLARBINDIR)$/udkapi.rdb
echo $(DLLDEST)
$(GNUCOPY) $? $@
$(REGMERGE) $@ / $(BIN)$/bridgetest.rdb
$(DLLDEST)$/bridgetest_client$(BATCH_SUFFIX) .ERRREMOVE: makefile.mk
- echo '$(AUGMENT_LIBRARY_PATH)' '$(SOLARBINDIR)'/uno -ro uno_services.rdb -ro uno_types.rdb \
+ echo '$(AUGMENT_LIBRARY_PATH)' '$(SOLARBINDIR)'/uno -ro services.rdb \
+ -ro uno_services.rdb -ro uno_types.rdb \
-s com.sun.star.test.bridge.BridgeTest -- \
-u \''uno:socket,host=127.0.0.1,port=2002;urp;test'\' > $@
$(GIVE_EXEC_RIGHTS) $@
@@ -175,44 +186,44 @@ $(DLLDEST)$/bridgetest_javaserver$(BATCH_SUFFIX) : makefile.mk
$(GIVE_EXEC_RIGHTS) $@
$(DLLDEST)$/bridgetest_inprocess_java$(BATCH_SUFFIX) .ERRREMOVE: makefile.mk
- echo '$(AUGMENT_LIBRARY_PATH)' '$(SOLARBINDIR)'/uno -ro uno_services.rdb -ro uno_types.rdb \
+ echo '$(AUGMENT_LIBRARY_PATH)' '$(SOLARBINDIR)'/uno -ro services.rdb \
+ -ro uno_services.rdb -ro uno_types.rdb \
-s com.sun.star.test.bridge.BridgeTest \
-env:URE_INTERNAL_JAVA_DIR=$(MY_URE_INTERNAL_JAVA_DIR) \
+ -env:MY_CLASSDIR_URL=$(MY_LOCAL_CLASSDIR) \
-- com.sun.star.test.bridge.JavaTestObject noCurrentContext > $@
$(GIVE_EXEC_RIGHTS) $@
.ENDIF
-$(DLLDEST)$/uno_services.rdb .ERRREMOVE: $(DLLDEST)$/uno_types.rdb \
- $(DLLDEST)$/bridgetest.uno$(DLLPOST) $(DLLDEST)$/cppobj.uno$(DLLPOST) \
- $(MISC)$/$(TARGET)$/bootstrap.rdb $(SHL3TARGETN)
- - $(MKDIR) $(@:d)
- $(REGCOMP) -register -br $(DLLDEST)$/uno_types.rdb \
- -r $(DLLDEST)$/uno_services.rdb -wop \
- -c acceptor.uno$(DLLPOST) \
- -c bridgefac.uno$(DLLPOST) \
- -c connector.uno$(DLLPOST) \
- -c remotebridge.uno$(DLLPOST) \
- -c uuresolver.uno$(DLLPOST) \
- -c stocservices.uno$(DLLPOST)
- cd $(DLLDEST) && $(REGCOMP) -register -br uno_types.rdb \
- -r uno_services.rdb -wop=./ \
- -c .$/bridgetest.uno$(DLLPOST) \
- -c .$/cppobj.uno$(DLLPOST) \
- -c .$/$(SHL3TARGETN:f)
-.IF "$(SOLAR_JAVA)" != ""
- $(REGCOMP) -register -br $(DLLDEST)$/uno_types.rdb -r $@ \
- -c javaloader.uno$(DLLPOST) -c javavm.uno$(DLLPOST)
- $(REGCOMP) -register -br $(MISC)$/$(TARGET)$/bootstrap.rdb -r $@ -c \
- $(MY_LOCAL_CLASSDIR)/testComponent.jar \
- -env:URE_INTERNAL_JAVA_DIR=$(MY_URE_INTERNAL_JAVA_DIR)
-.ENDIF
+$(DLLDEST)$/uno_services.rdb .ERRREMOVE : $(SOLARENV)/bin/packcomponents.xslt \
+ $(MISC)/uno_services.input $(my_components:^"$(MISC)/":+".component")
+ $(XSLTPROC) --nonet --stringparam prefix $(PWD)/$(MISC)/ -o $@ \
+ $(SOLARENV)/bin/packcomponents.xslt $(MISC)/uno_services.input
-$(MISC)$/$(TARGET)$/bootstrap.rdb .ERRREMOVE:
- - $(MKDIR) $(@:d)
- $(COPY) $(SOLARBINDIR)$/types.rdb $@
-.IF "$(SOLAR_JAVA)" != ""
- $(REGCOMP) -register -r $@ -c javaloader.uno$(DLLPOST) \
- -c javavm.uno$(DLLPOST) -c stocservices.uno$(DLLPOST)
-.ENDIF
-.ENDIF # L10N_framework
+$(MISC)/uno_services.input :
+ echo \
+ '<list>$(my_components:^"<filename>":+".component</filename>")</list>' \
+ > $@
+
+$(MISC)/bridgetest.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ bridgetest.component
+ $(XSLTPROC) --nonet --stringparam uri './$(SHL2TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt bridgetest.component
+$(MISC)/constructors.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt constructors.component
+ $(XSLTPROC) --nonet --stringparam uri './$(SHL3TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt constructors.component
+
+$(MISC)/cppobj.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ cppobj.component
+ $(XSLTPROC) --nonet --stringparam uri './$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt cppobj.component
+
+$(MISC)/testComponent.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt testComponent.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ 'vnd.sun.star.expand:$${{MY_CLASSDIR_URL}}testComponent.jar' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt testComponent.component
+
+.ENDIF # L10N_framework
diff --git a/testtools/source/bridgetest/pyuno/makefile.mk b/testtools/source/bridgetest/pyuno/makefile.mk
index fb7a78f71f4a..ded3cdbc7931 100644
--- a/testtools/source/bridgetest/pyuno/makefile.mk
+++ b/testtools/source/bridgetest/pyuno/makefile.mk
@@ -33,6 +33,8 @@ LIBTARGET=NO
TARGETTYPE=CUI
ENABLE_EXCEPTIONS=TRUE
+my_components = pythonloader
+
# --- Settings -----------------------------------------------------
.INCLUDE : settings.mk
@@ -55,12 +57,12 @@ PYTHONPATH:=$(SOLARLIBDIR)$/pyuno:$(PWD):$(SOLARLIBDIR):$(SOLARLIBDIR)$/python:$
.IF "$(GUI)"!="WNT" && "$(GUI)"!="OS2"
TEST_ENV=export FOO=file://$(shell @pwd)$/$(DLLDEST) \
- UNO_TYPES=pyuno_regcomp.rdb UNO_SERVICES=pyuno_regcomp.rdb
+ UNO_TYPES=uno_types.rdb UNO_SERVICES=pyuno_services.rdb
.ELSE # "$(GUI)" != "WNT"
# aaaaaa, how to get the current working directory on windows ???
CWD_TMP=$(strip $(shell @echo "import os;print os.getcwd()" | $(PYTHON)))
TEST_ENV=export FOO=file:///$(strip $(subst,\,/ $(CWD_TMP)$/$(DLLDEST))) && \
- export UNO_TYPES=pyuno_regcomp.rdb && export UNO_SERVICES=pyuno_regcomp.rdb
+ export UNO_TYPES=uno_types.rdb && export UNO_SERVICES=pyuno_services.rdb
.ENDIF # "$(GUI)"!="WNT"
PYFILES = \
$(DLLDEST)$/core.py \
@@ -75,7 +77,7 @@ PYCOMPONENTS = \
ALL : \
$(PYFILES) \
- $(DLLDEST)$/pyuno_regcomp.rdb \
+ $(DLLDEST)/pyuno_services.rdb \
doc \
ALLTAR
.ENDIF # L10N_framework
@@ -91,18 +93,21 @@ $(DLLDEST)$/python$(EXECPOST) : $(SOLARBINDIR)$/python$(EXECPOST)
$(DLLDEST)$/regcomp$(EXECPOST) : $(SOLARBINDIR)$/regcomp$(EXECPOST)
cp $? $@
-$(DLLDEST)$/pyuno_regcomp.rdb: $(DLLDEST)$/uno_types.rdb $(SOLARBINDIR)$/pyuno_services.rdb
- -rm -f $@
- $(WRAPCMD) $(REGMERGE) $(DLLDEST)$/pyuno_regcomp.rdb / $(DLLDEST)$/uno_types.rdb $(SOLARBINDIR)$/pyuno_services.rdb
+$(DLLDEST)$/pyuno_services.rdb .ERRREMOVE : \
+ $(SOLARENV)/bin/packcomponents.xslt $(MISC)/pyuno_services.input \
+ $(my_components:^"$(SOLARXMLDIR)/":+".component")
+ $(XSLTPROC) --nonet --stringparam prefix $(SOLARXMLDIR)/ -o $@ \
+ $(SOLARENV)/bin/packcomponents.xslt $(MISC)/pyuno_services.input
+
+$(MISC)/pyuno_services.input :
+ echo \
+ '<list>$(my_components:^"<filename>":+".component</filename>")</list>' \
+ > $@
doc .PHONY:
@echo start test with dmake runtest
runtest : ALL
cd $(DLLDEST) && $(TEST_ENV) && $(PYTHON) main.py
- cd $(DLLDEST) && $(TEST_ENV) && $(WRAPCMD) $(REGCOMP) -register -br pyuno_regcomp.rdb -r dummy.rdb \
- -l com.sun.star.loader.Python $(foreach,i,$(PYCOMPONENTS) -c vnd.openoffice.pymodule:$(i))
- cd $(DLLDEST) && $(TEST_ENV) && $(WRAPCMD) $(REGCOMP) -register -br pyuno_regcomp.rdb -r dummy2.rdb \
- -l com.sun.star.loader.Python -c vnd.sun.star.expand:$$FOO/samplecomponent.py
.ENDIF # L10N_framework
diff --git a/testtools/source/bridgetest/testComponent.component b/testtools/source/bridgetest/testComponent.component
new file mode 100644
index 000000000000..eae9b063140d
--- /dev/null
+++ b/testtools/source/bridgetest/testComponent.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Java2"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation
+ name="com.sun.star.comp.bridge.TestComponent$_PerformancTestObject">
+ <service name="com.sun.star.comp.benchmark.JavaTestObject"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.bridge.TestComponent$_TestObject">
+ <service name="com.sun.star.test.bridge.JavaTestObject"/>
+ </implementation>
+</component>
diff --git a/toolkit/prj/d.lst b/toolkit/prj/d.lst
index 375485c96e4d..01eb5026e401 100644
--- a/toolkit/prj/d.lst
+++ b/toolkit/prj/d.lst
@@ -63,3 +63,4 @@ mkdir: %_DEST%\inc%_EXT%\layout\vcl
..\source\layout\vcl\*.hxx %_DEST%\inc%_EXT%\layout\vcl\*.hxx
..\%__SRC%\bin\*-layout.zip %_DEST%\pck%_EXT%\*.*
+..\%__SRC%\misc\tk.component %_DEST%\xml%_EXT%\tk.component
diff --git a/toolkit/source/awt/asynccallback.cxx b/toolkit/source/awt/asynccallback.cxx
index 593feb582274..9e5334b2d28c 100644
--- a/toolkit/source/awt/asynccallback.cxx
+++ b/toolkit/source/awt/asynccallback.cxx
@@ -191,9 +191,3 @@ void * SAL_CALL comp_AsyncCallback_component_getFactory(
return ::cppu::component_getFactoryHelper(
implName, serviceManager, registryKey, entries);
}
-
-sal_Bool SAL_CALL comp_AsyncCallback_component_writeInfo(
- void * serviceManager, void * registryKey)
-{
- return ::cppu::component_writeInfoHelper(serviceManager, registryKey, entries);
-}
diff --git a/toolkit/source/helper/registerservices.cxx b/toolkit/source/helper/registerservices.cxx
index aedf4024f2b9..477032538af8 100644
--- a/toolkit/source/helper/registerservices.cxx
+++ b/toolkit/source/helper/registerservices.cxx
@@ -205,10 +205,8 @@ extern ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL
extern ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL DefaultGridColumnModel_CreateInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& );
extern ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > SAL_CALL GridColumn_CreateInstance( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& );
-extern sal_Bool SAL_CALL comp_AsyncCallback_component_writeInfo( void * serviceManager, void * registryKey );
extern void * SAL_CALL comp_AsyncCallback_component_getFactory( const char * implName, void * serviceManager, void * registryKey );
-extern sal_Bool SAL_CALL comp_Layout_component_writeInfo( void * serviceManager, void * registryKey );
extern void * SAL_CALL comp_Layout_component_getFactory( const char * implName, void * serviceManager, void * registryKey );
extern "C"
@@ -219,91 +217,6 @@ TOOLKIT_DLLPUBLIC void SAL_CALL component_getImplementationEnvironment( const sa
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-TOOLKIT_DLLPUBLIC sal_Bool SAL_CALL component_writeInfo( void* _pServiceManager, void* _pRegistryKey )
-{
- if (_pRegistryKey)
- {
- ::com::sun::star::uno::Reference< ::com::sun::star::registry::XRegistryKey > xRegistryKey =
- static_cast< ::com::sun::star::registry::XRegistryKey* >( _pRegistryKey );
-
- registerServices( xRegistryKey, "VCLXToolkit", szServiceName_Toolkit, szServiceName2_Toolkit );
- registerServices( xRegistryKey, "VCLXPopupMenu", szServiceName_PopupMenu, szServiceName2_PopupMenu );
- registerServices( xRegistryKey, "VCLXMenuBar", szServiceName_MenuBar, szServiceName2_MenuBar );
- registerServices( xRegistryKey, "VCLXPointer", szServiceName_Pointer, szServiceName2_Pointer );
- registerServices( xRegistryKey, "UnoControlContainer", szServiceName_UnoControlContainer, szServiceName2_UnoControlContainer );
- registerServices( xRegistryKey, "UnoControlContainerModel", szServiceName_UnoControlContainerModel, szServiceName2_UnoControlContainerModel );
- registerServices( xRegistryKey, "StdTabController", szServiceName_TabController, szServiceName2_TabController );
- registerServices( xRegistryKey, "StdTabControllerModel", szServiceName_TabControllerModel, szServiceName2_TabControllerModel );
- registerServices( xRegistryKey, "UnoDialogControl", szServiceName_UnoControlDialog, szServiceName2_UnoControlDialog );
- registerServices( xRegistryKey, "UnoControlDialogModel", szServiceName_UnoControlDialogModel, szServiceName2_UnoControlDialogModel );
- registerServices( xRegistryKey, "UnoEditControl", szServiceName_UnoControlEdit, szServiceName2_UnoControlEdit );
- registerServices( xRegistryKey, "UnoControlEditModel", szServiceName_UnoControlEditModel, szServiceName2_UnoControlEditModel );
- registerServices( xRegistryKey, "UnoDateFieldControl", szServiceName_UnoControlDateField, szServiceName2_UnoControlDateField );
- registerServices( xRegistryKey, "UnoControlDateFieldModel", szServiceName_UnoControlDateFieldModel, szServiceName2_UnoControlDateFieldModel );
- registerServices( xRegistryKey, "UnoTimeFieldControl", szServiceName_UnoControlTimeField, szServiceName2_UnoControlTimeField );
- registerServices( xRegistryKey, "UnoControlTimeFieldModel", szServiceName_UnoControlTimeFieldModel, szServiceName2_UnoControlTimeFieldModel );
- registerServices( xRegistryKey, "UnoNumericFieldControl", szServiceName_UnoControlNumericField, szServiceName2_UnoControlNumericField );
- registerServices( xRegistryKey, "UnoControlNumericFieldModel", szServiceName_UnoControlNumericFieldModel, szServiceName2_UnoControlNumericFieldModel );
- registerServices( xRegistryKey, "UnoCurrencyFieldControl", szServiceName_UnoControlCurrencyField, szServiceName2_UnoControlCurrencyField );
- registerServices( xRegistryKey, "UnoControlCurrencyFieldModel", szServiceName_UnoControlCurrencyFieldModel, szServiceName2_UnoControlCurrencyFieldModel );
- registerServices( xRegistryKey, "UnoPatternFieldControl", szServiceName_UnoControlPatternField, szServiceName2_UnoControlPatternField );
- registerServices( xRegistryKey, "UnoControlPatternFieldModel", szServiceName_UnoControlPatternFieldModel, szServiceName2_UnoControlPatternFieldModel );
- registerServices( xRegistryKey, "UnoFormattedFieldControl", szServiceName_UnoControlFormattedField, szServiceName2_UnoControlFormattedField );
- registerServices( xRegistryKey, "UnoControlFormattedFieldModel", szServiceName_UnoControlFormattedFieldModel, szServiceName2_UnoControlFormattedFieldModel );
- registerServices( xRegistryKey, "UnoFileControl", szServiceName_UnoControlFileControl, szServiceName2_UnoControlFileControl );
- registerServices( xRegistryKey, "UnoControlFileControlModel", szServiceName_UnoControlFileControlModel, szServiceName2_UnoControlFileControlModel );
- registerServices( xRegistryKey, "UnoButtonControl", szServiceName_UnoControlButton, szServiceName2_UnoControlButton );
- registerServices( xRegistryKey, "UnoControlButtonModel", szServiceName_UnoControlButtonModel, szServiceName2_UnoControlButtonModel );
- registerServices( xRegistryKey, "UnoImageControlControl", szServiceName_UnoControlImageButton, szServiceName2_UnoControlImageButton );
- registerServices( xRegistryKey, "UnoControlImageControlModel", szServiceName_UnoControlImageButtonModel, szServiceName2_UnoControlImageButtonModel );
- registerServices( xRegistryKey, "UnoImageControlControl", szServiceName_UnoControlImageControl, szServiceName2_UnoControlImageControl );
- registerServices( xRegistryKey, "UnoControlImageControlModel", szServiceName_UnoControlImageControlModel, szServiceName2_UnoControlImageControlModel );
- registerServices( xRegistryKey, "UnoRadioButtonControl", szServiceName_UnoControlRadioButton, szServiceName2_UnoControlRadioButton );
- registerServices( xRegistryKey, "UnoControlRadioButtonModel", szServiceName_UnoControlRadioButtonModel, szServiceName2_UnoControlRadioButtonModel );
- registerServices( xRegistryKey, "UnoCheckBoxControl", szServiceName_UnoControlCheckBox, szServiceName2_UnoControlCheckBox );
- registerServices( xRegistryKey, "UnoControlCheckBoxModel", szServiceName_UnoControlCheckBoxModel, szServiceName2_UnoControlCheckBoxModel );
- registerServices( xRegistryKey, "UnoListBoxControl", szServiceName_UnoControlListBox, szServiceName2_UnoControlListBox );
- registerServices( xRegistryKey, "UnoControlListBoxModel", szServiceName_UnoControlListBoxModel, szServiceName2_UnoControlListBoxModel );
- registerServices( xRegistryKey, "UnoComboBoxControl", szServiceName_UnoControlComboBox, szServiceName2_UnoControlComboBox );
- registerServices( xRegistryKey, "UnoControlComboBoxModel", szServiceName_UnoControlComboBoxModel, szServiceName2_UnoControlComboBoxModel );
- registerServices( xRegistryKey, "UnoFixedTextControl", szServiceName_UnoControlFixedText, szServiceName2_UnoControlFixedText );
- registerServices( xRegistryKey, "UnoControlFixedTextModel", szServiceName_UnoControlFixedTextModel, szServiceName2_UnoControlFixedTextModel );
- registerServices( xRegistryKey, "UnoGroupBoxControl", szServiceName_UnoControlGroupBox, szServiceName2_UnoControlGroupBox );
- registerServices( xRegistryKey, "UnoControlGroupBoxModel", szServiceName_UnoControlGroupBoxModel, szServiceName2_UnoControlGroupBoxModel );
- registerServices( xRegistryKey, "UnoProgressBarControl", szServiceName_UnoControlProgressBar, szServiceName2_UnoControlProgressBar );
- registerServices( xRegistryKey, "UnoControlProgressBarModel", szServiceName_UnoControlProgressBarModel, szServiceName2_UnoControlProgressBarModel );
- registerServices( xRegistryKey, "UnoScrollBarControl", szServiceName_UnoControlScrollBar, szServiceName2_UnoControlScrollBar );
- registerServices( xRegistryKey, "UnoControlScrollBarModel", szServiceName_UnoControlScrollBarModel, szServiceName2_UnoControlScrollBarModel );
- registerServices( xRegistryKey, "UnoSpinButtonModel", szServiceName_UnoSpinButtonModel );
- registerServices( xRegistryKey, "UnoSpinButtonControl", szServiceName_UnoSpinButtonControl );
- registerServices( xRegistryKey, "UnoFixedLineControl", szServiceName_UnoControlFixedLine, szServiceName2_UnoControlFixedLine );
- registerServices( xRegistryKey, "UnoControlFixedLineModel", szServiceName_UnoControlFixedLineModel, szServiceName2_UnoControlFixedLineModel );
- registerServices( xRegistryKey, "VCLXPrinterServer", szServiceName_PrinterServer, szServiceName2_PrinterServer );
- registerServices( xRegistryKey, "UnoRoadmapControl", szServiceName_UnoControlRoadmap, szServiceName2_UnoControlRoadmap );
- registerServices( xRegistryKey, "UnoControlRoadmapModel", szServiceName_UnoControlRoadmapModel, szServiceName2_UnoControlRoadmapModel );
- registerServices( xRegistryKey, "TreeControl", szServiceName_TreeControl );
- registerServices( xRegistryKey, "TreeControlModel", szServiceName_TreeControlModel );
- registerServices( xRegistryKey, "MutableTreeDataModel", szServiceName_MutableTreeDataModel );
- registerServices( xRegistryKey, "UnoSimpleAnimationControlModel", szServiceName_UnoSimpleAnimationControlModel, szServiceName2_UnoSimpleAnimationControlModel );
- registerServices( xRegistryKey, "UnoSimpleAnimationControl", szServiceName_UnoSimpleAnimationControl, szServiceName2_UnoSimpleAnimationControl );
- registerServices( xRegistryKey, "UnoThrobberControlModel", szServiceName_UnoThrobberControlModel, szServiceName2_UnoThrobberControlModel );
- registerServices( xRegistryKey, "UnoThrobberControl", szServiceName_UnoThrobberControl, szServiceName2_UnoThrobberControl );
- registerServices( xRegistryKey, "UnoFixedHyperlinkControl", szServiceName_UnoControlFixedHyperlink );
- registerServices( xRegistryKey, "UnoControlFixedHyperlinkModel", szServiceName_UnoControlFixedHyperlinkModel );
- registerServices( xRegistryKey, "GridControl", szServiceName_GridControl );
- registerServices( xRegistryKey, "GridControlModel", szServiceName_GridControlModel );
- registerServices( xRegistryKey, "DefaultGridDataModel", szServiceName_DefaultGridDataModel );
- registerServices( xRegistryKey, "DefaultGridColumnModel", szServiceName_DefaultGridColumnModel );
- registerServices( xRegistryKey, "GridColumn", szServiceName_GridColumn );
-
- comp_AsyncCallback_component_writeInfo( _pServiceManager, _pRegistryKey );
- comp_Layout_component_writeInfo( _pServiceManager, _pRegistryKey );
-
- return sal_True;
- }
- return sal_False;
-}
-
TOOLKIT_DLLPUBLIC void* SAL_CALL component_getFactory( const sal_Char* sImplementationName, void* _pServiceManager, void* _pRegistryKey )
{
void* pRet = NULL;
diff --git a/toolkit/source/layout/core/factory.cxx b/toolkit/source/layout/core/factory.cxx
index db9616a8cc77..1390d9405f71 100644
--- a/toolkit/source/layout/core/factory.cxx
+++ b/toolkit/source/layout/core/factory.cxx
@@ -57,33 +57,6 @@ void * SAL_CALL comp_Layout_component_getFactory( const char * pImplName, void *
return pRet;
}
-sal_Bool SAL_CALL comp_Layout_component_writeInfo( void * /*serviceManager*/, void * pRegistryKey )
- {
- if ( pRegistryKey )
- {
- try
- {
- uno::Reference< registry::XRegistryKey > xKey( reinterpret_cast< registry::XRegistryKey* >( pRegistryKey ) );
- uno::Reference< registry::XRegistryKey > xNewKey;
-
- xNewKey = xKey->createKey( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) +
- LayoutFactory::impl_staticGetImplementationName() +
- ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) );
-
- const uno::Sequence< ::rtl::OUString > aServices = LayoutFactory::impl_staticGetSupportedServiceNames();
- for ( sal_Int32 i = 0; i < aServices.getLength(); i++ )
- xNewKey->createKey( aServices.getConstArray()[i] );
-
- return sal_True;
- }
- catch (registry::InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
- }
-
// Component registration
::rtl::OUString SAL_CALL LayoutFactory::impl_staticGetImplementationName()
{
diff --git a/toolkit/util/makefile.mk b/toolkit/util/makefile.mk
index 48d534a8a9b3..2e9adce4f6bd 100644
--- a/toolkit/util/makefile.mk
+++ b/toolkit/util/makefile.mk
@@ -83,3 +83,11 @@ RESLIB1SRSFILES=$(RES1FILELIST)
# --- Footer -------------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/tk.component
+
+$(MISC)/tk.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ tk.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt tk.component
diff --git a/toolkit/util/tk.component b/toolkit/util/tk.component
new file mode 100644
index 000000000000..e782283c39eb
--- /dev/null
+++ b/toolkit/util/tk.component
@@ -0,0 +1,298 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.awt.comp.AsyncCallback">
+ <service name="com.sun.star.awt.AsyncCallback"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.awt.Layout">
+ <service name="com.sun.star.awt.Layout"/>
+ <service name="com.sun.star.comp.awt.Layout"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.DefaultGridColumnModel">
+ <service name="com.sun.star.awt.grid.DefaultGridColumnModel"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.DefaultGridDataModel">
+ <service name="com.sun.star.awt.grid.DefaultGridDataModel"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.GridColumn">
+ <service name="com.sun.star.awt.grid.GridColumn"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.GridControl">
+ <service name="com.sun.star.awt.grid.UnoControlGrid"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.GridControlModel">
+ <service name="com.sun.star.awt.grid.UnoControlGridModel"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.MutableTreeDataModel">
+ <service name="com.sun.star.awt.tree.MutableTreeDataModel"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.StdTabController">
+ <service name="com.sun.star.awt.TabController"/>
+ <service name="stardiv.vcl.control.TabController"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.StdTabControllerModel">
+ <service name="com.sun.star.awt.TabControllerModel"/>
+ <service name="stardiv.vcl.controlmodel.TabController"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.TreeControl">
+ <service name="com.sun.star.awt.tree.TreeControl"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.TreeControlModel">
+ <service name="com.sun.star.awt.tree.TreeControlModel"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoButtonControl">
+ <service name="com.sun.star.awt.UnoControlButton"/>
+ <service name="stardiv.vcl.control.Button"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoCheckBoxControl">
+ <service name="com.sun.star.awt.UnoControlCheckBox"/>
+ <service name="stardiv.vcl.control.CheckBox"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoComboBoxControl">
+ <service name="com.sun.star.awt.UnoControlComboBox"/>
+ <service name="stardiv.vcl.control.ComboBox"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoControlButtonModel">
+ <service name="com.sun.star.awt.UnoControlButtonModel"/>
+ <service name="stardiv.vcl.controlmodel.Button"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoControlCheckBoxModel">
+ <service name="com.sun.star.awt.UnoControlCheckBoxModel"/>
+ <service name="stardiv.vcl.controlmodel.CheckBox"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoControlComboBoxModel">
+ <service name="com.sun.star.awt.UnoControlComboBoxModel"/>
+ <service name="stardiv.vcl.controlmodel.ComboBox"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoControlContainer">
+ <service name="com.sun.star.awt.UnoControlContainer"/>
+ <service name="stardiv.vcl.control.ControlContainer"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoControlContainerModel">
+ <service name="com.sun.star.awt.UnoControlContainerModel"/>
+ <service name="stardiv.vcl.controlmodel.ControlContainer"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoControlCurrencyFieldModel">
+ <service name="com.sun.star.awt.UnoControlCurrencyFieldModel"/>
+ <service name="stardiv.vcl.controlmodel.CurrencyField"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoControlDateFieldModel">
+ <service name="com.sun.star.awt.UnoControlDateFieldModel"/>
+ <service name="stardiv.vcl.controlmodel.DateField"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoControlDialogModel">
+ <service name="com.sun.star.awt.UnoControlDialogModel"/>
+ <service name="stardiv.vcl.controlmodel.Dialog"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoControlEditModel">
+ <service name="com.sun.star.awt.UnoControlEditModel"/>
+ <service name="stardiv.vcl.controlmodel.Edit"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoControlFileControlModel">
+ <service name="com.sun.star.awt.UnoControlFileControlModel"/>
+ <service name="stardiv.vcl.controlmodel.FileControl"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoControlFixedHyperlinkModel">
+ <service name="com.sun.star.awt.UnoControlFixedHyperlinkModel"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoControlFixedLineModel">
+ <service name="com.sun.star.awt.UnoControlFixedLineModel"/>
+ <service name="stardiv.vcl.controlmodel.FixedLine"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoControlFixedTextModel">
+ <service name="com.sun.star.awt.UnoControlFixedTextModel"/>
+ <service name="stardiv.vcl.controlmodel.FixedText"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoControlFormattedFieldModel">
+ <service name="com.sun.star.awt.UnoControlFormattedFieldModel"/>
+ <service name="stardiv.vcl.controlmodel.FormattedField"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoControlGroupBoxModel">
+ <service name="com.sun.star.awt.UnoControlGroupBoxModel"/>
+ <service name="stardiv.vcl.controlmodel.GroupBox"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoControlImageControlModel">
+ <service name="com.sun.star.awt.UnoControlImageButtonModel"/>
+ <service name="com.sun.star.awt.UnoControlImageControlModel"/>
+ <service name="stardiv.vcl.controlmodel.ImageButton"/>
+ <service name="stardiv.vcl.controlmodel.ImageControl"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoControlListBoxModel">
+ <service name="com.sun.star.awt.UnoControlListBoxModel"/>
+ <service name="stardiv.vcl.controlmodel.ListBox"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoControlNumericFieldModel">
+ <service name="com.sun.star.awt.UnoControlNumericFieldModel"/>
+ <service name="stardiv.vcl.controlmodel.NumericField"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoControlPatternFieldModel">
+ <service name="com.sun.star.awt.UnoControlPatternFieldModel"/>
+ <service name="stardiv.vcl.controlmodel.PatternField"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoControlProgressBarModel">
+ <service name="com.sun.star.awt.UnoControlProgressBarModel"/>
+ <service name="stardiv.vcl.controlmodel.ProgressBar"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoControlRadioButtonModel">
+ <service name="com.sun.star.awt.UnoControlRadioButtonModel"/>
+ <service name="stardiv.vcl.controlmodel.RadioButton"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoControlRoadmapModel">
+ <service name="com.sun.star.awt.UnoControlRoadmapModel"/>
+ <service name="stardiv.vcl.controlmodel.Roadmap"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoControlScrollBarModel">
+ <service name="com.sun.star.awt.UnoControlScrollBarModel"/>
+ <service name="stardiv.vcl.controlmodel.ScrollBar"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoControlTimeFieldModel">
+ <service name="com.sun.star.awt.UnoControlTimeFieldModel"/>
+ <service name="stardiv.vcl.controlmodel.TimeField"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoCurrencyFieldControl">
+ <service name="com.sun.star.awt.UnoControlCurrencyField"/>
+ <service name="stardiv.vcl.control.CurrencyField"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoDateFieldControl">
+ <service name="com.sun.star.awt.UnoControlDateField"/>
+ <service name="stardiv.vcl.control.DateField"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoDialogControl">
+ <service name="com.sun.star.awt.UnoControlDialog"/>
+ <service name="stardiv.vcl.control.Dialog"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoEditControl">
+ <service name="com.sun.star.awt.UnoControlEdit"/>
+ <service name="stardiv.vcl.control.Edit"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoFileControl">
+ <service name="com.sun.star.awt.UnoControlFileControl"/>
+ <service name="stardiv.vcl.control.FileControl"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoFixedHyperlinkControl">
+ <service name="com.sun.star.awt.UnoControlFixedHyperlink"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoFixedLineControl">
+ <service name="com.sun.star.awt.UnoControlFixedLine"/>
+ <service name="stardiv.vcl.control.FixedLine"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoFixedTextControl">
+ <service name="com.sun.star.awt.UnoControlFixedText"/>
+ <service name="stardiv.vcl.control.FixedText"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoFormattedFieldControl">
+ <service name="com.sun.star.awt.UnoControlFormattedField"/>
+ <service name="stardiv.vcl.control.FormattedField"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoGroupBoxControl">
+ <service name="com.sun.star.awt.UnoControlGroupBox"/>
+ <service name="stardiv.vcl.control.GroupBox"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoImageControlControl">
+ <service name="com.sun.star.awt.UnoControlImageButton"/>
+ <service name="com.sun.star.awt.UnoControlImageControl"/>
+ <service name="stardiv.vcl.control.ImageButton"/>
+ <service name="stardiv.vcl.control.ImageControl"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoListBoxControl">
+ <service name="com.sun.star.awt.UnoControlListBox"/>
+ <service name="stardiv.vcl.control.ListBox"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoNumericFieldControl">
+ <service name="com.sun.star.awt.UnoControlNumericField"/>
+ <service name="stardiv.vcl.control.NumericField"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoPatternFieldControl">
+ <service name="com.sun.star.awt.UnoControlPatternField"/>
+ <service name="stardiv.vcl.control.PatternField"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoProgressBarControl">
+ <service name="com.sun.star.awt.UnoControlProgressBar"/>
+ <service name="stardiv.vcl.control.ProgressBar"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoRadioButtonControl">
+ <service name="com.sun.star.awt.UnoControlRadioButton"/>
+ <service name="stardiv.vcl.control.RadioButton"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoRoadmapControl">
+ <service name="com.sun.star.awt.UnoControlRoadmap"/>
+ <service name="stardiv.vcl.control.Roadmap"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoScrollBarControl">
+ <service name="com.sun.star.awt.UnoControlScrollBar"/>
+ <service name="stardiv.vcl.control.ScrollBar"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoSimpleAnimationControl">
+ <service name="com.sun.star.awt.UnoControlSimpleAnimation"/>
+ <service name="com.sun.star.awt.UnoSimpleAnimationControl"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoSimpleAnimationControlModel">
+ <service name="com.sun.star.awt.UnoControlSimpleAnimationModel"/>
+ <service name="com.sun.star.awt.UnoSimpleAnimationControlModel"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoSpinButtonControl">
+ <service name="com.sun.star.awt.UnoControlSpinButton"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoSpinButtonModel">
+ <service name="com.sun.star.awt.UnoControlSpinButtonModel"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoThrobberControl">
+ <service name="com.sun.star.awt.UnoControlThrobber"/>
+ <service name="com.sun.star.awt.UnoThrobberControl"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoThrobberControlModel">
+ <service name="com.sun.star.awt.UnoControlThrobberModel"/>
+ <service name="com.sun.star.awt.UnoThrobberControlModel"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.UnoTimeFieldControl">
+ <service name="com.sun.star.awt.UnoControlTimeField"/>
+ <service name="stardiv.vcl.control.TimeField"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.VCLXMenuBar">
+ <service name="com.sun.star.awt.MenuBar"/>
+ <service name="stardiv.vcl.MenuBar"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.VCLXPointer">
+ <service name="com.sun.star.awt.Pointer"/>
+ <service name="stardiv.vcl.Pointer"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.VCLXPopupMenu">
+ <service name="com.sun.star.awt.PopupMenu"/>
+ <service name="stardiv.vcl.PopupMenu"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.VCLXPrinterServer">
+ <service name="com.sun.star.awt.PrinterServer"/>
+ <service name="stardiv.vcl.PrinterServer"/>
+ </implementation>
+ <implementation name="stardiv.Toolkit.VCLXToolkit">
+ <service name="com.sun.star.awt.Toolkit"/>
+ <service name="stardiv.vcl.VclToolkit"/>
+ </implementation>
+</component>
diff --git a/ucb/prj/d.lst b/ucb/prj/d.lst
index b02c8184a6e9..65a32e21fba3 100644
--- a/ucb/prj/d.lst
+++ b/ucb/prj/d.lst
@@ -31,5 +31,16 @@
..\source\ucp\gvfs\ucpgvfs.xml %_DEST%\xml%_EXT%\ucpgvfs.xml
..\source\ucp\tdoc\ucptdoc.xml %_DEST%\xml%_EXT%\ucptdoc.xml
-..\%__SRC%\misc\ucpgvfs-ucd.txt %_DEST%\bin%_EXT%\ucpgvfs-ucd.txt
-..\%__SRC%\misc\ucpgio-ucd.txt %_DEST%\bin%_EXT%\ucpgio-ucd.txt
+..\%__SRC%\misc\ucpgvfs.component %_DEST%\xml%_EXT%\ucpgvfs.component
+..\%__SRC%\misc\ucpgio.component %_DEST%\xml%_EXT%\ucpgio.component
+..\%__SRC%\misc\cached1.component %_DEST%\xml%_EXT%\cached1.component
+..\%__SRC%\misc\srtrs1.component %_DEST%\xml%_EXT%\srtrs1.component
+..\%__SRC%\misc\ucb1.component %_DEST%\xml%_EXT%\ucb1.component
+..\%__SRC%\misc\ucpdav1.component %_DEST%\xml%_EXT%\ucpdav1.component
+..\%__SRC%\misc\ucpexpand1.component %_DEST%\xml%_EXT%\ucpexpand1.component
+..\%__SRC%\misc\ucpext.component %_DEST%\xml%_EXT%\ucpext.component
+..\%__SRC%\misc\ucpfile1.component %_DEST%\xml%_EXT%\ucpfile1.component
+..\%__SRC%\misc\ucpftp1.component %_DEST%\xml%_EXT%\ucpftp1.component
+..\%__SRC%\misc\ucphier1.component %_DEST%\xml%_EXT%\ucphier1.component
+..\%__SRC%\misc\ucppkg1.component %_DEST%\xml%_EXT%\ucppkg1.component
+..\%__SRC%\misc\ucptdoc1.component %_DEST%\xml%_EXT%\ucptdoc1.component
diff --git a/ucb/source/cacher/cached1.component b/ucb/source/cacher/cached1.component
new file mode 100644
index 000000000000..aa19e54b5da3
--- /dev/null
+++ b/ucb/source/cacher/cached1.component
@@ -0,0 +1,43 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.ucb.CachedContentResultSetFactory">
+ <service name="com.sun.star.ucb.CachedContentResultSetFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.ucb.CachedContentResultSetStubFactory">
+ <service name="com.sun.star.ucb.CachedContentResultSetStubFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.ucb.CachedDynamicResultSetFactory">
+ <service name="com.sun.star.ucb.CachedDynamicResultSetFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.ucb.CachedDynamicResultSetStubFactory">
+ <service name="com.sun.star.ucb.CachedDynamicResultSetStubFactory"/>
+ </implementation>
+</component>
diff --git a/ucb/source/cacher/cacheserv.cxx b/ucb/source/cacher/cacheserv.cxx
index 3aa0f1de5357..f429286cfdee 100644
--- a/ucb/source/cacher/cacheserv.cxx
+++ b/ucb/source/cacher/cacheserv.cxx
@@ -41,45 +41,6 @@ using namespace com::sun::star::lang;
using namespace com::sun::star::registry;
//=========================================================================
-static sal_Bool writeInfo( void * pRegistryKey,
- const OUString & rImplementationName,
- Sequence< OUString > const & rServiceNames )
-{
- OUString aKeyName( OUString::createFromAscii( "/" ) );
- aKeyName += rImplementationName;
- aKeyName += OUString::createFromAscii( "/UNO/SERVICES" );
-
- Reference< XRegistryKey > xKey;
- try
- {
- xKey = static_cast< XRegistryKey * >(
- pRegistryKey )->createKey( aKeyName );
- }
- catch ( InvalidRegistryException const & )
- {
- }
-
- if ( !xKey.is() )
- return sal_False;
-
- sal_Bool bSuccess = sal_True;
-
- for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
- {
- try
- {
- xKey->createKey( rServiceNames[ n ] );
- }
- catch ( InvalidRegistryException const & )
- {
- bSuccess = sal_False;
- break;
- }
- }
- return bSuccess;
-}
-
-//=========================================================================
extern "C" void SAL_CALL component_getImplementationEnvironment(
const sal_Char ** ppEnvTypeName, uno_Environment ** )
{
@@ -87,44 +48,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment(
}
//=========================================================================
-extern "C" sal_Bool SAL_CALL component_writeInfo( void *, void * pRegistryKey )
-{
- return pRegistryKey &&
-
- //////////////////////////////////////////////////////////////////////
- // CachedContentResultSetFactory.
- //////////////////////////////////////////////////////////////////////
-
- writeInfo( pRegistryKey,
- CachedContentResultSetFactory::getImplementationName_Static(),
- CachedContentResultSetFactory::getSupportedServiceNames_Static() ) &&
-
- //////////////////////////////////////////////////////////////////////
- // CachedContentResultSetStubFactory.
- //////////////////////////////////////////////////////////////////////
-
- writeInfo( pRegistryKey,
- CachedContentResultSetStubFactory::getImplementationName_Static(),
- CachedContentResultSetStubFactory::getSupportedServiceNames_Static() ) &&
-
- //////////////////////////////////////////////////////////////////////
- // CachedDynamicResultSetFactory.
- //////////////////////////////////////////////////////////////////////
-
- writeInfo( pRegistryKey,
- CachedDynamicResultSetFactory::getImplementationName_Static(),
- CachedDynamicResultSetFactory::getSupportedServiceNames_Static() ) &&
-
- //////////////////////////////////////////////////////////////////////
- // CachedDynamicResultSetStubFactory.
- //////////////////////////////////////////////////////////////////////
-
- writeInfo( pRegistryKey,
- CachedDynamicResultSetStubFactory::getImplementationName_Static(),
- CachedDynamicResultSetStubFactory::getSupportedServiceNames_Static() );
-}
-
-//=========================================================================
extern "C" void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * )
{
diff --git a/ucb/source/cacher/makefile.mk b/ucb/source/cacher/makefile.mk
index 600fefc174f7..24d245ec6ce8 100644
--- a/ucb/source/cacher/makefile.mk
+++ b/ucb/source/cacher/makefile.mk
@@ -66,3 +66,11 @@ DEF1NAME=$(SHL1TARGET)
.INCLUDE: target.mk
+
+ALLTAR : $(MISC)/cached1.component
+
+$(MISC)/cached1.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ cached1.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt cached1.component
diff --git a/ucb/source/core/exports2.dxp b/ucb/source/core/exports2.dxp
index a1936474f752..8091459f4d84 100644
--- a/ucb/source/core/exports2.dxp
+++ b/ucb/source/core/exports2.dxp
@@ -1,5 +1,4 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
_ZTIN3com3sun4star3ucb34InteractiveBadTransferURLExceptionE
diff --git a/ucb/source/core/makefile.mk b/ucb/source/core/makefile.mk
index 34765eb74289..6360f82320d2 100644
--- a/ucb/source/core/makefile.mk
+++ b/ucb/source/core/makefile.mk
@@ -74,3 +74,11 @@ DEF1NAME=$(SHL1TARGET)
.INCLUDE: target.mk
+
+ALLTAR : $(MISC)/ucb1.component
+
+$(MISC)/ucb1.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ ucb1.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt ucb1.component
diff --git a/ucb/source/core/ucb1.component b/ucb/source/core/ucb1.component
new file mode 100644
index 000000000000..e9d408822cc9
--- /dev/null
+++ b/ucb/source/core/ucb1.component
@@ -0,0 +1,46 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.ucb.CommandEnvironment">
+ <service name="com.sun.star.ucb.CommandEnvironment"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.ucb.UcbContentProviderProxyFactory">
+ <service name="com.sun.star.ucb.ContentProviderProxyFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.ucb.UcbPropertiesManager">
+ <service name="com.sun.star.ucb.PropertiesManager"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.ucb.UcbStore">
+ <service name="com.sun.star.ucb.Store"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.ucb.UniversalContentBroker">
+ <service name="com.sun.star.ucb.UniversalContentBroker"/>
+ </implementation>
+</component>
diff --git a/ucb/source/core/ucbserv.cxx b/ucb/source/core/ucbserv.cxx
index 340fa5db0c0f..a4e5bdc1dccf 100644
--- a/ucb/source/core/ucbserv.cxx
+++ b/ucb/source/core/ucbserv.cxx
@@ -29,7 +29,6 @@
#include "precompiled_ucb.hxx"
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-#include <com/sun/star/registry/XRegistryKey.hpp>
#include "ucb.hxx"
#include "ucbstore.hxx"
#include "ucbprops.hxx"
@@ -39,46 +38,6 @@
using namespace rtl;
using namespace com::sun::star::uno;
using namespace com::sun::star::lang;
-using namespace com::sun::star::registry;
-
-//=========================================================================
-static sal_Bool writeInfo( void * pRegistryKey,
- const OUString & rImplementationName,
- Sequence< OUString > const & rServiceNames )
-{
- OUString aKeyName( OUString::createFromAscii( "/" ) );
- aKeyName += rImplementationName;
- aKeyName += OUString::createFromAscii( "/UNO/SERVICES" );
-
- Reference< XRegistryKey > xKey;
- try
- {
- xKey = static_cast< XRegistryKey * >(
- pRegistryKey )->createKey( aKeyName );
- }
- catch ( InvalidRegistryException const & )
- {
- }
-
- if ( !xKey.is() )
- return sal_False;
-
- sal_Bool bSuccess = sal_True;
-
- for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
- {
- try
- {
- xKey->createKey( rServiceNames[ n ] );
- }
- catch ( InvalidRegistryException const & )
- {
- bSuccess = sal_False;
- break;
- }
- }
- return bSuccess;
-}
//=========================================================================
extern "C" void SAL_CALL component_getImplementationEnvironment(
@@ -88,52 +47,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment(
}
//=========================================================================
-extern "C" sal_Bool SAL_CALL component_writeInfo( void *, void * pRegistryKey )
-{
- return pRegistryKey &&
-
- //////////////////////////////////////////////////////////////////////
- // Universal Content Broker.
- //////////////////////////////////////////////////////////////////////
-
- writeInfo( pRegistryKey,
- UniversalContentBroker::getImplementationName_Static(),
- UniversalContentBroker::getSupportedServiceNames_Static() ) &&
-
- //////////////////////////////////////////////////////////////////////
- // UCB Store.
- //////////////////////////////////////////////////////////////////////
-
- writeInfo( pRegistryKey,
- UcbStore::getImplementationName_Static(),
- UcbStore::getSupportedServiceNames_Static() ) &&
-
- //////////////////////////////////////////////////////////////////////
- // UCB PropertiesManager.
- //////////////////////////////////////////////////////////////////////
-
- writeInfo( pRegistryKey,
- UcbPropertiesManager::getImplementationName_Static(),
- UcbPropertiesManager::getSupportedServiceNames_Static() ) &&
-
- //////////////////////////////////////////////////////////////////////
- // UCP Proxy Factory.
- //////////////////////////////////////////////////////////////////////
-
- writeInfo( pRegistryKey,
- UcbContentProviderProxyFactory::getImplementationName_Static(),
- UcbContentProviderProxyFactory::getSupportedServiceNames_Static() ) &&
-
- //////////////////////////////////////////////////////////////////////
- // Command Environment.
- //////////////////////////////////////////////////////////////////////
-
- writeInfo( pRegistryKey,
- ucb_cmdenv::UcbCommandEnvironment::getImplementationName_Static(),
- ucb_cmdenv::UcbCommandEnvironment::getSupportedServiceNames_Static() );
-}
-
-//=========================================================================
extern "C" void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * )
{
diff --git a/ucb/source/core/ucbstore.cxx b/ucb/source/core/ucbstore.cxx
index 9500db4f45b6..cd5cb7856d7a 100644
--- a/ucb/source/core/ucbstore.cxx
+++ b/ucb/source/core/ucbstore.cxx
@@ -274,8 +274,9 @@ UcbStore::createPropertySetRegistry( const OUString& )
{
osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
if ( !m_pImpl->m_xTheRegistry.is() )
- m_pImpl->m_xTheRegistry = new PropertySetRegistry( m_xSMgr, *this );
+ m_pImpl->m_xTheRegistry = new PropertySetRegistry( m_xSMgr, getInitArgs() );
}
+
return m_pImpl->m_xTheRegistry;
}
@@ -294,22 +295,6 @@ void SAL_CALL UcbStore::initialize( const Sequence< Any >& aArguments )
}
//=========================================================================
-//
-// New methods.
-//
-//=========================================================================
-
-void UcbStore::removeRegistry()
-{
- if ( m_pImpl->m_xTheRegistry.is() )
- {
- osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
- if ( m_pImpl->m_xTheRegistry.is() )
- m_pImpl->m_xTheRegistry = 0;
- }
-}
-
-//=========================================================================
const Sequence< Any >& UcbStore::getInitArgs() const
{
return m_pImpl->m_aInitArgs;
@@ -323,7 +308,7 @@ const Sequence< Any >& UcbStore::getInitArgs() const
struct PropertySetRegistry_Impl
{
- UcbStore* m_pCreator;
+ const Sequence< Any > m_aInitArgs;
PropertySetMap_Impl m_aPropSets;
Reference< XMultiServiceFactory > m_xConfigProvider;
Reference< XInterface > m_xRootReadAccess;
@@ -332,18 +317,11 @@ struct PropertySetRegistry_Impl
sal_Bool m_bTriedToGetRootReadAccess; // #82494#
sal_Bool m_bTriedToGetRootWriteAccess; // #82494#
- PropertySetRegistry_Impl( UcbStore& rCreator )
- : m_pCreator( &rCreator ),
+ PropertySetRegistry_Impl( const Sequence< Any > &rInitArgs )
+ : m_aInitArgs( rInitArgs ),
m_bTriedToGetRootReadAccess( sal_False ),
m_bTriedToGetRootWriteAccess( sal_False )
{
- m_pCreator->acquire();
- }
-
- ~PropertySetRegistry_Impl()
- {
- m_pCreator->removeRegistry();
- m_pCreator->release();
}
};
@@ -359,9 +337,9 @@ struct PropertySetRegistry_Impl
PropertySetRegistry::PropertySetRegistry(
const Reference< XMultiServiceFactory >& rXSMgr,
- UcbStore& rCreator )
+ const Sequence< Any > &rInitArgs )
: m_xSMgr( rXSMgr ),
- m_pImpl( new PropertySetRegistry_Impl( rCreator ) )
+ m_pImpl( new PropertySetRegistry_Impl( rInitArgs ) )
{
}
@@ -1094,8 +1072,7 @@ Reference< XMultiServiceFactory > PropertySetRegistry::getConfigProvider()
osl::Guard< osl::Mutex > aGuard( m_pImpl->m_aMutex );
if ( !m_pImpl->m_xConfigProvider.is() )
{
- const Sequence< Any >& rInitArgs
- = m_pImpl->m_pCreator->getInitArgs();
+ const Sequence< Any >& rInitArgs = m_pImpl->m_aInitArgs;
if ( rInitArgs.getLength() > 0 )
{
diff --git a/ucb/source/core/ucbstore.hxx b/ucb/source/core/ucbstore.hxx
index 8c339337f890..7a7a76cb1b99 100644
--- a/ucb/source/core/ucbstore.hxx
+++ b/ucb/source/core/ucbstore.hxx
@@ -93,9 +93,6 @@ public:
throw( ::com::sun::star::uno::Exception,
::com::sun::star::uno::RuntimeException );
- // New
- void removeRegistry();
-
const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any >&
getInitArgs() const;
};
@@ -132,7 +129,8 @@ public:
PropertySetRegistry(
const com::sun::star::uno::Reference<
com::sun::star::lang::XMultiServiceFactory >& rXSMgr,
- UcbStore& rCreator );
+ const ::com::sun::star::uno::Sequence<
+ ::com::sun::star::uno::Any >& rInitArgs);
virtual ~PropertySetRegistry();
// XInterface
diff --git a/ucb/source/sorter/makefile.mk b/ucb/source/sorter/makefile.mk
index 68a9959589d2..008e39b4bce3 100644
--- a/ucb/source/sorter/makefile.mk
+++ b/ucb/source/sorter/makefile.mk
@@ -61,3 +61,11 @@ DEF1NAME=$(SHL1TARGET)
.INCLUDE: target.mk
+
+ALLTAR : $(MISC)/srtrs1.component
+
+$(MISC)/srtrs1.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ srtrs1.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt srtrs1.component
diff --git a/ucb/source/sorter/sortmain.cxx b/ucb/source/sorter/sortmain.cxx
index d96b4bcff796..5ad9a529e1f2 100644
--- a/ucb/source/sorter/sortmain.cxx
+++ b/ucb/source/sorter/sortmain.cxx
@@ -30,51 +30,10 @@
#include <sortdynres.hxx>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-#include <com/sun/star/registry/XRegistryKey.hpp>
using namespace rtl;
using namespace com::sun::star::uno;
using namespace com::sun::star::lang;
-using namespace com::sun::star::registry;
-
-//=========================================================================
-static sal_Bool writeInfo( void * pRegistryKey,
- const OUString & rImplementationName,
- Sequence< OUString > const & rServiceNames )
-{
- OUString aKeyName( OUString::createFromAscii( "/" ) );
- aKeyName += rImplementationName;
- aKeyName += OUString::createFromAscii( "/UNO/SERVICES" );
-
- Reference< XRegistryKey > xKey;
- try
- {
- xKey = static_cast< XRegistryKey * >(
- pRegistryKey )->createKey( aKeyName );
- }
- catch ( InvalidRegistryException const & )
- {
- }
-
- if ( !xKey.is() )
- return sal_False;
-
- sal_Bool bSuccess = sal_True;
-
- for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
- {
- try
- {
- xKey->createKey( rServiceNames[ n ] );
- }
- catch ( InvalidRegistryException const & )
- {
- bSuccess = sal_False;
- break;
- }
- }
- return bSuccess;
-}
//=========================================================================
extern "C" void SAL_CALL component_getImplementationEnvironment(
@@ -84,20 +43,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment(
}
//=========================================================================
-extern "C" sal_Bool SAL_CALL component_writeInfo( void *, void * pRegistryKey )
-{
- return pRegistryKey &&
-
- //////////////////////////////////////////////////////////////////////
- // SortedDynamicResultSetFactory.
- //////////////////////////////////////////////////////////////////////
-
- writeInfo( pRegistryKey,
- SortedDynamicResultSetFactory::getImplementationName_Static(),
- SortedDynamicResultSetFactory::getSupportedServiceNames_Static() );
-}
-
-//=========================================================================
extern "C" void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * )
{
diff --git a/ucb/source/sorter/srtrs1.component b/ucb/source/sorter/srtrs1.component
new file mode 100644
index 000000000000..c32705160c0f
--- /dev/null
+++ b/ucb/source/sorter/srtrs1.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.ucb.SortedDynamicResultSetFactory">
+ <service name="com.sun.star.ucb.SortedDynamicResultSetFactory"/>
+ </implementation>
+</component>
diff --git a/ucb/source/ucp/expand/makefile.mk b/ucb/source/ucp/expand/makefile.mk
index 32de160318f2..70e441171a44 100644
--- a/ucb/source/ucp/expand/makefile.mk
+++ b/ucb/source/ucp/expand/makefile.mk
@@ -59,3 +59,11 @@ DEF1NAME = $(SHL1TARGET)
.ENDIF # L10N_framework
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/ucpexpand1.component
+
+$(MISC)/ucpexpand1.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ ucpexpand1.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt ucpexpand1.component
diff --git a/ucb/source/ucp/expand/ucpexpand.cxx b/ucb/source/ucp/expand/ucpexpand.cxx
index 710cf137ba06..069aa894692b 100644
--- a/ucb/source/ucp/expand/ucpexpand.cxx
+++ b/ucb/source/ucp/expand/ucpexpand.cxx
@@ -273,14 +273,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-sal_Bool SAL_CALL component_writeInfo(
- lang::XMultiServiceFactory * pServiceManager,
- registry::XRegistryKey * pRegistryKey )
-{
- return ::cppu::component_writeInfoHelper(
- pServiceManager, pRegistryKey, s_entries );
-}
-
void * SAL_CALL component_getFactory(
const sal_Char * pImplName,
lang::XMultiServiceFactory * pServiceManager,
diff --git a/ucb/source/ucp/expand/ucpexpand1.component b/ucb/source/ucp/expand/ucpexpand1.component
new file mode 100644
index 000000000000..c8a7e8e18c68
--- /dev/null
+++ b/ucb/source/ucp/expand/ucpexpand1.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.ucb.ExpandContentProvider">
+ <service name="com.sun.star.ucb.ExpandContentProvider"/>
+ </implementation>
+</component>
diff --git a/ucb/source/ucp/ext/makefile.mk b/ucb/source/ucp/ext/makefile.mk
index 23c30b3bda5b..e106b8e1ba31 100644
--- a/ucb/source/ucp/ext/makefile.mk
+++ b/ucb/source/ucp/ext/makefile.mk
@@ -63,3 +63,11 @@ SHL1DEF = $(MISC)$/$(SHL1TARGET).def
DEF1NAME = $(SHL1TARGET)
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/ucpext.component
+
+$(MISC)/ucpext.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ ucpext.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt ucpext.component
diff --git a/ucb/source/ucp/ext/ucpext.component b/ucb/source/ucp/ext/ucpext.component
new file mode 100644
index 000000000000..2982529e539c
--- /dev/null
+++ b/ucb/source/ucp/ext/ucpext.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="org.openoffice.comp.ucp.ext.ContentProvider">
+ <service name="com.sun.star.ucb.ExtensionContentProvider"/>
+ </implementation>
+</component>
diff --git a/ucb/source/ucp/ext/ucpext_services.cxx b/ucb/source/ucp/ext/ucpext_services.cxx
index 8daa33f5cf8c..ce525c2da665 100644
--- a/ucb/source/ucp/ext/ucpext_services.cxx
+++ b/ucb/source/ucp/ext/ucpext_services.cxx
@@ -80,12 +80,6 @@ extern "C"
}
//------------------------------------------------------------------------------------------------------------------
- sal_Bool SAL_CALL component_writeInfo( void * pServiceManager, void * pRegistryKey )
- {
- return ::cppu::component_writeInfoHelper( pServiceManager, pRegistryKey, ::ucb::ucp::ext::s_aServiceEntries );
- }
-
- //------------------------------------------------------------------------------------------------------------------
void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
return ::cppu::component_getFactoryHelper( pImplName, pServiceManager, pRegistryKey , ::ucb::ucp::ext::s_aServiceEntries );
diff --git a/ucb/source/ucp/file/exports2.dxp b/ucb/source/ucp/file/exports2.dxp
index 6c42314f228b..4804c8d0ae57 100644
--- a/ucb/source/ucp/file/exports2.dxp
+++ b/ucb/source/ucp/file/exports2.dxp
@@ -1,5 +1,4 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
_ZTIN3com3sun4star3ucb31InteractiveAugmentedIOExceptionE
diff --git a/ucb/source/ucp/file/makefile.mk b/ucb/source/ucp/file/makefile.mk
index 8007a2492399..3d97cb23873c 100644
--- a/ucb/source/ucp/file/makefile.mk
+++ b/ucb/source/ucp/file/makefile.mk
@@ -78,3 +78,11 @@ DEF1NAME=$(SHL1TARGET)
.INCLUDE: target.mk
+
+ALLTAR : $(MISC)/ucpfile1.component
+
+$(MISC)/ucpfile1.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ ucpfile1.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt ucpfile1.component
diff --git a/ucb/source/ucp/file/prov.cxx b/ucb/source/ucp/file/prov.cxx
index a456d2acbd32..2b9c09a7d0fa 100644
--- a/ucb/source/ucp/file/prov.cxx
+++ b/ucb/source/ucp/file/prov.cxx
@@ -31,7 +31,6 @@
#include <osl/file.hxx>
#include <osl/socket.h>
#include <cppuhelper/factory.hxx>
-#include <com/sun/star/registry/XRegistryKey.hpp>
#ifndef _COM_SUN_STAR_BEANS_PROPERTYATTRIBBUTE_HPP_
#include <com/sun/star/beans/PropertyAttribute.hpp>
#endif
@@ -53,45 +52,6 @@ using namespace com::sun::star::ucb;
using namespace com::sun::star::container;
//=========================================================================
-static sal_Bool writeInfo( void * pRegistryKey,
- const rtl::OUString & rImplementationName,
- Sequence< rtl::OUString > const & rServiceNames )
-{
- rtl::OUString aKeyName( rtl::OUString::createFromAscii( "/" ) );
- aKeyName += rImplementationName;
- aKeyName += rtl::OUString::createFromAscii( "/UNO/SERVICES" );
-
- Reference< registry::XRegistryKey > xKey;
- try
- {
- xKey = static_cast< registry::XRegistryKey * >(
- pRegistryKey )->createKey( aKeyName );
- }
- catch ( registry::InvalidRegistryException const & )
- {
- }
-
- if ( !xKey.is() )
- return sal_False;
-
- sal_Bool bSuccess = sal_True;
-
- for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
- {
- try
- {
- xKey->createKey( rServiceNames[ n ] );
- }
- catch ( registry::InvalidRegistryException const & )
- {
- bSuccess = sal_False;
- break;
- }
- }
- return bSuccess;
-}
-
-//=========================================================================
extern "C" void SAL_CALL component_getImplementationEnvironment(
const sal_Char ** ppEnvTypeName, uno_Environment ** )
{
@@ -99,20 +59,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment(
}
//=========================================================================
-extern "C" sal_Bool SAL_CALL component_writeInfo( void *, void * pRegistryKey )
-{
- return pRegistryKey &&
-
- //////////////////////////////////////////////////////////////////////
- // File Content Provider.
- //////////////////////////////////////////////////////////////////////
-
- writeInfo( pRegistryKey,
- fileaccess::shell::getImplementationName_static(),
- fileaccess::shell::getSupportedServiceNames_static() );
-}
-
-//=========================================================================
extern "C" void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * )
{
diff --git a/ucb/source/ucp/file/ucpfile1.component b/ucb/source/ucp/file/ucpfile1.component
new file mode 100644
index 000000000000..28032451220a
--- /dev/null
+++ b/ucb/source/ucp/file/ucpfile1.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.ucb.FileProvider">
+ <service name="com.sun.star.ucb.FileContentProvider"/>
+ </implementation>
+</component>
diff --git a/ucb/source/ucp/ftp/ftpservices.cxx b/ucb/source/ucp/ftp/ftpservices.cxx
index fb62acd1cbc0..8e5c88ad66c1 100644
--- a/ucb/source/ucp/ftp/ftpservices.cxx
+++ b/ucb/source/ucp/ftp/ftpservices.cxx
@@ -36,45 +36,6 @@ using namespace com::sun::star;
using namespace ftp;
//=========================================================================
-static sal_Bool writeInfo( void * pRegistryKey,
- const rtl::OUString & rImplementationName,
- uno::Sequence< rtl::OUString > const & rServiceNames )
-{
- rtl::OUString aKeyName( rtl::OUString::createFromAscii( "/" ) );
- aKeyName += rImplementationName;
- aKeyName += rtl::OUString::createFromAscii( "/UNO/SERVICES" );
-
- uno::Reference< registry::XRegistryKey > xKey;
- try
- {
- xKey = static_cast< registry::XRegistryKey * >(
- pRegistryKey )->createKey( aKeyName );
- }
- catch ( registry::InvalidRegistryException const & )
- {
- }
-
- if ( !xKey.is() )
- return sal_False;
-
- sal_Bool bSuccess = sal_True;
-
- for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
- {
- try
- {
- xKey->createKey( rServiceNames[ n ] );
- }
- catch ( registry::InvalidRegistryException const & )
- {
- bSuccess = sal_False;
- break;
- }
- }
- return bSuccess;
-}
-
-//=========================================================================
extern "C" void SAL_CALL component_getImplementationEnvironment(
const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
{
@@ -82,21 +43,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment(
}
//=========================================================================
-extern "C" sal_Bool SAL_CALL component_writeInfo(
- void * /*pServiceManager*/, void * pRegistryKey )
-{
- return pRegistryKey &&
-
- //////////////////////////////////////////////////////////////////////
- // FTP Content Provider.
- //////////////////////////////////////////////////////////////////////
-
- writeInfo( pRegistryKey,
- FTPContentProvider::getImplementationName_Static(),
- FTPContentProvider::getSupportedServiceNames_Static() );
-}
-
-//=========================================================================
extern "C" void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ )
{
diff --git a/ucb/source/ucp/ftp/makefile.mk b/ucb/source/ucp/ftp/makefile.mk
index a0f141004089..c2f1ce154a56 100644
--- a/ucb/source/ucp/ftp/makefile.mk
+++ b/ucb/source/ucp/ftp/makefile.mk
@@ -104,3 +104,11 @@ DEF1NAME=$(SHL1TARGET)
+
+ALLTAR : $(MISC)/ucpftp1.component
+
+$(MISC)/ucpftp1.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ ucpftp1.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt ucpftp1.component
diff --git a/ucb/source/ucp/ftp/ucpftp1.component b/ucb/source/ucp/ftp/ucpftp1.component
new file mode 100644
index 000000000000..fa4cfe6e7557
--- /dev/null
+++ b/ucb/source/ucp/ftp/ucpftp1.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.FTPContentProvider">
+ <service name="com.sun.star.ucb.FTPContentProvider"/>
+ </implementation>
+</component>
diff --git a/ucb/source/ucp/gio/gio_provider.cxx b/ucb/source/ucp/gio/gio_provider.cxx
index b39bc4462bbe..b8b16ba72c24 100644
--- a/ucb/source/ucp/gio/gio_provider.cxx
+++ b/ucb/source/ucp/gio/gio_provider.cxx
@@ -102,41 +102,6 @@ ONE_INSTANCE_SERVICE_FACTORY_IMPL( ContentProvider );
}
-static sal_Bool writeInfo( void *pRegistryKey,
- const rtl::OUString &rImplementationName, uno::Sequence< rtl::OUString > const &rServiceNames )
-{
- rtl::OUString aKeyName( rtl::OUString::createFromAscii( "/" ) );
- aKeyName += rImplementationName;
- aKeyName += rtl::OUString::createFromAscii( "/UNO/SERVICES" );
-
- uno::Reference< registry::XRegistryKey > xKey;
- try
- {
- xKey = static_cast< registry::XRegistryKey * > (pRegistryKey )->createKey( aKeyName );
- }
- catch ( registry::InvalidRegistryException const & )
- {}
-
- if ( !xKey.is() )
- return sal_False;
-
- sal_Bool bSuccess = sal_True;
-
- for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
- {
- try
- {
- xKey->createKey( rServiceNames[ n ] );
- }
- catch ( registry::InvalidRegistryException const & )
- {
- bSuccess = sal_False;
- break;
- }
- }
- return bSuccess;
-}
-
extern "C" void SAL_CALL component_getImplementationEnvironment(
const sal_Char **ppEnvTypeName, uno_Environment **)
{
diff --git a/ucb/source/ucp/gio/makefile.mk b/ucb/source/ucp/gio/makefile.mk
index 86b32fbc0739..4cca611c7ece 100644
--- a/ucb/source/ucp/gio/makefile.mk
+++ b/ucb/source/ucp/gio/makefile.mk
@@ -37,8 +37,6 @@ NO_BSYMBOLIC=TRUE
.INCLUDE: settings.mk
.IF "$(L10N_framework)"==""
-UNIXTEXT=$(MISC)/$(TARGET)-ucd.txt
-
.IF "$(ENABLE_GIO)"!=""
COMPILER_WARN_ALL=TRUE
PKGCONFIG_MODULES=gio-2.0
@@ -79,3 +77,11 @@ SHL1VERSIONMAP=$(SOLARENV)/src/component.map
.ENDIF # L10N_framework
.INCLUDE: target.mk
+
+ALLTAR : $(MISC)/ucpgio.component
+
+$(MISC)/ucpgio.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ ucpgio.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt ucpgio.component
diff --git a/ucb/source/ucp/gio/ucpgio-ucd.txt b/ucb/source/ucp/gio/ucpgio-ucd.txt
deleted file mode 100644
index ce7657fa73e3..000000000000
--- a/ucb/source/ucp/gio/ucpgio-ucd.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-[ComponentDescriptor]
-ImplementationName=com.sun.star.comp.GIOContentProvider
-ComponentName=ucpgio1.uno.so
-LoaderName=com.sun.star.loader.SharedLibrary
-[SupportedServices]
-com.sun.star.ucb.GIOContentProvider
diff --git a/ucb/source/ucp/gio/ucpgio.component b/ucb/source/ucp/gio/ucpgio.component
new file mode 100644
index 000000000000..caa8fc361f7f
--- /dev/null
+++ b/ucb/source/ucp/gio/ucpgio.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.GIOContentProvider">
+ <service name="com.sun.star.ucb.GIOContentProvider"/>
+ </implementation>
+</component>
diff --git a/ucb/source/ucp/gvfs/gvfs_provider.cxx b/ucb/source/ucp/gvfs/gvfs_provider.cxx
index 52376bf4153e..77415982c63d 100644
--- a/ucb/source/ucp/gvfs/gvfs_provider.cxx
+++ b/ucb/source/ucp/gvfs/gvfs_provider.cxx
@@ -143,42 +143,6 @@ ContentProvider::queryContent(
//============================ shlib entry points =============================================
-
-// cut and paste verbatim from webdav (that sucks).
-static sal_Bool
-writeInfo( void *pRegistryKey,
- const rtl::OUString &rImplementationName,
- uno::Sequence< rtl::OUString > const &rServiceNames )
-{
- rtl::OUString aKeyName( rtl::OUString::createFromAscii( "/" ) );
- aKeyName += rImplementationName;
- aKeyName += rtl::OUString::createFromAscii( "/UNO/SERVICES" );
-
- uno::Reference< registry::XRegistryKey > xKey;
- try {
- xKey = static_cast< registry::XRegistryKey * >
- (pRegistryKey )->createKey( aKeyName );
- }
- catch ( registry::InvalidRegistryException const & ) {
- }
-
- if ( !xKey.is() )
- return sal_False;
-
- sal_Bool bSuccess = sal_True;
-
- for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n ) {
- try {
- xKey->createKey( rServiceNames[ n ] );
-
- } catch ( registry::InvalidRegistryException const & ) {
- bSuccess = sal_False;
- break;
- }
- }
- return bSuccess;
-}
-
extern "C" void SAL_CALL
component_getImplementationEnvironment( const sal_Char **ppEnvTypeName,
uno_Environment **/*ppEnv*/ )
@@ -186,15 +150,6 @@ component_getImplementationEnvironment( const sal_Char **ppEnvTypeName,
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-extern "C" sal_Bool SAL_CALL
-component_writeInfo( void */*pServiceManager*/,
- void *pRegistryKey )
-{
- return pRegistryKey &&
- writeInfo( pRegistryKey,
- ::gvfs::ContentProvider::getImplementationName_Static(),
- ::gvfs::ContentProvider::getSupportedServiceNames_Static() );
-}
extern "C" void * SAL_CALL
component_getFactory( const sal_Char *pImplName,
void *pServiceManager,
diff --git a/ucb/source/ucp/gvfs/makefile.mk b/ucb/source/ucp/gvfs/makefile.mk
index a0e8a0bda3bb..87fcca87cf70 100644
--- a/ucb/source/ucp/gvfs/makefile.mk
+++ b/ucb/source/ucp/gvfs/makefile.mk
@@ -37,8 +37,6 @@ NO_BSYMBOLIC=TRUE
.INCLUDE: settings.mk
.IF "$(L10N_framework)"==""
-UNIXTEXT=$(MISC)/$(TARGET)-ucd.txt
-
.IF "$(ENABLE_GNOMEVFS)"!=""
COMPILER_WARN_ALL=TRUE
PKGCONFIG_MODULES=gnome-vfs-2.0
@@ -84,3 +82,10 @@ SHL1VERSIONMAP=$(SOLARENV)/src/component.map
.INCLUDE: target.mk
+ALLTAR : $(MISC)/ucpgvfs.component
+
+$(MISC)/ucpgvfs.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ ucpgvfs.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt ucpgvfs.component
diff --git a/ucb/source/ucp/gvfs/ucpgvfs-ucd.txt b/ucb/source/ucp/gvfs/ucpgvfs-ucd.txt
deleted file mode 100644
index e9ecce6effd2..000000000000
--- a/ucb/source/ucp/gvfs/ucpgvfs-ucd.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-[ComponentDescriptor]
-ImplementationName=com.sun.star.comp.GnomeVFSContentProvider
-ComponentName=ucpgvfs1.uno.so
-LoaderName=com.sun.star.loader.SharedLibrary
-[SupportedServices]
-com.sun.star.ucb.GnomeVFSContentProvider
diff --git a/ucb/source/ucp/gvfs/ucpgvfs.component b/ucb/source/ucp/gvfs/ucpgvfs.component
new file mode 100644
index 000000000000..cec3e4d1e2b1
--- /dev/null
+++ b/ucb/source/ucp/gvfs/ucpgvfs.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.GnomeVFSContentProvider">
+ <service name="com.sun.star.ucb.GnomeVFSContentProvider"/>
+ </implementation>
+</component>
diff --git a/ucb/source/ucp/hierarchy/hierarchyservices.cxx b/ucb/source/ucp/hierarchy/hierarchyservices.cxx
index e645e006032e..1830ecc35625 100644
--- a/ucb/source/ucp/hierarchy/hierarchyservices.cxx
+++ b/ucb/source/ucp/hierarchy/hierarchyservices.cxx
@@ -29,7 +29,6 @@
#include "precompiled_ucb.hxx"
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-#include <com/sun/star/registry/XRegistryKey.hpp>
#include "hierarchyprovider.hxx"
#include "hierarchydatasource.hxx"
@@ -37,45 +36,6 @@ using namespace com::sun::star;
using namespace hierarchy_ucp;
//=========================================================================
-static sal_Bool writeInfo( void * pRegistryKey,
- const rtl::OUString & rImplementationName,
- uno::Sequence< rtl::OUString > const & rServiceNames )
-{
- rtl::OUString aKeyName( rtl::OUString::createFromAscii( "/" ) );
- aKeyName += rImplementationName;
- aKeyName += rtl::OUString::createFromAscii( "/UNO/SERVICES" );
-
- uno::Reference< registry::XRegistryKey > xKey;
- try
- {
- xKey = static_cast< registry::XRegistryKey * >(
- pRegistryKey )->createKey( aKeyName );
- }
- catch ( registry::InvalidRegistryException const & )
- {
- }
-
- if ( !xKey.is() )
- return sal_False;
-
- sal_Bool bSuccess = sal_True;
-
- for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
- {
- try
- {
- xKey->createKey( rServiceNames[ n ] );
- }
- catch ( registry::InvalidRegistryException const & )
- {
- bSuccess = sal_False;
- break;
- }
- }
- return bSuccess;
-}
-
-//=========================================================================
extern "C" void SAL_CALL component_getImplementationEnvironment(
const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
{
@@ -83,29 +43,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment(
}
//=========================================================================
-extern "C" sal_Bool SAL_CALL component_writeInfo(
- void * /*pServiceManager*/, void * pRegistryKey )
-{
- return pRegistryKey &&
-
- //////////////////////////////////////////////////////////////////////
- // Hierarchy Content Provider.
- //////////////////////////////////////////////////////////////////////
-
- writeInfo( pRegistryKey,
- HierarchyContentProvider::getImplementationName_Static(),
- HierarchyContentProvider::getSupportedServiceNames_Static() ) &&
-
- //////////////////////////////////////////////////////////////////////
- // Hierarchy Data Source.
- //////////////////////////////////////////////////////////////////////
-
- writeInfo( pRegistryKey,
- HierarchyDataSource::getImplementationName_Static(),
- HierarchyDataSource::getSupportedServiceNames_Static() );
-}
-
-//=========================================================================
extern "C" void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ )
{
diff --git a/ucb/source/ucp/hierarchy/makefile.mk b/ucb/source/ucp/hierarchy/makefile.mk
index 00b481b5e7a1..9263faa24b08 100644
--- a/ucb/source/ucp/hierarchy/makefile.mk
+++ b/ucb/source/ucp/hierarchy/makefile.mk
@@ -82,3 +82,11 @@ DEF1NAME=$(SHL1TARGET)
.ENDIF # L10N_framework
.INCLUDE: target.mk
+
+ALLTAR : $(MISC)/ucphier1.component
+
+$(MISC)/ucphier1.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ ucphier1.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt ucphier1.component
diff --git a/ucb/source/ucp/hierarchy/ucphier1.component b/ucb/source/ucp/hierarchy/ucphier1.component
new file mode 100644
index 000000000000..5483187d8674
--- /dev/null
+++ b/ucb/source/ucp/hierarchy/ucphier1.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.ucb.HierarchyContentProvider">
+ <service name="com.sun.star.ucb.HierarchyContentProvider"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.ucb.HierarchyDataSource">
+ <service name="com.sun.star.ucb.DefaultHierarchyDataSource"/>
+ <service name="com.sun.star.ucb.HierarchyDataSource"/>
+ </implementation>
+</component>
diff --git a/ucb/source/ucp/odma/odma_services.cxx b/ucb/source/ucp/odma/odma_services.cxx
index 3e4639e25806..0f5666e2bb53 100644
--- a/ucb/source/ucp/odma/odma_services.cxx
+++ b/ucb/source/ucp/odma/odma_services.cxx
@@ -40,45 +40,6 @@ using namespace com::sun::star::lang;
using namespace com::sun::star::registry;
//=========================================================================
-static sal_Bool writeInfo( void * pRegistryKey,
- const OUString & rImplementationName,
- Sequence< OUString > const & rServiceNames )
-{
- OUString aKeyName( OUString::createFromAscii( "/" ) );
- aKeyName += rImplementationName;
- aKeyName += OUString::createFromAscii( "/UNO/SERVICES" );
-
- Reference< XRegistryKey > xKey;
- try
- {
- xKey = static_cast< XRegistryKey * >(
- pRegistryKey )->createKey( aKeyName );
- }
- catch ( InvalidRegistryException const & )
- {
- }
-
- if ( !xKey.is() )
- return sal_False;
-
- sal_Bool bSuccess = sal_True;
-
- for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
- {
- try
- {
- xKey->createKey( rServiceNames[ n ] );
- }
- catch ( InvalidRegistryException const & )
- {
- bSuccess = sal_False;
- break;
- }
- }
- return bSuccess;
-}
-
-//=========================================================================
extern "C" void SAL_CALL component_getImplementationEnvironment(
const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
{
diff --git a/ucb/source/ucp/package/makefile.mk b/ucb/source/ucp/package/makefile.mk
index a8cdf7430703..b78150aed2cb 100644
--- a/ucb/source/ucp/package/makefile.mk
+++ b/ucb/source/ucp/package/makefile.mk
@@ -87,3 +87,11 @@ DEF1NAME=$(SHL1TARGET)
.ENDIF # L10N_framework
.INCLUDE: target.mk
+
+ALLTAR : $(MISC)/ucppkg1.component
+
+$(MISC)/ucppkg1.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ ucppkg1.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt ucppkg1.component
diff --git a/ucb/source/ucp/package/pkgservices.cxx b/ucb/source/ucp/package/pkgservices.cxx
index 251ce8c78dd1..ad4af686d2d6 100644
--- a/ucb/source/ucp/package/pkgservices.cxx
+++ b/ucb/source/ucp/package/pkgservices.cxx
@@ -34,50 +34,6 @@
using namespace com::sun::star;
-namespace {
-
-//=========================================================================
-sal_Bool writeInfo(
- void * pRegistryKey,
- const rtl::OUString & rImplementationName,
- uno::Sequence< rtl::OUString > const & rServiceNames )
-{
- rtl::OUString aKeyName( rtl::OUString::createFromAscii( "/" ) );
- aKeyName += rImplementationName;
- aKeyName += rtl::OUString::createFromAscii( "/UNO/SERVICES" );
-
- uno::Reference< registry::XRegistryKey > xKey;
- try
- {
- xKey = static_cast< registry::XRegistryKey * >(
- pRegistryKey )->createKey( aKeyName );
- }
- catch ( registry::InvalidRegistryException const & )
- {
- }
-
- if ( !xKey.is() )
- return sal_False;
-
- sal_Bool bSuccess = sal_True;
-
- for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
- {
- try
- {
- xKey->createKey( rServiceNames[ n ] );
- }
- catch ( registry::InvalidRegistryException const & )
- {
- bSuccess = sal_False;
- break;
- }
- }
- return bSuccess;
-}
-
-} // namespace
-
//=========================================================================
extern "C" void SAL_CALL component_getImplementationEnvironment(
const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
@@ -86,21 +42,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment(
}
//=========================================================================
-extern "C" sal_Bool SAL_CALL component_writeInfo(
- void * /*pServiceManager*/, void * pRegistryKey )
-{
- return pRegistryKey &&
-
- //////////////////////////////////////////////////////////////////////
- // Write info into registry.
- //////////////////////////////////////////////////////////////////////
-
- writeInfo( pRegistryKey,
- ::package_ucp::ContentProvider::getImplementationName_Static(),
- ::package_ucp::ContentProvider::getSupportedServiceNames_Static() );
-}
-
-//=========================================================================
extern "C" void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ )
{
diff --git a/ucb/source/ucp/package/ucppkg1.component b/ucb/source/ucp/package/ucppkg1.component
new file mode 100644
index 000000000000..a2e2418b5602
--- /dev/null
+++ b/ucb/source/ucp/package/ucppkg1.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.ucb.PackageContentProvider">
+ <service name="com.sun.star.ucb.PackageContentProvider"/>
+ </implementation>
+</component>
diff --git a/ucb/source/ucp/tdoc/makefile.mk b/ucb/source/ucp/tdoc/makefile.mk
index 83e9599eed72..82c76b34b206 100644
--- a/ucb/source/ucp/tdoc/makefile.mk
+++ b/ucb/source/ucp/tdoc/makefile.mk
@@ -92,3 +92,11 @@ DEF1NAME=$(SHL1TARGET)
.INCLUDE: target.mk
+
+ALLTAR : $(MISC)/ucptdoc1.component
+
+$(MISC)/ucptdoc1.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ ucptdoc1.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt ucptdoc1.component
diff --git a/ucb/source/ucp/tdoc/tdoc_services.cxx b/ucb/source/ucp/tdoc/tdoc_services.cxx
index 6f9641d5159b..fc34fd78b1a4 100644
--- a/ucb/source/ucp/tdoc/tdoc_services.cxx
+++ b/ucb/source/ucp/tdoc/tdoc_services.cxx
@@ -39,45 +39,6 @@ using namespace com::sun::star;
using namespace tdoc_ucp;
//=========================================================================
-static sal_Bool writeInfo( void * pRegistryKey,
- const rtl::OUString & rImplementationName,
- uno::Sequence< rtl::OUString > const & rServiceNames )
-{
- rtl::OUString aKeyName( rtl::OUString::createFromAscii( "/" ) );
- aKeyName += rImplementationName;
- aKeyName += rtl::OUString::createFromAscii( "/UNO/SERVICES" );
-
- uno::Reference< registry::XRegistryKey > xKey;
- try
- {
- xKey = static_cast< registry::XRegistryKey * >(
- pRegistryKey )->createKey( aKeyName );
- }
- catch ( registry::InvalidRegistryException const & )
- {
- }
-
- if ( !xKey.is() )
- return sal_False;
-
- sal_Bool bSuccess = sal_True;
-
- for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
- {
- try
- {
- xKey->createKey( rServiceNames[ n ] );
- }
- catch ( registry::InvalidRegistryException const & )
- {
- bSuccess = sal_False;
- break;
- }
- }
- return bSuccess;
-}
-
-//=========================================================================
extern "C" void SAL_CALL component_getImplementationEnvironment(
const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
{
@@ -85,29 +46,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment(
}
//=========================================================================
-extern "C" sal_Bool SAL_CALL component_writeInfo(
- void * /*pServiceManager*/, void * pRegistryKey )
-{
- return pRegistryKey &&
-
- //////////////////////////////////////////////////////////////////////
- // Transient Documents Content Provider.
- //////////////////////////////////////////////////////////////////////
-
- writeInfo( pRegistryKey,
- ContentProvider::getImplementationName_Static(),
- ContentProvider::getSupportedServiceNames_Static() ) &&
-
- //////////////////////////////////////////////////////////////////////
- // Transient Documents Document Content Factory.
- //////////////////////////////////////////////////////////////////////
-
- writeInfo( pRegistryKey,
- DocumentContentFactory::getImplementationName_Static(),
- DocumentContentFactory::getSupportedServiceNames_Static() );
-}
-
-//=========================================================================
extern "C" void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ )
{
diff --git a/ucb/source/ucp/tdoc/ucptdoc1.component b/ucb/source/ucp/tdoc/ucptdoc1.component
new file mode 100644
index 000000000000..8ba1471bd933
--- /dev/null
+++ b/ucb/source/ucp/tdoc/ucptdoc1.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.ucb.TransientDocumentsContentProvider">
+ <service name="com.sun.star.ucb.TransientDocumentsContentProvider"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.ucb.TransientDocumentsDocumentContentFactory">
+ <service name="com.sun.star.frame.TransientDocumentsDocumentContentFactory"/>
+ </implementation>
+</component>
diff --git a/ucb/source/ucp/webdav/makefile.mk b/ucb/source/ucp/webdav/makefile.mk
index 73ee298697e8..162d58266406 100644
--- a/ucb/source/ucp/webdav/makefile.mk
+++ b/ucb/source/ucp/webdav/makefile.mk
@@ -158,3 +158,11 @@ DEF1NAME=$(SHL1TARGET)
# --- Targets ----------------------------------------------------------
.INCLUDE: target.mk
+
+ALLTAR : $(MISC)/ucpdav1.component
+
+$(MISC)/ucpdav1.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ ucpdav1.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt ucpdav1.component
diff --git a/ucb/source/ucp/webdav/ucpdav1.component b/ucb/source/ucp/webdav/ucpdav1.component
new file mode 100644
index 000000000000..4e18b566e1a4
--- /dev/null
+++ b/ucb/source/ucp/webdav/ucpdav1.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.WebDAVContentProvider">
+ <service name="com.sun.star.ucb.WebDAVContentProvider"/>
+ </implementation>
+</component>
diff --git a/ucb/source/ucp/webdav/webdavservices.cxx b/ucb/source/ucp/webdav/webdavservices.cxx
index 9fb6d9e82bcf..7a38636e9dc7 100644
--- a/ucb/source/ucp/webdav/webdavservices.cxx
+++ b/ucb/source/ucp/webdav/webdavservices.cxx
@@ -35,45 +35,6 @@
using namespace com::sun::star;
//=========================================================================
-static sal_Bool writeInfo( void * pRegistryKey,
- const rtl::OUString & rImplementationName,
- uno::Sequence< rtl::OUString > const & rServiceNames )
-{
- rtl::OUString aKeyName( rtl::OUString::createFromAscii( "/" ) );
- aKeyName += rImplementationName;
- aKeyName += rtl::OUString::createFromAscii( "/UNO/SERVICES" );
-
- uno::Reference< registry::XRegistryKey > xKey;
- try
- {
- xKey = static_cast< registry::XRegistryKey * >(
- pRegistryKey )->createKey( aKeyName );
- }
- catch ( registry::InvalidRegistryException const & )
- {
- }
-
- if ( !xKey.is() )
- return sal_False;
-
- sal_Bool bSuccess = sal_True;
-
- for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
- {
- try
- {
- xKey->createKey( rServiceNames[ n ] );
- }
- catch ( registry::InvalidRegistryException const & )
- {
- bSuccess = sal_False;
- break;
- }
- }
- return bSuccess;
-}
-
-//=========================================================================
extern "C" void SAL_CALL component_getImplementationEnvironment(
const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
{
@@ -81,21 +42,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment(
}
//=========================================================================
-extern "C" sal_Bool SAL_CALL component_writeInfo(
- void * /*pServiceManager*/, void * pRegistryKey )
-{
- return pRegistryKey &&
-
- //////////////////////////////////////////////////////////////////////
- // WebDAV Content Provider.
- //////////////////////////////////////////////////////////////////////
-
- writeInfo( pRegistryKey,
- ::webdav_ucp::ContentProvider::getImplementationName_Static(),
- ::webdav_ucp::ContentProvider::getSupportedServiceNames_Static() );
-}
-
-//=========================================================================
extern "C" void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ )
{
diff --git a/unotools/prj/d.lst b/unotools/prj/d.lst
index ad8a764055b2..38cafd0cc1f8 100644
--- a/unotools/prj/d.lst
+++ b/unotools/prj/d.lst
@@ -9,3 +9,4 @@
mkdir: %_DEST%\inc%_EXT%\unotools
..\inc\unotools\*.hxx %_DEST%\inc%_EXT%\unotools\*.hxx
..\inc\unotools\unotoolsdllapi.h %_DEST%\inc%_EXT%\unotools\unotoolsdllapi.h
+..\%__SRC%\misc\utl.component %_DEST%\xml%_EXT%\utl.component
diff --git a/unotools/source/ucbhelper/xtempfile.cxx b/unotools/source/ucbhelper/xtempfile.cxx
index 023211dc3527..525596fae854 100644
--- a/unotools/source/ucbhelper/xtempfile.cxx
+++ b/unotools/source/ucbhelper/xtempfile.cxx
@@ -28,12 +28,6 @@
#include <XTempFile.hxx>
#include <cppuhelper/factory.hxx>
#include <cppuhelper/typeprovider.hxx>
-#ifndef _COM_SUN_STAR_REGISTRY_XREGISTRYKEY_HPP
-#include <com/sun/star/registry/XRegistryKey.hpp>
-#endif
-#ifndef _COM_SUN_STAR_BEANS_PROPERTYATTRIBUTE_HPP
-#include <com/sun/star/beans/PropertyAttribute.hpp>
-#endif
#include <unotools/tempfile.hxx>
#include <osl/file.hxx>
#include <unotools/configmgr.hxx>
@@ -489,43 +483,6 @@ throw ( ::css::uno::RuntimeException )
return ::cppu::createSingleComponentFactory( XTempFile_createInstance, getImplementationName_Static(), getSupportedServiceNames_Static() );
}
-static sal_Bool writeInfo( void * pRegistryKey,
- const ::rtl::OUString & rImplementationName,
- ::css::uno::Sequence< ::rtl::OUString > const & rServiceNames )
-{
- ::rtl::OUString aKeyName( RTL_CONSTASCII_USTRINGPARAM ( "/" ) );
- aKeyName += rImplementationName;
- aKeyName += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "/UNO/SERVICES" ) );
-
- ::css::uno::Reference< ::css::registry::XRegistryKey > xKey;
- try
- {
- xKey = static_cast< ::css::registry::XRegistryKey * >(
- pRegistryKey )->createKey( aKeyName );
- }
- catch ( ::css::registry::InvalidRegistryException const & )
- {
- }
-
- if ( !xKey.is() )
- return sal_False;
-
- sal_Bool bSuccess = sal_True;
-
- for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
- {
- try
- {
- xKey->createKey( rServiceNames[ n ] );
- }
- catch ( ::css::registry::InvalidRegistryException const & )
- {
- bSuccess = sal_False;
- break;
- }
- }
- return bSuccess;
-}
// C functions to implement this as a component
extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnvironment(
@@ -535,21 +492,6 @@ extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL component_getImplementationEnviron
}
/**
- * This function creates an implementation section in the registry and another subkey
- * for each supported service.
- * @param pServiceManager generic uno interface providing a service manager
- * @param pRegistryKey generic uno interface providing registry key to write
- */
-extern "C" SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey )
-{
- return pRegistryKey &&
- writeInfo (pRegistryKey,
- OTempFileService::getImplementationName_Static(),
- OTempFileService::getSupportedServiceNames_Static() );
-}
-
-
-/**
* This function is called to get service factories for an implementation.
* @param pImplName name of implementation
* @param pServiceManager generic uno interface providing a service manager to instantiate components
diff --git a/unotools/util/makefile.mk b/unotools/util/makefile.mk
index 8e725d2de2fa..343e56f04169 100644
--- a/unotools/util/makefile.mk
+++ b/unotools/util/makefile.mk
@@ -94,3 +94,11 @@ $(MISC)$/$(SHL1TARGET).flt: makefile.mk
@echo UpdateToConfig >> $@
@echo _Impl >> $@
+
+ALLTAR : $(MISC)/utl.component
+
+$(MISC)/utl.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ utl.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt utl.component
diff --git a/unotools/util/utl.component b/unotools/util/utl.component
new file mode 100644
index 000000000000..8c8198741f55
--- /dev/null
+++ b/unotools/util/utl.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.io.comp.TempFile">
+ <service name="com.sun.star.io.TempFile"/>
+ </implementation>
+</component>
diff --git a/unoxml/prj/d.lst b/unoxml/prj/d.lst
index e2bf5df03b34..4fcedbdba7a2 100644
--- a/unoxml/prj/d.lst
+++ b/unoxml/prj/d.lst
@@ -1,3 +1,5 @@
..\%__SRC%\lib\lib*.so %_DEST%\lib%_EXT%\lib*.so
..\%__SRC%\lib\lib*.dylib %_DEST%\lib%_EXT%\lib*.dylib
..\%__SRC%\bin\*.dll %_DEST%\bin%_EXT%\*.dll
+..\%__SRC%\misc\unordf.component %_DEST%\xml%_EXT%\unordf.component
+..\%__SRC%\misc\unoxml.component %_DEST%\xml%_EXT%\unoxml.component
diff --git a/unoxml/source/rdf/librdf_services.cxx b/unoxml/source/rdf/librdf_services.cxx
index 03949934560d..08e776d214fe 100644
--- a/unoxml/source/rdf/librdf_services.cxx
+++ b/unoxml/source/rdf/librdf_services.cxx
@@ -72,12 +72,5 @@ extern "C" void * SAL_CALL component_getFactory(
implName, serviceManager, registryKey, entries);
}
-extern "C" sal_Bool SAL_CALL component_writeInfo(
- void * serviceManager, void * registryKey)
-{
- return ::cppu::component_writeInfoHelper(serviceManager, registryKey,
- entries);
-}
-
} // extern "C"
diff --git a/unoxml/source/rdf/makefile.mk b/unoxml/source/rdf/makefile.mk
index 3f6d7f445297..1dbcffb8b6ac 100644
--- a/unoxml/source/rdf/makefile.mk
+++ b/unoxml/source/rdf/makefile.mk
@@ -82,3 +82,11 @@ SHL1STDLIBS= \
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/unordf.component
+
+$(MISC)/unordf.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ unordf.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt unordf.component
diff --git a/unoxml/source/rdf/unordf.component b/unoxml/source/rdf/unordf.component
new file mode 100644
index 000000000000..a828e7b05d47
--- /dev/null
+++ b/unoxml/source/rdf/unordf.component
@@ -0,0 +1,43 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="CBlankNode">
+ <service name="com.sun.star.rdf.BlankNode"/>
+ </implementation>
+ <implementation name="CLiteral">
+ <service name="com.sun.star.rdf.Literal"/>
+ </implementation>
+ <implementation name="CURI">
+ <service name="com.sun.star.rdf.URI"/>
+ </implementation>
+ <implementation name="librdf_Repository">
+ <service name="com.sun.star.rdf.Repository"/>
+ </implementation>
+</component>
diff --git a/unoxml/source/service/makefile.mk b/unoxml/source/service/makefile.mk
index 93aec0746323..5fbe62f67ec4 100644
--- a/unoxml/source/service/makefile.mk
+++ b/unoxml/source/service/makefile.mk
@@ -76,3 +76,11 @@ SHL1STDLIBS= \
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/unoxml.component
+
+$(MISC)/unoxml.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ unoxml.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt unoxml.component
diff --git a/unoxml/source/service/services.cxx b/unoxml/source/service/services.cxx
index 218015852c83..6b1a2f6f0979 100644
--- a/unoxml/source/service/services.cxx
+++ b/unoxml/source/service/services.cxx
@@ -60,44 +60,6 @@ component_getImplementationEnvironment(const sal_Char **ppEnvironmentTypeName, u
*ppEnvironmentTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ;
}
-sal_Bool SAL_CALL
-component_writeInfo(void * /*pServiceManager*/, void* pRegistryKey )
-{
- Reference< XRegistryKey > xKey(reinterpret_cast< XRegistryKey* >(pRegistryKey));
- Reference< XRegistryKey > xNewKey;
- OUString aImpl;
-
- // register DOM service
- aImpl = OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- aImpl += CDocumentBuilder::_getImplementationName();
- aImpl += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
- xNewKey = xKey->createKey(aImpl);
- xNewKey->createKey(CDocumentBuilder::_getSupportedServiceNames()[0]);
-
- // register DOM service
- aImpl = OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- aImpl += CSAXDocumentBuilder::_getImplementationName();
- aImpl += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
- xNewKey = xKey->createKey(aImpl);
- xNewKey->createKey(CSAXDocumentBuilder::_getSupportedServiceNames()[0]);
-
- // register XPath service
- aImpl = OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- aImpl += CXPathAPI::_getImplementationName();
- aImpl += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
- xNewKey = xKey->createKey(aImpl);
- xNewKey->createKey(CXPathAPI::_getSupportedServiceNames()[0]);
-
- // register EventTest service
- aImpl = OUString(RTL_CONSTASCII_USTRINGPARAM("/"));
- aImpl += CTestListener::_getImplementationName();
- aImpl += ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("/UNO/SERVICES"));
- xNewKey = xKey->createKey(aImpl);
- xNewKey->createKey(CTestListener::_getSupportedServiceNames()[0]);
-
- return sal_True;
-}
-
void* SAL_CALL
component_getFactory(const sal_Char *pImplementationName, void *pServiceManager, void * /*pRegistryKey*/)
{
diff --git a/unoxml/source/service/unoxml.component b/unoxml/source/service/unoxml.component
new file mode 100644
index 000000000000..d8c907e6475b
--- /dev/null
+++ b/unoxml/source/service/unoxml.component
@@ -0,0 +1,43 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.xml.dom.DocumentBuilder">
+ <service name="com.sun.star.xml.dom.DocumentBuilder"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.xml.dom.SAXDocumentBuilder">
+ <service name="com.sun.star.xml.dom.SAXDocumentBuilder"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.xml.dom.events.TestListener">
+ <service name="com.sun.star.comp.xml.dom.events.TestListener"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.xml.xpath.XPathAPI">
+ <service name="com.sun.star.xml.xpath.XPathAPI"/>
+ </implementation>
+</component>
diff --git a/ure/prj/build.lst b/ure/prj/build.lst
index 07fbfc484201..7d3e23edc058 100644
--- a/ure/prj/build.lst
+++ b/ure/prj/build.lst
@@ -1,2 +1,2 @@
-ur ure : cli_ure solenv NULL
+ur ure : cli_ure io javaunohelper remotebridges solenv stoc NULL
ur ure\source nmake - all ur_source NULL
diff --git a/ure/prj/d.lst b/ure/prj/d.lst
index 23524c981608..22cfb161c19a 100644
--- a/ure/prj/d.lst
+++ b/ure/prj/d.lst
@@ -1,9 +1,11 @@
mkdir: %_DEST%\bin%_EXT%\ure
-..\%__SRC%\bin\ure\README %_DEST%\bin%_EXT%\ure\README
-..\%__SRC%\bin\ure\THIRDPARTYLICENSEREADME.html %_DEST%\bin%_EXT%\ure\THIRDPARTYLICENSEREADME.html
-..\%__SRC%\bin\ure\jvmfwk3.ini %_DEST%\bin%_EXT%\ure\jvmfwk3.ini
-..\%__SRC%\bin\ure\jvmfwk3rc %_DEST%\bin%_EXT%\ure\jvmfwk3rc
-..\%__SRC%\bin\ure\startup.sh %_DEST%\bin%_EXT%\ure\startup.sh
-..\%__SRC%\bin\ure\uno.ini %_DEST%\bin%_EXT%\ure\uno.ini
-..\%__SRC%\bin\ure\unorc %_DEST%\bin%_EXT%\ure\unorc
+mkdir: %_DEST%\xml%_EXT%\ure
..\%__SRC%\bin\uretest.zip %COMMON_DEST%\bin%_EXT%\uretest.zip
+..\%__SRC%\misc\services.rdb %_DEST%\xml%_EXT%\ure\services.rdb
+..\source\README %_DEST%\bin%_EXT%\ure\README
+..\source\THIRDPARTYLICENSEREADME.html %_DEST%\bin%_EXT%\ure\THIRDPARTYLICENSEREADME.html
+..\source\jvmfwk3.ini %_DEST%\bin%_EXT%\ure\jvmfwk3.ini
+..\source\jvmfwk3rc %_DEST%\bin%_EXT%\ure\jvmfwk3rc
+..\source\startup.sh %_DEST%\bin%_EXT%\ure\startup.sh
+..\source\uno.ini %_DEST%\bin%_EXT%\ure\uno.ini
+..\source\unorc %_DEST%\bin%_EXT%\ure\unorc
diff --git a/ure/source/README b/ure/source/README
index 6e5162d8f058..3bbdaa43d6a3 100644
--- a/ure/source/README
+++ b/ure/source/README
@@ -65,6 +65,7 @@ Linux x86, Solaris x86, and Solaris SPARC:
/opt/openoffice.org/ure/lib/libreg.so.3 [private]
/opt/openoffice.org/ure/lib/librmcxt.so.3 [private]
/opt/openoffice.org/ure/lib/libstore.so.3 [private]
+/opt/openoffice.org/ure/lib/libxmlreader.so [private]
/opt/openoffice.org/ure/lib/libjvmaccessgcc3.so.3 [private; Linux x86 only]
/opt/openoffice.org/ure/lib/libjvmaccessC52.so.3 [private; Solaris only]
/opt/openoffice.org/ure/lib/libjvmfwk.so.3 [private]
@@ -128,6 +129,7 @@ Program Files\URE\bin\uno.ini [private]
Program Files\URE\bin\reg3.dll [private]
Program Files\URE\bin\rmcxt3.dll [private]
Program Files\URE\bin\store3.dll [private]
+Program Files\URE\bin\xmlreader.dll [private]
Program Files\URE\bin\jvmaccess3MSC.dll [private]
Program Files\URE\bin\jvmfwk3.dll [private]
Program Files\URE\bin\sunjavaplugin.dll [private]
diff --git a/ure/source/makefile.mk b/ure/source/makefile.mk
index a1728b2773b4..cd6fab21049d 100644
--- a/ure/source/makefile.mk
+++ b/ure/source/makefile.mk
@@ -1,7 +1,7 @@
#*************************************************************************
#
# 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
@@ -25,52 +25,46 @@
#
#*************************************************************************
-PRJ := ..
-PRJNAME := ure
-TARGET := $(PRJNAME)
-
-.INCLUDE: settings.mk
-
-.IF "$(OS)" == "WNT" || "$(OS)" == "OS2"
-MY_RC = .ini
-.ELSE
-MY_RC = rc
-.ENDIF
+PRJ = ..
+PRJNAME = ure
+TARGET = source
ZIP1TARGET = uretest
ZIP1FLAGS = -r
ZIP1LIST = uretest
-.INCLUDE: target.mk
-
-ALLTAR: \
- $(BIN)$/ure$/README \
- $(BIN)$/ure$/THIRDPARTYLICENSEREADME.html \
- $(BIN)$/ure$/jvmfwk3$(MY_RC) \
- $(BIN)$/ure$/uno$(MY_RC)
+my_components = \
+ acceptor \
+ bootstrap \
+ bridgefac \
+ connector \
+ introspection \
+ invocadapt \
+ invocation \
+ javaloader \
+ javavm \
+ juh \
+ namingservice \
+ proxyfac \
+ reflection \
+ remotebridge \
+ stocservices \
+ streams \
+ textinstream \
+ textoutstream \
+ uuresolver
-$(BIN)$/ure$/README: README
- -$(MKDIR) $(@:d)
- $(COPY) $< $@
-
-$(BIN)$/ure$/THIRDPARTYLICENSEREADME.html: THIRDPARTYLICENSEREADME.html
- - $(MKDIR) $(@:d)
- $(COPY) $< $@
-
-$(BIN)$/ure$/jvmfwk3$(MY_RC): jvmfwk3$(MY_RC)
- -$(MKDIR) $(@:d)
- $(COPY) $< $@
-
-$(BIN)$/ure$/uno$(MY_RC): uno$(MY_RC)
- -$(MKDIR) $(@:d)
- $(COPY) $< $@
-
-.IF "$(OS)" != "WNT"
+.INCLUDE: settings.mk
+.INCLUDE: target.mk
-ALLTAR: $(BIN)$/ure$/startup.sh
+ALLTAR : $(MISC)/services.rdb
-$(BIN)$/ure$/startup.sh: startup.sh
- -$(MKDIR) $(@:d)
- $(COPY) $< $@
+$(MISC)/services.rdb .ERRREMOVE : $(SOLARENV)/bin/packcomponents.xslt \
+ $(MISC)/services.input $(my_components:^"$(SOLARXMLDIR)/":+".component")
+ $(XSLTPROC) --nonet --stringparam prefix $(SOLARXMLDIR)/ -o $@ \
+ $(SOLARENV)/bin/packcomponents.xslt $(MISC)/services.input
-.ENDIF
+$(MISC)/services.input :
+ echo \
+ '<list>$(my_components:^"<filename>":+".component</filename>")</list>' \
+ > $@
diff --git a/uui/prj/d.lst b/uui/prj/d.lst
index 30c6f812fd5b..46b0118319fb 100644
--- a/uui/prj/d.lst
+++ b/uui/prj/d.lst
@@ -7,3 +7,4 @@ mkdir: %COMMON_DEST%\bin%_EXT%\hid
..\%__SRC%\lib\iuui.lib %_DEST%\lib%_EXT%\iuui.lib
..\util\uui.xml %_DEST%\xml%_EXT%\uui.xml
+..\%__SRC%\misc\uui.component %_DEST%\xml%_EXT%\uui.component
diff --git a/uui/source/iahndl-authentication.cxx b/uui/source/iahndl-authentication.cxx
index 11f6627ed8b9..1185dd1eb57d 100644
--- a/uui/source/iahndl-authentication.cxx
+++ b/uui/source/iahndl-authentication.cxx
@@ -519,7 +519,8 @@ executePasswordDialog(
task::PasswordRequestMode nMode,
::rtl::OUString aDocName,
bool bMSCryptoMode,
- bool bIsPasswordToModify )
+ bool bIsPasswordToModify,
+ bool bIsSimplePasswordRequest )
SAL_THROW((uno::RuntimeException))
{
try
@@ -530,21 +531,36 @@ executePasswordDialog(
ResMgr::CreateResMgr(CREATEVERSIONRESMGR_NAME(uui)));
if( nMode == task::PasswordRequestMode_PASSWORD_CREATE )
{
- const sal_uInt16 nMaxPasswdLen = bMSCryptoMode ? 15 : 0; // 0 -> allow any length
+ if (bIsSimplePasswordRequest)
+ {
+ std::auto_ptr< PasswordDialog > pDialog(
+ new PasswordDialog( pParent, nMode, xManager.get(), aDocName,
+ bIsPasswordToModify, bIsSimplePasswordRequest ) );
+ pDialog->SetMinLen(0);
+
+ rInfo.SetResult( pDialog->Execute() == RET_OK ? ERRCODE_BUTTON_OK : ERRCODE_BUTTON_CANCEL );
+ rInfo.SetPassword( pDialog->GetPassword() );
+ }
+ else
+ {
+ const sal_uInt16 nMaxPasswdLen = bMSCryptoMode ? 15 : 0; // 0 -> allow any length
- VclAbstractDialogFactory * pFact = VclAbstractDialogFactory::Create();
- AbstractPasswordToOpenModifyDialog *pTmp = pFact->CreatePasswordToOpenModifyDialog( pParent, 0, nMaxPasswdLen, bIsPasswordToModify );
- std::auto_ptr< AbstractPasswordToOpenModifyDialog > pDialog( pTmp );
+ VclAbstractDialogFactory * pFact = VclAbstractDialogFactory::Create();
+ AbstractPasswordToOpenModifyDialog *pTmp = pFact->CreatePasswordToOpenModifyDialog( pParent, 0, nMaxPasswdLen, bIsPasswordToModify );
+ std::auto_ptr< AbstractPasswordToOpenModifyDialog > pDialog( pTmp );
- rInfo.SetResult( pDialog->Execute() == RET_OK ? ERRCODE_BUTTON_OK : ERRCODE_BUTTON_CANCEL );
- rInfo.SetPassword( pDialog->GetPasswordToOpen() );
- rInfo.SetPasswordToModify( pDialog->GetPasswordToModify() );
- rInfo.SetRecommendToOpenReadonly( pDialog->IsRecommendToOpenReadonly() );
+ rInfo.SetResult( pDialog->Execute() == RET_OK ? ERRCODE_BUTTON_OK : ERRCODE_BUTTON_CANCEL );
+ rInfo.SetPassword( pDialog->GetPasswordToOpen() );
+ rInfo.SetPasswordToModify( pDialog->GetPasswordToModify() );
+ rInfo.SetRecommendToOpenReadonly( pDialog->IsRecommendToOpenReadonly() );
+ }
}
- else
+ else // enter password or reenter password
{
std::auto_ptr< PasswordDialog > pDialog(
- new PasswordDialog( pParent, nMode, xManager.get(), aDocName, bIsPasswordToModify ) );
+ new PasswordDialog( pParent, nMode, xManager.get(), aDocName,
+ bIsPasswordToModify, bIsSimplePasswordRequest ) );
+ pDialog->SetMinLen(0);
rInfo.SetResult( pDialog->Execute() == RET_OK ? ERRCODE_BUTTON_OK : ERRCODE_BUTTON_CANCEL );
rInfo.SetPassword( bIsPasswordToModify ? String() : pDialog->GetPassword() );
@@ -567,7 +583,8 @@ handlePasswordRequest_(
rContinuations,
::rtl::OUString aDocumentName,
bool bMSCryptoMode,
- bool bIsPasswordToModify )
+ bool bIsPasswordToModify,
+ bool bIsSimplePasswordRequest = false )
SAL_THROW((uno::RuntimeException))
{
uno::Reference< task::XInteractionRetry > xRetry;
@@ -582,7 +599,7 @@ handlePasswordRequest_(
LoginErrorInfo aInfo;
executePasswordDialog( pParent, aInfo, nMode,
- aDocumentName, bMSCryptoMode, bIsPasswordToModify );
+ aDocumentName, bMSCryptoMode, bIsPasswordToModify, bIsSimplePasswordRequest );
switch (aInfo.GetResult())
{
@@ -742,7 +759,8 @@ UUIInteractionHelper::handlePasswordRequest(
rRequest->getContinuations(),
rtl::OUString(),
false /* bool bMSCryptoMode */,
- false /* bool bIsPasswordToModify */);
+ false /* bool bIsPasswordToModify */,
+ true /* bool bIsSimplePasswordRequest */ );
return true;
}
diff --git a/uui/source/ids.hrc b/uui/source/ids.hrc
index 9be81479ef59..f9c9e2fd2d15 100644..100755
--- a/uui/source/ids.hrc
+++ b/uui/source/ids.hrc
@@ -56,6 +56,7 @@
#define RID_UUI_ERRHDL (RID_UUI_START + 20)
#define DLG_UUI_MASTERPASSWORD_CRT (RID_UUI_START + 21)
#define DLG_UUI_PASSWORD (RID_UUI_START + 22)
+#define STR_ERROR_SIMPLE_PASSWORD_WRONG (RID_UUI_START + 23)
#define STR_ERROR_PASSWORD_TO_OPEN_WRONG (RID_UUI_START + 24)
#define STR_ERROR_PASSWORD_TO_MODIFY_WRONG (RID_UUI_START + 25)
#define DLG_UUI_UNKNOWNAUTH (RID_UUI_START + 26)
@@ -93,6 +94,8 @@
#define STR_RENAME_OR_REPLACE (RID_UUI_START + 58)
#define STR_NAME_CLASH_RENAME_ONLY (RID_UUI_START + 59)
#define STR_SAME_NAME_USED (RID_UUI_START + 60)
+#define STR_ENTER_SIMPLE_PASSWORD (RID_UUI_START + 61)
+#define STR_CONFIRM_SIMPLE_PASSWORD (RID_UUI_START + 62)
#define ERRCODE_UUI_IO_ABORT (ERRCODE_AREA_UUI + 0)
#define ERRCODE_UUI_IO_ACCESSDENIED (ERRCODE_AREA_UUI + 1)
diff --git a/uui/source/logindlg.src b/uui/source/logindlg.src
index bf6a97c3b0ff..736e0f9ae1df 100755
--- a/uui/source/logindlg.src
+++ b/uui/source/logindlg.src
@@ -175,20 +175,20 @@ ModalDialog DLG_UUI_LOGIN
Size = MAP_APPFONT( 177 , 8 ) ;
};
- OKButton BTN_LOGIN_OK
+ HelpButton BTN_LOGIN_HELP
{
Pos = MAP_APPFONT( 6 , 227 ) ;
Size = MAP_APPFONT( 50 , 14 ) ;
- DefButton = TRUE ;
};
- CancelButton BTN_LOGIN_CANCEL
+ OKButton BTN_LOGIN_OK
{
Pos = MAP_APPFONT( 66 , 227 ) ;
Size = MAP_APPFONT( 50 , 14 ) ;
+ DefButton = TRUE ;
};
- HelpButton BTN_LOGIN_HELP
+ CancelButton BTN_LOGIN_CANCEL
{
Pos = MAP_APPFONT( 121 , 227 ) ;
Size = MAP_APPFONT( 50 , 14 ) ;
diff --git a/uui/source/masterpasscrtdlg.cxx b/uui/source/masterpasscrtdlg.cxx
index af2ef194f22e..1622be0b38ab 100644..100755
--- a/uui/source/masterpasscrtdlg.cxx
+++ b/uui/source/masterpasscrtdlg.cxx
@@ -93,7 +93,7 @@ MasterPasswordCreateDialog::MasterPasswordCreateDialog
aHelpBtn ( this, ResId( BTN_MASTERPASSCRT_HELP, *pResMgr ) ),
pResourceMgr ( pResMgr ),
- nMinLen ( 5 )
+ nMinLen ( 1 )
{
FreeResource();
diff --git a/uui/source/masterpasscrtdlg.src b/uui/source/masterpasscrtdlg.src
index 870cc8a2456f..439026d3f6e1 100644..100755
--- a/uui/source/masterpasscrtdlg.src
+++ b/uui/source/masterpasscrtdlg.src
@@ -86,7 +86,7 @@ ModalDialog DLG_UUI_MASTERPASSWORD_CRT
Pos = MAP_APPFONT ( COL_0 , ROW_6 ) ;
Size = MAP_APPFONT ( CTRL_WIDTH , 8*RSC_CD_FIXEDTEXT_HEIGHT ) ;
WordBreak = TRUE ;
- Text [ en-US ] = "Caution: Make sure you remember the Master Password you have set. If you forget your Master Password, you will be unable to access any of the information protected by it. Passwords are case-sensitive and at least five characters long.";
+ Text [ en-US ] = "Caution: If you forget the master password, you will be unable to access any of the information protected by it. Passwords are case-sensitive.";
};
FixedLine FL_CAUTIONTEXT
{
diff --git a/uui/source/passworddlg.cxx b/uui/source/passworddlg.cxx
index c89184f54bc1..348d2f833e15 100755
--- a/uui/source/passworddlg.cxx
+++ b/uui/source/passworddlg.cxx
@@ -25,67 +25,119 @@
*
************************************************************************/
+#include "passworddlg.hxx"
+#include "passworddlg.hrc"
+#include "ids.hrc"
+
#include <svtools/filedlg.hxx>
#include <vcl/msgbox.hxx>
-#ifndef UUI_IDS_HRC
-#include <ids.hrc>
-#endif
-#ifndef UUI_PASSWORDDLG_HRC
-#include <passworddlg.hrc>
-#endif
-#include <passworddlg.hxx>
-// PasswordDialog---------------------------------------------------------
+using namespace ::com::sun::star;
+
// -----------------------------------------------------------------------
-IMPL_LINK( PasswordDialog, OKHdl_Impl, OKButton *, EMPTYARG )
+static void lcl_Move( Window &rWin, long nOffset )
{
- EndDialog( RET_OK );
- return 1;
+ Point aTmp( rWin.GetPosPixel() );
+ aTmp.Y() += nOffset;
+ rWin.SetPosPixel( aTmp );
}
// -----------------------------------------------------------------------
PasswordDialog::PasswordDialog(
Window* _pParent,
- ::com::sun::star::task::PasswordRequestMode nDlgMode,
+ task::PasswordRequestMode nDlgMode,
ResMgr * pResMgr,
rtl::OUString& aDocURL,
- bool bOpenToModify )
+ bool bOpenToModify,
+ bool bIsSimplePasswordRequest )
:ModalDialog( _pParent, ResId( DLG_UUI_PASSWORD, *pResMgr ) )
,aFTPassword( this, ResId( FT_PASSWORD, *pResMgr ))
,aEDPassword( this, ResId( ED_PASSWORD, *pResMgr ))
+ ,aFTConfirmPassword( this, ResId( FT_CONFIRM_PASSWORD, *pResMgr ))
+ ,aEDConfirmPassword( this, ResId( ED_CONFIRM_PASSWORD, *pResMgr ))
,aOKBtn ( this, ResId( BTN_PASSWORD_OK, *pResMgr ))
,aCancelBtn ( this, ResId( BTN_PASSWORD_CANCEL, *pResMgr ))
,aHelpBtn ( this, ResId( BTN_PASSWORD_HELP, *pResMgr ))
,aFixedLine1( this, ResId( FL_FIXED_LINE_1, *pResMgr ))
+ ,nMinLen(1)
+ ,aPasswdMismatch( ResId( STR_PASSWORD_MISMATCH, *pResMgr ))
,nDialogMode( nDlgMode )
,pResourceMgr ( pResMgr )
{
- if( nDialogMode == ::com::sun::star::task::PasswordRequestMode_PASSWORD_REENTER )
+ if( nDialogMode == task::PasswordRequestMode_PASSWORD_REENTER )
{
- USHORT nErrStrId = bOpenToModify ? STR_ERROR_PASSWORD_TO_MODIFY_WRONG : STR_ERROR_PASSWORD_TO_OPEN_WRONG;
+ const USHORT nOpenToModifyErrStrId = bOpenToModify ? STR_ERROR_PASSWORD_TO_MODIFY_WRONG : STR_ERROR_PASSWORD_TO_OPEN_WRONG;
+ const USHORT nErrStrId = bIsSimplePasswordRequest ? STR_ERROR_SIMPLE_PASSWORD_WRONG : nOpenToModifyErrStrId;
String aErrorMsg( ResId( nErrStrId, *pResourceMgr ));
- ErrorBox aErrorBox( _pParent, WB_OK, aErrorMsg );
+ ErrorBox aErrorBox( this, WB_OK, aErrorMsg );
aErrorBox.Execute();
}
+ // default settings for enter password or reenter passwd...
+ String aTitle( ResId( STR_TITLE_ENTER_PASSWORD, *pResourceMgr ) );
+ aFTConfirmPassword.Hide();
+ aEDConfirmPassword.Hide();
+ aFTConfirmPassword.Enable( FALSE );
+ aEDConfirmPassword.Enable( FALSE );
+
+ // settings for create password
+ if (nDialogMode == task::PasswordRequestMode_PASSWORD_CREATE)
+ {
+ aTitle = String( ResId( STR_TITLE_CREATE_PASSWORD, *pResourceMgr ) );
+
+ aFTConfirmPassword.SetText( String( ResId( STR_CONFIRM_SIMPLE_PASSWORD, *pResourceMgr ) ) );
+
+ aFTConfirmPassword.Show();
+ aEDConfirmPassword.Show();
+ aFTConfirmPassword.Enable( TRUE );
+ aEDConfirmPassword.Enable( TRUE );
+ }
+ else
+ {
+ // shrink dialog by size of hidden controls and move rest up accordingly
+
+ long nDelta = aFixedLine1.GetPosPixel().Y() - aFTConfirmPassword.GetPosPixel().Y();
+
+ lcl_Move( aFixedLine1, -nDelta );
+ lcl_Move( aOKBtn, -nDelta );
+ lcl_Move( aCancelBtn, -nDelta );
+ lcl_Move( aHelpBtn, -nDelta );
+
+ Size aNewDlgSize = GetSizePixel();
+ aNewDlgSize.Height() -= nDelta;
+ SetSizePixel( aNewDlgSize );
+ }
+
+ SetText( aTitle );
+
USHORT nStrId = bOpenToModify ? STR_ENTER_PASSWORD_TO_MODIFY : STR_ENTER_PASSWORD_TO_OPEN;
aFTPassword.SetText( String( ResId( nStrId, *pResourceMgr ) ) );
+ aFTPassword.SetText( aFTPassword.GetText() + aDocURL );
+ if (bIsSimplePasswordRequest)
+ {
+ DBG_ASSERT( aDocURL.getLength() == 0, "A simple password request should not have a document URL! Use document password request instead." );
+ aFTPassword.SetText( String( ResId( STR_ENTER_SIMPLE_PASSWORD, *pResourceMgr ) ) );
+ }
FreeResource();
- aFTPassword.SetText( aFTPassword.GetText() + aDocURL );
-
aOKBtn.SetClickHdl( LINK( this, PasswordDialog, OKHdl_Impl ) );
- long nLabelWidth = aFTPassword.GetSizePixel().Width();
- long nLabelHeight = aFTPassword.GetSizePixel().Height();
- long nTextWidth = aFTPassword.GetCtrlTextWidth( aFTPassword.GetText() );
- long nTextHeight = aFTPassword.GetTextHeight();
+
+ //
+ // move controls down by extra height needed for aFTPassword
+ // (usually only needed if a URL was provided)
+ //
+
+ long nLabelWidth = aFTPassword.GetSizePixel().Width();
+ long nLabelHeight = aFTPassword.GetSizePixel().Height();
+ long nTextWidth = aFTPassword.GetCtrlTextWidth( aFTPassword.GetText() );
+ long nTextHeight = aFTPassword.GetTextHeight();
Rectangle aLabelRect( aFTPassword.GetPosPixel(), aFTPassword.GetSizePixel() );
Rectangle aRect = aFTPassword.GetTextRect( aLabelRect, aFTPassword.GetText() );
@@ -105,13 +157,31 @@ PasswordDialog::PasswordDialog(
aNewLabelSize.Height() = nNewLabelHeight;
aFTPassword.SetPosSizePixel( aFTPassword.GetPosPixel(), aNewLabelSize );
- Window* pControls[] = { &aEDPassword, &aFixedLine1, &aOKBtn, &aCancelBtn, &aHelpBtn };
- const sal_Int32 nCCount = sizeof( pControls ) / sizeof( pControls[0] );
- for ( int i = 0; i < nCCount; ++i )
+ lcl_Move( aEDPassword, nDelta );
+ lcl_Move( aFTConfirmPassword, nDelta );
+ lcl_Move( aEDConfirmPassword, nDelta );
+ lcl_Move( aFixedLine1, nDelta );
+ lcl_Move( aOKBtn, nDelta );
+ lcl_Move( aCancelBtn, nDelta );
+ lcl_Move( aHelpBtn, nDelta );
+}
+
+
+IMPL_LINK( PasswordDialog, OKHdl_Impl, OKButton *, EMPTYARG )
+{
+ bool bEDPasswdValid = aEDPassword.GetText().Len() >= nMinLen;
+ bool bPasswdMismatch = aEDConfirmPassword.GetText() != aEDPassword.GetText();
+ bool bValid = (!aEDConfirmPassword.IsVisible() && bEDPasswdValid) ||
+ (aEDConfirmPassword.IsVisible() && bEDPasswdValid && !bPasswdMismatch);
+
+ if (aEDConfirmPassword.IsVisible() && bPasswdMismatch)
{
- Point aNewPos =(*pControls[i]).GetPosPixel();
- aNewPos.Y() += nDelta;
- pControls[i]->SetPosSizePixel( aNewPos, pControls[i]->GetSizePixel() );
+ ErrorBox aErrorBox( this, WB_OK, aPasswdMismatch );
+ aErrorBox.Execute();
}
+ else if (bValid)
+ EndDialog( RET_OK );
+ return 1;
}
+
diff --git a/uui/source/passworddlg.hrc b/uui/source/passworddlg.hrc
index ad7517b7a62b..e9a8bb5b5b04 100644..100755
--- a/uui/source/passworddlg.hrc
+++ b/uui/source/passworddlg.hrc
@@ -29,12 +29,18 @@
#define PASSWORDDLG_HRC
// local identifiers
-#define BTN_PASSWORD_OK 1
-#define ED_PASSWORD 2
-#define FT_PASSWORD 3
-#define FL_FIXED_LINE_1 4
-#define BTN_PASSWORD_HELP 5
-#define BTN_PASSWORD_CANCEL 6
+#define BTN_PASSWORD_OK 1
+#define ED_PASSWORD 2
+#define FT_PASSWORD 3
+#define FT_CONFIRM_PASSWORD 4
+#define ED_CONFIRM_PASSWORD 5
+#define FL_FIXED_LINE_1 6
+#define BTN_PASSWORD_HELP 7
+#define BTN_PASSWORD_CANCEL 8
+
+#define STR_TITLE_CREATE_PASSWORD 9
+#define STR_TITLE_ENTER_PASSWORD 10
+#define STR_PASSWORD_MISMATCH 11
#endif // PASSWORDDLG_HRC
diff --git a/uui/source/passworddlg.hxx b/uui/source/passworddlg.hxx
index fe5fe7f2ef84..b94dbab82444 100755
--- a/uui/source/passworddlg.hxx
+++ b/uui/source/passworddlg.hxx
@@ -37,21 +37,28 @@
#include <vcl/fixed.hxx>
//============================================================================
+
class PasswordDialog : public ModalDialog
{
FixedText aFTPassword;
Edit aEDPassword;
+ FixedText aFTConfirmPassword;
+ Edit aEDConfirmPassword;
OKButton aOKBtn;
CancelButton aCancelBtn;
HelpButton aHelpBtn;
FixedLine aFixedLine1;
+ USHORT nMinLen;
+ String aPasswdMismatch;
DECL_LINK( OKHdl_Impl, OKButton * );
public:
- PasswordDialog( Window* pParent, ::com::sun::star::task::PasswordRequestMode nDlgMode, ResMgr * pResMgr, ::rtl::OUString& aDocURL, bool bOpenToModify = false );
+ PasswordDialog( Window* pParent, ::com::sun::star::task::PasswordRequestMode nDlgMode, ResMgr * pResMgr, ::rtl::OUString& aDocURL,
+ bool bOpenToModify = false, bool bIsSimplePasswordRequest = false );
+ void SetMinLen( USHORT nMin ) { nMinLen = nMin; }
String GetPassword() const { return aEDPassword.GetText(); }
private:
@@ -60,3 +67,4 @@ private:
};
#endif // PASSWORDDLG_HXX
+
diff --git a/uui/source/passworddlg.src b/uui/source/passworddlg.src
index 33767057e1bd..52f8fbfac134 100755
--- a/uui/source/passworddlg.src
+++ b/uui/source/passworddlg.src
@@ -41,48 +41,61 @@ ModalDialog DLG_UUI_PASSWORD
Moveable = TRUE ;
OutputSize = TRUE ;
SVLook = TRUE ;
- Size = MAP_APPFONT( 145, 91 );
- Text [ en-US ] = "Enter password";
+ Size = MAP_APPFONT( 165, 95 );
FixedText FT_PASSWORD
{
- Pos = MAP_APPFONT( 3, 4 );
- Size = MAP_APPFONT( 139, 28 );
+ Pos = MAP_APPFONT( 3, 6 );
+ Size = MAP_APPFONT( 159, 8 );
WordBreak = TRUE;
};
Edit ED_PASSWORD
{
- Pos = MAP_APPFONT( 3, 51 );
- Size = MAP_APPFONT( 139, 13 );
+ Pos = MAP_APPFONT( 3, 17 );
+ Size = MAP_APPFONT( 159, 12 );
Border = TRUE ;
PassWord = TRUE ;
};
- FixedLine FL_FIXED_LINE_1
+ FixedText FT_CONFIRM_PASSWORD
{
- Pos = MAP_APPFONT( 0, 66 );
- Size = MAP_APPFONT( 145, 6 );
+ Pos = MAP_APPFONT( 3, 34 );
+ Size = MAP_APPFONT( 159, 8 );
+ WordBreak = TRUE;
};
- OKButton BTN_PASSWORD_OK
+ Edit ED_CONFIRM_PASSWORD
{
- Pos = MAP_APPFONT( 27, 72 );
- Size = MAP_APPFONT( 37, 15 );
- DefButton = TRUE ;
- DefButton = TRUE;
+ Pos = MAP_APPFONT( 3, 45 );
+ Size = MAP_APPFONT( 159, 12 );
+ Border = TRUE ;
+ PassWord = TRUE ;
};
- CancelButton BTN_PASSWORD_CANCEL
+ FixedLine FL_FIXED_LINE_1
{
- Pos = MAP_APPFONT( 66, 72 );
- Size = MAP_APPFONT( 37, 15 );
+ Pos = MAP_APPFONT( 0, 63 );
+ Size = MAP_APPFONT( 165, 8 );
};
HelpButton BTN_PASSWORD_HELP
{
- Pos = MAP_APPFONT( 105, 72 );
- Size = MAP_APPFONT( 37, 15 );
+ Pos = MAP_APPFONT( 3, 76 );
+ Size = MAP_APPFONT( 50, 14 );
+ };
+
+ OKButton BTN_PASSWORD_OK
+ {
+ Pos = MAP_APPFONT( 59, 76 );
+ Size = MAP_APPFONT( 50, 14 );
+ DefButton = TRUE ;
+ };
+
+ CancelButton BTN_PASSWORD_CANCEL
+ {
+ Pos = MAP_APPFONT( 112, 76 );
+ Size = MAP_APPFONT( 50, 14 );
};
String STR_ENTER_PASSWORD_TO_OPEN
@@ -94,5 +107,30 @@ ModalDialog DLG_UUI_PASSWORD
{
Text [ en-US ] = "Enter password to modify file: \n";
};
+
+ String STR_ENTER_SIMPLE_PASSWORD
+ {
+ Text [ en-US ] = "Enter password: ";
+ };
+
+ String STR_CONFIRM_SIMPLE_PASSWORD
+ {
+ Text [ en-US ] = "Confirm password: ";
+ };
+
+ String STR_TITLE_CREATE_PASSWORD
+ {
+ Text [ en-US ] = "Set Password";
+ };
+
+ String STR_TITLE_ENTER_PASSWORD
+ {
+ Text [ en-US ] = "Enter Password";
+ };
+
+ String STR_PASSWORD_MISMATCH
+ {
+ Text [ en-US ] = "The confirmation password did not match the password. Set the password again by entering the same password in both boxes." ;
+ };
};
diff --git a/uui/source/passworderrs.src b/uui/source/passworderrs.src
index 91b244ae543e..3d4307ad4f80 100755
--- a/uui/source/passworderrs.src
+++ b/uui/source/passworderrs.src
@@ -43,7 +43,12 @@ String STR_ERROR_PASSWORD_TO_MODIFY_WRONG
String STR_ERROR_MASTERPASSWORD_WRONG
{
- Text [ en-US ] = "The wrong Master Password has been entered. %PRODUCTNAME could not access web login information protected by Master Password.\n\nNote: Passwords are case-sensitive and at least five characters long.";
+ Text [ en-US ] = "The master password is incorrect.";
+};
+
+String STR_ERROR_SIMPLE_PASSWORD_WRONG
+{
+ Text [ en-US ] = "The password is incorrect.";
};
String STR_ERROR_PASSWORDS_NOT_IDENTICAL
diff --git a/uui/source/services.cxx b/uui/source/services.cxx
index 95d4d65b6faf..4ceb59c4c389 100644
--- a/uui/source/services.cxx
+++ b/uui/source/services.cxx
@@ -41,49 +41,6 @@ using namespace com::sun::star::uno;
using namespace com::sun::star::lang;
using namespace com::sun::star::registry;
-namespace {
-
-sal_Bool writeInfo( void * pRegistryKey,
- const OUString & rImplementationName,
- Sequence< OUString > const & rServiceNames )
-{
- OUString aKeyName( OUString::createFromAscii( "/" ) );
- aKeyName += rImplementationName;
- aKeyName += OUString::createFromAscii( "/UNO/SERVICES" );
-
- Reference< XRegistryKey > xKey;
- try
- {
- xKey = static_cast< XRegistryKey * >(
- pRegistryKey )->createKey( aKeyName );
- }
- catch ( InvalidRegistryException const & )
- {
- }
-
- if ( !xKey.is() )
- {
- return sal_False;
- }
- sal_Bool bSuccess = sal_True;
-
- for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
- {
- try
- {
- xKey->createKey( rServiceNames[ n ] );
- }
- catch ( InvalidRegistryException const & )
- {
- bSuccess = sal_False;
- break;
- }
- }
- return bSuccess;
-}
-
-} // namespace
-
//============================================================================
//
// component_getImplementationEnvironment
@@ -99,43 +56,6 @@ component_getImplementationEnvironment(sal_Char const ** pEnvTypeName,
//============================================================================
//
-// component_writeInfo
-//
-//============================================================================
-
-extern "C" sal_Bool SAL_CALL component_writeInfo(void *, void * pRegistryKey)
-{
- return pRegistryKey &&
-
- //////////////////////////////////////////////////////////////////////
- // UUI Interaction Handler.
- //////////////////////////////////////////////////////////////////////
-
- writeInfo( pRegistryKey,
- OUString::createFromAscii(
- UUIInteractionHandler::m_aImplementationName ),
- UUIInteractionHandler::getSupportedServiceNames_static() ) &&
-
- //////////////////////////////////////////////////////////////////////
- // UUI Interaction Request String Resolver.
- //////////////////////////////////////////////////////////////////////
-
- writeInfo( pRegistryKey,
- OUString::createFromAscii(
- UUIInteractionRequestStringResolver::m_aImplementationName ),
- UUIInteractionRequestStringResolver::getSupportedServiceNames_static() ) &&
-
- //////////////////////////////////////////////////////////////////////
- // UUI Password Container Interaction Handler.
- //////////////////////////////////////////////////////////////////////
-
- writeInfo( pRegistryKey,
- uui::PasswordContainerInteractionHandler::getImplementationName_Static(),
- uui::PasswordContainerInteractionHandler::getSupportedServiceNames_Static() );
-}
-
-//============================================================================
-//
// component_getFactory
//
//============================================================================
diff --git a/uui/util/makefile.mk b/uui/util/makefile.mk
index 163a7bb5502e..8a77e71b5e8d 100644
--- a/uui/util/makefile.mk
+++ b/uui/util/makefile.mk
@@ -62,3 +62,11 @@ RESLIB1SRSFILES = \
$(SRS)$/source.srs
.INCLUDE: target.mk
+
+ALLTAR : $(MISC)/uui.component
+
+$(MISC)/uui.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ uui.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt uui.component
diff --git a/uui/util/uui.component b/uui/util/uui.component
new file mode 100644
index 000000000000..0a15ad6eb8e5
--- /dev/null
+++ b/uui/util/uui.component
@@ -0,0 +1,44 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation
+ name="com.sun.star.comp.uui.PasswordContainerInteractionHandler">
+ <service name="com.sun.star.task.PasswordContainerInteractionHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.uui.UUIInteractionHandler">
+ <service name="com.sun.star.configuration.backend.InteractionHandler"/>
+ <service name="com.sun.star.task.InteractionHandler"/>
+ <service name="com.sun.star.uui.InteractionHandler"/>
+ </implementation>
+ <implementation
+ name="com.sun.star.comp.uui.UUIInteractionRequestStringResolver">
+ <service name="com.sun.star.task.InteractionRequestStringResolver"/>
+ </implementation>
+</component>
diff --git a/vbahelper/prj/d.lst b/vbahelper/prj/d.lst
index 2d20ab1f982d..a5457b730409 100644
--- a/vbahelper/prj/d.lst
+++ b/vbahelper/prj/d.lst
@@ -26,4 +26,5 @@ mkdir: %_DEST%\inc%_EXT%\basic
..\inc\vbahelper\vbatextframe.hxx %_DEST%\inc%_EXT%\vbahelper\vbatextframe.hxx
..\inc\vbahelper\vbashaperange.hxx %_DEST%\inc%_EXT%\vbahelper\vbashaperange.hxx
..\inc\vbahelper\vbapagesetupbase.hxx %_DEST%\inc%_EXT%\vbahelper\vbapagesetupbase.hxx
+..\%__SRC%\misc\msforms.component %_DEST%\xml%_EXT%\msforms.component
..\inc\vbahelper\vbaeventshelperbase.hxx %_DEST%\inc%_EXT%\vbahelper\vbaeventshelperbase.hxx
diff --git a/vbahelper/source/msforms/service.cxx b/vbahelper/source/msforms/service.cxx
index 8e6cf29e8ec5..152517be3958 100644
--- a/vbahelper/source/msforms/service.cxx
+++ b/vbahelper/source/msforms/service.cxx
@@ -57,16 +57,6 @@ extern "C"
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
- SAL_DLLPUBLIC_EXPORT sal_Bool SAL_CALL component_writeInfo(
- lang::XMultiServiceFactory * pServiceManager, registry::XRegistryKey * pRegistryKey )
- {
- OSL_TRACE("In component_writeInfo");
-
- // Component registration
- return component_writeInfoHelper( pServiceManager, pRegistryKey,
- controlprovider::serviceDecl, userform::serviceDecl );
- }
-
SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory(
const sal_Char * pImplName, lang::XMultiServiceFactory * pServiceManager,
registry::XRegistryKey * pRegistryKey )
diff --git a/vbahelper/util/makefile.mk b/vbahelper/util/makefile.mk
index dda4be0cbc81..9469df473685 100644
--- a/vbahelper/util/makefile.mk
+++ b/vbahelper/util/makefile.mk
@@ -102,3 +102,11 @@ SHL2LIBS=$(SLB)$/$(TARGET_MSFORMS).lib
# --- Targets -----------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/msforms.component
+
+$(MISC)/msforms.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ msforms.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL2TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt msforms.component
diff --git a/vbahelper/util/msforms.component b/vbahelper/util/msforms.component
new file mode 100644
index 000000000000..98ce4a8451d4
--- /dev/null
+++ b/vbahelper/util/msforms.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="ControlProviderImpl">
+ <service name="ooo.vba.ControlProvider"/>
+ </implementation>
+ <implementation name="ScVbaUserForm">
+ <service name="ooo.vba.msforms.UserForm"/>
+ </implementation>
+</component>
diff --git a/vcl/aqua/inc/salgdi.h b/vcl/aqua/inc/salgdi.h
index a3d6c2793aae..17c4aa7acd44 100644
--- a/vcl/aqua/inc/salgdi.h
+++ b/vcl/aqua/inc/salgdi.h
@@ -59,7 +59,7 @@ public:
virtual ImplFontEntry* CreateFontInstance( ImplFontSelectData& ) const;
virtual sal_IntPtr GetFontId() const;
- ImplFontCharMap* GetImplFontCharMap() const;
+ const ImplFontCharMap* GetImplFontCharMap() const;
bool HasChar( sal_uInt32 cChar ) const;
void ReadOs2Table() const;
@@ -68,7 +68,7 @@ public:
private:
const ATSUFontID mnFontId;
- mutable ImplFontCharMap* mpCharMap;
+ mutable const ImplFontCharMap* mpCharMap;
mutable bool mbOs2Read; // true if OS2-table related info is valid
mutable bool mbHasOs2Table;
mutable bool mbCmapEncodingRead; // true if cmap encoding of Mac font is read
@@ -281,7 +281,7 @@ public:
// return only PairCount if (pKernPairs == NULL)
virtual ULONG GetKernPairs( ULONG nPairs, ImplKernPairData* pKernPairs );
// get the repertoire of the current font
- virtual ImplFontCharMap* GetImplFontCharMap() const;
+ virtual const ImplFontCharMap* GetImplFontCharMap() const;
// graphics must fill supplied font list
virtual void GetDevFontList( ImplDevFontList* );
// graphics should call ImplAddDevFontSubstitute on supplied
diff --git a/vcl/aqua/source/dtrans/aqua_service.cxx b/vcl/aqua/source/dtrans/aqua_service.cxx
index 571bea2e554f..57ef1f11175c 100644
--- a/vcl/aqua/source/dtrans/aqua_service.cxx
+++ b/vcl/aqua/source/dtrans/aqua_service.cxx
@@ -58,28 +58,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-sal_Bool SAL_CALL component_writeInfo( void* pServiceManager, void* pRegistryKey )
-{
- sal_Bool bRetVal = sal_False;
-
- if ( pRegistryKey )
- {
- try
- {
- Reference< XRegistryKey > pXNewKey( static_cast< XRegistryKey* >( pRegistryKey ) );
- pXNewKey->createKey( OUString( RTL_CONSTASCII_USTRINGPARAM( AQUA_CLIPBOARD_REGKEY_NAME ) ) );
- bRetVal = sal_True;
- }
- catch( InvalidRegistryException& )
- {
- OSL_ENSURE(sal_False, "InvalidRegistryException caught");
- bRetVal = sal_False;
- }
- }
-
- return bRetVal;
-}
-
void* SAL_CALL component_getFactory( const sal_Char* pImplName, uno_Interface* pSrvManager, uno_Interface* pRegistryKey )
{
void* pRet = 0;
diff --git a/vcl/aqua/source/gdi/salgdi.cxx b/vcl/aqua/source/gdi/salgdi.cxx
index b04fd9c75af7..e1daf649f6da 100644
--- a/vcl/aqua/source/gdi/salgdi.cxx
+++ b/vcl/aqua/source/gdi/salgdi.cxx
@@ -116,17 +116,15 @@ inline FourCharCode GetTag(const char aTagName[5])
static unsigned GetUShort( const unsigned char* p ){return((p[0]<<8)+p[1]);}
static unsigned GetUInt( const unsigned char* p ) { return((p[0]<<24)+(p[1]<<16)+(p[2]<<8)+p[3]);}
-ImplFontCharMap* ImplMacFontData::GetImplFontCharMap() const
+const ImplFontCharMap* ImplMacFontData::GetImplFontCharMap() const
{
+ // return the cached charmap
if( mpCharMap )
- {
- // return the cached charmap
- mpCharMap->AddReference();
return mpCharMap;
- }
// set the default charmap
mpCharMap = ImplFontCharMap::GetDefaultMap();
+ mpCharMap->AddReference();
// get the CMAP byte size
ATSFontRef rFont = FMGetATSFontRefFromFont( mnFontId );
@@ -149,10 +147,14 @@ ImplFontCharMap* ImplMacFontData::GetImplFontCharMap() const
// parse the CMAP
CmapResult aCmapResult;
- if( !ParseCMAP( &aBuffer[0], nRawLength, aCmapResult ) )
- return mpCharMap;
+ if( ParseCMAP( &aBuffer[0], nRawLength, aCmapResult ) )
+ {
+ // create the matching charmap
+ mpCharMap->DeReference();
+ mpCharMap = new ImplFontCharMap( aCmapResult );
+ mpCharMap->AddReference();
+ }
- mpCharMap = new ImplFontCharMap( aCmapResult );
return mpCharMap;
}
@@ -1992,7 +1994,7 @@ USHORT AquaSalGraphics::SetFont( ImplFontSelectData* pReqFont, int nFallbackLeve
// -----------------------------------------------------------------------
-ImplFontCharMap* AquaSalGraphics::GetImplFontCharMap() const
+const ImplFontCharMap* AquaSalGraphics::GetImplFontCharMap() const
{
if( !mpMacFontData )
return ImplFontCharMap::GetDefaultMap();
@@ -2367,6 +2369,8 @@ void AquaSalGraphics::GetGlyphWidths( const ImplFontData* pFontData, bool bVerti
if( nGlyph > 0 )
rUnicodeEnc[ nUcsChar ] = nGlyph;
}
+
+ pMap->DeReference(); // TODO: add and use RAII object instead
}
::CloseTTFont( pSftFont );
diff --git a/vcl/inc/vcl/glyphcache.hxx b/vcl/inc/vcl/glyphcache.hxx
index a77c1626dc24..0e77d5dd6bc4 100644
--- a/vcl/inc/vcl/glyphcache.hxx
+++ b/vcl/inc/vcl/glyphcache.hxx
@@ -48,7 +48,6 @@ class ImplFontOptions;
namespace basegfx { class B2DPolyPolygon; }
class RawBitmap;
-class CmapResult;
#include <vcl/outfont.hxx>
#include <vcl/impfont.hxx>
@@ -190,7 +189,7 @@ public:
virtual void FetchFontMetric( ImplFontMetricData&, long& rFactor ) const = 0;
virtual ULONG GetKernPairs( ImplKernPairData** ) const { return 0; }
virtual int GetGlyphKernValue( int, int ) const { return 0; }
- virtual bool GetFontCodeRanges( CmapResult& ) const { return false; }
+ virtual const ImplFontCharMap* GetImplFontCharMap() const = 0;
Point TransformPoint( const Point& ) const;
GlyphData& GetGlyphData( int nGlyphIndex );
diff --git a/vcl/inc/vcl/impfont.hxx b/vcl/inc/vcl/impfont.hxx
index a1104bbf4a86..e38e1dea78d4 100644
--- a/vcl/inc/vcl/impfont.hxx
+++ b/vcl/inc/vcl/impfont.hxx
@@ -196,8 +196,8 @@ public:
int GetIndexFromChar( sal_uInt32 ) const;
sal_uInt32 GetCharFromIndex( int ) const;
- void AddReference();
- void DeReference();
+ void AddReference() const;
+ void DeReference() const;
int GetGlyphIndex( sal_uInt32 ) const;
@@ -213,8 +213,8 @@ private:
const int* mpStartGlyphs; // range-specific mapper to glyphs
const USHORT* mpGlyphIds; // individual glyphid mappings
int mnRangeCount;
- int mnCharCount;
- int mnRefCount;
+ int mnCharCount; // covered codepoints
+ mutable int mnRefCount;
};
// CmapResult is a normalized version of the many CMAP formats
diff --git a/vcl/inc/vcl/metric.hxx b/vcl/inc/vcl/metric.hxx
index eae6b38c5f9d..6328890c1749 100644
--- a/vcl/inc/vcl/metric.hxx
+++ b/vcl/inc/vcl/metric.hxx
@@ -95,7 +95,7 @@ public:
class VCL_DLLPUBLIC FontCharMap
{
private:
- ImplFontCharMap* mpImpl;
+ const ImplFontCharMap* mpImpl;
public:
FontCharMap();
@@ -118,7 +118,7 @@ public:
private:
friend class OutputDevice;
- void Reset( ImplFontCharMap* pNewMap = NULL );
+ void Reset( const ImplFontCharMap* pNewMap = NULL );
// prevent assignment and copy construction
FontCharMap( const FontCharMap& );
diff --git a/vcl/inc/vcl/salgdi.hxx b/vcl/inc/vcl/salgdi.hxx
index cbe3581bedc4..d8276406746e 100644
--- a/vcl/inc/vcl/salgdi.hxx
+++ b/vcl/inc/vcl/salgdi.hxx
@@ -239,7 +239,7 @@ public:
// return only PairCount if (pKernPairs == NULL)
virtual ULONG GetKernPairs( ULONG nMaxPairCount, ImplKernPairData* ) = 0;
// get the repertoire of the current font
- virtual ImplFontCharMap* GetImplFontCharMap() const = 0;
+ virtual const ImplFontCharMap* GetImplFontCharMap() const = 0;
// graphics must fill supplied font list
virtual void GetDevFontList( ImplDevFontList* ) = 0;
// graphics should call ImplAddDevFontSubstitute on supplied
diff --git a/vcl/os2/inc/salgdi.h b/vcl/os2/inc/salgdi.h
index cf05ff15d7e2..94b2b98b4183 100644
--- a/vcl/os2/inc/salgdi.h
+++ b/vcl/os2/inc/salgdi.h
@@ -74,7 +74,7 @@ public:
bool AliasSymbolsHigh() const { return mbAliasSymbolsHigh; }
bool AliasSymbolsLow() const { return mbAliasSymbolsLow; }
- ImplFontCharMap* GetImplFontCharMap() const;
+ const ImplFontCharMap* GetImplFontCharMap() const;
private:
sal_IntPtr mnId;
@@ -82,7 +82,7 @@ private:
mutable bool mbHasKoreanRange;
mutable bool mbHasCJKSupport;
- mutable ImplFontCharMap* mpUnicodeMap;
+ mutable const ImplFontCharMap* mpUnicodeMap;
// TODO: get rid of the members below needed to work with the Win9x non-unicode API
BYTE* mpFontCharSets; // all Charsets for the current font (used on W98 for kerning)
diff --git a/vcl/os2/source/gdi/salgdi3.cxx b/vcl/os2/source/gdi/salgdi3.cxx
index e25e68ee5a4c..0e4cb1d58b0f 100644
--- a/vcl/os2/source/gdi/salgdi3.cxx
+++ b/vcl/os2/source/gdi/salgdi3.cxx
@@ -434,9 +434,8 @@ bool ImplOs2FontData::IsGSUBstituted( sal_Ucs cChar ) const
// -----------------------------------------------------------------------
-ImplFontCharMap* ImplOs2FontData::GetImplFontCharMap() const
+const ImplFontCharMap* ImplOs2FontData::GetImplFontCharMap() const
{
- mpUnicodeMap->AddReference();
return mpUnicodeMap;
}
@@ -592,6 +591,7 @@ void ImplOs2FontData::ReadCmapTable( HPS hPS ) const
aResult.mpPairCodes, aResult.mpStartGlyphs );
else
mpUnicodeMap = ImplFontCharMap::GetDefaultMap();
+ mpUnicodeMap->AddReference();
}
// =======================================================================
@@ -999,10 +999,10 @@ ULONG Os2SalGraphics::GetKernPairs( ULONG nPairs, ImplKernPairData* pKernPairs )
// -----------------------------------------------------------------------
-static ImplFontCharMap* pOs2DefaultImplFontCharMap = NULL;
+static const ImplFontCharMap* pOs2DefaultImplFontCharMap = NULL;
static const sal_uInt32 pOs2DefaultRangeCodes[] = {0x0020,0x00FF};
-ImplFontCharMap* Os2SalGraphics::GetImplFontCharMap() const
+const ImplFontCharMap* Os2SalGraphics::GetImplFontCharMap() const
{
if( !mpOs2FontData[0] )
return ImplFontCharMap::GetDefaultMap();
@@ -1705,7 +1705,7 @@ void Os2SalGraphics::GetGlyphWidths( const ImplFontData* pFont,
rUnicodeEnc.clear();
}
const ImplOs2FontData* pWinFont = static_cast<const ImplOs2FontData*>(pFont);
- ImplFontCharMap* pMap = pWinFont->GetImplFontCharMap();
+ const ImplFontCharMap* pMap = pWinFont->GetImplFontCharMap();
DBG_ASSERT( pMap && pMap->GetCharCount(), "no map" );
int nCharCount = pMap->GetCharCount();
diff --git a/vcl/prj/d.lst b/vcl/prj/d.lst
index d0baec53b720..441bf2e265d5 100644
--- a/vcl/prj/d.lst
+++ b/vcl/prj/d.lst
@@ -154,3 +154,4 @@ mkdir: %_DEST%\inc%_EXT%\vcl
..\inc\vcl\helper.hxx %_DEST%\inc%_EXT%\vcl\helper.hxx
..\inc\vcl\strhelper.hxx %_DEST%\inc%_EXT%\vcl\strhelper.hxx
..\inc\vcl\lazydelete.hxx %_DEST%\inc%_EXT%\vcl\lazydelete.hxx
+..\%__SRC%\misc\vcl.component %_DEST%\xml%_EXT%\vcl.component
diff --git a/vcl/source/components/factory.cxx b/vcl/source/components/factory.cxx
index 6bed493cacde..c4debea79001 100644
--- a/vcl/source/components/factory.cxx
+++ b/vcl/source/components/factory.cxx
@@ -84,62 +84,6 @@ extern "C" {
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
- VCL_DLLPUBLIC sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pXUnoKey )
- {
- if( pXUnoKey )
- {
- try
- {
- Reference< ::com::sun::star::registry::XRegistryKey > xKey( reinterpret_cast< ::com::sun::star::registry::XRegistryKey* >( pXUnoKey ) );
-
- OUStringBuffer aImplName(64);
- aImplName.appendAscii( "/" );
- aImplName.append( vcl_session_getImplementationName() );
- aImplName.appendAscii( "/UNO/SERVICES/" );
- aImplName.append( vcl_session_getSupportedServiceNames()[0] );
- xKey->createKey( aImplName.makeStringAndClear() );
-
- aImplName.appendAscii( "/" );
- aImplName.append( vcl::DisplayAccess_getImplementationName() );
- aImplName.appendAscii( "/UNO/SERVICES/" );
- aImplName.append( vcl::DisplayAccess_getSupportedServiceNames()[0] );
- xKey->createKey( aImplName.makeStringAndClear() );
-
- aImplName.appendAscii( "/" );
- aImplName.append( vcl::FontIdentificator_getImplementationName() );
- aImplName.appendAscii( "/UNO/SERVICES/" );
- aImplName.append( vcl::FontIdentificator_getSupportedServiceNames()[0] );
- xKey->createKey( aImplName.makeStringAndClear() );
-
- #if defined UNX
- aImplName.appendAscii( "/" );
- aImplName.append( vcl::Clipboard_getImplementationName() );
- aImplName.appendAscii( "/UNO/SERVICES/" );
- aImplName.append( vcl::Clipboard_getSupportedServiceNames()[0] );
- xKey->createKey( aImplName.makeStringAndClear() );
-
- aImplName.appendAscii( "/" );
- aImplName.append( vcl::DragSource_getImplementationName() );
- aImplName.appendAscii( "/UNO/SERVICES/" );
- aImplName.append( vcl::DragSource_getSupportedServiceNames()[0] );
- xKey->createKey( aImplName.makeStringAndClear() );
-
- aImplName.appendAscii( "/" );
- aImplName.append( vcl::DropTarget_getImplementationName() );
- aImplName.appendAscii( "/UNO/SERVICES/" );
- aImplName.append( vcl::DropTarget_getSupportedServiceNames()[0] );
- xKey->createKey( aImplName.makeStringAndClear() );
- #endif
-
- return sal_True;
- }
- catch( ::com::sun::star::registry::InvalidRegistryException& )
- {
- }
- }
- return sal_False;
- }
-
VCL_DLLPUBLIC void* SAL_CALL component_getFactory(
const sal_Char* pImplementationName,
void* pXUnoSMgr,
diff --git a/vcl/source/gdi/metric.cxx b/vcl/source/gdi/metric.cxx
index dffc7c82caf0..6d225ad7e0dc 100644
--- a/vcl/source/gdi/metric.cxx
+++ b/vcl/source/gdi/metric.cxx
@@ -34,6 +34,8 @@
#include <vector>
#include <set>
+#include <cstdio>
+
// =======================================================================
ImplFontMetric::ImplFontMetric()
@@ -51,6 +53,7 @@ ImplFontMetric::ImplFontMetric()
inline void ImplFontMetric::AddReference()
{
+ // TODO: disable refcounting on the default maps?
++mnRefCount;
}
@@ -58,6 +61,7 @@ inline void ImplFontMetric::AddReference()
inline void ImplFontMetric::DeReference()
{
+ // TODO: disable refcounting on the default maps?
if( --mnRefCount <= 0 )
delete this;
}
@@ -252,7 +256,7 @@ ImplFontCharMap::ImplFontCharMap( const CmapResult& rCR )
, mpGlyphIds( rCR.mpGlyphIds )
, mnRangeCount( rCR.mnRangeCount )
, mnCharCount( 0 )
-, mnRefCount( 1 )
+, mnRefCount( 0 )
{
const sal_uInt32* pRangePtr = mpRangeCodes;
for( int i = mnRangeCount; --i >= 0; pRangePtr += 2 )
@@ -285,7 +289,7 @@ ImplFontCharMap::~ImplFontCharMap()
delete[] mpRangeCodes;
delete[] mpStartGlyphs;
delete[] mpGlyphIds;
-}
+ }
// -----------------------------------------------------------------------
@@ -293,14 +297,13 @@ namespace
{
ImplFontCharMap *GetDefaultUnicodeMap()
{
- if( pDefaultUnicodeImplFontCharMap )
- pDefaultUnicodeImplFontCharMap->AddReference();
- else
+ if( !pDefaultUnicodeImplFontCharMap )
{
const sal_uInt32* pRangeCodes = aDefaultUnicodeRanges;
int nCodesCount = sizeof(aDefaultUnicodeRanges) / sizeof(*pRangeCodes);
CmapResult aDefaultCR( false, pRangeCodes, nCodesCount/2 );
pDefaultUnicodeImplFontCharMap = new ImplFontCharMap( aDefaultCR );
+ pDefaultUnicodeImplFontCharMap->AddReference();
}
return pDefaultUnicodeImplFontCharMap;
@@ -308,14 +311,13 @@ namespace
ImplFontCharMap *GetDefaultSymbolMap()
{
- if( pDefaultSymbolImplFontCharMap )
- pDefaultSymbolImplFontCharMap->AddReference();
- else
+ if( !pDefaultSymbolImplFontCharMap )
{
const sal_uInt32* pRangeCodes = aDefaultSymbolRanges;
int nCodesCount = sizeof(aDefaultSymbolRanges) / sizeof(*pRangeCodes);
CmapResult aDefaultCR( true, pRangeCodes, nCodesCount/2 );
pDefaultSymbolImplFontCharMap = new ImplFontCharMap( aDefaultCR );
+ pDefaultSymbolImplFontCharMap->AddReference();
}
return pDefaultSymbolImplFontCharMap;
@@ -329,14 +331,15 @@ ImplFontCharMap* ImplFontCharMap::GetDefaultMap( bool bSymbols)
// -----------------------------------------------------------------------
-void ImplFontCharMap::AddReference()
+void ImplFontCharMap::AddReference( void ) const
{
+ // TODO: disable refcounting on the default maps?
++mnRefCount;
}
// -----------------------------------------------------------------------
-void ImplFontCharMap::DeReference()
+void ImplFontCharMap::DeReference( void ) const
{
if( --mnRefCount <= 0 )
if( (this != pDefaultUnicodeImplFontCharMap) && (this != pDefaultSymbolImplFontCharMap) )
@@ -833,7 +836,9 @@ bool ParseCMAP( const unsigned char* pCmap, int nLength, CmapResult& rResult )
FontCharMap::FontCharMap()
: mpImpl( ImplFontCharMap::GetDefaultMap() )
-{}
+{
+ mpImpl->AddReference();
+}
// -----------------------------------------------------------------------
@@ -859,19 +864,14 @@ int FontCharMap::CountCharsInRange( sal_uInt32 cMin, sal_uInt32 cMax ) const
// -----------------------------------------------------------------------
-void FontCharMap::Reset( ImplFontCharMap* pNewMap )
+void FontCharMap::Reset( const ImplFontCharMap* pNewMap )
{
+ mpImpl->DeReference();
if( pNewMap == NULL )
- {
- mpImpl->DeReference();
mpImpl = ImplFontCharMap::GetDefaultMap();
- }
else if( pNewMap != mpImpl )
- {
- mpImpl->DeReference();
mpImpl = pNewMap;
- mpImpl->AddReference();
- }
+ mpImpl->AddReference();
}
// -----------------------------------------------------------------------
diff --git a/vcl/source/gdi/outdev3.cxx b/vcl/source/gdi/outdev3.cxx
index 63bc233ef4e0..34d86b842ba2 100644
--- a/vcl/source/gdi/outdev3.cxx
+++ b/vcl/source/gdi/outdev3.cxx
@@ -8017,7 +8017,7 @@ BOOL OutputDevice::GetFontCharMap( FontCharMap& rFontCharMap ) const
if( !mpFontEntry )
return FALSE;
- // a little font charmap cache helps considerably
+#ifdef ENABLE_IFC_CACHE // a little font charmap cache helps considerably
static const int NMAXITEMS = 16;
static int nUsedItems = 0, nCurItem = 0;
@@ -8035,10 +8035,12 @@ BOOL OutputDevice::GetFontCharMap( FontCharMap& rFontCharMap ) const
rFontCharMap.Reset( aCache[i].maCharMap.mpImpl );
}
else // need to cache
+#endif // ENABLE_IFC_CACHE
{
- ImplFontCharMap* pNewMap = mpGraphics->GetImplFontCharMap();
+ const ImplFontCharMap* pNewMap = mpGraphics->GetImplFontCharMap();
rFontCharMap.Reset( pNewMap );
+#ifdef ENABLE_IFC_CACHE
// manage cache round-robin and insert data
CharMapCacheItem& rItem = aCache[ nCurItem ];
rItem.mpFontData = pFontData;
@@ -8049,6 +8051,7 @@ BOOL OutputDevice::GetFontCharMap( FontCharMap& rFontCharMap ) const
if( ++nUsedItems >= NMAXITEMS )
nUsedItems = NMAXITEMS;
+#endif // ENABLE_IFC_CACHE
}
if( rFontCharMap.IsDefaultMap() )
diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx
index 09cf1734eb6f..7e023297fa74 100644
--- a/vcl/source/gdi/pdfwriter_impl.cxx
+++ b/vcl/source/gdi/pdfwriter_impl.cxx
@@ -8500,6 +8500,7 @@ void PDFWriterImpl::beginRedirect( SvStream* pStream, const Rectangle& rTargetRe
{
push( PUSH_ALL );
+ // force reemitting clip region
clearClipRegion();
updateGraphicsState();
@@ -8543,7 +8544,10 @@ SvStream* PDFWriterImpl::endRedirect()
}
pop();
- // force reemitting colors
+ // force reemitting colors and clip region
+ clearClipRegion();
+ m_aCurrentPDFState.m_bClipRegion = m_aGraphicsStack.front().m_bClipRegion;
+ m_aCurrentPDFState.m_aClipRegion = m_aGraphicsStack.front().m_aClipRegion;
m_aCurrentPDFState.m_aLineColor = Color( COL_TRANSPARENT );
m_aCurrentPDFState.m_aFillColor = Color( COL_TRANSPARENT );
diff --git a/vcl/source/glyphs/gcach_ftyp.cxx b/vcl/source/glyphs/gcach_ftyp.cxx
index aeb928c46608..601e46411cd8 100644
--- a/vcl/source/glyphs/gcach_ftyp.cxx
+++ b/vcl/source/glyphs/gcach_ftyp.cxx
@@ -301,6 +301,7 @@ FtFontInfo::FtFontInfo( const ImplDevFontAttributes& rDevFontAttributes,
mnSynthetic( nSynthetic ),
mnFontId( nFontId ),
maDevFontAttributes( rDevFontAttributes ),
+ mpFontCharMap( NULL ),
mpChar2Glyph( NULL ),
mpGlyph2Char( NULL ),
mpExtraKernInfo( pExtraKernInfo )
@@ -318,6 +319,8 @@ FtFontInfo::FtFontInfo( const ImplDevFontAttributes& rDevFontAttributes,
FtFontInfo::~FtFontInfo()
{
+ if( mpFontCharMap )
+ mpFontCharMap->DeReference();
delete mpExtraKernInfo;
delete mpChar2Glyph;
delete mpGlyph2Char;
@@ -520,10 +523,25 @@ void* FreetypeServerFont::GetFtFace() const
FreetypeManager::~FreetypeManager()
{
-// This crashes on Solaris 10
-// TODO: check which versions have this problem
-//
-// FT_Error rcFT = FT_Done_FreeType( aLibFT );
+ // an application about to exit can omit garbage collecting the heap
+ // since it makes things slower and introduces risks if the heap was not perfect
+ // for debugging, for memory grinding or leak checking the env allows to force GC
+ const char* pEnv = getenv( "SAL_FORCE_GC_ON_EXIT" );
+ if( pEnv && (*pEnv != '0') )
+ {
+ // cleanup container of fontinfos
+ for( FontList::const_iterator it = maFontList.begin(); it != maFontList.end(); ++it )
+ {
+ FtFontInfo* pInfo = (*it).second;
+ delete pInfo;
+ }
+ maFontList.clear();
+
+#if 0 // FT_Done_FreeType crashes on Solaris 10
+ // TODO: check which versions have this problem
+ FT_Error rcFT = FT_Done_FreeType( aLibFT );
+#endif
+ }
}
// -----------------------------------------------------------------------
@@ -1733,16 +1751,39 @@ bool FreetypeServerFont::GetGlyphBitmap8( int nGlyphIndex, RawBitmap& rRawBitmap
// determine unicode ranges in font
// -----------------------------------------------------------------------
-// TODO: replace with GetFontCharMap()
-bool FreetypeServerFont::GetFontCodeRanges( CmapResult& rResult ) const
+const ImplFontCharMap* FreetypeServerFont::GetImplFontCharMap( void ) const
+{
+ const ImplFontCharMap* pIFCMap = mpFontInfo->GetImplFontCharMap();
+ return pIFCMap;
+}
+
+const ImplFontCharMap* FtFontInfo::GetImplFontCharMap( void )
+{
+ // check if the charmap is already cached
+ if( mpFontCharMap )
+ return mpFontCharMap;
+
+ // get the charmap and cache it
+ CmapResult aCmapResult;
+ bool bOK = GetFontCodeRanges( aCmapResult );
+ if( bOK )
+ mpFontCharMap = new ImplFontCharMap( aCmapResult );
+ else
+ mpFontCharMap = ImplFontCharMap::GetDefaultMap();
+ mpFontCharMap->AddReference();
+ return mpFontCharMap;
+}
+
+// TODO: merge into method GetFontCharMap()
+bool FtFontInfo::GetFontCodeRanges( CmapResult& rResult ) const
{
- rResult.mbSymbolic = mpFontInfo->IsSymbolFont();
+ rResult.mbSymbolic = IsSymbolFont();
// TODO: is the full CmapResult needed on platforms calling this?
if( FT_IS_SFNT( maFaceFT ) )
{
ULONG nLength = 0;
- const unsigned char* pCmap = mpFontInfo->GetTable( "cmap", &nLength );
+ const unsigned char* pCmap = GetTable( "cmap", &nLength );
if( pCmap && (nLength > 0) )
if( ParseCMAP( pCmap, nLength, rResult ) )
return true;
diff --git a/vcl/source/glyphs/gcach_ftyp.hxx b/vcl/source/glyphs/gcach_ftyp.hxx
index 5ebe70bcbdf9..d760ce1d1fed 100644
--- a/vcl/source/glyphs/gcach_ftyp.hxx
+++ b/vcl/source/glyphs/gcach_ftyp.hxx
@@ -94,6 +94,9 @@ public:
int GetGlyphIndex( sal_UCS4 cChar ) const;
void CacheGlyphIndex( sal_UCS4 cChar, int nGI ) const;
+ bool GetFontCodeRanges( CmapResult& ) const;
+ const ImplFontCharMap* GetImplFontCharMap( void );
+
bool HasExtraKerning() const;
int GetExtraKernPairs( ImplKernPairData** ) const;
int GetExtraGlyphKernValue( int nLeftGlyph, int nRightGlyph ) const;
@@ -108,6 +111,8 @@ private:
sal_IntPtr mnFontId;
ImplDevFontAttributes maDevFontAttributes;
+ const ImplFontCharMap* mpFontCharMap;
+
// cache unicode->glyphid mapping because looking it up is expensive
// TODO: change to hash_multimap when a use case requires a m:n mapping
typedef ::std::hash_map<int,int> Int2IntMap;
@@ -181,6 +186,7 @@ public:
virtual bool NeedsArtificialItalic() const { return mbArtItalic; }
virtual void FetchFontMetric( ImplFontMetricData&, long& rFactor ) const;
+ virtual const ImplFontCharMap* GetImplFontCharMap( void ) const;
virtual int GetGlyphIndex( sal_UCS4 ) const;
int GetRawGlyphIndex( sal_UCS4 ) const;
@@ -203,7 +209,6 @@ protected:
int ApplyGlyphTransform( int nGlyphFlags, FT_GlyphRec_*, bool ) const;
virtual void InitGlyphData( int nGlyphIndex, GlyphData& ) const;
- virtual bool GetFontCodeRanges( CmapResult& ) const;
bool ApplyGSUB( const ImplFontSelectData& );
virtual ServerFontLayoutEngine* GetLayoutEngine();
diff --git a/vcl/source/glyphs/glyphcache.cxx b/vcl/source/glyphs/glyphcache.cxx
index 1953ecf553c4..7181db56dd4d 100644
--- a/vcl/source/glyphs/glyphcache.cxx
+++ b/vcl/source/glyphs/glyphcache.cxx
@@ -78,12 +78,18 @@ GlyphCache::~GlyphCache()
void GlyphCache::InvalidateAllGlyphs()
{
-#if 0 // TODO: implement uncaching of all glyph shapes and metrics
- for( FontList::iterator it = maFontList.begin(); it != maFontList.end(); ++it )
- delete const_cast<ServerFont*>( it->second );
- maFontList.clear();
- mpCurrentGCFont = NULL;
-#endif
+ // an application about to exit can omit garbage collecting the heap
+ // since it makes things slower and introduces risks if the heap was not perfect
+ // for debugging, for memory grinding or leak checking the env allows to force GC
+ const char* pEnv = getenv( "SAL_FORCE_GC_ON_EXIT" );
+ if( pEnv && (*pEnv != '0') )
+ {
+ // uncache of all glyph shapes and metrics
+ for( FontList::iterator it = maFontList.begin(); it != maFontList.end(); ++it )
+ delete const_cast<ServerFont*>( it->second );
+ maFontList.clear();
+ mpCurrentGCFont = NULL;
+ }
}
// -----------------------------------------------------------------------
diff --git a/vcl/source/window/dlgctrl.cxx b/vcl/source/window/dlgctrl.cxx
index 64f2b7e0d2a1..055b7e9fe80b 100644
--- a/vcl/source/window/dlgctrl.cxx
+++ b/vcl/source/window/dlgctrl.cxx
@@ -1058,29 +1058,10 @@ static sal_Unicode getAccel( const String& rStr )
return nChar;
}
-Window* Window::GetLabelFor() const
+static Window* ImplGetLabelFor( Window* pFrameWindow, WindowType nMyType, Window* pLabel, sal_Unicode nAccel )
{
- if ( mpWindowImpl->mbDisableAccessibleLabelForRelation )
- return NULL;
-
Window* pWindow = NULL;
- Window* pFrameWindow = ImplGetFrameWindow();
-
- WinBits nFrameStyle = pFrameWindow->GetStyle();
- if( ! ( nFrameStyle & WB_DIALOGCONTROL )
- || ( nFrameStyle & WB_NODIALOGCONTROL )
- )
- return NULL;
-
- if ( mpWindowImpl->mpRealParent )
- pWindow = mpWindowImpl->mpRealParent->GetParentLabelFor( this );
-
- if( pWindow )
- return pWindow;
- sal_Unicode nAccel = getAccel( GetText() );
-
- WindowType nMyType = GetType();
if( nMyType == WINDOW_FIXEDTEXT ||
nMyType == WINDOW_FIXEDLINE ||
nMyType == WINDOW_GROUPBOX )
@@ -1092,7 +1073,7 @@ Window* Window::GetLabelFor() const
// get index, form start and form end
USHORT nIndex=0, nFormStart=0, nFormEnd=0;
pSWindow = ::ImplFindDlgCtrlWindow( pFrameWindow,
- const_cast<Window*>(this),
+ pLabel,
nIndex,
nFormStart,
nFormEnd );
@@ -1139,32 +1120,39 @@ Window* Window::GetLabelFor() const
return pWindow;
}
-// -----------------------------------------------------------------------
-
-Window* Window::GetLabeledBy() const
+Window* Window::GetLabelFor() const
{
- if ( mpWindowImpl->mbDisableAccessibleLabeledByRelation )
+ if ( mpWindowImpl->mbDisableAccessibleLabelForRelation )
return NULL;
Window* pWindow = NULL;
Window* pFrameWindow = ImplGetFrameWindow();
+ WinBits nFrameStyle = pFrameWindow->GetStyle();
+ if( ! ( nFrameStyle & WB_DIALOGCONTROL )
+ || ( nFrameStyle & WB_NODIALOGCONTROL )
+ )
+ return NULL;
+
if ( mpWindowImpl->mpRealParent )
- pWindow = mpWindowImpl->mpRealParent->GetParentLabeledBy( this );
+ pWindow = mpWindowImpl->mpRealParent->GetParentLabelFor( this );
if( pWindow )
return pWindow;
- // #i62723#, #104191# checkboxes and radiobuttons are not supposed to have labels
- if( GetType() == WINDOW_CHECKBOX || GetType() == WINDOW_RADIOBUTTON )
- return NULL;
+ sal_Unicode nAccel = getAccel( GetText() );
-// if( ! ( GetType() == WINDOW_FIXEDTEXT ||
-// GetType() == WINDOW_FIXEDLINE ||
-// GetType() == WINDOW_GROUPBOX ) )
- // #i100833# MT 2010/02: Group box and fixed lines can also lable a fixed text.
- // See tools/options/print for example.
- WindowType nMyType = GetType();
+ pWindow = ImplGetLabelFor( pFrameWindow, GetType(), const_cast<Window*>(this), nAccel );
+ if( ! pWindow && mpWindowImpl->mpRealParent )
+ pWindow = ImplGetLabelFor( mpWindowImpl->mpRealParent, GetType(), const_cast<Window*>(this), nAccel );
+ return pWindow;
+}
+
+// -----------------------------------------------------------------------
+
+static Window* ImplGetLabeledBy( Window* pFrameWindow, WindowType nMyType, Window* pLabeled )
+{
+ Window* pWindow = NULL;
if ( (nMyType != WINDOW_GROUPBOX) && (nMyType != WINDOW_FIXEDLINE) )
{
// search for a control that labels this window
@@ -1176,16 +1164,16 @@ Window* Window::GetLabeledBy() const
// get form start and form end and index of this control
USHORT nIndex, nFormStart, nFormEnd;
Window* pSWindow = ::ImplFindDlgCtrlWindow( pFrameWindow,
- const_cast<Window*>(this),
+ pLabeled,
nIndex,
nFormStart,
nFormEnd );
if( pSWindow && nIndex != nFormStart )
{
- if( GetType() == WINDOW_PUSHBUTTON ||
- GetType() == WINDOW_HELPBUTTON ||
- GetType() == WINDOW_OKBUTTON ||
- GetType() == WINDOW_CANCELBUTTON )
+ if( nMyType == WINDOW_PUSHBUTTON ||
+ nMyType == WINDOW_HELPBUTTON ||
+ nMyType == WINDOW_OKBUTTON ||
+ nMyType == WINDOW_CANCELBUTTON )
{
nFormStart = nIndex-1;
}
@@ -1217,6 +1205,39 @@ Window* Window::GetLabeledBy() const
return pWindow;
}
+Window* Window::GetLabeledBy() const
+{
+ if ( mpWindowImpl->mbDisableAccessibleLabeledByRelation )
+ return NULL;
+
+ Window* pWindow = NULL;
+ Window* pFrameWindow = ImplGetFrameWindow();
+
+ if ( mpWindowImpl->mpRealParent )
+ {
+ pWindow = mpWindowImpl->mpRealParent->GetParentLabeledBy( this );
+
+ if( pWindow )
+ return pWindow;
+ }
+
+ // #i62723#, #104191# checkboxes and radiobuttons are not supposed to have labels
+ if( GetType() == WINDOW_CHECKBOX || GetType() == WINDOW_RADIOBUTTON )
+ return NULL;
+
+// if( ! ( GetType() == WINDOW_FIXEDTEXT ||
+// GetType() == WINDOW_FIXEDLINE ||
+// GetType() == WINDOW_GROUPBOX ) )
+ // #i100833# MT 2010/02: Group box and fixed lines can also lable a fixed text.
+ // See tools/options/print for example.
+
+ pWindow = ImplGetLabeledBy( pFrameWindow, GetType(), const_cast<Window*>(this) );
+ if( ! pWindow && mpWindowImpl->mpRealParent )
+ pWindow = ImplGetLabeledBy( mpWindowImpl->mpRealParent, GetType(), const_cast<Window*>(this) );
+
+ return pWindow;
+}
+
// -----------------------------------------------------------------------
KeyEvent Window::GetActivationKey() const
diff --git a/vcl/unx/headless/svpgdi.hxx b/vcl/unx/headless/svpgdi.hxx
index 1ad9eca9d272..93ec080d0136 100644
--- a/vcl/unx/headless/svpgdi.hxx
+++ b/vcl/unx/headless/svpgdi.hxx
@@ -88,7 +88,7 @@ public:
virtual USHORT SetFont( ImplFontSelectData*, int nFallbackLevel );
virtual void GetFontMetric( ImplFontMetricData*, int nFallbackLevel );
virtual ULONG GetKernPairs( ULONG nPairs, ImplKernPairData* pKernPairs );
- virtual ImplFontCharMap* GetImplFontCharMap() const;
+ virtual const ImplFontCharMap* GetImplFontCharMap() const;
virtual void GetDevFontList( ImplDevFontList* );
virtual void GetDevFontSubstList( OutputDevice* );
virtual bool AddTempDevFont( ImplDevFontList*, const String& rFileURL, const String& rFontName );
diff --git a/vcl/unx/headless/svppspgraphics.cxx b/vcl/unx/headless/svppspgraphics.cxx
index 86f356031f52..c7b1f4f41fca 100644
--- a/vcl/unx/headless/svppspgraphics.cxx
+++ b/vcl/unx/headless/svppspgraphics.cxx
@@ -683,16 +683,13 @@ void PspGraphics::DrawServerFontLayout( const ServerFontLayout& rLayout )
DrawPrinterLayout( rLayout, *m_pPrinterGfx, true );
}
-ImplFontCharMap* PspGraphics::GetImplFontCharMap() const
+const ImplFontCharMap* PspGraphics::GetImplFontCharMap() const
{
- // TODO: get ImplFontCharMap directly from fonts
if( !m_pServerFont[0] )
return NULL;
- CmapResult aCmapResult;
- if( !m_pServerFont[0]->GetFontCodeRanges( aCmapResult ) )
- return NULL;
- return new ImplFontCharMap( aCmapResult );
+ const ImplFontCharMap* pIFCMap = m_pServerFont[0]->GetImplFontCharMap();
+ return pIFCMap;
}
USHORT PspGraphics::SetFont( ImplFontSelectData *pEntry, int nFallbackLevel )
diff --git a/vcl/unx/headless/svppspgraphics.hxx b/vcl/unx/headless/svppspgraphics.hxx
index 987923eb40ff..138198239621 100644
--- a/vcl/unx/headless/svppspgraphics.hxx
+++ b/vcl/unx/headless/svppspgraphics.hxx
@@ -107,7 +107,7 @@ public:
virtual USHORT SetFont( ImplFontSelectData*, int nFallbackLevel );
virtual void GetFontMetric( ImplFontMetricData*, int nFallbackLevel );
virtual ULONG GetKernPairs( ULONG nPairs, ImplKernPairData* pKernPairs );
- virtual ImplFontCharMap* GetImplFontCharMap() const;
+ virtual const ImplFontCharMap* GetImplFontCharMap() const;
virtual void GetDevFontList( ImplDevFontList* );
virtual void GetDevFontSubstList( OutputDevice* );
virtual bool AddTempDevFont( ImplDevFontList*, const String& rFileURL, const String& rFontName );
diff --git a/vcl/unx/headless/svptext.cxx b/vcl/unx/headless/svptext.cxx
index 34941fc777db..dff1fd4d6ca7 100644
--- a/vcl/unx/headless/svptext.cxx
+++ b/vcl/unx/headless/svptext.cxx
@@ -272,15 +272,13 @@ ULONG SvpSalGraphics::GetKernPairs( ULONG nPairs, ImplKernPairData* pKernPairs )
// ---------------------------------------------------------------------------
-ImplFontCharMap* SvpSalGraphics::GetImplFontCharMap() const
+const ImplFontCharMap* SvpSalGraphics::GetImplFontCharMap() const
{
if( !m_pServerFont[0] )
return NULL;
- CmapResult aCmapResult;
- if( !m_pServerFont[0]->GetFontCodeRanges( aCmapResult ) )
- return NULL;
- return new ImplFontCharMap( aCmapResult );
+ const ImplFontCharMap* pIFCMap = m_pServerFont[0]->GetImplFontCharMap();
+ return pIFCMap;
}
// ---------------------------------------------------------------------------
diff --git a/vcl/unx/inc/pspgraphics.h b/vcl/unx/inc/pspgraphics.h
index a91029e34580..d4f5a9f156e0 100644
--- a/vcl/unx/inc/pspgraphics.h
+++ b/vcl/unx/inc/pspgraphics.h
@@ -104,7 +104,7 @@ public:
virtual USHORT SetFont( ImplFontSelectData*, int nFallbackLevel );
virtual void GetFontMetric( ImplFontMetricData*, int nFallbackLevel );
virtual ULONG GetKernPairs( ULONG nMaxPairs, ImplKernPairData* );
- virtual ImplFontCharMap* GetImplFontCharMap() const;
+ virtual const ImplFontCharMap* GetImplFontCharMap() const;
virtual void GetDevFontList( ImplDevFontList* );
virtual void GetDevFontSubstList( OutputDevice* );
virtual bool AddTempDevFont( ImplDevFontList*, const String& rFileURL, const String& rFontName );
diff --git a/vcl/unx/inc/salgdi.h b/vcl/unx/inc/salgdi.h
index 33e6be054d48..b5fdce50eee9 100644
--- a/vcl/unx/inc/salgdi.h
+++ b/vcl/unx/inc/salgdi.h
@@ -255,7 +255,7 @@ public:
virtual USHORT SetFont( ImplFontSelectData*, int nFallbackLevel );
virtual void GetFontMetric( ImplFontMetricData*, int nFallbackLevel );
virtual ULONG GetKernPairs( ULONG nMaxPairs, ImplKernPairData* );
- virtual ImplFontCharMap* GetImplFontCharMap() const;
+ virtual const ImplFontCharMap* GetImplFontCharMap() const;
virtual void GetDevFontList( ImplDevFontList* );
virtual void GetDevFontSubstList( OutputDevice* );
virtual bool AddTempDevFont( ImplDevFontList*, const String& rFileURL, const String& rFontName );
diff --git a/vcl/unx/source/gdi/pspgraphics.cxx b/vcl/unx/source/gdi/pspgraphics.cxx
index 220d7bbcae87..bab78b0cb2df 100644
--- a/vcl/unx/source/gdi/pspgraphics.cxx
+++ b/vcl/unx/source/gdi/pspgraphics.cxx
@@ -694,7 +694,7 @@ void PspServerFontLayout::InitFont() const
static void DrawPrinterLayout( const SalLayout& rLayout, ::psp::PrinterGfx& rGfx, bool bIsPspServerFontLayout )
{
const int nMaxGlyphs = 200;
- sal_GlyphId aGlyphAry[ nMaxGlyphs ];
+ sal_uInt32 aGlyphAry[ nMaxGlyphs ]; // TODO: use sal_GlyphId
sal_Int32 aWidthAry[ nMaxGlyphs ];
sal_Int32 aIdxAry [ nMaxGlyphs ];
sal_Unicode aUnicodes[ nMaxGlyphs ];
@@ -720,15 +720,20 @@ static void DrawPrinterLayout( const SalLayout& rLayout, ::psp::PrinterGfx& rGfx
#ifdef ENABLE_GRAPHITE
else if (pGrLayout)
{
+ #if 0 // HACK: disabled for now due to #i114460#, see #desc12 there
+ // TODO: get rid of glyph->string mapping altogether for printing
+ // TODO: fix GraphiteServerFontLayout's returned aCharPosAry
+ // TODO: fix PrinterGfx's caching?
pText = pGrLayout->getTextPtr();
nMinCharPos = pGrLayout->getMinCharPos();
nMaxCharPos = pGrLayout->getMaxCharPos();
+ #endif
}
#endif
}
for( int nStart = 0;; )
{
- int nGlyphCount = rLayout.GetNextGlyphs( nMaxGlyphs, aGlyphAry, aPos, nStart, aWidthAry, bIsPspServerFontLayout ? aCharPosAry : NULL );
+ int nGlyphCount = rLayout.GetNextGlyphs( nMaxGlyphs, aGlyphAry, aPos, nStart, aWidthAry, pText ? aCharPosAry : NULL );
if( !nGlyphCount )
break;
@@ -738,7 +743,7 @@ static void DrawPrinterLayout( const SalLayout& rLayout, ::psp::PrinterGfx& rGfx
nXOffset += aWidthAry[ i ];
aIdxAry[ i ] = nXOffset / nUnitsPerPixel;
sal_Int32 nGlyphIdx = aGlyphAry[i] & (GF_IDXMASK | GF_ROTMASK);
- if( bIsPspServerFontLayout )
+ if( pText )
aUnicodes[i] = (aCharPosAry[i] >= nMinCharPos && aCharPosAry[i] <= nMaxCharPos) ? pText[ aCharPosAry[i] ] : 0;
else
aUnicodes[i] = (aGlyphAry[i] & GF_ISCHAR) ? nGlyphIdx : 0;
@@ -770,16 +775,13 @@ void PspGraphics::DrawServerFontLayout( const ServerFontLayout& rLayout )
DrawPrinterLayout( rLayout, *m_pPrinterGfx, true );
}
-ImplFontCharMap* PspGraphics::GetImplFontCharMap() const
+const ImplFontCharMap* PspGraphics::GetImplFontCharMap() const
{
- // TODO: get ImplFontCharMap directly from fonts
if( !m_pServerFont[0] )
return NULL;
- CmapResult aCmapResult;
- if( !m_pServerFont[0]->GetFontCodeRanges( aCmapResult ) )
- return NULL;
- return new ImplFontCharMap( aCmapResult );
+ const ImplFontCharMap* pIFCMap = m_pServerFont[0]->GetImplFontCharMap();
+ return pIFCMap;
}
USHORT PspGraphics::SetFont( ImplFontSelectData *pEntry, int nFallbackLevel )
diff --git a/vcl/unx/source/gdi/salgdi3.cxx b/vcl/unx/source/gdi/salgdi3.cxx
index 16529d3ce78f..62e575ebc5ef 100644
--- a/vcl/unx/source/gdi/salgdi3.cxx
+++ b/vcl/unx/source/gdi/salgdi3.cxx
@@ -1494,20 +1494,13 @@ void X11SalGraphics::DrawStringUCS2MB( ExtendedFontStruct& rFont,
//--------------------------------------------------------------------------
-ImplFontCharMap* X11SalGraphics::GetImplFontCharMap() const
+const ImplFontCharMap* X11SalGraphics::GetImplFontCharMap() const
{
- // TODO: get ImplFontCharMap directly from fonts
if( !mpServerFont[0] )
-#if 0 // RIP XLFD fonts
- if( mXFont[0] )
- // TODO?: nPairCount = mXFont[0]->GetFontCodeRanges( NULL );
-#endif
return NULL;
- CmapResult aCmapResult;
- if( !mpServerFont[0]->GetFontCodeRanges( aCmapResult ) )
- return NULL;
- return new ImplFontCharMap( aCmapResult );
+ const ImplFontCharMap* pIFCMap = mpServerFont[0]->GetImplFontCharMap();
+ return pIFCMap;
}
// ----------------------------------------------------------------------------
diff --git a/vcl/util/makefile.mk b/vcl/util/makefile.mk
index b864b7cb2685..d21e9dcb3eed 100644
--- a/vcl/util/makefile.mk
+++ b/vcl/util/makefile.mk
@@ -391,9 +391,6 @@ SHL4STDLIBS+= $(XRANDR_LIBS)
.ENDIF
.ENDIF
-.IF "$(OS)$(CPU)" == "LINUXX" && "$(LIBRARY_PATH)" != ""
-EXTRALIBPATHS+=-L$(LIBRARY_PATH)
-.ENDIF # "$(OS)$(CPU)" == "LINUXX"
.ENDIF # "$(ENABLE_GTK)" != ""
# KDE plugin
@@ -464,3 +461,16 @@ SHL6STDLIBS+= $(XRANDR_LIBS)
.INCLUDE : target.mk
+ALLTAR : $(MISC)/vcl.component
+
+.IF "$(OS)" == "MACOSX"
+my_platform = .macosx
+.ELIF "$(OS)" == "WNT"
+my_platform = .windows
+.END
+
+$(MISC)/vcl.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ vcl.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt vcl$(my_platform).component
diff --git a/vcl/util/vcl.component b/vcl/util/vcl.component
new file mode 100644
index 000000000000..da20fc916c32
--- /dev/null
+++ b/vcl/util/vcl.component
@@ -0,0 +1,49 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.datatransfer.X11ClipboardSupport">
+ <service name="com.sun.star.datatransfer.clipboard.SystemClipboard"/>
+ </implementation>
+ <implementation name="com.sun.star.datatransfer.dnd.XdndDropTarget">
+ <service name="com.sun.star.datatransfer.dnd.X11DropTarget"/>
+ </implementation>
+ <implementation name="com.sun.star.datatransfer.dnd.XdndSupport">
+ <service name="com.sun.star.datatransfer.dnd.X11DragSource"/>
+ </implementation>
+ <implementation name="com.sun.star.frame.VCLSessionManagerClient">
+ <service name="com.sun.star.frame.SessionManagerClient"/>
+ </implementation>
+ <implementation name="vcl::DisplayAccess">
+ <service name="com.sun.star.awt.DisplayAccess"/>
+ </implementation>
+ <implementation name="vcl::FontIdentificator">
+ <service name="com.sun.star.awt.FontIdentificator"/>
+ </implementation>
+</component>
diff --git a/vcl/util/vcl.macosx.component b/vcl/util/vcl.macosx.component
new file mode 100644
index 000000000000..3aabcd8c7050
--- /dev/null
+++ b/vcl/util/vcl.macosx.component
@@ -0,0 +1,49 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.datatransfer.dnd.OleDragSource_V1">
+ <service name="com.sun.star.datatransfer.dnd.OleDragSource"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.datatransfer.dnd.OleDropTarget_V1">
+ <service name="com.sun.star.datatransfer.dnd.OleDropTarget"/>
+ </implementation>
+ <implementation name="com.sun.star.datatransfer.clipboard.AquaClipboard">
+ <service name="com.sun.star.datatransfer.clipboard.SystemClipboard"/>
+ </implementation>
+ <implementation name="com.sun.star.frame.VCLSessionManagerClient">
+ <service name="com.sun.star.frame.SessionManagerClient"/>
+ </implementation>
+ <implementation name="vcl::DisplayAccess">
+ <service name="com.sun.star.awt.DisplayAccess"/>
+ </implementation>
+ <implementation name="vcl::FontIdentificator">
+ <service name="com.sun.star.awt.FontIdentificator"/>
+ </implementation>
+</component>
diff --git a/vcl/util/vcl.windows.component b/vcl/util/vcl.windows.component
new file mode 100644
index 000000000000..72f7ace9f251
--- /dev/null
+++ b/vcl/util/vcl.windows.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.frame.VCLSessionManagerClient">
+ <service name="com.sun.star.frame.SessionManagerClient"/>
+ </implementation>
+ <implementation name="vcl::DisplayAccess">
+ <service name="com.sun.star.awt.DisplayAccess"/>
+ </implementation>
+ <implementation name="vcl::FontIdentificator">
+ <service name="com.sun.star.awt.FontIdentificator"/>
+ </implementation>
+</component>
diff --git a/vcl/win/inc/salgdi.h b/vcl/win/inc/salgdi.h
index 5b8cfb099756..f592f53ae29c 100755
--- a/vcl/win/inc/salgdi.h
+++ b/vcl/win/inc/salgdi.h
@@ -57,10 +57,10 @@ class ImplFontAttrCache;
class ImplWinFontData : public ImplFontData
{
public:
- ImplWinFontData( const ImplDevFontAttributes&,
+ explicit ImplWinFontData( const ImplDevFontAttributes&,
int nFontHeight, WIN_BYTE eWinCharSet,
WIN_BYTE nPitchAndFamily );
- ~ImplWinFontData();
+ virtual ~ImplWinFontData();
virtual ImplFontData* Clone() const;
virtual ImplFontEntry* CreateFontInstance( ImplFontSelectData& ) const;
@@ -82,7 +82,7 @@ public:
bool SupportsGraphite() const { return mbHasGraphiteSupport; }
#endif
- ImplFontCharMap* GetImplFontCharMap() const;
+ const ImplFontCharMap* GetImplFontCharMap() const;
const Ucs2SIntMap* GetEncodingVector() const { return mpEncodingVector; }
void SetEncodingVector( const Ucs2SIntMap* pNewVec ) const
{
@@ -127,9 +127,9 @@ public:
#endif // GNG_VERT_HACK
};
-// -------------------
-// - SalGraphicsData -
-// -------------------
+// ------------------
+// - WinSalGraphics -
+// ------------------
class WinSalGraphics : public SalGraphics
{
@@ -179,7 +179,7 @@ public:
HFONT ImplDoSetFont( ImplFontSelectData* i_pFont, float& o_rFontScale, HFONT& o_rOldFont );
public:
- WinSalGraphics();
+ explicit WinSalGraphics();
virtual ~WinSalGraphics();
protected:
@@ -287,7 +287,7 @@ public:
// return only PairCount if (pKernPairs == NULL)
virtual ULONG GetKernPairs( ULONG nPairs, ImplKernPairData* pKernPairs );
// get the repertoire of the current font
- virtual ImplFontCharMap* GetImplFontCharMap() const;
+ virtual const ImplFontCharMap* GetImplFontCharMap() const;
// graphics must fill supplied font list
virtual void GetDevFontList( ImplDevFontList* );
// graphics should call ImplAddDevFontSubstitute on supplied
@@ -359,11 +359,11 @@ public:
};
// Init/Deinit Graphics
-void ImplSalInitGraphics( WinSalGraphics* mpData );
-void ImplSalDeInitGraphics( WinSalGraphics* mpData );
+void ImplSalInitGraphics( WinSalGraphics* );
+void ImplSalDeInitGraphics( WinSalGraphics* );
void ImplUpdateSysColorEntries();
int ImplIsSysColorEntry( SalColor nSalColor );
-void ImplGetLogFontFromFontSelect( HDC hDC, const ImplFontSelectData*,
+void ImplGetLogFontFromFontSelect( HDC, const ImplFontSelectData*,
LOGFONTW&, bool bTestVerticalAvail );
// -----------
@@ -397,7 +397,10 @@ inline bool ImplWinFontData::HasChar( sal_uInt32 cChar ) const
cChar -= 0xF000;
else if( mbAliasSymbolsHigh && (cChar <= 0xFF) )
cChar += 0xF000;
+ else
+ return false;
return mpUnicodeMap->HasChar( cChar );
}
#endif // _SV_SALGDI_H
+
diff --git a/vcl/win/source/gdi/salbmp.cxx b/vcl/win/source/gdi/salbmp.cxx
index 444df039dd69..141c812dcd31 100644
--- a/vcl/win/source/gdi/salbmp.cxx
+++ b/vcl/win/source/gdi/salbmp.cxx
@@ -509,8 +509,8 @@ void WinSalBitmap::ReleaseBuffer( BitmapBuffer* pBuffer, bool bReadOnly )
{
PBITMAPINFO pBI = (PBITMAPINFO) GlobalLock( mhDIB );
const USHORT nCount = pBuffer->maPalette.GetEntryCount();
-
- memcpy( pBI->bmiColors, pBuffer->maPalette.ImplGetColorBuffer(), nCount * sizeof( RGBQUAD ) );
+ const USHORT nDIBColorCount = ImplGetDIBColorCount( mhDIB );
+ memcpy( pBI->bmiColors, pBuffer->maPalette.ImplGetColorBuffer(), Min( nDIBColorCount, nCount ) * sizeof( RGBQUAD ) );
GlobalUnlock( mhDIB );
}
diff --git a/vcl/win/source/gdi/salgdi3.cxx b/vcl/win/source/gdi/salgdi3.cxx
index 01fecec94b2f..c8e0210196e6 100644
--- a/vcl/win/source/gdi/salgdi3.cxx
+++ b/vcl/win/source/gdi/salgdi3.cxx
@@ -533,9 +533,10 @@ bool WinGlyphFallbackSubstititution::HasMissingChars( const ImplFontData* pFace,
// avoid fonts with unknown CMAP subtables for glyph fallback
if( !pCharMap || pCharMap->IsDefaultMap() )
return false;
+ pCharMap->AddReference();
int nMatchCount = 0;
- // static const int nMaxMatchCount = 1; // TODO: check more missing characters?
+ // static const int nMaxMatchCount = 1; // TODO: tolerate more missing characters?
const sal_Int32 nStrLen = rMissingChars.getLength();
for( sal_Int32 nStrIdx = 0; nStrIdx < nStrLen; ++nStrIdx )
{
@@ -543,6 +544,7 @@ bool WinGlyphFallbackSubstititution::HasMissingChars( const ImplFontData* pFace,
nMatchCount += pCharMap->HasChar( uChar );
break; // for now
}
+ pCharMap->DeReference();
const bool bHasMatches = (nMatchCount > 0);
return bHasMatches;
@@ -1206,11 +1208,10 @@ bool ImplWinFontData::IsGSUBstituted( sal_UCS4 cChar ) const
// -----------------------------------------------------------------------
-ImplFontCharMap* ImplWinFontData::GetImplFontCharMap() const
+const ImplFontCharMap* ImplWinFontData::GetImplFontCharMap() const
{
if( !mpUnicodeMap )
return NULL;
- mpUnicodeMap->AddReference();
return mpUnicodeMap;
}
@@ -1320,6 +1321,7 @@ void ImplWinFontData::ReadCmapTable( HDC hDC ) const
if( !mpUnicodeMap )
mpUnicodeMap = ImplFontCharMap::GetDefaultMap( bIsSymbolFont );
+ mpUnicodeMap->AddReference();
}
// =======================================================================
@@ -2060,7 +2062,7 @@ ULONG WinSalGraphics::GetKernPairs( ULONG nPairs, ImplKernPairData* pKernPairs )
// -----------------------------------------------------------------------
-ImplFontCharMap* WinSalGraphics::GetImplFontCharMap() const
+const ImplFontCharMap* WinSalGraphics::GetImplFontCharMap() const
{
if( !mpWinFontData[0] )
return ImplFontCharMap::GetDefaultMap();
@@ -2882,8 +2884,6 @@ BOOL WinSalGraphics::CreateFontSubset( const rtl::OUString& rToFile,
ImplDoSetFont( &aIFSD, fScale, hOldFont );
ImplWinFontData* pWinFontData = (ImplWinFontData*)aIFSD.mpFontData;
- pWinFontData->UpdateFromHDC( mhDC );
-/*const*/ ImplFontCharMap* pImplFontCharMap = pWinFontData->GetImplFontCharMap();
#if OSL_DEBUG_LEVEL > 1
// get font metrics
@@ -2906,6 +2906,10 @@ BOOL WinSalGraphics::CreateFontSubset( const rtl::OUString& rToFile,
const RawFontData aRawCffData( mhDC, nCffTag );
if( aRawCffData.get() )
{
+ pWinFontData->UpdateFromHDC( mhDC );
+ const ImplFontCharMap* pCharMap = pWinFontData->GetImplFontCharMap();
+ pCharMap->AddReference();
+
long nRealGlyphIds[ 256 ];
for( int i = 0; i < nGlyphCount; ++i )
{
@@ -2913,13 +2917,15 @@ BOOL WinSalGraphics::CreateFontSubset( const rtl::OUString& rToFile,
// TODO: use GDI's GetGlyphIndices instead? Does it handle GSUB properly?
sal_uInt32 nGlyphIdx = pGlyphIDs[i] & GF_IDXMASK;
if( pGlyphIDs[i] & GF_ISCHAR ) // remaining pseudo-glyphs need to be translated
- nGlyphIdx = pImplFontCharMap->GetGlyphIndex( nGlyphIdx );
+ nGlyphIdx = pCharMap->GetGlyphIndex( nGlyphIdx );
if( (pGlyphIDs[i] & (GF_ROTMASK|GF_GSUB)) != 0) // TODO: vertical substitution
{/*####*/}
nRealGlyphIds[i] = nGlyphIdx;
}
+ pCharMap->DeReference(); // TODO: and and use a RAII object
+
// provide a font subset from the CFF-table
FILE* pOutFile = fopen( aToFile.GetBuffer(), "wb" );
rInfo.LoadFont( FontSubsetInfo::CFF_FONT, aRawCffData.get(), aRawCffData.size() );
@@ -3167,8 +3173,9 @@ void WinSalGraphics::GetGlyphWidths( const ImplFontData* pFont,
rUnicodeEnc.clear();
}
const ImplWinFontData* pWinFont = static_cast<const ImplWinFontData*>(pFont);
- ImplFontCharMap* pMap = pWinFont->GetImplFontCharMap();
+ const ImplFontCharMap* pMap = pWinFont->GetImplFontCharMap();
DBG_ASSERT( pMap && pMap->GetCharCount(), "no map" );
+ pMap->AddReference();
int nCharCount = pMap->GetCharCount();
sal_uInt32 nChar = pMap->GetFirstChar();
@@ -3184,6 +3191,8 @@ void WinSalGraphics::GetGlyphWidths( const ImplFontData* pFont,
}
nChar = pMap->GetNextChar( nChar );
}
+
+ pMap->DeReference(); // TODO: and and use a RAII object
}
}
else if( pFont->IsEmbeddable() )
diff --git a/vcl/workben/makefile.mk b/vcl/workben/makefile.mk
index 67c0289cc24f..abd0c23a3607 100644
--- a/vcl/workben/makefile.mk
+++ b/vcl/workben/makefile.mk
@@ -34,6 +34,8 @@ TARGETTYPE=GUI
ENABLE_EXCEPTIONS=TRUE
+my_components = i18npool i18nsearch
+
# --- Settings -----------------------------------------------------
.INCLUDE : settings.mk
@@ -136,16 +138,18 @@ APP5STDLIBS+=-lsocket
.ENDIF
.INCLUDE : target.mk
-.IF "$(L10N_framework)"==""
-ALLTAR : $(BIN)$/applicat.rdb
+ALLTAR : $(BIN)/applicat.rdb $(BIN)/types.rdb
+$(BIN)/applicat.rdb .ERRREMOVE : $(SOLARENV)/bin/packcomponents.xslt \
+ $(MISC)/applicat.input $(my_components:^"$(SOLARXMLDIR)/":+".component")
+ $(XSLTPROC) --nonet --stringparam prefix $(SOLARXMLDIR)/ -o $@ \
+ $(SOLARENV)/bin/packcomponents.xslt $(MISC)/applicat.input
-$(BIN)$/applicat.rdb : makefile.mk $(UNOUCRRDB)
- rm -f $@
- $(GNUCOPY) $(UNOUCRRDB) $@
- cd $(BIN) && \
- $(REGCOMP) -register -r applicat.rdb \
- -c i18nsearch.uno$(DLLPOST) \
- -c i18npool.uno$(DLLPOST)
-.ENDIF
+$(MISC)/applicat.input :
+ echo \
+ '<list>$(my_components:^"<filename>":+".component</filename>")</list>' \
+ > $@
+
+$(BIN)/types.rdb : $(SOLARBINDIR)/types.rdb
+ $(COPY) $< $@
diff --git a/vcl/workben/svdem.cxx b/vcl/workben/svdem.cxx
index 5822f4024a59..297660d4b8df 100644
--- a/vcl/workben/svdem.cxx
+++ b/vcl/workben/svdem.cxx
@@ -55,7 +55,7 @@ SAL_IMPLEMENT_MAIN()
tools::extendApplicationEnvironment();
Reference< XMultiServiceFactory > xMS;
- xMS = cppu::createRegistryServiceFactory( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "applicat.rdb" ) ), sal_True );
+ xMS = cppu::createRegistryServiceFactory( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "types.rdb" ) ), rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "applicat.rdb" ) ), sal_True );
InitVCL( xMS );
::Main();
diff --git a/vcl/workben/svptest.cxx b/vcl/workben/svptest.cxx
index cc7c0f2b0cce..8f901d1c200b 100644
--- a/vcl/workben/svptest.cxx
+++ b/vcl/workben/svptest.cxx
@@ -61,7 +61,7 @@ SAL_IMPLEMENT_MAIN()
tools::extendApplicationEnvironment();
Reference< XMultiServiceFactory > xMS;
- xMS = cppu::createRegistryServiceFactory( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "applicat.rdb" ) ), sal_True );
+ xMS = cppu::createRegistryServiceFactory( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "types.rdb" ) ), rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "applicat.rdb" ) ), sal_True );
InitVCL( xMS );
::Main();
diff --git a/vcl/workben/vcldemo.cxx b/vcl/workben/vcldemo.cxx
index 41ca76144e5c..dafd546b3d68 100644
--- a/vcl/workben/vcldemo.cxx
+++ b/vcl/workben/vcldemo.cxx
@@ -60,7 +60,7 @@ SAL_IMPLEMENT_MAIN()
tools::extendApplicationEnvironment();
Reference< XMultiServiceFactory > xMS;
- xMS = cppu::createRegistryServiceFactory( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "applicat.rdb" ) ), sal_True );
+ xMS = cppu::createRegistryServiceFactory( rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "types.rdb" ) ), rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "applicat.rdb" ) ), sal_True );
InitVCL( xMS );
::Main();
diff --git a/wizards/com/sun/star/wizards/agenda/CallWizard.java b/wizards/com/sun/star/wizards/agenda/CallWizard.java
index 69b62c56e4f7..3dc8dcd8ef91 100644
--- a/wizards/com/sun/star/wizards/agenda/CallWizard.java
+++ b/wizards/com/sun/star/wizards/agenda/CallWizard.java
@@ -40,8 +40,7 @@ import com.sun.star.uno.Type;
/**
* This class capsulates the class, that implements the minimal component, a factory for
- * creating the service (<CODE>__getServiceFactory</CODE>) and a method, that writes the
- * information into the given registry key (<CODE>__writeRegistryServiceInfo</CODE>).
+ * creating the service (<CODE>__getServiceFactory</CODE>).
*
* @author $author$
* @version $Revision: 1.5.52.1 $
@@ -74,21 +73,6 @@ public class CallWizard {
}
/**
- * Writes the service information into the given registry key. This method is called
- * by the <code>JavaLoader</code>.
- *
- * @param xregistrykey Makes structural information (except regarding tree
- * structures) of a single registry key accessible.
- *
- * @return returns true if the operation succeeded
- *
- * @see com.sun.star.comp.loader.JavaLoader#
- */
- public static boolean __writeRegistryServiceInfo(XRegistryKey xregistrykey) {
- return FactoryHelper.writeRegistryServiceInfo(WizardImplementation.class.getName(), WizardImplementation.__serviceName, xregistrykey);
- }
-
- /**
* This class implements the component. At least the interfaces XServiceInfo,
* XTypeProvider, and XInitialization should be provided by the service.
*/
diff --git a/wizards/com/sun/star/wizards/agenda/agenda.component b/wizards/com/sun/star/wizards/agenda/agenda.component
new file mode 100644
index 000000000000..e35087d947e2
--- /dev/null
+++ b/wizards/com/sun/star/wizards/agenda/agenda.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Java2"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation
+ name="com.sun.star.wizards.agenda.CallWizard$WizardImplementation">
+ <service name="com.sun.star.wizards.agenda.CallWizard"/>
+ </implementation>
+</component>
diff --git a/wizards/com/sun/star/wizards/agenda/makefile.mk b/wizards/com/sun/star/wizards/agenda/makefile.mk
index 314dcf3b7da9..1f07e9adfbcc 100644
--- a/wizards/com/sun/star/wizards/agenda/makefile.mk
+++ b/wizards/com/sun/star/wizards/agenda/makefile.mk
@@ -69,3 +69,11 @@ JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/agenda.component
+
+$(MISC)/agenda.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ agenda.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_JAVA)$(JARTARGET)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt agenda.component
diff --git a/wizards/com/sun/star/wizards/fax/CallWizard.java b/wizards/com/sun/star/wizards/fax/CallWizard.java
index b20dc0890e56..69e061f95918 100644
--- a/wizards/com/sun/star/wizards/fax/CallWizard.java
+++ b/wizards/com/sun/star/wizards/fax/CallWizard.java
@@ -41,8 +41,7 @@ import com.sun.star.uno.Type;
/**
* This class capsulates the class, that implements the minimal component, a factory for
- * creating the service (<CODE>__getServiceFactory</CODE>) and a method, that writes the
- * information into the given registry key (<CODE>__writeRegistryServiceInfo</CODE>).
+ * creating the service (<CODE>__getServiceFactory</CODE>).
*
* @author $author$
* @version $Revision: 1.3.192.1 $
@@ -78,22 +77,6 @@ public class CallWizard
}
/**
- * Writes the service information into the given registry key. This method is called
- * by the <code>JavaLoader</code>.
- *
- * @param xregistrykey Makes structural information (except regarding tree
- * structures) of a single registry key accessible.
- *
- * @return returns true if the operation succeeded
- *
- * @see com.sun.star.comp.loader.JavaLoader#
- */
- public static boolean __writeRegistryServiceInfo(XRegistryKey xregistrykey)
- {
- return FactoryHelper.writeRegistryServiceInfo(WizardImplementation.class.getName(), WizardImplementation.__serviceName, xregistrykey);
- }
-
- /**
* This class implements the component. At least the interfaces XServiceInfo,
* XTypeProvider, and XInitialization should be provided by the service.
*/
diff --git a/wizards/com/sun/star/wizards/fax/fax.component b/wizards/com/sun/star/wizards/fax/fax.component
new file mode 100644
index 000000000000..462fe2901255
--- /dev/null
+++ b/wizards/com/sun/star/wizards/fax/fax.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Java2"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation
+ name="com.sun.star.wizards.fax.CallWizard$WizardImplementation">
+ <service name="com.sun.star.wizards.fax.CallWizard"/>
+ </implementation>
+</component>
diff --git a/wizards/com/sun/star/wizards/fax/makefile.mk b/wizards/com/sun/star/wizards/fax/makefile.mk
index 247aaf063529..5cf08939263b 100644
--- a/wizards/com/sun/star/wizards/fax/makefile.mk
+++ b/wizards/com/sun/star/wizards/fax/makefile.mk
@@ -60,3 +60,11 @@ JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/fax.component
+
+$(MISC)/fax.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ fax.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_JAVA)$(JARTARGET)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt fax.component
diff --git a/wizards/com/sun/star/wizards/form/CallFormWizard.java b/wizards/com/sun/star/wizards/form/CallFormWizard.java
index 9a8e73951c69..0538eb5fa1b3 100644
--- a/wizards/com/sun/star/wizards/form/CallFormWizard.java
+++ b/wizards/com/sun/star/wizards/form/CallFormWizard.java
@@ -31,9 +31,7 @@ import com.sun.star.uno.Type;
import com.sun.star.wizards.common.Properties;
/** This class capsulates the class, that implements the minimal component, a
- * factory for creating the service (<CODE>__getServiceFactory</CODE>) and a
- * method, that writes the information into the given registry key
- * (<CODE>__writeRegistryServiceInfo</CODE>).
+ * factory for creating the service (<CODE>__getServiceFactory</CODE>).
* @author Bertram Nolte
*/
public class CallFormWizard
@@ -62,19 +60,6 @@ public class CallFormWizard
return xsingleservicefactory;
}
- /** Writes the service information into the given registry key.
- * This method is called by the <code>JavaLoader</code>.
- * @return returns true if the operation succeeded
- * @see com.sun.star.comp.loader.JavaLoader#
- * @param xregistrykey Makes structural information (except regarding tree
- * structures) of a single
- * registry key accessible.
- */
- public static boolean __writeRegistryServiceInfo(com.sun.star.registry.XRegistryKey xregistrykey)
- {
- return com.sun.star.comp.loader.FactoryHelper.writeRegistryServiceInfo(FormWizardImplementation.class.getName(), FormWizardImplementation.__serviceName, xregistrykey);
- }
-
/** This class implements the component. At least the interfaces XServiceInfo,
* XTypeProvider, and XInitialization should be provided by the service.
*/
diff --git a/wizards/com/sun/star/wizards/form/form.component b/wizards/com/sun/star/wizards/form/form.component
new file mode 100644
index 000000000000..3f010d8bc88f
--- /dev/null
+++ b/wizards/com/sun/star/wizards/form/form.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Java2"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation
+ name="com.sun.star.wizards.form.CallFormWizard$FormWizardImplementation">
+ <service name="com.sun.star.wizards.form.CallFormWizard"/>
+ </implementation>
+</component>
diff --git a/wizards/com/sun/star/wizards/form/makefile.mk b/wizards/com/sun/star/wizards/form/makefile.mk
index 092135289fc9..b6366607324e 100644
--- a/wizards/com/sun/star/wizards/form/makefile.mk
+++ b/wizards/com/sun/star/wizards/form/makefile.mk
@@ -65,3 +65,11 @@ JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/form.component
+
+$(MISC)/form.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ form.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_JAVA)$(JARTARGET)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt form.component
diff --git a/wizards/com/sun/star/wizards/letter/CallWizard.java b/wizards/com/sun/star/wizards/letter/CallWizard.java
index f3508512807d..ff993c61e506 100644
--- a/wizards/com/sun/star/wizards/letter/CallWizard.java
+++ b/wizards/com/sun/star/wizards/letter/CallWizard.java
@@ -41,8 +41,7 @@ import com.sun.star.uno.Type;
/**
* This class capsulates the class, that implements the minimal component, a factory for
- * creating the service (<CODE>__getServiceFactory</CODE>) and a method, that writes the
- * information into the given registry key (<CODE>__writeRegistryServiceInfo</CODE>).
+ * creating the service (<CODE>__getServiceFactory</CODE>).
*
* @author $author$
* @version $Revision: 1.3.192.1 $
@@ -78,22 +77,6 @@ public class CallWizard
}
/**
- * Writes the service information into the given registry key. This method is called
- * by the <code>JavaLoader</code>.
- *
- * @param xregistrykey Makes structural information (except regarding tree
- * structures) of a single registry key accessible.
- *
- * @return returns true if the operation succeeded
- *
- * @see com.sun.star.comp.loader.JavaLoader#
- */
- public static boolean __writeRegistryServiceInfo(XRegistryKey xregistrykey)
- {
- return FactoryHelper.writeRegistryServiceInfo(WizardImplementation.class.getName(), WizardImplementation.__serviceName, xregistrykey);
- }
-
- /**
* This class implements the component. At least the interfaces XServiceInfo,
* XTypeProvider, and XInitialization should be provided by the service.
*/
diff --git a/wizards/com/sun/star/wizards/letter/letter.component b/wizards/com/sun/star/wizards/letter/letter.component
new file mode 100644
index 000000000000..277aae81e90a
--- /dev/null
+++ b/wizards/com/sun/star/wizards/letter/letter.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Java2"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation
+ name="com.sun.star.wizards.letter.CallWizard$WizardImplementation">
+ <service name="com.sun.star.wizards.letter.CallWizard"/>
+ </implementation>
+</component>
diff --git a/wizards/com/sun/star/wizards/letter/makefile.mk b/wizards/com/sun/star/wizards/letter/makefile.mk
index 700d0b72dfb7..ca6c750bac81 100644
--- a/wizards/com/sun/star/wizards/letter/makefile.mk
+++ b/wizards/com/sun/star/wizards/letter/makefile.mk
@@ -63,3 +63,11 @@ JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/letter.component
+
+$(MISC)/letter.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ letter.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_JAVA)$(JARTARGET)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt letter.component
diff --git a/wizards/com/sun/star/wizards/query/CallQueryWizard.java b/wizards/com/sun/star/wizards/query/CallQueryWizard.java
index ec6ab3895fca..fe18fd13f6d0 100644
--- a/wizards/com/sun/star/wizards/query/CallQueryWizard.java
+++ b/wizards/com/sun/star/wizards/query/CallQueryWizard.java
@@ -34,9 +34,7 @@ import com.sun.star.uno.Type;
import com.sun.star.wizards.common.Properties;
/** This class capsulates the class, that implements the minimal component, a
- * factory for creating the service (<CODE>__getServiceFactory</CODE>) and a
- * method, that writes the information into the given registry key
- * (<CODE>__writeRegistryServiceInfo</CODE>).
+ * factory for creating the service (<CODE>__getServiceFactory</CODE>).
* @author Bertram Nolte
*/
public class CallQueryWizard
@@ -65,19 +63,6 @@ public class CallQueryWizard
return xsingleservicefactory;
}
- /** Writes the service information into the given registry key.
- * This method is called by the <code>JavaLoader</code>.
- * @return returns true if the operation succeeded
- * @see com.sun.star.comp.loader.JavaLoader#
- * @param xregistrykey Makes structural information (except regarding tree
- * structures) of a single
- * registry key accessible.
- */
- public static boolean __writeRegistryServiceInfo(com.sun.star.registry.XRegistryKey xregistrykey)
- {
- return com.sun.star.comp.loader.FactoryHelper.writeRegistryServiceInfo(QueryWizardImplementation.class.getName(), QueryWizardImplementation.__serviceName, xregistrykey);
- }
-
/** This class implements the component. At least the interfaces XServiceInfo,
* XTypeProvider, and XInitialization should be provided by the service.
*/
diff --git a/wizards/com/sun/star/wizards/query/makefile.mk b/wizards/com/sun/star/wizards/query/makefile.mk
index af5056ba5221..080076668ce8 100644
--- a/wizards/com/sun/star/wizards/query/makefile.mk
+++ b/wizards/com/sun/star/wizards/query/makefile.mk
@@ -59,3 +59,11 @@ JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/query.component
+
+$(MISC)/query.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ query.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_JAVA)$(JARTARGET)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt query.component
diff --git a/wizards/com/sun/star/wizards/query/query.component b/wizards/com/sun/star/wizards/query/query.component
new file mode 100644
index 000000000000..d1d708c6b91b
--- /dev/null
+++ b/wizards/com/sun/star/wizards/query/query.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Java2"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name=
+ "com.sun.star.wizards.query.CallQueryWizard$QueryWizardImplementation">
+ <service name="com.sun.star.wizards.query.CallQueryWizard"/>
+ </implementation>
+</component>
diff --git a/wizards/com/sun/star/wizards/report/CallReportWizard.java b/wizards/com/sun/star/wizards/report/CallReportWizard.java
index 89aa7f471705..c66596e11c02 100644
--- a/wizards/com/sun/star/wizards/report/CallReportWizard.java
+++ b/wizards/com/sun/star/wizards/report/CallReportWizard.java
@@ -35,9 +35,7 @@ import com.sun.star.sdb.application.XDatabaseDocumentUI;
import com.sun.star.wizards.common.NamedValueCollection;
/** This class capsulates the class, that implements the minimal component, a
- * factory for creating the service (<CODE>__getServiceFactory</CODE>) and a
- * method, that writes the information into the given registry key
- * (<CODE>__writeRegistryServiceInfo</CODE>).
+ * factory for creating the service (<CODE>__getServiceFactory</CODE>).
* @author Bertram Nolte
*/
public class CallReportWizard
@@ -94,22 +92,6 @@ public class CallReportWizard
return xsingleservicefactory;
}
- /** Writes the service information into the given registry key.
- * This method is called by the <code>JavaLoader</code>.
- * @return returns true if the operation succeeded
- * @see com.sun.star.comp.loader.JavaLoader#
- * @param xregistrykey Makes structural information (except regarding tree
- * structures) of a single
- * registry key accessible.
- */
- public static boolean __writeRegistryServiceInfo(com.sun.star.registry.XRegistryKey xregistrykey)
- {
- return com.sun.star.comp.loader.FactoryHelper.writeRegistryServiceInfo(
- ReportWizardImplementation.class.getName(),
- ReportWizardImplementation.__serviceName,
- xregistrykey);
- }
-
/** This class implements the component. At least the interfaces XServiceInfo,
* XTypeProvider, and XInitialization should be provided by the service.
*/
diff --git a/wizards/com/sun/star/wizards/report/makefile.mk b/wizards/com/sun/star/wizards/report/makefile.mk
index b31639d21a46..62b948674530 100644
--- a/wizards/com/sun/star/wizards/report/makefile.mk
+++ b/wizards/com/sun/star/wizards/report/makefile.mk
@@ -66,3 +66,11 @@ JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/report.component
+
+$(MISC)/report.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ report.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_JAVA)$(JARTARGET)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt report.component
diff --git a/wizards/com/sun/star/wizards/report/report.component b/wizards/com/sun/star/wizards/report/report.component
new file mode 100644
index 000000000000..67efca9273e7
--- /dev/null
+++ b/wizards/com/sun/star/wizards/report/report.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Java2"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name=
+ "com.sun.star.wizards.report.CallReportWizard$ReportWizardImplementation">
+ <service name="com.sun.star.wizards.report.CallReportWizard"/>
+ </implementation>
+</component>
diff --git a/wizards/com/sun/star/wizards/table/CallTableWizard.java b/wizards/com/sun/star/wizards/table/CallTableWizard.java
index 4aeb66cf66ca..af685eadf343 100644
--- a/wizards/com/sun/star/wizards/table/CallTableWizard.java
+++ b/wizards/com/sun/star/wizards/table/CallTableWizard.java
@@ -32,9 +32,7 @@ import com.sun.star.uno.Type;
import com.sun.star.wizards.common.Properties;
/** This class capsulates the class, that implements the minimal component, a
- * factory for creating the service (<CODE>__getServiceFactory</CODE>) and a
- * method, that writes the information into the given registry key
- * (<CODE>__writeRegistryServiceInfo</CODE>).
+ * factory for creating the service (<CODE>__getServiceFactory</CODE>).
* @author Bertram Nolte
*/
public class CallTableWizard
@@ -63,19 +61,6 @@ public class CallTableWizard
return xsingleservicefactory;
}
- /** Writes the service information into the given registry key.
- * This method is called by the <code>JavaLoader</code>.
- * @return returns true if the operation succeeded
- * @see com.sun.star.comp.loader.JavaLoader#
- * @param xregistrykey Makes structural information (except regarding tree
- * structures) of a single
- * registry key accessible.
- */
- public static boolean __writeRegistryServiceInfo(com.sun.star.registry.XRegistryKey xregistrykey)
- {
- return com.sun.star.comp.loader.FactoryHelper.writeRegistryServiceInfo(TableWizardImplementation.class.getName(), TableWizardImplementation.__serviceName, xregistrykey);
- }
-
/** This class implements the component. At least the interfaces XServiceInfo,
* XTypeProvider, and XInitialization should be provided by the service.
*/
diff --git a/wizards/com/sun/star/wizards/table/makefile.mk b/wizards/com/sun/star/wizards/table/makefile.mk
index c0d62baa7cac..4343af99d45d 100644
--- a/wizards/com/sun/star/wizards/table/makefile.mk
+++ b/wizards/com/sun/star/wizards/table/makefile.mk
@@ -63,3 +63,11 @@ JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/table.component
+
+$(MISC)/table.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ table.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_JAVA)$(JARTARGET)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt table.component
diff --git a/wizards/com/sun/star/wizards/table/table.component b/wizards/com/sun/star/wizards/table/table.component
new file mode 100644
index 000000000000..24cacd225181
--- /dev/null
+++ b/wizards/com/sun/star/wizards/table/table.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Java2"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name=
+ "com.sun.star.wizards.table.CallTableWizard$TableWizardImplementation">
+ <service name="com.sun.star.wizards.table.CallTableWizard"/>
+ </implementation>
+</component>
diff --git a/wizards/com/sun/star/wizards/web/CallWizard.java b/wizards/com/sun/star/wizards/web/CallWizard.java
index f0318e5f2e18..4fab3ea43bf9 100644
--- a/wizards/com/sun/star/wizards/web/CallWizard.java
+++ b/wizards/com/sun/star/wizards/web/CallWizard.java
@@ -42,8 +42,7 @@ import com.sun.star.wizards.common.Resource;
/**
* This class capsulates the class, that implements the minimal component, a factory for
- * creating the service (<CODE>__getServiceFactory</CODE>) and a method, that writes the
- * information into the given registry key (<CODE>__writeRegistryServiceInfo</CODE>).
+ * creating the service (<CODE>__getServiceFactory</CODE>).
*
* @author rpiterman
* @version $Revision: 1.10.52.1 $
@@ -79,22 +78,6 @@ public class CallWizard
}
/**
- * Writes the service information into the given registry key. This method is called
- * by the <code>JavaLoader</code>.
- *
- * @param xregistrykey Makes structural information (except regarding tree
- * structures) of a single registry key accessible.
- *
- * @return returns true if the operation succeeded
- *
- * @see com.sun.star.comp.loader.JavaLoader#
- */
- public static boolean __writeRegistryServiceInfo(XRegistryKey xregistrykey)
- {
- return FactoryHelper.writeRegistryServiceInfo(WizardImplementation.class.getName(), WizardImplementation.__serviceName, xregistrykey);
- }
-
- /**
* This class implements the component. At least the interfaces XServiceInfo,
* XTypeProvider, and XInitialization should be provided by the service.
*/
diff --git a/wizards/com/sun/star/wizards/web/makefile.mk b/wizards/com/sun/star/wizards/web/makefile.mk
index 9cc97e1b88ab..2e0394d2971c 100644
--- a/wizards/com/sun/star/wizards/web/makefile.mk
+++ b/wizards/com/sun/star/wizards/web/makefile.mk
@@ -83,3 +83,11 @@ JAVACLASSFILES = $(foreach,i,$(JAVAFILES) $(CLASSDIR)$/$(PACKAGE)$/$(i:b).class)
# --- Targets ------------------------------------------------------
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/web.component
+
+$(MISC)/web.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ web.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_JAVA)$(JARTARGET)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt web.component
diff --git a/wizards/com/sun/star/wizards/web/web.component b/wizards/com/sun/star/wizards/web/web.component
new file mode 100644
index 000000000000..763438f965a5
--- /dev/null
+++ b/wizards/com/sun/star/wizards/web/web.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Java2"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation
+ name="com.sun.star.wizards.web.CallWizard$WizardImplementation">
+ <service name="com.sun.star.wizards.web.CallWizard"/>
+ </implementation>
+</component>
diff --git a/wizards/prj/d.lst b/wizards/prj/d.lst
index 4d1ad83d1c42..f8ab876ba1c1 100644
--- a/wizards/prj/d.lst
+++ b/wizards/prj/d.lst
@@ -13,3 +13,11 @@ mkdir: %_DEST%\pck%_EXT%
REM ..\%__SRC%\bin\*.res %_DEST%\bin%_EXT%\*.res
..\%__SRC%\class\*.jar %_DEST%\bin%_EXT%\*.jar
+..\%__SRC%\misc\agenda.component %_DEST%\xml%_EXT%\agenda.component
+..\%__SRC%\misc\fax.component %_DEST%\xml%_EXT%\fax.component
+..\%__SRC%\misc\form.component %_DEST%\xml%_EXT%\form.component
+..\%__SRC%\misc\letter.component %_DEST%\xml%_EXT%\letter.component
+..\%__SRC%\misc\query.component %_DEST%\xml%_EXT%\query.component
+..\%__SRC%\misc\report.component %_DEST%\xml%_EXT%\report.component
+..\%__SRC%\misc\table.component %_DEST%\xml%_EXT%\table.component
+..\%__SRC%\misc\web.component %_DEST%\xml%_EXT%\web.component
diff --git a/writerfilter/prj/d.lst b/writerfilter/prj/d.lst
index f941f4266035..1d09ecf9ad2b 100644
--- a/writerfilter/prj/d.lst
+++ b/writerfilter/prj/d.lst
@@ -2,6 +2,7 @@
..\%__SRC%\bin\*.dll %_DEST%\bin%_EXT%\*.dll
..\%__SRC%\lib\*.so %_DEST%\lib%_EXT%\*.so
..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
+..\%__SRC%\misc\writerfilter.component %_DEST%\xml%_EXT%\writerfilter.component
mkdir: %_DEST%\inc%_EXT%\writerfilter\doctok
..\%__SRC%\inc\doctok\sprmids.hxx %_DEST%\inc%_EXT%\writerfilter\doctok\sprmids.hxx
diff --git a/writerfilter/source/filter/WriterFilter.cxx b/writerfilter/source/filter/WriterFilter.cxx
index 71a97d72f391..f8775d097f66 100644
--- a/writerfilter/source/filter/WriterFilter.cxx
+++ b/writerfilter/source/filter/WriterFilter.cxx
@@ -64,11 +64,6 @@ void SAL_CALL component_getImplementationEnvironment(const sal_Char ** ppEnvType
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-sal_Bool SAL_CALL component_writeInfo( ::com::sun::star::lang::XMultiServiceFactory * xMgr, ::com::sun::star::registry::XRegistryKey * xRegistry )
-{
- return ::cppu::component_writeInfoHelper( xMgr, xRegistry, s_component_entries );
-}
-
void * SAL_CALL component_getFactory(sal_Char const * implName, ::com::sun::star::lang::XMultiServiceFactory * xMgr, ::com::sun::star::registry::XRegistryKey * xRegistry )
{
return ::cppu::component_getFactoryHelper(implName, xMgr, xRegistry, s_component_entries );
diff --git a/writerfilter/unocomponent/component.cxx b/writerfilter/unocomponent/component.cxx
index 327e61e41a21..06e837ef4cd6 100644
--- a/writerfilter/unocomponent/component.cxx
+++ b/writerfilter/unocomponent/component.cxx
@@ -61,12 +61,6 @@ static struct ::cppu::ImplementationEntry s_component_entries [] =
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-sal_Bool SAL_CALL component_writeInfo( ::com::sun::star::lang::XMultiServiceFactory * xMgr, ::com::sun::star::registry::XRegistryKey * xRegistry )
-{
- return ::cppu::component_writeInfoHelper( xMgr, xRegistry, s_component_entries );
-}
-
-
void * SAL_CALL component_getFactory(sal_Char const * implName, ::com::sun::star::lang::XMultiServiceFactory * xMgr, ::com::sun::star::registry::XRegistryKey * xRegistry )
{
fprintf(stderr, "Loading service: %s: ", implName);
diff --git a/writerfilter/unocomponent/exports.dxp b/writerfilter/unocomponent/exports.dxp
index 028ac4175990..f0e1c69934bc 100644
--- a/writerfilter/unocomponent/exports.dxp
+++ b/writerfilter/unocomponent/exports.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/writerfilter/util/makefile.mk b/writerfilter/util/makefile.mk
index f5981222743c..c2f5c9ee37e1 100644
--- a/writerfilter/util/makefile.mk
+++ b/writerfilter/util/makefile.mk
@@ -75,4 +75,10 @@ DEF1NAME=$(SHL1TARGET)
.INCLUDE : target.mk
+ALLTAR : $(MISC)/writerfilter.component
+$(MISC)/writerfilter.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt writerfilter.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt writerfilter.component
diff --git a/writerfilter/util/writerfilter.component b/writerfilter/util/writerfilter.component
new file mode 100644
index 000000000000..5d4c628df978
--- /dev/null
+++ b/writerfilter/util/writerfilter.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.Writer.WriterFilter">
+ <service name="com.sun.star.document.ExportFilter"/>
+ <service name="com.sun.star.document.ImportFilter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.WriterFilterDetector">
+ <service name="com.sun.star.document.ExtendedTypeDetection"/>
+ </implementation>
+</component>
diff --git a/writerperfect/prj/d.lst b/writerperfect/prj/d.lst
index 5b5852c6a86f..971d1ce6f50e 100644
--- a/writerperfect/prj/d.lst
+++ b/writerperfect/prj/d.lst
@@ -2,3 +2,4 @@
..\%__SRC%\bin\wpft*.dll %_DEST%\bin%_EXT%
..\%__SRC%\bin\wpftgo.dll %_DEST%\bin%_EXT%\wpftgo.dll
..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
+..\%__SRC%\misc\wpft.component %_DEST%\xml%_EXT%\wpft.component
diff --git a/writerperfect/source/wpdimp/wpft_genericfilter.cxx b/writerperfect/source/wpdimp/wpft_genericfilter.cxx
index c117b93af3c7..b107d5ff4a71 100644
--- a/writerperfect/source/wpdimp/wpft_genericfilter.cxx
+++ b/writerperfect/source/wpdimp/wpft_genericfilter.cxx
@@ -46,33 +46,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
- void * /* pServiceManager */, void * pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- sal_Int32 nPos = 0;
- Reference< XRegistryKey > xNewKey(
- reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( WordPerfectImportFilter_getImplementationName() ) );
- xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) );
-
- const Sequence< OUString > & rSNL = WordPerfectImportFilter_getSupportedServiceNames();
- const OUString * pArray = rSNL.getConstArray();
- for ( nPos = rSNL.getLength(); nPos--; )
- xNewKey->createKey( pArray[nPos] );
-
- return sal_True;
- }
- catch (InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * /* pRegistryKey */ )
{
diff --git a/writerperfect/util/makefile.mk b/writerperfect/util/makefile.mk
index dca29e005287..ae8cf0b73641 100644
--- a/writerperfect/util/makefile.mk
+++ b/writerperfect/util/makefile.mk
@@ -43,3 +43,11 @@ SHL1VERSIONMAP=$(SOLARENV)/src/component.map
DEF1NAME=$(SHL1TARGET)
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/wpft.component
+
+$(MISC)/wpft.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ wpft.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt wpft.component
diff --git a/writerperfect/util/wpft.component b/writerperfect/util/wpft.component
new file mode 100644
index 000000000000..2d8a013606a9
--- /dev/null
+++ b/writerperfect/util/wpft.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.Writer.WordPerfectImportFilter">
+ <service name="com.sun.star.document.ExtendedTypeDetection"/>
+ <service name="com.sun.star.document.ImportFilter"/>
+ </implementation>
+</component>
diff --git a/xmerge/prj/d.lst b/xmerge/prj/d.lst
index 03cd7235c126..9cfd7927ed00 100644
--- a/xmerge/prj/d.lst
+++ b/xmerge/prj/d.lst
@@ -9,3 +9,4 @@ mkdir: %_DEST%\doc%_EXT%\xmerge
..\%__SRC%\doc\javadoc\package-list %_DEST%\doc%_EXT%\xmerge\package-list
..\%__SRC%\doc\xmerge_javadoc.zip %_DEST%\doc%_EXT%\xmerge_javadoc.zip
..\%__SRC%\doc\writer2latex_javadoc.zip %_DEST%\doc%_EXT%\writer2latex_javadoc.zip
+..\%__SRC%\misc\XMergeBridge.component %_DEST%\xml%_EXT%\XMergeBridge.component
diff --git a/xmerge/source/bridge/XMergeBridge.component b/xmerge/source/bridge/XMergeBridge.component
new file mode 100644
index 000000000000..c48aae6a0e20
--- /dev/null
+++ b/xmerge/source/bridge/XMergeBridge.component
@@ -0,0 +1,34 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Java2"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="XMergeBridge$_XMergeBridge">
+ <service name="com.sun.star.documentconversion.XMergeBridge"/>
+ </implementation>
+</component>
diff --git a/xmerge/source/bridge/java/XMergeBridge.java b/xmerge/source/bridge/java/XMergeBridge.java
index 38503d3b49ff..c2dafd75c996 100644
--- a/xmerge/source/bridge/java/XMergeBridge.java
+++ b/xmerge/source/bridge/java/XMergeBridge.java
@@ -74,9 +74,8 @@ import java.net.URI;
/** This outer class provides an inner class to implement the service
- * description, a method to instantiate the
- * component on demand (__getServiceFactory()), and a method to give
- * information about the component (__writeRegistryServiceInfo()).
+ * description and a method to instantiate the
+ * component on demand (__getServiceFactory()).
*/
public class XMergeBridge {
@@ -695,21 +694,4 @@ public class XMergeBridge {
return xSingleServiceFactory;
}
-
- /**
- * Writes the service information into the given registry key.
- * This method is called by the <code>JavaLoader</code>
- * <p>
- * @return returns true if the operation succeeded
- * @param regKey the registryKey
- * @see com.sun.star.comp.loader.JavaLoader
- */
- public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
-
- return FactoryHelper.writeRegistryServiceInfo(_XMergeBridge.class.getName(),
- _XMergeBridge.__serviceName, regKey);
- }
}
-
-
-
diff --git a/xmerge/source/bridge/makefile.mk b/xmerge/source/bridge/makefile.mk
index 77a39a568966..05fa5a738d84 100644
--- a/xmerge/source/bridge/makefile.mk
+++ b/xmerge/source/bridge/makefile.mk
@@ -33,3 +33,11 @@ PRJNAME=xmerge
.IF "$(L10N_framework)"==""
ALLTAR: ANTBUILD
.ENDIF
+
+ALLTAR : $(MISC)/XMergeBridge.component
+
+$(MISC)/XMergeBridge.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt XMergeBridge.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_JAVA)XMergeBridge.jar' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt XMergeBridge.component
diff --git a/xmlhelp/prj/d.lst b/xmlhelp/prj/d.lst
index 67fe323757bb..740ff554ee34 100644
--- a/xmlhelp/prj/d.lst
+++ b/xmlhelp/prj/d.lst
@@ -7,4 +7,6 @@
..\util\*.xsl %_DEST%\bin%_EXT%\*.*
..\%__SRC%\lib\ihelplinker.lib %_DEST%\lib%_EXT%\ihelplinker.lib
..\%__SRC%\bin\helpxsl.zip %_DEST%\pck%_EXT%\helpxsl.zip
-
+..\%__SRC%\misc\LuceneHelpWrapper.component %_DEST%\xml%_EXT%\LuceneHelpWrapper.component
+..\%__SRC%\misc\tvhlp1.component %_DEST%\xml%_EXT%\tvhlp1.component
+..\%__SRC%\misc\ucpchelp1.component %_DEST%\xml%_EXT%\ucpchelp1.component
diff --git a/xmlhelp/source/com/sun/star/help/HelpComponent.java b/xmlhelp/source/com/sun/star/help/HelpComponent.java
index b12eb20f9485..44b4ed091b47 100755
--- a/xmlhelp/source/com/sun/star/help/HelpComponent.java
+++ b/xmlhelp/source/com/sun/star/help/HelpComponent.java
@@ -68,10 +68,8 @@ import java.io.PrintStream;
import java.io.File;
*/
-/** This class capsulates the class, that implements the minimal component, a
- * factory for creating the service (<CODE>__getComponentFactory</CODE>) and a
- * method, that writes the information into the given registry key
- * (<CODE>__writeRegistryServiceInfo</CODE>).
+/** This class capsulates the class, that implements the minimal component and a
+ * factory for creating the service (<CODE>__getComponentFactory</CODE>).
*/
public class HelpComponent
{
@@ -98,25 +96,6 @@ public class HelpComponent
return xFactory;
}
- /**
- * Writes the service information into the given registry key.
- * This method is called by the <code>JavaLoader</code>
- * <p>
- * @return returns true if the operation succeeded
- * @param regKey the registryKey
- * @see com.sun.star.comp.loader.JavaLoader
- */
- public static boolean __writeRegistryServiceInfo(XRegistryKey regKey)
- {
- boolean bSuccessHelpSearch = Factory.writeRegistryServiceInfo
- (HelpSearch._HelpSearch.class.getName(),
- HelpSearch._HelpSearch.getServiceNames(), regKey);
- boolean bSuccessHelpIndexer = Factory.writeRegistryServiceInfo
- (HelpIndexer.class.getName(),
- HelpIndexer.getServiceNames(), regKey);
-
- return bSuccessHelpSearch && bSuccessHelpIndexer;
- }
/** This method is a member of the interface for initializing an object
* directly after its creation.
* @param object This array of arbitrary objects will be passed to the
diff --git a/xmlhelp/source/com/sun/star/help/HelpSearch.java b/xmlhelp/source/com/sun/star/help/HelpSearch.java
index 3324701f197d..dc31514afcb0 100644
--- a/xmlhelp/source/com/sun/star/help/HelpSearch.java
+++ b/xmlhelp/source/com/sun/star/help/HelpSearch.java
@@ -54,10 +54,8 @@ import org.apache.lucene.search.WildcardQuery;
import com.sun.star.script.XInvocation;
import com.sun.star.beans.XIntrospectionAccess;
-/** This class capsulates the class, that implements the minimal component, a
- * factory for creating the service (<CODE>__getComponentFactory</CODE>) and a
- * method, that writes the information into the given registry key
- * (<CODE>__writeRegistryServiceInfo</CODE>).
+/** This class capsulates the class, that implements the minimal component and a
+ * factory for creating the service (<CODE>__getComponentFactory</CODE>).
*/
public class HelpSearch
{
@@ -314,19 +312,6 @@ public class HelpSearch
return xFactory;
}
- /**
- * Writes the service information into the given registry key.
- * This method is called by the <code>JavaLoader</code>
- * <p>
- * @return returns true if the operation succeeded
- * @param regKey the registryKey
- * @see com.sun.star.comp.loader.JavaLoader
- */
- public static boolean __writeRegistryServiceInfo(XRegistryKey regKey) {
- return Factory.writeRegistryServiceInfo(_HelpSearch.class.getName(),
- _HelpSearch.getServiceNames(),
- regKey);
- }
/** This method is a member of the interface for initializing an object
* directly after its creation.
* @param object This array of arbitrary objects will be passed to the
diff --git a/xmlhelp/source/com/sun/star/help/LuceneHelpWrapper.component b/xmlhelp/source/com/sun/star/help/LuceneHelpWrapper.component
new file mode 100644
index 000000000000..04b35bcb12ec
--- /dev/null
+++ b/xmlhelp/source/com/sun/star/help/LuceneHelpWrapper.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.Java2"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.help.HelpIndexer">
+ <service name="com.sun.star.help.HelpIndexer"/>
+ </implementation>
+ <implementation name="com.sun.star.help.HelpSearch$_HelpSearch">
+ <service name="com.sun.star.help.HelpSearch"/>
+ </implementation>
+</component>
diff --git a/xmlhelp/source/com/sun/star/help/makefile.mk b/xmlhelp/source/com/sun/star/help/makefile.mk
index ffa08b30cfed..a67f755a1cb2 100644
--- a/xmlhelp/source/com/sun/star/help/makefile.mk
+++ b/xmlhelp/source/com/sun/star/help/makefile.mk
@@ -76,6 +76,14 @@ fix_system_lucene:
@echo "Fix Java Class-Path entry for Lucene libraries from system."
@$(SED) -r -e "s#^(Class-Path:).*#\1 file://$(LUCENE_CORE_JAR) file://$(LUCENE_ANALYZERS_JAR)#" \
-i ../../../../../$(INPATH)/class/HelpLinker/META-INF/MANIFEST.MF
+
+ALLTAR : $(MISC)/LuceneHelpWrapper.component
+
+$(MISC)/LuceneHelpWrapper.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt LuceneHelpWrapper.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_JAVA)$(JARTARGET)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt LuceneHelpWrapper.component
.ELSE
all:
@echo java disabled
diff --git a/xmlhelp/source/cxxhelp/provider/services.cxx b/xmlhelp/source/cxxhelp/provider/services.cxx
index b0da4e0cdec0..e6d73a4ba2eb 100644
--- a/xmlhelp/source/cxxhelp/provider/services.cxx
+++ b/xmlhelp/source/cxxhelp/provider/services.cxx
@@ -36,46 +36,6 @@
using namespace com::sun::star;
//=========================================================================
-static sal_Bool writeInfo(
- void * pRegistryKey,
- const rtl::OUString & rImplementationName,
- uno::Sequence< rtl::OUString > const & rServiceNames )
-{
- rtl::OUString aKeyName( rtl::OUString::createFromAscii( "/" ) );
- aKeyName += rImplementationName;
- aKeyName += rtl::OUString::createFromAscii( "/UNO/SERVICES" );
-
- uno::Reference< registry::XRegistryKey > xKey;
- try
- {
- xKey = static_cast< registry::XRegistryKey * >(
- pRegistryKey )->createKey( aKeyName );
- }
- catch ( registry::InvalidRegistryException const & )
- {
- }
-
- if ( !xKey.is() )
- return sal_False;
-
- sal_Bool bSuccess = sal_True;
-
- for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
- {
- try
- {
- xKey->createKey( rServiceNames[ n ] );
- }
- catch ( registry::InvalidRegistryException const & )
- {
- bSuccess = sal_False;
- break;
- }
- }
- return bSuccess;
-}
-
-//=========================================================================
extern "C" void SAL_CALL component_getImplementationEnvironment(
const sal_Char ** ppEnvTypeName, uno_Environment ** /*ppEnv*/ )
{
@@ -83,21 +43,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment(
}
//=========================================================================
-extern "C" sal_Bool SAL_CALL component_writeInfo(
- void * /*pServiceManager*/, void * pRegistryKey )
-{
- return pRegistryKey &&
-
- //////////////////////////////////////////////////////////////////////
- // Write info into registry.
- //////////////////////////////////////////////////////////////////////
-
- writeInfo( pRegistryKey,
- ::chelp::ContentProvider::getImplementationName_Static(),
- ::chelp::ContentProvider::getSupportedServiceNames_Static() );
-}
-
-//=========================================================================
extern "C" void * SAL_CALL component_getFactory(
const sal_Char * pImplName,
void * pServiceManager,
diff --git a/xmlhelp/source/treeview/makefile.mk b/xmlhelp/source/treeview/makefile.mk
index 0c385862d772..be0ed8e76f2f 100644
--- a/xmlhelp/source/treeview/makefile.mk
+++ b/xmlhelp/source/treeview/makefile.mk
@@ -67,3 +67,11 @@ DEF1DES=UCB : Treeview help
.INCLUDE: target.mk
+
+ALLTAR : $(MISC)/tvhlp1.component
+
+$(MISC)/tvhlp1.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ tvhlp1.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt tvhlp1.component
diff --git a/xmlhelp/source/treeview/tvfactory.cxx b/xmlhelp/source/treeview/tvfactory.cxx
index 8ebfc22f082a..0a6852cdae3b 100644
--- a/xmlhelp/source/treeview/tvfactory.cxx
+++ b/xmlhelp/source/treeview/tvfactory.cxx
@@ -255,49 +255,6 @@ TVFactory::CreateInstance(
return Reference< XInterface >::query( xP );
}
-
-
-//=========================================================================
-static sal_Bool writeInfo( void * pRegistryKey,
- const rtl::OUString & rImplementationName,
- Sequence< rtl::OUString > const & rServiceNames )
-{
- rtl::OUString aKeyName( rtl::OUString::createFromAscii( "/" ) );
- aKeyName += rImplementationName;
- aKeyName += rtl::OUString::createFromAscii( "/UNO/SERVICES" );
-
- Reference< registry::XRegistryKey > xKey;
- try
- {
- xKey = static_cast< registry::XRegistryKey * >(
- pRegistryKey )->createKey( aKeyName );
- }
- catch ( registry::InvalidRegistryException const & )
- {
- }
-
- if ( !xKey.is() )
- return sal_False;
-
- sal_Bool bSuccess = sal_True;
-
- for ( sal_Int32 n = 0; n < rServiceNames.getLength(); ++n )
- {
- try
- {
- xKey->createKey( rServiceNames[ n ] );
- }
- catch ( registry::InvalidRegistryException const & )
- {
- bSuccess = sal_False;
- break;
- }
- }
- return bSuccess;
-}
-
-
-
//=========================================================================
extern "C" void SAL_CALL component_getImplementationEnvironment(
const sal_Char ** ppEnvTypeName, uno_Environment ** ppEnv )
@@ -307,20 +264,6 @@ extern "C" void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-
-
-//=========================================================================
-extern "C" sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
-{
- (void)pServiceManager;
-
- return pRegistryKey && writeInfo( pRegistryKey,
- TVFactory::getImplementationName_static(),
- TVFactory::getSupportedServiceNames_static() );
-}
-
-
//=========================================================================
extern "C" void * SAL_CALL component_getFactory(
const sal_Char * pImplName,void * pServiceManager,void * pRegistryKey )
diff --git a/xmlhelp/source/treeview/tvhlp1.component b/xmlhelp/source/treeview/tvhlp1.component
new file mode 100644
index 000000000000..525de73e0062
--- /dev/null
+++ b/xmlhelp/source/treeview/tvhlp1.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.help.TreeViewImpl">
+ <service name="com.sun.star.help.TreeView"/>
+ <service name="com.sun.star.ucb.HiearchyDataSource"/>
+ </implementation>
+</component>
diff --git a/xmlhelp/util/makefile.mk b/xmlhelp/util/makefile.mk
index 66551f15bffc..e060db9efe04 100644
--- a/xmlhelp/util/makefile.mk
+++ b/xmlhelp/util/makefile.mk
@@ -82,3 +82,11 @@ ZIP1LIST=main_transform*.xsl idxcaption.xsl idxcontent.xsl
.INCLUDE: target.mk
+
+ALLTAR : $(MISC)/ucpchelp1.component
+
+$(MISC)/ucpchelp1.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ ucpchelp1.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt ucpchelp1.component
diff --git a/xmlhelp/util/ucpchelp1.component b/xmlhelp/util/ucpchelp1.component
new file mode 100644
index 000000000000..a8bb64124e9c
--- /dev/null
+++ b/xmlhelp/util/ucpchelp1.component
@@ -0,0 +1,35 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="CHelpContentProvider">
+ <service name="com.sun.star.help.XMLHelp"/>
+ <service name="com.sun.star.ucb.HelpContentProvider"/>
+ </implementation>
+</component>
diff --git a/xmloff/prj/d.lst b/xmloff/prj/d.lst
index 7784bca0474f..9bbfe05f3ac4 100644
--- a/xmloff/prj/d.lst
+++ b/xmloff/prj/d.lst
@@ -116,3 +116,5 @@ mkdir: %_DEST%\inc%_EXT%\xmloff\table
..\inc\xmloff\table\XMLTableImport.hxx %_DEST%\inc%_EXT%\xmloff\table\XMLTableImport.hxx
..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*.dylib
+..\%__SRC%\misc\xo.component %_DEST%\xml%_EXT%\xo.component
+..\%__SRC%\misc\xof.component %_DEST%\xml%_EXT%\xof.component
diff --git a/xmloff/source/core/facreg.cxx b/xmloff/source/core/facreg.cxx
index 010318d6af49..4556e21e8152 100644
--- a/xmloff/source/core/facreg.cxx
+++ b/xmloff/source/core/facreg.cxx
@@ -167,117 +167,6 @@ XMLOFF_DLLPUBLIC void SAL_CALL component_getImplementationEnvironment( const sal
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-void SAL_CALL writeInfo( registry::XRegistryKey * pRegistryKey, const OUString& rImplementationName, const uno::Sequence< OUString >& rServices )
-{
- uno::Reference< registry::XRegistryKey > xNewKey(
- pRegistryKey->createKey(
- OUString( RTL_CONSTASCII_USTRINGPARAM("/") ) + rImplementationName + OUString(RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") ) ) );
-
- for( sal_Int32 i = 0; i < rServices.getLength(); i++ )
- xNewKey->createKey( rServices.getConstArray()[i]);
-}
-
-#define WRITEINFO(className)\
- writeInfo( pKey, className##_getImplementationName(), className##_getSupportedServiceNames() )
-
-XMLOFF_DLLPUBLIC sal_Bool SAL_CALL component_writeInfo( void * /*pServiceManager*/, void * pRegistryKey )
-{
- if( pRegistryKey )
- {
- try
- {
- registry::XRegistryKey *pKey = reinterpret_cast< registry::XRegistryKey * >( pRegistryKey );
-
- // impress oasis import
- WRITEINFO( XMLImpressImportOasis );
- WRITEINFO( XMLImpressStylesImportOasis );
- WRITEINFO( XMLImpressContentImportOasis );
- WRITEINFO( XMLImpressMetaImportOasis );
- WRITEINFO( XMLImpressSettingsImportOasis );
-
- // impress oasis export
- WRITEINFO( XMLImpressExportOasis );
- WRITEINFO( XMLImpressStylesExportOasis );
- WRITEINFO( XMLImpressContentExportOasis );
- WRITEINFO( XMLImpressMetaExportOasis );
- WRITEINFO( XMLImpressSettingsExportOasis );
-
- // animation import
- WRITEINFO( AnimationsImport );
-
- // impress OOo export
- WRITEINFO( XMLImpressExportOOO );
- WRITEINFO( XMLImpressStylesExportOOO );
- WRITEINFO( XMLImpressContentExportOOO );
- WRITEINFO( XMLImpressMetaExportOOO );
- WRITEINFO( XMLImpressSettingsExportOOO );
-
- // draw oasis import
- WRITEINFO( XMLDrawImportOasis );
- WRITEINFO( XMLDrawStylesImportOasis );
- WRITEINFO( XMLDrawContentImportOasis );
- WRITEINFO( XMLDrawMetaImportOasis );
- WRITEINFO( XMLDrawSettingsImportOasis );
-
- // draw oasis export
- WRITEINFO( XMLDrawExportOasis );
- WRITEINFO( XMLDrawStylesExportOasis );
- WRITEINFO( XMLDrawContentExportOasis );
- WRITEINFO( XMLDrawMetaExportOasis );
- WRITEINFO( XMLDrawSettingsExportOasis );
-
- // draw OOo export
- WRITEINFO( XMLDrawExportOOO );
- WRITEINFO( XMLDrawStylesExportOOO );
- WRITEINFO( XMLDrawContentExportOOO );
- WRITEINFO( XMLDrawMetaExportOOO );
- WRITEINFO( XMLDrawSettingsExportOOO );
-
- // drawing layer export
- WRITEINFO( XMLDrawingLayerExport );
-
- // impress xml clipboard export
- WRITEINFO( XMLImpressClipboardExport );
-
- // chart oasis import
- WRITEINFO( SchXMLImport );
- WRITEINFO( SchXMLImport_Meta );
- WRITEINFO( SchXMLImport_Styles );
- WRITEINFO( SchXMLImport_Content );
-
- // chart oasis export
- WRITEINFO( SchXMLExport_Oasis );
- WRITEINFO( SchXMLExport_Oasis_Meta );
- WRITEINFO( SchXMLExport_Oasis_Styles );
- WRITEINFO( SchXMLExport_Oasis_Content );
-
- // chart OOo export
- WRITEINFO( SchXMLExport );
- WRITEINFO( SchXMLExport_Styles );
- WRITEINFO( SchXMLExport_Content );
-
- // meta
- WRITEINFO( XMLMetaImportComponent );
- WRITEINFO( XMLMetaExportComponent );
-
- WRITEINFO( XMLVersionListPersistence );
-
- // meta OOo
- WRITEINFO( XMLMetaExportOOO );
-
- // writer auto text events
- WRITEINFO( XMLAutoTextEventExport );
- WRITEINFO( XMLAutoTextEventImport );
- WRITEINFO( XMLAutoTextEventExportOOO );
- }
- catch (registry::InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_True;
-}
-
#define SINGLEFACTORY(classname)\
if( classname##_getImplementationName().equalsAsciiL( pImplName, nImplNameLen ) )\
{\
diff --git a/xmloff/source/draw/ximpcustomshape.cxx b/xmloff/source/draw/ximpcustomshape.cxx
index 98255edf68d0..6f9710392e2a 100644
--- a/xmloff/source/draw/ximpcustomshape.cxx
+++ b/xmloff/source/draw/ximpcustomshape.cxx
@@ -1247,7 +1247,6 @@ void XMLEnhancedCustomShapeContext::EndElement()
{
switch( EASGet( pValues->Name ) )
{
- case EAS_Position :
case EAS_RangeYMinimum :
case EAS_RangeYMaximum :
case EAS_RangeXMinimum :
@@ -1259,6 +1258,8 @@ void XMLEnhancedCustomShapeContext::EndElement()
pValues->Value.getValue()), pH );
}
break;
+
+ case EAS_Position :
case EAS_Polar :
{
CheckAndResolveEquationParameter( (*((com::sun::star::drawing::EnhancedCustomShapeParameterPair*)
diff --git a/xmloff/source/transform/XMLFilterRegistration.cxx b/xmloff/source/transform/XMLFilterRegistration.cxx
index e3bb398a6126..50e14db40e5d 100644
--- a/xmloff/source/transform/XMLFilterRegistration.cxx
+++ b/xmloff/source/transform/XMLFilterRegistration.cxx
@@ -146,39 +146,6 @@ void SAL_CALL component_getImplementationEnvironment( const sal_Char ** ppEnvTyp
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-sal_Bool SAL_CALL component_writeInfo( void * /*pServiceManager*/, void * pRegistryKey )
-{
- if( pRegistryKey )
- {
- try
- {
- uno::Reference< registry::XRegistryKey > xMasterKey( reinterpret_cast< registry::XRegistryKey * >( pRegistryKey ) );
-
- const ServiceDescriptor* pDescriptor = getServiceDescriptors();
- while ( pDescriptor->getImplementationName )
- {
- ::rtl::OUString sNewKeyName( RTL_CONSTASCII_USTRINGPARAM("/") );
- sNewKeyName += pDescriptor->getImplementationName();
- sNewKeyName += ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "/UNO/SERVICES") );
-
- uno::Reference< registry::XRegistryKey > xNewKey( xMasterKey->createKey( sNewKeyName ) );
-
- uno::Sequence< ::rtl::OUString > aServices = pDescriptor->getSupportedServiceNames();
- const ::rtl::OUString* pServices = aServices.getConstArray();
- for( sal_Int32 i = 0; i < aServices.getLength(); ++i, ++pServices )
- xNewKey->createKey( *pServices);
-
- ++pDescriptor;
- }
- }
- catch (registry::InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "xof::component_writeInfo: InvalidRegistryException!" );
- }
- }
- return sal_True;
-}
-
void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ )
{
void * pRet = NULL;
diff --git a/xmloff/source/transform/makefile.mk b/xmloff/source/transform/makefile.mk
index bba8deb6db2b..031549fcb39b 100644
--- a/xmloff/source/transform/makefile.mk
+++ b/xmloff/source/transform/makefile.mk
@@ -93,3 +93,11 @@ DEF1NAME = $(SHL1TARGET)
SLOFILES = $(SHL1OBJS)
.INCLUDE: target.mk
+
+ALLTAR : $(MISC)/xof.component
+
+$(MISC)/xof.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ xof.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt xof.component
diff --git a/xmloff/source/transform/xof.component b/xmloff/source/transform/xof.component
new file mode 100644
index 000000000000..8f9c88f7fa0d
--- /dev/null
+++ b/xmloff/source/transform/xof.component
@@ -0,0 +1,118 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.Calc.XMLContentImporter">
+ <service name="com.sun.star.comp.Calc.XMLContentImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLImporter">
+ <service name="com.sun.star.comp.Calc.XMLImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLMetaImporter">
+ <service name="com.sun.star.comp.Calc.XMLMetaImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLSettingsImporter">
+ <service name="com.sun.star.comp.Calc.XMLSettingsImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Calc.XMLStylesImporter">
+ <service name="com.sun.star.comp.Calc.XMLStylesImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Chart.XMLContentImporter">
+ <service name="com.sun.star.comp.Chart.XMLContentImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Chart.XMLImporter">
+ <service name="com.sun.star.comp.Chart.XMLImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Chart.XMLStylesImporter">
+ <service name="com.sun.star.comp.Chart.XMLStylesImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Draw.XMLContentImporter">
+ <service name="com.sun.star.comp.Draw.XMLContentImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Draw.XMLImporter">
+ <service name="com.sun.star.comp.Draw.XMLImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Draw.XMLMetaImporter">
+ <service name="com.sun.star.comp.Draw.XMLMetaImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Draw.XMLSettingsImporter">
+ <service name="com.sun.star.comp.Draw.XMLSettingsImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Draw.XMLStylesImporter">
+ <service name="com.sun.star.comp.Draw.XMLStylesImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Impress.XMLContentImporter">
+ <service name="com.sun.star.comp.Impress.XMLContentImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Impress.XMLImporter">
+ <service name="com.sun.star.comp.Impress.XMLImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Impress.XMLMetaImporter">
+ <service name="com.sun.star.comp.Impress.XMLMetaImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Impress.XMLSettingsImporter">
+ <service name="com.sun.star.comp.Impress.XMLSettingsImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Impress.XMLStylesImporter">
+ <service name="com.sun.star.comp.Impress.XMLStylesImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Math.XMLMetaImporter">
+ <service name="com.sun.star.comp.Math.XMLMetaImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Math.XMLSettingsImporter">
+ <service name="com.sun.star.comp.Math.XMLSettingsImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.OOo2OasisTransformer">
+ <service name="com.sun.star.comp.OOo2OasisTransformer"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Oasis2OOoTransformer">
+ <service name="com.sun.star.comp.Oasis2OOoTransformer"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.XMLAutotextEventsImporter">
+ <service name="com.sun.star.comp.Writer.XMLAutotextEventsImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.XMLContentImporter">
+ <service name="com.sun.star.comp.Writer.XMLContentImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.XMLImporter">
+ <service name="com.sun.star.comp.Writer.XMLImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.XMLMetaImporter">
+ <service name="com.sun.star.comp.Writer.XMLMetaImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.XMLSettingsImporter">
+ <service name="com.sun.star.comp.Writer.XMLSettingsImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.XMLStylesImporter">
+ <service name="com.sun.star.comp.Writer.XMLStylesImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.document.XMLMetaImporter">
+ <service name="com.sun.star.document.XMLMetaImporter"/>
+ </implementation>
+</component>
diff --git a/xmloff/util/makefile.mk b/xmloff/util/makefile.mk
index b8745b6b8fff..857067985c50 100644
--- a/xmloff/util/makefile.mk
+++ b/xmloff/util/makefile.mk
@@ -86,3 +86,11 @@ DEF1DES =XML Office Lib
# --- Targets ----------------------------------------------------------
.ENDIF
.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/xo.component
+
+$(MISC)/xo.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ xo.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt xo.component
diff --git a/xmloff/util/xo.component b/xmloff/util/xo.component
new file mode 100644
index 000000000000..7fe2119636d1
--- /dev/null
+++ b/xmloff/util/xo.component
@@ -0,0 +1,178 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="SchXMLExport.Compact">
+ <service name="com.sun.star.comp.Chart.XMLExporter"/>
+ </implementation>
+ <implementation name="SchXMLExport.Content">
+ <service name="com.sun.star.comp.Chart.XMLContentExporter"/>
+ </implementation>
+ <implementation name="SchXMLExport.Oasis.Compact">
+ <service name="com.sun.star.comp.Chart.XMLOasisExporter"/>
+ </implementation>
+ <implementation name="SchXMLExport.Oasis.Content">
+ <service name="com.sun.star.comp.Chart.XMLOasisContentExporter"/>
+ </implementation>
+ <implementation name="SchXMLExport.Oasis.Meta">
+ <service name="com.sun.star.comp.Chart.XMLOasisMetaExporter"/>
+ </implementation>
+ <implementation name="SchXMLExport.Oasis.Styles">
+ <service name="com.sun.star.comp.Chart.XMLOasisStylesExporter"/>
+ </implementation>
+ <implementation name="SchXMLExport.Styles">
+ <service name="com.sun.star.comp.Chart.XMLStylesExporter"/>
+ </implementation>
+ <implementation name="SchXMLImport">
+ <service name="com.sun.star.comp.Chart.XMLOasisImporter"/>
+ </implementation>
+ <implementation name="SchXMLImport.Content">
+ <service name="com.sun.star.comp.Chart.XMLOasisContentImporter"/>
+ </implementation>
+ <implementation name="SchXMLImport.Meta">
+ <service name="com.sun.star.comp.Chart.XMLOasisMetaImporter"/>
+ </implementation>
+ <implementation name="SchXMLImport.Styles">
+ <service name="com.sun.star.comp.Chart.XMLOasisStylesImporter"/>
+ </implementation>
+ <implementation name="XMLDrawContentExportOOO">
+ <service name="com.sun.star.comp.Draw.XMLContentExporter"/>
+ </implementation>
+ <implementation name="XMLDrawContentExportOasis">
+ <service name="com.sun.star.comp.Draw.XMLOasisContentExporter"/>
+ </implementation>
+ <implementation name="XMLDrawExportOOO">
+ <service name="com.sun.star.comp.Draw.XMLExporter"/>
+ </implementation>
+ <implementation name="XMLDrawExportOasis">
+ <service name="com.sun.star.comp.Draw.XMLOasisExporter"/>
+ </implementation>
+ <implementation name="XMLDrawImportOasis">
+ <service name="com.sun.star.comp.Draw.XMLOasisImporter"/>
+ </implementation>
+ <implementation name="XMLDrawMetaExportOOO">
+ <service name="com.sun.star.comp.Draw.XMLMetaExporter"/>
+ </implementation>
+ <implementation name="XMLDrawMetaExportOasis">
+ <service name="com.sun.star.comp.Draw.XMLOasisMetaExporter"/>
+ </implementation>
+ <implementation name="XMLDrawSettingsExportOOO">
+ <service name="com.sun.star.comp.Draw.XMLSettingsExporter"/>
+ </implementation>
+ <implementation name="XMLDrawSettingsExportOasis">
+ <service name="com.sun.star.comp.Draw.XMLOasisSettingsExporter"/>
+ </implementation>
+ <implementation name="XMLDrawStylesExportOOO">
+ <service name="com.sun.star.comp.Draw.XMLStylesExporter"/>
+ </implementation>
+ <implementation name="XMLDrawStylesExportOasis">
+ <service name="com.sun.star.comp.Draw.XMLOasisStylesExporter"/>
+ </implementation>
+ <implementation name="XMLDrawingLayerExport">
+ <service name="com.sun.star.comp.DrawingLayer.XMLExporter"/>
+ </implementation>
+ <implementation name="XMLImpressClipboardExport">
+ <service name="com.sun.star.comp.Impress.XMLClipboardExporter"/>
+ </implementation>
+ <implementation name="XMLImpressContentExportOOO">
+ <service name="com.sun.star.comp.Impress.XMLContentExporter"/>
+ </implementation>
+ <implementation name="XMLImpressContentExportOasis">
+ <service name="com.sun.star.comp.Impress.XMLOasisContentExporter"/>
+ </implementation>
+ <implementation name="XMLImpressContentImportOasis">
+ <service name="com.sun.star.comp.Draw.XMLOasisContentImporter"/>
+ <service name="com.sun.star.comp.Impress.XMLOasisContentImporter"/>
+ </implementation>
+ <implementation name="XMLImpressExportOOO">
+ <service name="com.sun.star.comp.Impress.XMLExporter"/>
+ </implementation>
+ <implementation name="XMLImpressExportOasis">
+ <service name="com.sun.star.comp.Impress.XMLOasisExporter"/>
+ </implementation>
+ <implementation name="XMLImpressImportOasis">
+ <service name="com.sun.star.comp.Impress.XMLOasisImporter"/>
+ </implementation>
+ <implementation name="XMLImpressMetaExportOOO">
+ <service name="com.sun.star.comp.Impress.XMLMetaExporter"/>
+ </implementation>
+ <implementation name="XMLImpressMetaExportOasis">
+ <service name="com.sun.star.comp.Impress.XMLOasisMetaExporter"/>
+ </implementation>
+ <implementation name="XMLImpressMetaImportOasis">
+ <service name="com.sun.star.comp.Draw.XMLOasisMetaImporter"/>
+ <service name="com.sun.star.comp.Impress.XMLOasisMetaImporter"/>
+ </implementation>
+ <implementation name="XMLImpressSettingsExportOOO">
+ <service name="com.sun.star.comp.Impress.XMLSettingsExporter"/>
+ </implementation>
+ <implementation name="XMLImpressSettingsExportOasis">
+ <service name="com.sun.star.comp.Impress.XMLOasisSettingsExporter"/>
+ </implementation>
+ <implementation name="XMLImpressSettingsImportOasis">
+ <service name="com.sun.star.comp.Draw.XMLOasisSettingsImporter"/>
+ <service name="com.sun.star.comp.Impress.XMLOasisSettingsImporter"/>
+ </implementation>
+ <implementation name="XMLImpressStylesExportOOO">
+ <service name="com.sun.star.comp.Impress.XMLStylesExporter"/>
+ </implementation>
+ <implementation name="XMLImpressStylesExportOasis">
+ <service name="com.sun.star.comp.Impress.XMLOasisStylesExporter"/>
+ </implementation>
+ <implementation name="XMLImpressStylesImportOasis">
+ <service name="com.sun.star.comp.Draw.XMLOasisStylesImporter"/>
+ <service name="com.sun.star.comp.Impress.XMLOasisStylesImporter"/>
+ </implementation>
+ <implementation name="XMLMetaExportComponent">
+ <service name="com.sun.star.document.XMLOasisMetaExporter"/>
+ </implementation>
+ <implementation name="XMLMetaExportOOo">
+ <service name="com.sun.star.document.XMLMetaExporter"/>
+ </implementation>
+ <implementation name="XMLMetaImportComponent">
+ <service name="com.sun.star.document.XMLOasisMetaImporter"/>
+ </implementation>
+ <implementation name="XMLVersionListPersistence">
+ <service name="com.sun.star.document.DocumentRevisionListPersistence"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.Writer.XMLAutotextEventsExporter">
+ <service name="com.sun.star.comp.Writer.XMLAutotextEventsExporter"/>
+ </implementation>
+ <implementation
+ name="com.sun.star.comp.Writer.XMLOasisAutotextEventsExporter">
+ <service name="com.sun.star.comp.Writer.XMLOasisAutotextEventsExporter"/>
+ </implementation>
+ <implementation
+ name="com.sun.star.comp.Writer.XMLOasisAutotextEventsImporter">
+ <service name="com.sun.star.comp.Writer.XMLOasisAutotextEventsImporter"/>
+ </implementation>
+ <implementation name="xmloff::AnimationsImport">
+ <service name="com.sun.star.comp.Xmloff.AnimationsImport"/>
+ </implementation>
+</component>
diff --git a/xmlreader/inc/makefile.mk b/xmlreader/inc/makefile.mk
new file mode 100644
index 000000000000..9f84434701ac
--- /dev/null
+++ b/xmlreader/inc/makefile.mk
@@ -0,0 +1,40 @@
+#*************************************************************************
+#
+# 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 = xmlreader
+TARGET = inc
+
+ENABLE_EXCEPTIONS = TRUE
+VISIBILITY_HIDDEN = TRUE
+
+.INCLUDE: settings.mk
+.INCLUDE: target.mk
+
+.IF "$(ENABLE_PCH)" != ""
+ALLTAR: $(SLO)/precompiled.pch $(SLO)/precompiled_ex.pch
+.ENDIF
diff --git a/xmlreader/inc/pch/precompiled_xmlreader.cxx b/xmlreader/inc/pch/precompiled_xmlreader.cxx
new file mode 100644
index 000000000000..e5d584855eb8
--- /dev/null
+++ b/xmlreader/inc/pch/precompiled_xmlreader.cxx
@@ -0,0 +1,28 @@
+/*************************************************************************
+*
+* 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_xmlreader.hxx"
diff --git a/xmlreader/inc/pch/precompiled_xmlreader.hxx b/xmlreader/inc/pch/precompiled_xmlreader.hxx
new file mode 100644
index 000000000000..7561fe89f7c4
--- /dev/null
+++ b/xmlreader/inc/pch/precompiled_xmlreader.hxx
@@ -0,0 +1,32 @@
+/*************************************************************************
+*
+* 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.
+*
+************************************************************************/
+
+#if defined PRECOMPILED_HEADERS
+
+#include "sal/config.h"
+
+#endif
diff --git a/xmlreader/inc/xmlreader/detail/xmlreaderdllapi.hxx b/xmlreader/inc/xmlreader/detail/xmlreaderdllapi.hxx
new file mode 100644
index 000000000000..238661a2426f
--- /dev/null
+++ b/xmlreader/inc/xmlreader/detail/xmlreaderdllapi.hxx
@@ -0,0 +1,41 @@
+/*************************************************************************
+*
+* 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_XMLREADER_DETAIL_XMLREADERDLLAPI_HXX
+#define INCLUDED_XMLREADER_DETAIL_XMLREADERDLLAPI_HXX
+
+#include "sal/config.h"
+
+#include "sal/types.h"
+
+#if defined OOO_DLLIMPLEMENTATION_XMLREADER
+#define OOO_DLLPUBLIC_XMLREADER SAL_DLLPUBLIC_EXPORT
+#else
+#define OOO_DLLPUBLIC_XMLREADER SAL_DLLPUBLIC_IMPORT
+#endif
+
+#endif
diff --git a/configmgr/source/pad.hxx b/xmlreader/inc/xmlreader/pad.hxx
index 66a51f480023..d01574147665 100644
--- a/configmgr/source/pad.hxx
+++ b/xmlreader/inc/xmlreader/pad.hxx
@@ -25,19 +25,19 @@
*
************************************************************************/
-#ifndef INCLUDED_CONFIGMGR_SOURCE_PAD_HXX
-#define INCLUDED_CONFIGMGR_SOURCE_PAD_HXX
+#ifndef INCLUDED_XMLREADER_PAD_HXX
+#define INCLUDED_XMLREADER_PAD_HXX
#include "sal/config.h"
#include "rtl/strbuf.hxx"
#include "sal/types.h"
+#include "xmlreader/detail/xmlreaderdllapi.hxx"
+#include "xmlreader/span.hxx"
-#include "span.hxx"
+namespace xmlreader {
-namespace configmgr {
-
-class Pad {
+class OOO_DLLPUBLIC_XMLREADER Pad {
public:
void add(char const * begin, sal_Int32 length);
@@ -45,12 +45,10 @@ public:
void clear();
- bool is() const;
-
Span get() const;
private:
- void flushSpan();
+ SAL_DLLPRIVATE void flushSpan();
Span span_;
rtl::OStringBuffer buffer_;
diff --git a/configmgr/source/span.hxx b/xmlreader/inc/xmlreader/span.hxx
index 689618613700..4ec8b574f940 100644
--- a/configmgr/source/span.hxx
+++ b/xmlreader/inc/xmlreader/span.hxx
@@ -25,17 +25,20 @@
*
************************************************************************/
-#ifndef INCLUDED_CONFIGMGR_SOURCE_SPAN_HXX
-#define INCLUDED_CONFIGMGR_SOURCE_SPAN_HXX
+#ifndef INCLUDED_XMLREADER_SPAN_HXX
+#define INCLUDED_XMLREADER_SPAN_HXX
#include "sal/config.h"
#include "rtl/string.h"
#include "sal/types.h"
+#include "xmlreader/detail/xmlreaderdllapi.hxx"
-namespace configmgr {
+namespace rtl { class OUString; }
-struct Span {
+namespace xmlreader {
+
+struct OOO_DLLPUBLIC_XMLREADER Span {
char const * begin;
sal_Int32 length;
@@ -57,6 +60,8 @@ struct Span {
inline bool equals(char const * textBegin, sal_Int32 textLength) const {
return equals(Span(textBegin, textLength));
}
+
+ rtl::OUString convertFromUtf8() const;
};
}
diff --git a/configmgr/source/xmlreader.hxx b/xmlreader/inc/xmlreader/xmlreader.hxx
index 83ccac148cd4..242af58c7306 100644
--- a/configmgr/source/xmlreader.hxx
+++ b/xmlreader/inc/xmlreader/xmlreader.hxx
@@ -25,8 +25,8 @@
*
************************************************************************/
-#ifndef INCLUDED_CONFIGMGR_SOURCE_XMLREADER_HXX
-#define INCLUDED_CONFIGMGR_SOURCE_XMLREADER_HXX
+#ifndef INCLUDED_XMLREADER_XMLREADER_HXX
+#define INCLUDED_XMLREADER_XMLREADER_HXX
#include "sal/config.h"
@@ -39,13 +39,13 @@
#include "osl/file.h"
#include "rtl/ustring.hxx"
#include "sal/types.h"
+#include "xmlreader/detail/xmlreaderdllapi.hxx"
+#include "xmlreader/pad.hxx"
+#include "xmlreader/span.hxx"
-#include "pad.hxx"
-#include "span.hxx"
+namespace xmlreader {
-namespace configmgr {
-
-class XmlReader: private boost::noncopyable {
+class OOO_DLLPUBLIC_XMLREADER XmlReader: private boost::noncopyable {
public:
explicit XmlReader(rtl::OUString const & fileUrl)
SAL_THROW((
@@ -54,75 +54,46 @@ public:
~XmlReader();
- enum Namespace {
- NAMESPACE_NONE, NAMESPACE_XML, NAMESPACE_OOR, NAMESPACE_XS,
- NAMESPACE_XSI, NAMESPACE_OTHER };
+ enum { NAMESPACE_NONE = -2, NAMESPACE_UNKNOWN = -1, NAMESPACE_XML = 0 };
enum Text { TEXT_NONE, TEXT_RAW, TEXT_NORMALIZED };
enum Result { RESULT_BEGIN, RESULT_END, RESULT_TEXT, RESULT_DONE };
+ int registerNamespaceIri(Span const & iri);
+
// RESULT_BEGIN: data = localName, ns = ns
// RESULT_END: data, ns unused
// RESULT_TEXT: data = text, ns unused
- Result nextItem(Text reportText, Span * data, Namespace * ns);
+ Result nextItem(Text reportText, Span * data, int * nsId);
- bool nextAttribute(Namespace * ns, Span * localName);
+ bool nextAttribute(int * nsId, Span * localName);
// the span returned by getAttributeValue is only valid until the next call
// to nextItem or getAttributeValue
Span getAttributeValue(bool fullyNormalize);
- Namespace getNamespace(Span const & prefix) const;
+ int getNamespaceId(Span const & prefix) const;
rtl::OUString getUrl() const;
private:
- inline char read() { return pos_ == end_ ? '\0' : *pos_++; }
-
- inline char peek() { return pos_ == end_ ? '\0' : *pos_; }
-
- void normalizeLineEnds(Span const & text);
-
- void skipSpace();
-
- bool skipComment();
-
- void skipProcessingInstruction();
-
- void skipDocumentTypeDeclaration();
-
- Span scanCdataSection();
-
- bool scanName(char const ** nameColon);
+ typedef std::vector< Span > NamespaceIris;
- Namespace scanNamespaceIri(char const * begin, char const * end);
-
- char const * handleReference(char const * position, char const * end);
-
- Span handleAttributeValue(
- char const * begin, char const * end, bool fullyNormalize);
-
- Result handleStartTag(Namespace * ns, Span * localName);
-
- Result handleEndTag();
-
- void handleElementEnd();
-
- Result handleSkippedText(Span * data, Namespace * ns);
-
- Result handleRawText(Span * text);
-
- Result handleNormalizedText(Span * text);
+ // If NamespaceData (and similarly ElementData and AttributeData) is made
+ // SAL_DLLPRIVATE, at least gcc 4.2.3 erroneously warns about
+ // "'xmlreader::XmlReader' declared with greater visibility than the type of
+ // its field 'xmlreader::XmlReader::namespaces_'" (and similarly for
+ // elements_ and attributes_):
struct NamespaceData {
Span prefix;
- Namespace ns;
+ int nsId;
NamespaceData() {}
- NamespaceData(Span const & thePrefix, Namespace theNs):
- prefix(thePrefix), ns(theNs) {}
+ NamespaceData(Span const & thePrefix, int theNsId):
+ prefix(thePrefix), nsId(theNsId) {}
};
typedef std::vector< NamespaceData > NamespaceList;
@@ -130,14 +101,14 @@ private:
struct ElementData {
Span name;
NamespaceList::size_type inheritedNamespaces;
- Namespace defaultNamespace;
+ int defaultNamespaceId;
ElementData(
Span const & theName,
NamespaceList::size_type theInheritedNamespaces,
- Namespace theDefaultNamespace):
+ int theDefaultNamespaceId):
name(theName), inheritedNamespaces(theInheritedNamespaces),
- defaultNamespace(theDefaultNamespace)
+ defaultNamespaceId(theDefaultNamespaceId)
{}
};
@@ -166,10 +137,52 @@ private:
STATE_CONTENT, STATE_START_TAG, STATE_END_TAG, STATE_EMPTY_ELEMENT_TAG,
STATE_DONE };
+ SAL_DLLPRIVATE inline char read() { return pos_ == end_ ? '\0' : *pos_++; }
+
+ SAL_DLLPRIVATE inline char peek() { return pos_ == end_ ? '\0' : *pos_; }
+
+ SAL_DLLPRIVATE void normalizeLineEnds(Span const & text);
+
+ SAL_DLLPRIVATE void skipSpace();
+
+ SAL_DLLPRIVATE bool skipComment();
+
+ SAL_DLLPRIVATE void skipProcessingInstruction();
+
+ SAL_DLLPRIVATE void skipDocumentTypeDeclaration();
+
+ SAL_DLLPRIVATE Span scanCdataSection();
+
+ SAL_DLLPRIVATE bool scanName(char const ** nameColon);
+
+ SAL_DLLPRIVATE int scanNamespaceIri(
+ char const * begin, char const * end);
+
+ SAL_DLLPRIVATE char const * handleReference(
+ char const * position, char const * end);
+
+ SAL_DLLPRIVATE Span handleAttributeValue(
+ char const * begin, char const * end, bool fullyNormalize);
+
+ SAL_DLLPRIVATE Result handleStartTag(int * nsId, Span * localName);
+
+ SAL_DLLPRIVATE Result handleEndTag();
+
+ SAL_DLLPRIVATE void handleElementEnd();
+
+ SAL_DLLPRIVATE Result handleSkippedText(Span * data, int * nsId);
+
+ SAL_DLLPRIVATE Result handleRawText(Span * text);
+
+ SAL_DLLPRIVATE Result handleNormalizedText(Span * text);
+
+ SAL_DLLPRIVATE int toNamespaceId(NamespaceIris::size_type pos);
+
rtl::OUString fileUrl_;
oslFileHandle fileHandle_;
sal_uInt64 fileSize_;
void * fileAddress_;
+ NamespaceIris namespaceIris_;
NamespaceList namespaces_;
ElementStack elements_;
char const * pos_;
diff --git a/xmlreader/prj/build.lst b/xmlreader/prj/build.lst
new file mode 100644
index 000000000000..5408a5255db7
--- /dev/null
+++ b/xmlreader/prj/build.lst
@@ -0,0 +1,3 @@
+xr xmlreader : BOOST:boost cppu offuh sal stlport NULL
+xr xmlreader\inc nmake - all xr_inc NULL
+xr xmlreader\source nmake - all xr_source xr_inc NULL
diff --git a/xmlreader/prj/d.lst b/xmlreader/prj/d.lst
new file mode 100755
index 000000000000..fcb99bd30266
--- /dev/null
+++ b/xmlreader/prj/d.lst
@@ -0,0 +1,10 @@
+mkdir: %_DEST%\inc%_EXT%\xmlreader
+mkdir: %_DEST%\inc%_EXT%\xmlreader\detail
+..\%__SRC%\bin\xmlreader.dll %_DEST%\bin%_EXT%\xmlreader.dll
+..\%__SRC%\lib\ixmlreader.lib %_DEST%\lib%_EXT%\ixmlreader.lib
+..\%__SRC%\lib\libxmlreader.dylib %_DEST%\lib%_EXT%\libxmlreader.dylib
+..\%__SRC%\lib\libxmlreader.so %_DEST%\lib%_EXT%\libxmlreader.so
+..\inc\xmlreader\detail\xmlreaderdllapi.hxx %_DEST%\inc%_EXT%\xmlreader\detail\xmlreaderdllapi.hxx
+..\inc\xmlreader\pad.hxx %_DEST%\inc%_EXT%\xmlreader\pad.hxx
+..\inc\xmlreader\span.hxx %_DEST%\inc%_EXT%\xmlreader\span.hxx
+..\inc\xmlreader\xmlreader.hxx %_DEST%\inc%_EXT%\xmlreader\xmlreader.hxx
diff --git a/cpputools/source/regcomplazy/makefile.mk b/xmlreader/source/makefile.mk
index 0a4fe8477128..cb71e21a16b1 100755..100644
--- a/cpputools/source/regcomplazy/makefile.mk
+++ b/xmlreader/source/makefile.mk
@@ -1,7 +1,7 @@
#*************************************************************************
#
# 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
@@ -23,32 +23,31 @@
# <http://www.openoffice.org/license.html>
# for a copy of the LGPLv3 License.
#
-#*************************************************************************
-PRJ=..$/..
-
-PRJNAME=cpputools
-TARGET=regcomplazy
-TARGETTYPE=CUI
-LIBTARGET=NO
-
-ENABLE_EXCEPTIONS=TRUE
-
-# --- Settings -----------------------------------------------------
+#***********************************************************************/
-.INCLUDE : settings.mk
+PRJ = ..
+PRJNAME = xmlreader
+TARGET = xmlreader
-# --- Files --------------------------------------------------------
+ENABLE_EXCEPTIONS = TRUE
+VISIBILITY_HIDDEN = TRUE
-DEPOBJFILES= \
- $(OBJ)$/regcomplazy.obj
+.INCLUDE: settings.mk
-APP1TARGET=$(TARGET)
-APP1OBJS=$(DEPOBJFILES)
+CDEFS += -DOOO_DLLIMPLEMENTATION_XMLREADER
-APP1STDLIBS= \
- $(SALLIB) \
- $(SALHELPERLIB) \
- $(REGLIB)
+SLOFILES = \
+ $(SLO)/pad.obj \
+ $(SLO)/span.obj \
+ $(SLO)/xmlreader.obj
-.INCLUDE : target.mk
+SHL1IMPLIB = i$(SHL1TARGET)
+SHL1OBJS = $(SLOFILES)
+SHL1RPATH = URELIB
+SHL1STDLIBS = \
+ $(SALLIB)
+SHL1TARGET = xmlreader
+SHL1USE_EXPORTS = name
+DEF1NAME = $(SHL1TARGET)
+.INCLUDE: target.mk
diff --git a/configmgr/source/pad.cxx b/xmlreader/source/pad.cxx
index c8c7218b6da6..b1673c4a4431 100644
--- a/configmgr/source/pad.cxx
+++ b/xmlreader/source/pad.cxx
@@ -25,17 +25,16 @@
*
************************************************************************/
-#include "precompiled_configmgr.hxx"
+#include "precompiled_xmlreader.hxx"
#include "sal/config.h"
#include "osl/diagnose.h"
#include "rtl/string.h"
#include "sal/types.h"
+#include "xmlreader/pad.hxx"
+#include "xmlreader/span.hxx"
-#include "pad.hxx"
-#include "span.hxx"
-
-namespace configmgr {
+namespace xmlreader {
void Pad::add(char const * begin, sal_Int32 length) {
OSL_ASSERT(
@@ -65,11 +64,6 @@ void Pad::clear() {
buffer_.setLength(0);
}
-bool Pad::is() const {
- OSL_ASSERT(!(span_.is() && buffer_.getLength() != 0));
- return span_.is() || buffer_.getLength() != 0;
-}
-
Span Pad::get() const {
OSL_ASSERT(!(span_.is() && buffer_.getLength() != 0));
if (span_.is()) {
diff --git a/xmlreader/source/span.cxx b/xmlreader/source/span.cxx
new file mode 100644
index 000000000000..3b936553b431
--- /dev/null
+++ b/xmlreader/source/span.cxx
@@ -0,0 +1,66 @@
+/*************************************************************************
+*
+* 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_xmlreader.hxx"
+#include "sal/config.h"
+
+#include "com/sun/star/uno/RuntimeException.hpp"
+#include "com/sun/star/uno/XInterface.hpp"
+#include "osl/diagnose.h"
+#include "rtl/textcvt.h"
+#include "rtl/textenc.h"
+#include "rtl/ustring.h"
+#include "rtl/ustring.hxx"
+#include "sal/types.h"
+#include "xmlreader/span.hxx"
+
+namespace xmlreader {
+
+namespace {
+
+namespace css = com::sun::star;
+
+}
+
+rtl::OUString Span::convertFromUtf8() const {
+ OSL_ASSERT(is());
+ rtl_uString * s = 0;
+ if (!rtl_convertStringToUString(
+ &s, begin, length, RTL_TEXTENCODING_UTF8,
+ (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR |
+ RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_ERROR |
+ RTL_TEXTTOUNICODE_FLAGS_INVALID_ERROR)))
+ {
+ throw css::uno::RuntimeException(
+ rtl::OUString(
+ RTL_CONSTASCII_USTRINGPARAM("cannot convert from UTF-8")),
+ css::uno::Reference< css::uno::XInterface >());
+ }
+ return rtl::OUString(s, SAL_NO_ACQUIRE);
+}
+
+}
diff --git a/configmgr/source/xmlreader.cxx b/xmlreader/source/xmlreader.cxx
index ac6a08d18604..27350a8f0947 100644
--- a/configmgr/source/xmlreader.cxx
+++ b/xmlreader/source/xmlreader.cxx
@@ -25,9 +25,10 @@
*
************************************************************************/
-#include "precompiled_configmgr.hxx"
+#include "precompiled_xmlreader.hxx"
#include "sal/config.h"
+#include <climits>
#include <cstddef>
#include "com/sun/star/container/NoSuchElementException.hpp"
@@ -40,12 +41,11 @@
#include "rtl/ustring.h"
#include "rtl/ustring.hxx"
#include "sal/types.h"
+#include "xmlreader/pad.hxx"
+#include "xmlreader/span.hxx"
+#include "xmlreader/xmlreader.hxx"
-#include "pad.hxx"
-#include "span.hxx"
-#include "xmlreader.hxx"
-
-namespace configmgr {
+namespace xmlreader {
namespace {
@@ -99,15 +99,12 @@ XmlReader::XmlReader(rtl::OUString const & fileUrl)
fileUrl_),
css::uno::Reference< css::uno::XInterface >());
}
+ namespaceIris_.push_back(
+ Span(
+ RTL_CONSTASCII_STRINGPARAM(
+ "http://www.w3.org/XML/1998/namespace")));
namespaces_.push_back(
NamespaceData(Span(RTL_CONSTASCII_STRINGPARAM("xml")), NAMESPACE_XML));
- namespaces_.push_back(
- NamespaceData(Span(RTL_CONSTASCII_STRINGPARAM("xsi")), NAMESPACE_XSI));
- // old user layer .xcu files used the xsi namespace prefix without
- // declaring a corresponding namespace binding, see issue 77174; reading
- // those files during migration would fail without this hack that can be
- // removed once migration is no longer relevant (see
- // Components::parseModificationLayer)
pos_ = static_cast< char * >(fileAddress_);
end_ = pos_ + fileSize_;
state_ = STATE_CONTENT;
@@ -124,21 +121,39 @@ XmlReader::~XmlReader() {
}
}
-XmlReader::Result XmlReader::nextItem(
- Text reportText, Span * data, Namespace * ns)
+int XmlReader::registerNamespaceIri(Span const & iri) {
+ int id = toNamespaceId(namespaceIris_.size());
+ namespaceIris_.push_back(iri);
+ if (iri.equals(
+ Span(
+ RTL_CONSTASCII_STRINGPARAM(
+ "http://www.w3.org/2001/XMLSchema-instance"))))
+ {
+ // Old user layer .xcu files used the xsi namespace prefix without
+ // declaring a corresponding namespace binding, see issue 77174; reading
+ // those files during migration would fail without this hack that can be
+ // removed once migration is no longer relevant (see
+ // configmgr::Components::parseModificationLayer):
+ namespaces_.push_back(
+ NamespaceData(Span(RTL_CONSTASCII_STRINGPARAM("xsi")), id));
+ }
+ return id;
+}
+
+XmlReader::Result XmlReader::nextItem(Text reportText, Span * data, int * nsId)
{
switch (state_) {
case STATE_CONTENT:
switch (reportText) {
case TEXT_NONE:
- return handleSkippedText(data, ns);
+ return handleSkippedText(data, nsId);
case TEXT_RAW:
return handleRawText(data);
case TEXT_NORMALIZED:
return handleNormalizedText(data);
}
case STATE_START_TAG:
- return handleStartTag(ns, data);
+ return handleStartTag(nsId, data);
case STATE_END_TAG:
return handleEndTag();
case STATE_EMPTY_ELEMENT_TAG:
@@ -149,8 +164,8 @@ XmlReader::Result XmlReader::nextItem(
}
}
-bool XmlReader::nextAttribute(Namespace * ns, Span * localName) {
- OSL_ASSERT(ns != 0 && localName != 0);
+bool XmlReader::nextAttribute(int * nsId, Span * localName) {
+ OSL_ASSERT(nsId != 0 && localName != 0);
if (firstAttribute_) {
currentAttribute_ = attributes_.begin();
firstAttribute_ = false;
@@ -161,12 +176,12 @@ bool XmlReader::nextAttribute(Namespace * ns, Span * localName) {
return false;
}
if (currentAttribute_->nameColon == 0) {
- *ns = NAMESPACE_NONE;
+ *nsId = NAMESPACE_NONE;
*localName = Span(
currentAttribute_->nameBegin,
currentAttribute_->nameEnd - currentAttribute_->nameBegin);
} else {
- *ns = getNamespace(
+ *nsId = getNamespaceId(
Span(
currentAttribute_->nameBegin,
currentAttribute_->nameColon - currentAttribute_->nameBegin));
@@ -183,15 +198,15 @@ Span XmlReader::getAttributeValue(bool fullyNormalize) {
fullyNormalize);
}
-XmlReader::Namespace XmlReader::getNamespace(Span const & prefix) const {
+int XmlReader::getNamespaceId(Span const & prefix) const {
for (NamespaceList::const_reverse_iterator i(namespaces_.rbegin());
i != namespaces_.rend(); ++i)
{
if (prefix.equals(i->prefix)) {
- return i->ns;
+ return i->nsId;
}
}
- return NAMESPACE_OTHER;
+ return NAMESPACE_UNKNOWN;
}
rtl::OUString XmlReader::getUrl() const {
@@ -409,35 +424,15 @@ bool XmlReader::scanName(char const ** nameColon) {
}
}
-XmlReader::Namespace XmlReader::scanNamespaceIri(
- char const * begin, char const * end)
-{
+int XmlReader::scanNamespaceIri(char const * begin, char const * end) {
OSL_ASSERT(begin != 0 && begin <= end);
Span iri(handleAttributeValue(begin, end, false));
- struct Iri {
- char const * begin;
- sal_Int32 length;
- XmlReader::Namespace ns;
- };
- static Iri const iris[] = {
- { RTL_CONSTASCII_STRINGPARAM("http://openoffice.org/2001/registry"),
- XmlReader::NAMESPACE_OOR },
- { RTL_CONSTASCII_STRINGPARAM("http://www.w3.org/2001/XMLSchema"),
- XmlReader::NAMESPACE_XS },
- { RTL_CONSTASCII_STRINGPARAM(
- "http://www.w3.org/2001/XMLSchema-instance"),
- XmlReader::NAMESPACE_XSI },
- { RTL_CONSTASCII_STRINGPARAM("http://www.w3.org/XML/1998/namespace"),
- XmlReader::NAMESPACE_XML } };
- for (std::size_t i = 0; i < sizeof iris / sizeof iris[0]; ++i) {
- if (rtl_str_compare_WithLength(
- iri.begin, iri.length, iris[i].begin, iris[i].length) ==
- 0)
- {
- return iris[i].ns;
+ for (NamespaceIris::size_type i = 0; i < namespaceIris_.size(); ++i) {
+ if (namespaceIris_[i].equals(iri)) {
+ return toNamespaceId(i);
}
}
- return XmlReader::NAMESPACE_OTHER;
+ return XmlReader::NAMESPACE_UNKNOWN;
}
char const * XmlReader::handleReference(char const * position, char const * end)
@@ -667,8 +662,8 @@ Span XmlReader::handleAttributeValue(
return pad_.get();
}
-XmlReader::Result XmlReader::handleStartTag(Namespace * ns, Span * localName) {
- OSL_ASSERT(ns != 0 && localName);
+XmlReader::Result XmlReader::handleStartTag(int * nsId, Span * localName) {
+ OSL_ASSERT(nsId != 0 && localName);
char const * nameBegin = pos_;
char const * nameColon = 0;
if (!scanName(&nameColon)) {
@@ -680,7 +675,7 @@ XmlReader::Result XmlReader::handleStartTag(Namespace * ns, Span * localName) {
char const * nameEnd = pos_;
NamespaceList::size_type inheritedNamespaces = namespaces_.size();
bool hasDefaultNs = false;
- Namespace defaultNs = NAMESPACE_NONE;
+ int defaultNsId = NAMESPACE_NONE;
attributes_.clear();
for (;;) {
char const * p = pos_;
@@ -739,7 +734,7 @@ XmlReader::Result XmlReader::handleStartTag(Namespace * ns, Span * localName) {
RTL_CONSTASCII_STRINGPARAM("xmlns")))
{
hasDefaultNs = true;
- defaultNs = scanNamespaceIri(valueBegin, valueEnd);
+ defaultNsId = scanNamespaceIri(valueBegin, valueEnd);
} else if (attrNameColon != 0 &&
Span(attrNameBegin, attrNameColon - attrNameBegin).equals(
RTL_CONSTASCII_STRINGPARAM("xmlns")))
@@ -756,7 +751,7 @@ XmlReader::Result XmlReader::handleStartTag(Namespace * ns, Span * localName) {
}
}
if (!hasDefaultNs && !elements_.empty()) {
- defaultNs = elements_.top().defaultNamespace;
+ defaultNsId = elements_.top().defaultNamespaceId;
}
firstAttribute_ = true;
if (peek() == '/') {
@@ -775,12 +770,12 @@ XmlReader::Result XmlReader::handleStartTag(Namespace * ns, Span * localName) {
elements_.push(
ElementData(
Span(nameBegin, nameEnd - nameBegin), inheritedNamespaces,
- defaultNs));
+ defaultNsId));
if (nameColon == 0) {
- *ns = defaultNs;
+ *nsId = defaultNsId;
*localName = Span(nameBegin, nameEnd - nameBegin);
} else {
- *ns = getNamespace(Span(nameBegin, nameColon - nameBegin));
+ *nsId = getNamespaceId(Span(nameBegin, nameColon - nameBegin));
*localName = Span(nameColon + 1, nameEnd - (nameColon + 1));
}
return RESULT_BEGIN;
@@ -823,7 +818,7 @@ void XmlReader::handleElementEnd() {
state_ = elements_.empty() ? STATE_DONE : STATE_CONTENT;
}
-XmlReader::Result XmlReader::handleSkippedText(Span * data, Namespace * ns) {
+XmlReader::Result XmlReader::handleSkippedText(Span * data, int * nsId) {
for (;;) {
sal_Int32 i = rtl_str_indexOfChar_WithLength(pos_, end_ - pos_, '<');
if (i < 0) {
@@ -849,7 +844,7 @@ XmlReader::Result XmlReader::handleSkippedText(Span * data, Namespace * ns) {
skipProcessingInstruction();
break;
default:
- return handleStartTag(ns, data);
+ return handleStartTag(nsId, data);
}
}
}
@@ -1051,4 +1046,9 @@ XmlReader::Result XmlReader::handleNormalizedText(Span * text) {
}
}
+int XmlReader::toNamespaceId(NamespaceIris::size_type pos) {
+ OSL_ASSERT(pos <= INT_MAX);
+ return static_cast< int >(pos);
+}
+
}
diff --git a/xmlscript/prj/d.lst b/xmlscript/prj/d.lst
index 51b2891e4926..2f1ff7e37785 100644
--- a/xmlscript/prj/d.lst
+++ b/xmlscript/prj/d.lst
@@ -11,3 +11,4 @@ mkdir: %_DEST%\inc%_EXT%\xmlscript
..\inc\xmlscript\xmlns.h %_DEST%\inc%_EXT%\xmlscript\xmlns.h
..\dtd\*.dtd %_DEST%\bin%_EXT%\*.dtd
+..\%__SRC%\misc\xcr.component %_DEST%\xml%_EXT%\xcr.component
diff --git a/xmlscript/source/misc/unoservices.cxx b/xmlscript/source/misc/unoservices.cxx
index b95665eef01e..0d4d8db169ac 100644
--- a/xmlscript/source/misc/unoservices.cxx
+++ b/xmlscript/source/misc/unoservices.cxx
@@ -115,15 +115,6 @@ extern "C"
// -----------------------------------------------------------------------------
- sal_Bool SAL_CALL component_writeInfo(
- void * pServiceManager, void * pRegistryKey )
- {
- return ::cppu::component_writeInfoHelper(
- pServiceManager, pRegistryKey, ::xmlscript::s_entries );
- }
-
- // -----------------------------------------------------------------------------
-
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * pRegistryKey )
{
diff --git a/xmlscript/util/makefile.mk b/xmlscript/util/makefile.mk
index 3ccf63dc3b89..ba731470b2e4 100644
--- a/xmlscript/util/makefile.mk
+++ b/xmlscript/util/makefile.mk
@@ -74,3 +74,11 @@ $(MISC)$/$(SHL1TARGET).flt : makefile.mk xcr.flt
@echo ------------------------------
@echo Making: $@
$(TYPE) xcr.flt > $@
+
+ALLTAR : $(MISC)/xcr.component
+
+$(MISC)/xcr.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ xcr.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt xcr.component
diff --git a/xmlscript/util/xcr.component b/xmlscript/util/xcr.component
new file mode 100644
index 000000000000..5ffe7f862fd7
--- /dev/null
+++ b/xmlscript/util/xcr.component
@@ -0,0 +1,46 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.xml.input.SaxDocumentHandler">
+ <service name="com.sun.star.xml.input.SaxDocumentHandler"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.xmlscript.XMLBasicExporter">
+ <service name="com.sun.star.document.XMLBasicExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.xmlscript.XMLBasicImporter">
+ <service name="com.sun.star.document.XMLBasicImporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.xmlscript.XMLOasisBasicExporter">
+ <service name="com.sun.star.document.XMLOasisBasicExporter"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.xmlscript.XMLOasisBasicImporter">
+ <service name="com.sun.star.document.XMLOasisBasicImporter"/>
+ </implementation>
+</component>
diff --git a/xmlsecurity/prj/d.lst b/xmlsecurity/prj/d.lst
index 270415164c0f..94967c20a2e8 100644
--- a/xmlsecurity/prj/d.lst
+++ b/xmlsecurity/prj/d.lst
@@ -8,3 +8,6 @@ mkdir: %COMMON_DEST%\bin%_EXT%\hid
..\%__SRC%\lib\libxmlsecurity.so %_DEST%\lib%_EXT%\libxmlsecurity.so
..\%__SRC%\lib\*.dylib %_DEST%\lib%_EXT%\*
..\%__SRC%\bin\xmlsec*.res %_DEST%\bin%_EXT%\xmlsec*.res
+..\%__SRC%\misc\xmlsecurity.component %_DEST%\xml%_EXT%\xmlsecurity.component
+..\%__SRC%\misc\xsec_fw.component %_DEST%\xml%_EXT%\xsec_fw.component
+..\%__SRC%\misc\xsec_xmlsec.component %_DEST%\xml%_EXT%\xsec_xmlsec.component
diff --git a/xmlsecurity/source/component/registerservices.cxx b/xmlsecurity/source/component/registerservices.cxx
index 653b1038ba71..0f6efeff05ce 100644
--- a/xmlsecurity/source/component/registerservices.cxx
+++ b/xmlsecurity/source/component/registerservices.cxx
@@ -46,48 +46,6 @@ void SAL_CALL component_getImplementationEnvironment( const sal_Char ** ppEnvTyp
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-sal_Bool SAL_CALL component_writeInfo( void* /*pServiceManager*/, void* pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- sal_Int32 nPos = 0;
- // SERVICE DocumentDigitalSignatures
- nPos = 0;
- uno::Reference< registry::XRegistryKey > xNewKey(
- reinterpret_cast< registry::XRegistryKey* >( pRegistryKey )->createKey( DocumentDigitalSignatures::GetImplementationName() ) );
-
- xNewKey = xNewKey->createKey( rtl::OUString::createFromAscii( "/UNO/SERVICES" ) );
-
- const uno::Sequence< rtl::OUString >& rSNL = DocumentDigitalSignatures::GetSupportedServiceNames();
- const rtl::OUString* pArray = rSNL.getConstArray();
- for ( nPos = rSNL.getLength(); nPos--; )
- xNewKey->createKey( pArray[nPos] );
-
- // SERVICE CertificateContainer
- nPos = 0;
- uno::Reference< registry::XRegistryKey > xNewKeyCertificateContainer(
- reinterpret_cast< registry::XRegistryKey* >( pRegistryKey )->createKey( CertificateContainer::impl_getStaticImplementationName() ) );
- xNewKeyCertificateContainer = xNewKeyCertificateContainer->createKey( rtl::OUString::createFromAscii( "/UNO/SERVICES" ) );
-
- const uno::Sequence< rtl::OUString >& rSNLCertificateContainer = CertificateContainer::impl_getStaticSupportedServiceNames();
- const rtl::OUString* pArrayCertificateContainer = rSNLCertificateContainer.getConstArray();
- for ( nPos = rSNLCertificateContainer.getLength(); nPos--; )
- xNewKeyCertificateContainer->createKey( pArrayCertificateContainer[nPos] );
-
- //-----------------------------
-
- return sal_True;
- }
- catch (registry::InvalidRegistryException &)
- {
- DBG_ERROR( "InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
-
void* SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ )
{
void* pRet = 0;
diff --git a/xmlsecurity/source/framework/xsec_framework.cxx b/xmlsecurity/source/framework/xsec_framework.cxx
index 57eb78028df3..a9c418595901 100644
--- a/xmlsecurity/source/framework/xsec_framework.cxx
+++ b/xmlsecurity/source/framework/xsec_framework.cxx
@@ -59,83 +59,6 @@ void SAL_CALL component_getImplementationEnvironment(
}
//==================================================================================================
-sal_Bool SAL_CALL component_writeInfo(
- void * /*pServiceManager*/, void * pRegistryKey )
-{
- if (pRegistryKey)
- {
- try
- {
- //Decryptor
- sal_Int32 nPos = 0;
- Reference< XRegistryKey > xNewKey(
- reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( DecryptorImpl_getImplementationName() ) );
- xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) );
-
- const Sequence< OUString > & rSNL = DecryptorImpl_getSupportedServiceNames();
- const OUString * pArray = rSNL.getConstArray();
- for ( nPos = rSNL.getLength(); nPos--; )
- xNewKey->createKey( pArray[nPos] );
-
- //Encryptor
- xNewKey = reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( EncryptorImpl_getImplementationName() );
- xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) );
- const Sequence< OUString > & rSNL2 = EncryptorImpl_getSupportedServiceNames();
- pArray = rSNL2.getConstArray();
- for ( nPos = rSNL2.getLength(); nPos--; )
- xNewKey->createKey( pArray[nPos] );
-
- //SignatureCreator
- xNewKey = reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( SignatureCreatorImpl_getImplementationName() );
- xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) );
- const Sequence< OUString > & rSNL3 = SignatureCreatorImpl_getSupportedServiceNames();
- pArray = rSNL3.getConstArray();
- for ( nPos = rSNL3.getLength(); nPos--; )
- xNewKey->createKey( pArray[nPos] );
-
- //SignatureVerifier
- xNewKey = reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( SignatureVerifierImpl_getImplementationName() );
- xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) );
- const Sequence< OUString > & rSNL4 = SignatureVerifierImpl_getSupportedServiceNames();
- pArray = rSNL4.getConstArray();
- for ( nPos = rSNL4.getLength(); nPos--; )
- xNewKey->createKey( pArray[nPos] );
-
- //SAXEventKeeper
- xNewKey = reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( SAXEventKeeperImpl_getImplementationName() );
- xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) );
- const Sequence< OUString > & rSNL5 = SAXEventKeeperImpl_getSupportedServiceNames();
- pArray = rSNL5.getConstArray();
- for ( nPos = rSNL5.getLength(); nPos--; )
- xNewKey->createKey( pArray[nPos] );
-
- //XMLSignatureTemplateImpl
- xNewKey = reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( XMLSignatureTemplateImpl::impl_getImplementationName() );
- xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) );
- const Sequence< OUString > & rSNL6 = XMLSignatureTemplateImpl::impl_getSupportedServiceNames();
- pArray = rSNL6.getConstArray();
- for ( nPos = rSNL6.getLength(); nPos--; )
- xNewKey->createKey( pArray[nPos] );
-
- // XMLEncryptionTemplateImpl
- xNewKey = reinterpret_cast< XRegistryKey * >( pRegistryKey )->createKey( XMLEncryptionTemplateImpl::impl_getImplementationName() );
- xNewKey = xNewKey->createKey( OUString::createFromAscii( "/UNO/SERVICES" ) );
- const Sequence< OUString > & rSNL7 = XMLEncryptionTemplateImpl::impl_getSupportedServiceNames();
- pArray = rSNL7.getConstArray();
- for ( nPos = rSNL7.getLength(); nPos--; )
- xNewKey->createKey( pArray[nPos] );
-
- return sal_True;
- }
- catch (InvalidRegistryException &)
- {
- OSL_ENSURE( sal_False, "### InvalidRegistryException!" );
- }
- }
- return sal_False;
-}
-
-//==================================================================================================
void * SAL_CALL component_getFactory(
const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ )
{
diff --git a/xmlsecurity/source/xmlsec/xsec_xmlsec.cxx b/xmlsecurity/source/xmlsec/xsec_xmlsec.cxx
index 60a0dbe097a3..44f11b8d0874 100644
--- a/xmlsecurity/source/xmlsec/xsec_xmlsec.cxx
+++ b/xmlsecurity/source/xmlsec/xsec_xmlsec.cxx
@@ -94,12 +94,10 @@ extern "C"
{
#if defined( XMLSEC_CRYPTO_NSS )
-extern sal_Bool nss_component_writeInfo( void*, void* );
extern void* nss_component_getFactory( const sal_Char*, void*, void* );
#endif
#if defined( XMLSEC_CRYPTO_MSCRYPTO )
-extern sal_Bool mscrypt_component_writeInfo( void*, void* );
extern void* mscrypt_component_getFactory( const sal_Char*, void*, void* );
#endif
@@ -109,75 +107,6 @@ void SAL_CALL component_getImplementationEnvironment(
*ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME;
}
-
-sal_Bool SAL_CALL component_writeInfo( void* pServiceManager , void* pRegistryKey )
-{
- sal_Bool result = sal_False;
- sal_Int32 i ;
- OUString sKeyName ;
- Reference< XRegistryKey > xNewKey ;
- Sequence< OUString > seqServices ;
- Reference< XRegistryKey > xKey( reinterpret_cast< XRegistryKey* >( pRegistryKey ) ) ;
-
- if( xKey.is() ) {
- // try {
- // XMLElementWrapper_XmlSecImpl
- sKeyName = OUString( RTL_CONSTASCII_USTRINGPARAM( "/" ) ) ;
- sKeyName += XMLElementWrapper_XmlSecImpl_getImplementationName() ;
- sKeyName += OUString::createFromAscii( "/UNO/SERVICES" ) ;
-
- xNewKey = xKey->createKey( sKeyName ) ;
- if( xNewKey.is() ) {
- seqServices = XMLElementWrapper_XmlSecImpl_getSupportedServiceNames() ;
- for( i = seqServices.getLength() ; i -- ; )
- xNewKey->createKey( seqServices.getConstArray()[i] ) ;
- }
-
- // XMLDocumentWrapper_XmlSecImpl
- sKeyName = OUString( RTL_CONSTASCII_USTRINGPARAM( "/" ) ) ;
- sKeyName += XMLDocumentWrapper_XmlSecImpl_getImplementationName() ;
- sKeyName += OUString::createFromAscii( "/UNO/SERVICES" ) ;
-
- xNewKey = xKey->createKey( sKeyName ) ;
- if( xNewKey.is() ) {
- seqServices = XMLDocumentWrapper_XmlSecImpl_getSupportedServiceNames() ;
- for( i = seqServices.getLength() ; i -- ; )
- xNewKey->createKey( seqServices.getConstArray()[i] ) ;
- }
-
- // SerialNumberAdapterImpl
- sKeyName = OUString( RTL_CONSTASCII_USTRINGPARAM( "/" ) ) ;
- sKeyName += SerialNumberAdapterImpl_getImplementationName() ;
- sKeyName += OUString::createFromAscii( "/UNO/SERVICES" ) ;
-
- xNewKey = xKey->createKey( sKeyName ) ;
- if( xNewKey.is() ) {
- seqServices = SerialNumberAdapterImpl_getSupportedServiceNames() ;
- for( i = seqServices.getLength() ; i -- ; )
- xNewKey->createKey( seqServices.getConstArray()[i] ) ;
- }
-
-#if defined( XMLSEC_CRYPTO_NSS )
- result = nss_component_writeInfo( pServiceManager, pRegistryKey ) ;
- if( !result )
- return sal_False ;
-#endif
-
-#if defined( XMLSEC_CRYPTO_MSCRYPTO )
- result = mscrypt_component_writeInfo( pServiceManager, pRegistryKey ) ;
- if( !result )
- return sal_False ;
-#endif
-
- //} catch( InvalidRegistryException & ) {
- // //we should not ignore exceptions
- // return sal_False ;
- //}
- }
-
- return result;
-}
-
void* SAL_CALL component_getFactory( const sal_Char* pImplName , void* pServiceManager , void* pRegistryKey )
{
void* pRet = 0;
diff --git a/xmlsecurity/util/exports_xsmscrypt.dxp b/xmlsecurity/util/exports_xsmscrypt.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/xmlsecurity/util/exports_xsmscrypt.dxp
+++ b/xmlsecurity/util/exports_xsmscrypt.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/xmlsecurity/util/exports_xsnss.dxp b/xmlsecurity/util/exports_xsnss.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/xmlsecurity/util/exports_xsnss.dxp
+++ b/xmlsecurity/util/exports_xsnss.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/xmlsecurity/util/makefile.mk b/xmlsecurity/util/makefile.mk
index 6ef221c7e309..75ef30c7c5ac 100644
--- a/xmlsecurity/util/makefile.mk
+++ b/xmlsecurity/util/makefile.mk
@@ -172,3 +172,30 @@ DEF4NAME=$(SHL4TARGET)
$(MISC)$/$(SHL3TARGET).flt: makefile.mk
$(TYPE) $(SHL3TARGET).flt > $@
+
+ALLTAR : \
+ $(MISC)/xmlsecurity.component \
+ $(MISC)/xsec_fw.component \
+ $(MISC)/xsec_xmlsec.component
+
+.IF "$(OS)" == "WNT"
+my_platform = .windows
+.END
+
+$(MISC)/xmlsecurity.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt xmlsecurity.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL4TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt xmlsecurity.component
+
+$(MISC)/xsec_fw.component .ERRREMOVE : $(SOLARENV)/bin/createcomponent.xslt \
+ xsec_fw.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt xsec_fw.component
+
+$(MISC)/xsec_xmlsec.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt xsec_xmlsec.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL2TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt xsec_xmlsec$(my_platform).component
diff --git a/xmlsecurity/util/xmlsecurity.component b/xmlsecurity/util/xmlsecurity.component
new file mode 100644
index 000000000000..b0759e937dab
--- /dev/null
+++ b/xmlsecurity/util/xmlsecurity.component
@@ -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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.security.CertificateContainer">
+ <service name="com.sun.star.security.CertificateContainer"/>
+ </implementation>
+ <implementation name="com.sun.star.security.DocumentDigitalSignatures">
+ <service name="com.sun.star.security.DocumentDigitalSignatures"/>
+ </implementation>
+</component>
diff --git a/xmlsecurity/util/xsec_fw.component b/xmlsecurity/util/xsec_fw.component
new file mode 100644
index 000000000000..eb9e3962a963
--- /dev/null
+++ b/xmlsecurity/util/xsec_fw.component
@@ -0,0 +1,56 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.xml.security.framework.DecryptorImpl">
+ <service name="com.sun.star.xml.crypto.sax.Decryptor"/>
+ </implementation>
+ <implementation name="com.sun.star.xml.security.framework.EncryptorImpl">
+ <service name="com.sun.star.xml.crypto.sax.Encryptor"/>
+ </implementation>
+ <implementation name="com.sun.star.xml.security.framework.SAXEventKeeperImpl">
+ <service name="com.sun.star.xml.crypto.sax.SAXEventKeeper"/>
+ </implementation>
+ <implementation
+ name="com.sun.star.xml.security.framework.SignatureCreatorImpl">
+ <service name="com.sun.star.xml.crypto.sax.SignatureCreator"/>
+ </implementation>
+ <implementation
+ name="com.sun.star.xml.security.framework.SignatureVerifierImpl">
+ <service name="com.sun.star.xml.crypto.sax.SignatureVerifier"/>
+ </implementation>
+ <implementation
+ name="com.sun.star.xml.security.framework.XMLEncryptionTemplateImpl">
+ <service name="com.sun.star.xml.crypto.XMLEncryptionTemplate"/>
+ </implementation>
+ <implementation
+ name="com.sun.star.xml.security.framework.XMLSignatureTemplateImpl">
+ <service name="com.sun.star.xml.crypto.XMLSignatureTemplate"/>
+ </implementation>
+</component>
diff --git a/xmlsecurity/util/xsec_fw.dxp b/xmlsecurity/util/xsec_fw.dxp
index 9630d7e06768..f0e1c69934bc 100644
--- a/xmlsecurity/util/xsec_fw.dxp
+++ b/xmlsecurity/util/xsec_fw.dxp
@@ -1,3 +1,2 @@
component_getImplementationEnvironment
-component_writeInfo
component_getFactory
diff --git a/xmlsecurity/util/xsec_xmlsec.component b/xmlsecurity/util/xsec_xmlsec.component
new file mode 100644
index 000000000000..de991899f026
--- /dev/null
+++ b/xmlsecurity/util/xsec_xmlsec.component
@@ -0,0 +1,55 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.security.SerialNumberAdapter">
+ <service name="com.sun.star.security.SerialNumberAdapter"/>
+ </implementation>
+ <implementation name="com.sun.star.xml.security.bridge.xmlsec.SEInitializer_NssImpl">
+ <service name="com.sun.star.xml.crypto.SEInitializer"/>
+ </implementation>
+ <implementation name="com.sun.star.xml.security.bridge.xmlsec.SecurityEnvironment_NssImpl">
+ <service name="com.sun.star.xml.crypto.SecurityEnvironment"/>
+ </implementation>
+ <implementation name="com.sun.star.xml.security.bridge.xmlsec.XMLDocumentWrapper_XmlSecImpl">
+ <service name="com.sun.star.xml.wrapper.XMLDocumentWrapper"/>
+ </implementation>
+ <implementation name="com.sun.star.xml.security.bridge.xmlsec.XMLElementWrapper_XmlSecImpl">
+ <service name="com.sun.star.xml.wrapper.XMLElementWrapper"/>
+ </implementation>
+ <implementation name="com.sun.star.xml.security.bridge.xmlsec.XMLEncryption_NssImpl">
+ <service name="com.sun.star.xml.crypto.XMLEncryption"/>
+ </implementation>
+ <implementation name="com.sun.star.xml.security.bridge.xmlsec.XMLSecurityContext_NssImpl">
+ <service name="com.sun.star.xml.crypto.XMLSecurityContext"/>
+ </implementation>
+ <implementation name="com.sun.star.xml.security.bridge.xmlsec.XMLSignature_NssImpl">
+ <service name="com.sun.star.xml.crypto.XMLSignature"/>
+ </implementation>
+</component>
diff --git a/xmlsecurity/util/xsec_xmlsec.windows.component b/xmlsecurity/util/xsec_xmlsec.windows.component
new file mode 100644
index 000000000000..fb11cc6e9d36
--- /dev/null
+++ b/xmlsecurity/util/xsec_xmlsec.windows.component
@@ -0,0 +1,55 @@
+<?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.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.security.SerialNumberAdapter">
+ <service name="com.sun.star.security.SerialNumberAdapter"/>
+ </implementation>
+ <implementation name="com.sun.star.xml.security.bridge.xmlsec.SEInitializer_MSCryptImpl">
+ <service name="com.sun.star.xml.crypto.SEInitializer"/>
+ </implementation>
+ <implementation name="com.sun.star.xml.security.bridge.xmlsec.SecurityEnvironment_MSCryptImpl">
+ <service name="com.sun.star.xml.crypto.SecurityEnvironment"/>
+ </implementation>
+ <implementation name="com.sun.star.xml.security.bridge.xmlsec.XMLDocumentWrapper_XmlSecImpl">
+ <service name="com.sun.star.xml.wrapper.XMLDocumentWrapper"/>
+ </implementation>
+ <implementation name="com.sun.star.xml.security.bridge.xmlsec.XMLElementWrapper_XmlSecImpl">
+ <service name="com.sun.star.xml.wrapper.XMLElementWrapper"/>
+ </implementation>
+ <implementation name="com.sun.star.xml.security.bridge.xmlsec.XMLEncryption_MSCryptImpl">
+ <service name="com.sun.star.xml.crypto.XMLEncryption"/>
+ </implementation>
+ <implementation name="com.sun.star.xml.security.bridge.xmlsec.XMLSecurityContext_MSCryptImpl">
+ <service name="com.sun.star.xml.crypto.XMLSecurityContext"/>
+ </implementation>
+ <implementation name="com.sun.star.xml.security.bridge.xmlsec.XMLSignature_MSCryptImpl">
+ <service name="com.sun.star.xml.crypto.XMLSignature"/>
+ </implementation>
+</component>