API CHANGE: Remove obsolete regcomp from URE
Change-Id: Iaec5e0fd53d340f028e271f28e99a73dedc636f7
This commit is contained in:
parent
b980eca67e
commit
b7215602c0
@ -176,7 +176,6 @@ endif
|
|||||||
ifneq ($(OS),IOS)
|
ifneq ($(OS),IOS)
|
||||||
|
|
||||||
$(eval $(call gb_Helper_register_executables,UREBIN,\
|
$(eval $(call gb_Helper_register_executables,UREBIN,\
|
||||||
regcomp \
|
|
||||||
regmerge \
|
regmerge \
|
||||||
regview \
|
regview \
|
||||||
uno \
|
uno \
|
||||||
|
@ -1,44 +0,0 @@
|
|||||||
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
|
|
||||||
# Version: MPL 1.1 / GPLv3+ / LGPLv3+
|
|
||||||
#
|
|
||||||
# The contents of this file are subject to the Mozilla Public License Version
|
|
||||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
|
||||||
# the License or as specified alternatively below. You may obtain a copy of
|
|
||||||
# the License at http://www.mozilla.org/MPL/
|
|
||||||
#
|
|
||||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
|
||||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
||||||
# for the specific language governing rights and limitations under the
|
|
||||||
# License.
|
|
||||||
#
|
|
||||||
# Major Contributor(s):
|
|
||||||
# Copyright (C) 2012 David Ostrovsky <d.ostrovsky@gmx.de> (initial developer)
|
|
||||||
#
|
|
||||||
# All Rights Reserved.
|
|
||||||
#
|
|
||||||
# For minor contributions see the git repository.
|
|
||||||
#
|
|
||||||
# Alternatively, the contents of this file may be used under the terms of
|
|
||||||
# either the GNU General Public License Version 3 or later (the "GPLv3+"), or
|
|
||||||
# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
|
|
||||||
# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
|
|
||||||
# instead of those above.
|
|
||||||
|
|
||||||
$(eval $(call gb_Executable_Executable,regcomp))
|
|
||||||
|
|
||||||
$(eval $(call gb_Executable_use_internal_comprehensive_api,regcomp,\
|
|
||||||
udkapi \
|
|
||||||
))
|
|
||||||
|
|
||||||
$(eval $(call gb_Executable_use_libraries,regcomp,\
|
|
||||||
cppu \
|
|
||||||
cppuhelper \
|
|
||||||
sal \
|
|
||||||
$(gb_UWINAPI) \
|
|
||||||
))
|
|
||||||
|
|
||||||
$(eval $(call gb_Executable_add_exception_objects,regcomp,\
|
|
||||||
cpputools/source/registercomponent/registercomponent \
|
|
||||||
))
|
|
||||||
|
|
||||||
# vim:set shiftwidth=4 softtabstop=4 expandtab:
|
|
@ -33,7 +33,6 @@ $(eval $(call gb_Module_add_targets,cpputools,\
|
|||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call gb_Module_add_targets,cpputools,\
|
$(eval $(call gb_Module_add_targets,cpputools,\
|
||||||
Executable_regcomp \
|
|
||||||
Executable_regsingleton \
|
Executable_regsingleton \
|
||||||
Executable_uno \
|
Executable_uno \
|
||||||
))
|
))
|
||||||
|
@ -28,7 +28,6 @@
|
|||||||
# because the installation system is so incredibly inflexible...
|
# because the installation system is so incredibly inflexible...
|
||||||
$(eval $(call gb_Package_Package,cpputools_bin,$(gb_Executable_BINDIR)))
|
$(eval $(call gb_Package_Package,cpputools_bin,$(gb_Executable_BINDIR)))
|
||||||
|
|
||||||
$(eval $(call gb_Package_add_file,cpputools_bin,bin/regcomp.bin,regcomp))
|
|
||||||
$(eval $(call gb_Package_add_file,cpputools_bin,bin/uno.bin,uno))
|
$(eval $(call gb_Package_add_file,cpputools_bin,bin/uno.bin,uno))
|
||||||
|
|
||||||
# vim: set shiftwidth=4 tabstop=4 noexpandtab:
|
# vim: set shiftwidth=4 tabstop=4 noexpandtab:
|
||||||
|
@ -1,841 +0,0 @@
|
|||||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
||||||
/*
|
|
||||||
* This file is part of the LibreOffice project.
|
|
||||||
*
|
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
||||||
*
|
|
||||||
* This file incorporates work covered by the following license notice:
|
|
||||||
*
|
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
||||||
* contributor license agreements. See the NOTICE file distributed
|
|
||||||
* with this work for additional information regarding copyright
|
|
||||||
* ownership. The ASF licenses this file to you under the Apache
|
|
||||||
* License, Version 2.0 (the "License"); you may not use this file
|
|
||||||
* except in compliance with the License. You may obtain a copy of
|
|
||||||
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
|
||||||
*/
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
#include "sal/main.h"
|
|
||||||
#include <rtl/strbuf.hxx>
|
|
||||||
#include <rtl/ustrbuf.hxx>
|
|
||||||
|
|
||||||
#include <cppuhelper/servicefactory.hxx>
|
|
||||||
#include <cppuhelper/shlib.hxx>
|
|
||||||
|
|
||||||
#include <com/sun/star/container/XSet.hpp>
|
|
||||||
#include <com/sun/star/container/XContentEnumerationAccess.hpp>
|
|
||||||
#include <com/sun/star/registry/XImplementationRegistration2.hpp>
|
|
||||||
#include <com/sun/star/registry/XSimpleRegistry.hpp>
|
|
||||||
#include <com/sun/star/lang/XComponent.hpp>
|
|
||||||
|
|
||||||
#include <algorithm>
|
|
||||||
#include <osl/process.h>
|
|
||||||
#include <osl/diagnose.h>
|
|
||||||
#include <osl/thread.h>
|
|
||||||
#include <osl/file.hxx>
|
|
||||||
|
|
||||||
#ifdef SAL_UNX
|
|
||||||
#define SEPARATOR '/'
|
|
||||||
#else
|
|
||||||
#define SEPARATOR '\\'
|
|
||||||
#endif
|
|
||||||
|
|
||||||
using namespace ::rtl;
|
|
||||||
using namespace ::osl;
|
|
||||||
using namespace ::cppu;
|
|
||||||
using namespace ::std;
|
|
||||||
using namespace ::com::sun::star::uno;
|
|
||||||
using namespace ::com::sun::star::lang;
|
|
||||||
using namespace ::com::sun::star::registry;
|
|
||||||
using com::sun::star::container::XSet;
|
|
||||||
using com::sun::star::container::XContentEnumerationAccess;
|
|
||||||
using com::sun::star::container::XEnumeration;
|
|
||||||
|
|
||||||
namespace {
|
|
||||||
|
|
||||||
OUString replacePrefix(OUString const & url, OUString const & prefix) {
|
|
||||||
sal_Int32 i = url.lastIndexOf('/');
|
|
||||||
// Backward compatibility with stoc/source/implementationregistration/
|
|
||||||
// implreg.cxx:1.27 l. 1892:
|
|
||||||
if (i == -1) {
|
|
||||||
i = url.lastIndexOf('\\');
|
|
||||||
}
|
|
||||||
return prefix + url.copy(i + 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
sal_Bool isFileUrl(const OUString& fileName)
|
|
||||||
{
|
|
||||||
if (fileName.indexOf("file://") == 0 )
|
|
||||||
return sal_True;
|
|
||||||
return sal_False;
|
|
||||||
}
|
|
||||||
|
|
||||||
OUString convertToFileUrl(const OUString& fileName)
|
|
||||||
{
|
|
||||||
if ( isFileUrl(fileName) )
|
|
||||||
{
|
|
||||||
return fileName;
|
|
||||||
}
|
|
||||||
|
|
||||||
OUString uUrlFileName;
|
|
||||||
if ( fileName.indexOf('.') == 0 || fileName.indexOf(SEPARATOR) < 0 )
|
|
||||||
{
|
|
||||||
OUString uWorkingDir;
|
|
||||||
if (osl_getProcessWorkingDir(&uWorkingDir.pData) != osl_Process_E_None) {
|
|
||||||
OSL_ASSERT(false);
|
|
||||||
}
|
|
||||||
if (FileBase::getAbsoluteFileURL(uWorkingDir, fileName, uUrlFileName)
|
|
||||||
!= FileBase::E_None)
|
|
||||||
{
|
|
||||||
OSL_ASSERT(false);
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
if (FileBase::getFileURLFromSystemPath(fileName, uUrlFileName)
|
|
||||||
!= FileBase::E_None)
|
|
||||||
{
|
|
||||||
OSL_ASSERT(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return uUrlFileName;
|
|
||||||
}
|
|
||||||
static void usingRegisterImpl()
|
|
||||||
{
|
|
||||||
fprintf(stderr, "usage: regcomp -register|revoke -r registryfile -c locationUrl [-br registryfile] [-l componentLoaderUrl] [-s] [-classpath path]\n");
|
|
||||||
fprintf(stderr, " Parameters:\n");
|
|
||||||
fprintf(stderr, " -register\n"
|
|
||||||
" register a new component.\n");
|
|
||||||
fprintf(stderr, " -revoke\n"
|
|
||||||
" revoke a component.\n");
|
|
||||||
fprintf(stderr, " -br registryfile\n"
|
|
||||||
" the name of the registry used for bootstrapping\n"
|
|
||||||
" regcomp. The option can be given twice, each\n"
|
|
||||||
" one followed by exactly one registry file.\n"
|
|
||||||
" The registries are used to access both types and\n"
|
|
||||||
" registered components.\n");
|
|
||||||
fprintf(stderr, " -r registryfile\n"
|
|
||||||
" the name of the target registry (will be created\n"
|
|
||||||
" if it does not exists). The file name may match\n"
|
|
||||||
" with one of the filenames given with the -br option.\n");
|
|
||||||
fprintf(stderr, " -c locationUrls\n"
|
|
||||||
" the location of a component (a url to a shared\n"
|
|
||||||
" library or a absolute url to a .jar file) or a\n"
|
|
||||||
" list of urls seperated by ';' or ' '. Note if a\n"
|
|
||||||
" list of urls is specified, the components must\n"
|
|
||||||
" all need the same loader (quoting is possible with\n"
|
|
||||||
" \\ or \"\").\n");
|
|
||||||
fprintf(stderr, " -l componentLoaderUrl\n"
|
|
||||||
" the name of the needed loader. If no loader is\n"
|
|
||||||
" specified and the components have a .jar suffix,\n"
|
|
||||||
" the default is com.sun.star.loader.Java2.\n"
|
|
||||||
" Otherwise, the default is\n"
|
|
||||||
" com.sun.star.loader.SharedLibrary\n"
|
|
||||||
" -s\n"
|
|
||||||
" silent, regcomp prints messages only on error.\n"
|
|
||||||
" -wop\n"
|
|
||||||
" register the component name only without path\n"
|
|
||||||
" -wop=prefix\n"
|
|
||||||
" register the component name with path replaced\n"
|
|
||||||
" by given prefix\n"
|
|
||||||
" -classpath path\n"
|
|
||||||
" sets the java classpath to path (overwriting the\n"
|
|
||||||
" current classpath environment variable). Note that\n"
|
|
||||||
" in case you start regcomp e.g. within an office\n"
|
|
||||||
" environment, the classpath entries in the\n"
|
|
||||||
" configuration still have precedence over this\n"
|
|
||||||
" option.\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
class IllegalArgument
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
IllegalArgument(const OString& rMessage)
|
|
||||||
: m_message(rMessage)
|
|
||||||
{}
|
|
||||||
|
|
||||||
OString m_message;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct Options
|
|
||||||
{
|
|
||||||
Options()
|
|
||||||
: bRegister(sal_False)
|
|
||||||
, bRevoke(sal_False)
|
|
||||||
, bSilent( sal_False )
|
|
||||||
, bPrefix( sal_False )
|
|
||||||
{}
|
|
||||||
|
|
||||||
sal_Bool bRegister;
|
|
||||||
sal_Bool bRevoke;
|
|
||||||
sal_Bool bSilent;
|
|
||||||
sal_Bool bPrefix;
|
|
||||||
OUString sPrefix;
|
|
||||||
OUString sProgramName;
|
|
||||||
OUString sBootRegName;
|
|
||||||
OUString sBootRegName2;
|
|
||||||
OUString sRegName;
|
|
||||||
OUString sComponentUrls;
|
|
||||||
OUString sLoaderName;
|
|
||||||
};
|
|
||||||
|
|
||||||
sal_Bool parseOptions(int ac, char* av[], Options& rOptions, sal_Bool bCmdFile)
|
|
||||||
throw( IllegalArgument )
|
|
||||||
{
|
|
||||||
sal_Bool ret = sal_True;
|
|
||||||
sal_uInt16 i=0;
|
|
||||||
sal_Bool bLoaderExplicitlyGiven = sal_False;
|
|
||||||
|
|
||||||
rOptions.sProgramName = OUString::createFromAscii(av[i++]);
|
|
||||||
|
|
||||||
if (!bCmdFile)
|
|
||||||
{
|
|
||||||
bCmdFile = sal_True;
|
|
||||||
|
|
||||||
if (ac < 2)
|
|
||||||
{
|
|
||||||
usingRegisterImpl();
|
|
||||||
ret = sal_False;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (; i < ac; i++)
|
|
||||||
{
|
|
||||||
if (av[i][0] == '-')
|
|
||||||
{
|
|
||||||
switch (av[i][1])
|
|
||||||
{
|
|
||||||
case 'r':
|
|
||||||
if (strcmp(av[i], "-register") == 0)
|
|
||||||
{
|
|
||||||
rOptions.bRegister = sal_True;
|
|
||||||
} else
|
|
||||||
if (strcmp(av[i], "-revoke") == 0)
|
|
||||||
{
|
|
||||||
rOptions.bRevoke = sal_True;
|
|
||||||
} else
|
|
||||||
if (av[i][2] == '\0')
|
|
||||||
{
|
|
||||||
if (i < ac - 1 && av[i+1][0] != '-')
|
|
||||||
{
|
|
||||||
i++;
|
|
||||||
rOptions.sRegName = OStringToOUString(av[i], osl_getThreadTextEncoding());
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
OString tmp("'-r', please check");
|
|
||||||
if (i <= ac - 1)
|
|
||||||
{
|
|
||||||
tmp += " your input '" + OString(av[i+1]) + "'";
|
|
||||||
}
|
|
||||||
throw IllegalArgument(tmp);
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
rOptions.sRegName = OStringToOUString(av[i]+2, osl_getThreadTextEncoding());
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 'b':
|
|
||||||
if (av[i][2] != 'r')
|
|
||||||
{
|
|
||||||
OString tmp("'-b', invalid option!");
|
|
||||||
throw IllegalArgument(tmp);
|
|
||||||
}
|
|
||||||
if (av[i][3] == '\0')
|
|
||||||
{
|
|
||||||
if (i < ac - 1 && av[i+1][0] != '-')
|
|
||||||
{
|
|
||||||
i++;
|
|
||||||
OUString regName = OStringToOUString(av[i], osl_getThreadTextEncoding());
|
|
||||||
if( rOptions.sBootRegName.isEmpty() )
|
|
||||||
{
|
|
||||||
rOptions.sBootRegName = regName;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
rOptions.sBootRegName2 = regName;
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
OString tmp("'-br', please check");
|
|
||||||
if (i <= ac - 1)
|
|
||||||
{
|
|
||||||
tmp += " your input '" + OString(av[i+1]) + "'";
|
|
||||||
}
|
|
||||||
throw IllegalArgument(tmp);
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
rOptions.sBootRegName = OStringToOUString(av[i]+3, osl_getThreadTextEncoding());
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 'c':
|
|
||||||
{
|
|
||||||
OUString sUrls;
|
|
||||||
if (av[i][2] == '\0')
|
|
||||||
{
|
|
||||||
if (i < ac - 1 && av[i+1][0] != '-')
|
|
||||||
{
|
|
||||||
i++;
|
|
||||||
sUrls = OStringToOUString(av[i], osl_getThreadTextEncoding());
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
OString tmp("'-c', please check");
|
|
||||||
if (i <= ac - 1)
|
|
||||||
{
|
|
||||||
tmp += " your input '" + OString(av[i+1]) + "'";
|
|
||||||
}
|
|
||||||
throw IllegalArgument(tmp);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if( 0 == strncmp( av[i] , "-classpath" ,10 ) )
|
|
||||||
{
|
|
||||||
i++;
|
|
||||||
if( i < ac )
|
|
||||||
{
|
|
||||||
rtl::OUString envVar(RTL_CONSTASCII_USTRINGPARAM("CLASSPATH"));
|
|
||||||
rtl::OUString envValue(av[i], strlen(av[i]), osl_getThreadTextEncoding());
|
|
||||||
osl_setEnvironment(envVar.pData, envValue.pData);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sUrls = OStringToOUString(av[i]+2, osl_getThreadTextEncoding());
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!rOptions.sComponentUrls.isEmpty())
|
|
||||||
{
|
|
||||||
OUString tmp(rOptions.sComponentUrls + OUString(";", 1, osl_getThreadTextEncoding()) + sUrls);
|
|
||||||
rOptions.sComponentUrls = tmp;
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
rOptions.sComponentUrls = sUrls;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 'l':
|
|
||||||
{
|
|
||||||
if (av[i][2] == '\0')
|
|
||||||
{
|
|
||||||
if (i < ac - 1 && av[i+1][0] != '-')
|
|
||||||
{
|
|
||||||
i++;
|
|
||||||
rOptions.sLoaderName = OUString::createFromAscii(av[i]);
|
|
||||||
bLoaderExplicitlyGiven = sal_True;
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
OString tmp("'-l', please check");
|
|
||||||
if (i <= ac - 1)
|
|
||||||
{
|
|
||||||
tmp += " your input '" + OString(av[i+1]) + "'";
|
|
||||||
}
|
|
||||||
throw IllegalArgument(tmp);
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
bLoaderExplicitlyGiven = sal_True;
|
|
||||||
rOptions.sLoaderName = OUString::createFromAscii(av[i]+2);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 's':
|
|
||||||
{
|
|
||||||
if( av[i][2] == 0 )
|
|
||||||
{
|
|
||||||
rOptions.bSilent = sal_True;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
rtl::OStringBuffer buf;
|
|
||||||
buf.append( "Unknown error " );
|
|
||||||
buf.append( av[i] );
|
|
||||||
throw IllegalArgument( av[i] );
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case 'e':
|
|
||||||
{
|
|
||||||
if( av[i][2] == 'n' && av[i][3] == 'v' && av[i][4] == ':' )
|
|
||||||
{
|
|
||||||
// bootstrap variable, ignore it
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
case 'w':
|
|
||||||
{
|
|
||||||
if (strcmp(av[i], "-wop") == 0)
|
|
||||||
{
|
|
||||||
rOptions.bPrefix = sal_True;
|
|
||||||
rOptions.sPrefix = OUString();
|
|
||||||
// in case there are multiple -wops
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else if (
|
|
||||||
strncmp(av[i], "-wop=", RTL_CONSTASCII_LENGTH("-wop="))
|
|
||||||
== 0)
|
|
||||||
{
|
|
||||||
rOptions.bPrefix = sal_True;
|
|
||||||
rOptions.sPrefix = OStringToOUString(
|
|
||||||
av[i] + RTL_CONSTASCII_LENGTH("-wop="),
|
|
||||||
osl_getThreadTextEncoding());
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
OString tmp( "unknown option " );
|
|
||||||
tmp += av[i];
|
|
||||||
throw IllegalArgument( tmp );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
if (av[i][0] == '@')
|
|
||||||
{
|
|
||||||
FILE* cmdFile = fopen(av[i]+1, "r");
|
|
||||||
if( cmdFile == NULL )
|
|
||||||
{
|
|
||||||
usingRegisterImpl();
|
|
||||||
ret = sal_False;
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
fseek( cmdFile , 0 , SEEK_END );
|
|
||||||
sal_Int32 nLen = ftell( cmdFile);
|
|
||||||
fseek( cmdFile, 0, SEEK_SET );
|
|
||||||
|
|
||||||
// 2 chars per string is a upper limit for the number of
|
|
||||||
// substrings ( at least one separator char needed for fscanf).
|
|
||||||
char ** rargv = (char **)rtl_allocateMemory( nLen * sizeof( char* ) /2);
|
|
||||||
if( ! rargv )
|
|
||||||
{
|
|
||||||
OStringBuffer buf;
|
|
||||||
buf.append( "Not enough memory for reading command file " );
|
|
||||||
buf.append( av[i] +1 );
|
|
||||||
buf.append( " with length " );
|
|
||||||
buf.append( nLen );
|
|
||||||
buf.append( "." );
|
|
||||||
throw IllegalArgument( buf.makeStringAndClear() );
|
|
||||||
}
|
|
||||||
char *buffer = ( char * )rtl_allocateMemory( nLen +1 );
|
|
||||||
if( ! buffer )
|
|
||||||
{
|
|
||||||
OStringBuffer buf;
|
|
||||||
buf.append( "Not enough memory for reading command file " );
|
|
||||||
buf.append( av[i] +1 );
|
|
||||||
buf.append( " with length " );
|
|
||||||
buf.append( nLen );
|
|
||||||
buf.append( "." );
|
|
||||||
throw IllegalArgument( buf.makeStringAndClear() );
|
|
||||||
}
|
|
||||||
|
|
||||||
// we start at one to omit argv[0]
|
|
||||||
sal_Int32 rargc = 1;
|
|
||||||
rargv[0] = av[0];
|
|
||||||
while ( fscanf(cmdFile, "%s", buffer) != EOF )
|
|
||||||
{
|
|
||||||
rargv[rargc]= (char * )rtl_allocateMemory( strlen( buffer ) +1 );
|
|
||||||
if( ! rargv[rargc] )
|
|
||||||
{
|
|
||||||
OStringBuffer buf;
|
|
||||||
buf.append( "Not enough memory for reading command file " );
|
|
||||||
buf.append( av[i] +1 );
|
|
||||||
buf.append( " with length " );
|
|
||||||
buf.append( nLen );
|
|
||||||
buf.append( "." );
|
|
||||||
throw IllegalArgument( buf.makeStringAndClear() );
|
|
||||||
}
|
|
||||||
strcpy( rargv[rargc] , buffer ); // #100211# - checked
|
|
||||||
rargc++;
|
|
||||||
}
|
|
||||||
fclose(cmdFile);
|
|
||||||
|
|
||||||
parseOptions(rargc, rargv, rOptions, bCmdFile);
|
|
||||||
|
|
||||||
for (long j=1; j < rargc; j++)
|
|
||||||
{
|
|
||||||
rtl_freeMemory(rargv[j]);
|
|
||||||
}
|
|
||||||
rtl_freeMemory( buffer );
|
|
||||||
rtl_freeMemory( rargv );
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
usingRegisterImpl();
|
|
||||||
ret = sal_False;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if( ! bLoaderExplicitlyGiven )
|
|
||||||
{
|
|
||||||
if ( rOptions.sComponentUrls.getLength() > 4 &&
|
|
||||||
rOptions.sComponentUrls.matchAsciiL(
|
|
||||||
".jar" , 4 , rOptions.sComponentUrls.getLength() - 4 ) )
|
|
||||||
{
|
|
||||||
if( ! rOptions.bSilent )
|
|
||||||
{
|
|
||||||
printf( "using loader com.sun.star.loader.Java2\n" );
|
|
||||||
}
|
|
||||||
rOptions.sLoaderName = OUString(
|
|
||||||
RTL_CONSTASCII_USTRINGPARAM("com.sun.star.loader.Java2"));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
rOptions.sLoaderName = OUString(
|
|
||||||
RTL_CONSTASCII_USTRINGPARAM("com.sun.star.loader.SharedLibrary") );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
struct DoIt
|
|
||||||
{
|
|
||||||
sal_Bool _bRegister;
|
|
||||||
sal_Bool _bRevoke;
|
|
||||||
sal_Bool _bSilent;
|
|
||||||
sal_Bool _bPrefix;
|
|
||||||
OUString _sPrefix;
|
|
||||||
OString _sRegName;
|
|
||||||
OUString _sLoaderName;
|
|
||||||
Reference<XImplementationRegistration2> _xImplRegistration;
|
|
||||||
Reference<XSimpleRegistry> _xReg;
|
|
||||||
sal_uInt32 * _exitCode;
|
|
||||||
|
|
||||||
DoIt(sal_Bool bRegister,
|
|
||||||
sal_Bool bRevoke,
|
|
||||||
sal_Bool bSilent,
|
|
||||||
sal_Bool bPrefix,
|
|
||||||
const OUString & sPrefix,
|
|
||||||
const Reference<XSimpleRegistry> & xReg,
|
|
||||||
const OString & sRegName,
|
|
||||||
const Reference<XImplementationRegistration2> & xImplRegistration,
|
|
||||||
const OUString & sLoaderName,
|
|
||||||
sal_uInt32 * exitCode)
|
|
||||||
throw();
|
|
||||||
|
|
||||||
void operator()(const OUString & url) throw();
|
|
||||||
};
|
|
||||||
|
|
||||||
DoIt::DoIt(sal_Bool bRegister,
|
|
||||||
sal_Bool bRevoke,
|
|
||||||
sal_Bool bSilent,
|
|
||||||
sal_Bool bPrefix,
|
|
||||||
const OUString & sPrefix,
|
|
||||||
const Reference<XSimpleRegistry> & xReg,
|
|
||||||
const OString & sRegName,
|
|
||||||
const Reference<XImplementationRegistration2> & xImplRegistration,
|
|
||||||
const OUString & sLoaderName,
|
|
||||||
sal_uInt32 * exitCode) throw()
|
|
||||||
: _bRegister(bRegister),
|
|
||||||
_bRevoke(bRevoke),
|
|
||||||
_bSilent( bSilent ),
|
|
||||||
_bPrefix( bPrefix ),
|
|
||||||
_sPrefix( sPrefix ),
|
|
||||||
_sRegName(sRegName),
|
|
||||||
_sLoaderName(sLoaderName),
|
|
||||||
_xImplRegistration(xImplRegistration),
|
|
||||||
_xReg(xReg),
|
|
||||||
_exitCode(exitCode)
|
|
||||||
{}
|
|
||||||
|
|
||||||
void DoIt::operator() (const OUString & url) throw()
|
|
||||||
{
|
|
||||||
OString sUrl = OUStringToOString(url, osl_getThreadTextEncoding());
|
|
||||||
|
|
||||||
if (_bRegister)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Reference<XImplementationRegistration2> _xImplRegistration2(_xImplRegistration, UNO_QUERY);
|
|
||||||
if ( _bPrefix ) {
|
|
||||||
_xImplRegistration->registerImplementationWithLocation(
|
|
||||||
_sLoaderName, url, replacePrefix(url, _sPrefix), _xReg);
|
|
||||||
} else {
|
|
||||||
_xImplRegistration->registerImplementation(_sLoaderName, url, _xReg);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( ! _bSilent )
|
|
||||||
{
|
|
||||||
fprintf(stderr, "register component '%s' in registry '%s' successful!\n", sUrl.getStr(), _sRegName.getStr());
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
catch(CannotRegisterImplementationException & cannotRegisterImplementationException) {
|
|
||||||
OString aMessage(OUStringToOString(cannotRegisterImplementationException.Message, RTL_TEXTENCODING_ASCII_US));
|
|
||||||
fprintf(stderr, "register component '%s' in registry '%s' failed!\n", sUrl.getStr(), _sRegName.getStr());
|
|
||||||
fprintf(stderr, "error (CannotRegisterImplementationException): %s\n", aMessage.getStr());
|
|
||||||
|
|
||||||
++ (*_exitCode);
|
|
||||||
}
|
|
||||||
catch( RuntimeException & e )
|
|
||||||
{
|
|
||||||
OString aMessage(OUStringToOString(e.Message, RTL_TEXTENCODING_ASCII_US));
|
|
||||||
fprintf(stderr, "register component '%s' in registry '%s' failed!\n", sUrl.getStr(), _sRegName.getStr());
|
|
||||||
fprintf(stderr, "error (RuntimeException): %s\n", aMessage.getStr());
|
|
||||||
|
|
||||||
++ (*_exitCode);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(_bRevoke)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
sal_Bool bRet = _xImplRegistration->revokeImplementation(url, _xReg);
|
|
||||||
|
|
||||||
if (bRet)
|
|
||||||
{
|
|
||||||
if ( ! _bSilent )
|
|
||||||
fprintf(stderr, "revoke component '%s' from registry '%s' successful!\n", sUrl.getStr(), _sRegName.getStr());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
fprintf(stderr, "revoke component '%s' from registry '%s' failed!\n", sUrl.getStr(), _sRegName.getStr());
|
|
||||||
++ (*_exitCode);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch( RuntimeException & e )
|
|
||||||
{
|
|
||||||
OString aMessage(OUStringToOString(e.Message, RTL_TEXTENCODING_ASCII_US));
|
|
||||||
fprintf( stderr,
|
|
||||||
"revoke component '%s' from registry '%s' failed!\n",
|
|
||||||
sUrl.getStr(),
|
|
||||||
_sRegName.getStr() );
|
|
||||||
fprintf( stderr, "RuntimeException: %s\n" , aMessage.getStr());
|
|
||||||
++ (*_exitCode);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool hasService(
|
|
||||||
const Reference< XMultiServiceFactory > &xSMgr,
|
|
||||||
const sal_Char * service )
|
|
||||||
{
|
|
||||||
bool ret = false;
|
|
||||||
|
|
||||||
Reference< XContentEnumerationAccess > access( xSMgr, UNO_QUERY );
|
|
||||||
if( access.is( ))
|
|
||||||
{
|
|
||||||
Reference< XEnumeration > enumeration = access->createContentEnumeration(
|
|
||||||
OUString::createFromAscii( service ) );
|
|
||||||
|
|
||||||
if( enumeration.is() && enumeration->hasMoreElements() )
|
|
||||||
{
|
|
||||||
ret = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void bootstrap(
|
|
||||||
Options & opt ,
|
|
||||||
Reference< XMultiServiceFactory > &xSMgr,
|
|
||||||
Reference< XSimpleRegistry > & reg ) throw ( Exception )
|
|
||||||
{
|
|
||||||
if( opt.sRegName.equals( opt.sBootRegName2 ) )
|
|
||||||
{
|
|
||||||
OUString tmp2 = opt.sBootRegName;
|
|
||||||
opt.sBootRegName = opt.sBootRegName2;
|
|
||||||
opt.sBootRegName2 = tmp2;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( opt.sRegName.equals(opt.sBootRegName) )
|
|
||||||
{
|
|
||||||
if( !opt.sBootRegName2.isEmpty() )
|
|
||||||
{
|
|
||||||
xSMgr = createRegistryServiceFactory(
|
|
||||||
convertToFileUrl(opt.sRegName),
|
|
||||||
convertToFileUrl(opt.sBootRegName2),
|
|
||||||
sal_False );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
xSMgr = createRegistryServiceFactory(
|
|
||||||
convertToFileUrl(opt.sRegName) , sal_False );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if( !opt.sBootRegName2.isEmpty() )
|
|
||||||
{
|
|
||||||
xSMgr = createRegistryServiceFactory(
|
|
||||||
convertToFileUrl( opt.sBootRegName2 ),
|
|
||||||
convertToFileUrl( opt.sBootRegName ),
|
|
||||||
sal_True );
|
|
||||||
}
|
|
||||||
else if ( !opt.sBootRegName.isEmpty() )
|
|
||||||
{
|
|
||||||
xSMgr = createRegistryServiceFactory(
|
|
||||||
convertToFileUrl( opt.sBootRegName ),
|
|
||||||
sal_True );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
xSMgr = createServiceFactory();
|
|
||||||
}
|
|
||||||
reg = Reference< XSimpleRegistry >(
|
|
||||||
xSMgr->createInstance(
|
|
||||||
rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.registry.SimpleRegistry"))), UNO_QUERY);
|
|
||||||
|
|
||||||
if (reg.is())
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
reg->open( convertToFileUrl(opt.sRegName), sal_False, sal_True);
|
|
||||||
if (!reg->isValid())
|
|
||||||
{
|
|
||||||
fprintf(stderr, "ERROR: open|create registry '%s' failed!\n",
|
|
||||||
OUStringToOString(opt.sRegName, osl_getThreadTextEncoding() ).getStr());
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch( InvalidRegistryException & e)
|
|
||||||
{
|
|
||||||
OString o = OUStringToOString( e.Message , RTL_TEXTENCODING_ASCII_US );
|
|
||||||
fprintf(stderr,
|
|
||||||
"ERROR: create registry '%s' failed!\n"
|
|
||||||
"InvalidRegistryException: %s\n",
|
|
||||||
OUStringToOString( opt.sRegName, osl_getThreadTextEncoding()).getStr(),
|
|
||||||
o.getStr() );
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if( ! opt.sLoaderName.compareToAscii( "com.sun.star.loader.Java2" ) &&
|
|
||||||
! hasService( xSMgr, "com.sun.star.loader.Java2" ) )
|
|
||||||
{
|
|
||||||
// we know our java loader, so we check, whether a java-loader is
|
|
||||||
// registered
|
|
||||||
Reference< XInterface > r = loadSharedLibComponentFactory(
|
|
||||||
OUString(RTL_CONSTASCII_USTRINGPARAM("javavm.uno" SAL_DLLEXTENSION)),
|
|
||||||
OUString(),
|
|
||||||
OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.stoc.JavaVirtualMachine")),
|
|
||||||
xSMgr,
|
|
||||||
Reference< XRegistryKey > (),
|
|
||||||
"javavm" );
|
|
||||||
Reference< XInterface > r2 = loadSharedLibComponentFactory(
|
|
||||||
OUString(RTL_CONSTASCII_USTRINGPARAM("javaloader.uno" SAL_DLLEXTENSION)),
|
|
||||||
OUString(),
|
|
||||||
OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.stoc.JavaComponentLoader")),
|
|
||||||
xSMgr,
|
|
||||||
Reference< XRegistryKey > (),
|
|
||||||
"javaloader" );
|
|
||||||
Reference <XSet> xSet( xSMgr, UNO_QUERY );
|
|
||||||
if( r.is() && r2.is() && xSet.is() )
|
|
||||||
{
|
|
||||||
xSet->insert( makeAny( r ) );
|
|
||||||
xSet->insert( makeAny( r2 ) );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SAL_IMPLEMENT_MAIN_WITH_ARGS(argc, argv)
|
|
||||||
{
|
|
||||||
sal_Bool bRet = sal_False;
|
|
||||||
sal_uInt32 exitCode = 0;
|
|
||||||
Options aOptions;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if ( !parseOptions(argc, argv, aOptions, sal_False) )
|
|
||||||
{
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch ( IllegalArgument& e)
|
|
||||||
{
|
|
||||||
fprintf(stderr, "ERROR: %s\n", e.m_message.getStr());
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if( aOptions.sRegName.isEmpty() )
|
|
||||||
{
|
|
||||||
fprintf( stderr, "ERROR: target registry missing (-r option)\n" );
|
|
||||||
exit( 1 );
|
|
||||||
}
|
|
||||||
if ( aOptions.sComponentUrls.isEmpty() )
|
|
||||||
{
|
|
||||||
fprintf(stderr, "ERROR: no component url is specified!\n");
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Reference< XMultiServiceFactory > xSMgr;
|
|
||||||
Reference< XSimpleRegistry > xReg;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
bootstrap( aOptions, xSMgr ,xReg );
|
|
||||||
}
|
|
||||||
catch( Exception& e )
|
|
||||||
{
|
|
||||||
fprintf(stderr, "ERROR: create ServiceManager failed!\n");
|
|
||||||
if ( !e.Message.isEmpty() )
|
|
||||||
{
|
|
||||||
fprintf(stderr, "ERROR description: %s\n",
|
|
||||||
OUStringToOString(e.Message, osl_getThreadTextEncoding()).getStr());
|
|
||||||
}
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
Reference<XImplementationRegistration2> xImplRegistration(
|
|
||||||
xSMgr->createInstance(
|
|
||||||
OUString(RTL_CONSTASCII_USTRINGPARAM(
|
|
||||||
"com.sun.star.registry.ImplementationRegistration"))),
|
|
||||||
UNO_QUERY);
|
|
||||||
|
|
||||||
if (xImplRegistration.is())
|
|
||||||
{
|
|
||||||
sal_Int32 index = 0;
|
|
||||||
vector<OUString> urls;
|
|
||||||
|
|
||||||
OUString urlListWithSemikolon = aOptions.sComponentUrls;
|
|
||||||
do {
|
|
||||||
OUString aToken = urlListWithSemikolon.getToken( 0, ';', index);
|
|
||||||
fprintf(stderr, "%s\n", OUStringToOString(aToken, osl_getThreadTextEncoding()).getStr());
|
|
||||||
urls.push_back(aToken);
|
|
||||||
} while ( index >= 0 );
|
|
||||||
|
|
||||||
|
|
||||||
OString sRegName = OUStringToOString( aOptions.sRegName, osl_getThreadTextEncoding() );
|
|
||||||
if(aOptions.bRegister || aOptions.bRevoke)
|
|
||||||
{
|
|
||||||
for_each(urls.begin(), urls.end(),
|
|
||||||
DoIt(aOptions.bRegister, aOptions.bRevoke, aOptions.bSilent,
|
|
||||||
aOptions.bPrefix, aOptions.sPrefix,
|
|
||||||
xReg, sRegName, xImplRegistration,
|
|
||||||
aOptions.sLoaderName, &exitCode));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
++ exitCode;
|
|
||||||
usingRegisterImpl();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
fprintf(stderr, "Component registration service could not be loaded!\n");
|
|
||||||
exitCode++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!bRet && xReg.is() && xReg->isValid())
|
|
||||||
xReg->close();
|
|
||||||
|
|
||||||
Reference< XComponent > xComponent( xSMgr, UNO_QUERY );
|
|
||||||
if ( xComponent.is() )
|
|
||||||
xComponent->dispose();
|
|
||||||
|
|
||||||
return exitCode;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
|
@ -115,11 +115,6 @@
|
|||||||
<td><a href="#uno-skeletonmaker" title="link to the uno-skeletonmaker tool description">uno-skeletonmaker</a></td>
|
<td><a href="#uno-skeletonmaker" title="link to the uno-skeletonmaker tool description">uno-skeletonmaker</a></td>
|
||||||
<td class="content87">Tool for dumping type definitions on stdout or generating complete code skeletons for Java/C++.</td>
|
<td class="content87">Tool for dumping type definitions on stdout or generating complete code skeletons for Java/C++.</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr valign="top">
|
|
||||||
<td class="content3"><img src="images/arrow-1.gif"></td>
|
|
||||||
<td><a href="#regcomp" title="link to the regcomp tool description">regcomp</a></td>
|
|
||||||
<td class="content87">A simple UNO component registration tool.</td>
|
|
||||||
</tr>
|
|
||||||
<tr valign="top">
|
<tr valign="top">
|
||||||
<td class="content3"><img src="images/arrow-1.gif"></td>
|
<td class="content3"><img src="images/arrow-1.gif"></td>
|
||||||
<td><a href="#regmerge" title="link to the regmerge tool description">regmerge</a></td>
|
<td><a href="#regmerge" title="link to the regmerge tool description">regmerge</a></td>
|
||||||
@ -824,69 +819,6 @@ types the specified types depend on.</p>
|
|||||||
<tr>
|
<tr>
|
||||||
<td colspan="3"><img class="line" src="images/sdk_line-1.gif"></td>
|
<td colspan="3"><img class="line" src="images/sdk_line-1.gif"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td class="content1"><img class="nothing8" src="images/nada.gif"></td>
|
|
||||||
<td>
|
|
||||||
<table class="table2">
|
|
||||||
<tr>
|
|
||||||
<td colspan="2" class="head1"><a name="regcomp"/>regcomp</td>
|
|
||||||
<td align="right">
|
|
||||||
<a href="#tools" title="link to the tools overview"><img class="navigate" src="images/nav_up.png"></a>
|
|
||||||
<a href="../index.html" title="link to the SDK start page"><img class="navigate" src="images/nav_home.png"></a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
<p>'regcomp' is a tool to register|revoke external UNO components
|
|
||||||
into|from a registry which is used in a UNO environment.</p>
|
|
||||||
<p class="head2">Usage:</p>
|
|
||||||
<blockquote>
|
|
||||||
<b><code>regcomp -revoke [-br<registryfile>] -r <registryfile> -c <locationUrl>[-l<componentLoaderName>]</code></b>
|
|
||||||
</blockquote>
|
|
||||||
<p class="head2">Options:</p>
|
|
||||||
<p>
|
|
||||||
<table class="table4">
|
|
||||||
<tr>
|
|
||||||
<td class="cell15"><code>-register|revoke</code></td>
|
|
||||||
<td class="cell85">register means that the components will be
|
|
||||||
installed and revoke means that they will be removed.</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="cell15"><code>-br<registryfile></code></td>
|
|
||||||
<td class="cell85">the name of the registry used for bootstrapping
|
|
||||||
the program. If the bootstrap registry is specified and has the same
|
|
||||||
name as the registration registry, '-r' is optional.</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="cell15"><code>-r<registryfile></code></td>
|
|
||||||
<td class="cell85">the name of the registry (will be created if
|
|
||||||
it does not exist) where the component should be registered.</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="cell15"><code>-c<locationUrls></code></td>
|
|
||||||
<td class="cell85">the location of a component (DLL, Class name,
|
|
||||||
or an url of a jar file) or a list of urls separated by ';'s. Note
|
|
||||||
that, if a list of urls is specified, the components must all need
|
|
||||||
the same loader.</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="cell15"><code>-l<componentLoaderName></code></td>
|
|
||||||
<td class="cell85">the name of the needed loader, if no loader is
|
|
||||||
specified the 'com.sun.star.loader.SharedLibrary' is used. Supported
|
|
||||||
loaders: 'com.sun.star.loader.SharedLibrary' |
|
|
||||||
'com.sun.star.loader.Java'.</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</p>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</td>
|
|
||||||
<td class="content1"><img class="nothing8" src="images/nada.gif"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3"><img class="line" src="images/sdk_line-1.gif"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="content1"><img class="nothing8" src="images/nada.gif"></td>
|
<td class="content1"><img class="nothing8" src="images/nada.gif"></td>
|
||||||
<td>
|
<td>
|
||||||
|
@ -67,7 +67,6 @@ IDLC="$(OO_SDK_HOME)/bin/idlc"
|
|||||||
CPPUMAKER="$(OO_SDK_HOME)/bin/cppumaker"
|
CPPUMAKER="$(OO_SDK_HOME)/bin/cppumaker"
|
||||||
JAVAMAKER="$(OO_SDK_HOME)/bin/javamaker"
|
JAVAMAKER="$(OO_SDK_HOME)/bin/javamaker"
|
||||||
REGMERGE="$(OO_SDK_URE_HOME)/bin/regmerge"
|
REGMERGE="$(OO_SDK_URE_HOME)/bin/regmerge"
|
||||||
REGCOMP="$(OO_SDK_URE_HOME)/bin/regcomp"
|
|
||||||
|
|
||||||
SDK_JAVA_UNO_BOOTSTRAP_FILES=\
|
SDK_JAVA_UNO_BOOTSTRAP_FILES=\
|
||||||
-C $(CLASSES_DIR) $(SQM)com/sun/star/lib/loader/Loader.class$(SQM) \
|
-C $(CLASSES_DIR) $(SQM)com/sun/star/lib/loader/Loader.class$(SQM) \
|
||||||
|
@ -89,10 +89,6 @@ $(DESTDIRBIN)/%.bin : $(BINOUT)/%.bin
|
|||||||
@@-rm -f $@
|
@@-rm -f $@
|
||||||
$(GNUCOPY) $(BINOUT)/$(@:f) $@
|
$(GNUCOPY) $(BINOUT)/$(@:f) $@
|
||||||
|
|
||||||
$(DESTDIRBIN)/regcomp : $(BINOUT)/regcomp
|
|
||||||
@@-rm -f $@
|
|
||||||
$(MY_TEXTCOPY) $< $@
|
|
||||||
|
|
||||||
$(DESTDIRBIN)/unoapploader$(EXEPOSTFIX) : $(BIN)/unoapploader$(EXEPOSTFIX)
|
$(DESTDIRBIN)/unoapploader$(EXEPOSTFIX) : $(BIN)/unoapploader$(EXEPOSTFIX)
|
||||||
@@-rm -f $@
|
@@-rm -f $@
|
||||||
$(GNUCOPY) $(BIN)/$(@:f) $@
|
$(GNUCOPY) $(BIN)/$(@:f) $@
|
||||||
|
@ -91,25 +91,6 @@ Shortcut gid_Shortcut_Exe_Uno
|
|||||||
End
|
End
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined WNT
|
|
||||||
File gid_File_Exe_Regcomp
|
|
||||||
BIN_FILE_BODY;
|
|
||||||
Dir = gid_Dir_Ure_Bin;
|
|
||||||
Name = EXENAME(regcomp);
|
|
||||||
Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
|
|
||||||
// CompID = "D51FA672-7C24-4E24-A282-872C4BF690A1";
|
|
||||||
End
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef WNT
|
|
||||||
Shortcut gid_Shortcut_Exe_Regcomp
|
|
||||||
FileID = gid_File_Exe_StartupSh;
|
|
||||||
Dir = gid_Dir_Ure_Bin;
|
|
||||||
Name = EXENAME(regcomp);
|
|
||||||
Styles = (RELATIVE);
|
|
||||||
End
|
|
||||||
#endif
|
|
||||||
|
|
||||||
File gid_File_Exe_Regmerge
|
File gid_File_Exe_Regmerge
|
||||||
BIN_FILE_BODY;
|
BIN_FILE_BODY;
|
||||||
Dir = gid_Dir_Ure_Bin;
|
Dir = gid_Dir_Ure_Bin;
|
||||||
@ -158,16 +139,6 @@ File gid_File_Exe_UnoBin
|
|||||||
End
|
End
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined WNT
|
|
||||||
File gid_File_Exe_RegcompBin
|
|
||||||
BIN_FILE_BODY;
|
|
||||||
Dir = gid_Dir_Ure_Bin;
|
|
||||||
Name = "regcomp.bin";
|
|
||||||
Styles = (PACKED, VERSION_INDEPENDENT_COMP_ID);
|
|
||||||
// CompID = "70FBE546-A228-455F-BCBB-716BF03AD5C6";
|
|
||||||
End
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Public Dynamic Libraries:
|
// Public Dynamic Libraries:
|
||||||
|
|
||||||
File gid_File_Dl_Cppu
|
File gid_File_Dl_Cppu
|
||||||
@ -989,13 +960,11 @@ Module gid_Module_Root_Ure_Hidden
|
|||||||
gid_File_Readme_Ure,
|
gid_File_Readme_Ure,
|
||||||
gid_File_License_Ure,
|
gid_File_License_Ure,
|
||||||
gid_File_Exe_Uno,
|
gid_File_Exe_Uno,
|
||||||
gid_File_Exe_Regcomp,
|
|
||||||
gid_File_Exe_Regmerge,
|
gid_File_Exe_Regmerge,
|
||||||
gid_File_Exe_Regview,
|
gid_File_Exe_Regview,
|
||||||
gid_File_Exe_Javaldx,
|
gid_File_Exe_Javaldx,
|
||||||
gid_File_Exe_StartupSh,
|
gid_File_Exe_StartupSh,
|
||||||
gid_File_Exe_UnoBin,
|
gid_File_Exe_UnoBin,
|
||||||
gid_File_Exe_RegcompBin,
|
|
||||||
gid_File_Dl_Cli_Uno,
|
gid_File_Dl_Cli_Uno,
|
||||||
gid_File_Dl_Cli_Ure_Assembly,
|
gid_File_Dl_Cli_Ure_Assembly,
|
||||||
gid_File_Dl_Policy_Cli_Ure_Assembly,
|
gid_File_Dl_Policy_Cli_Ure_Assembly,
|
||||||
|
@ -41,7 +41,6 @@ use Text::ParseWords;
|
|||||||
'MAP', 'NODEFAULTLIB', 'OPT', 'PDB', 'RELEASE',
|
'MAP', 'NODEFAULTLIB', 'OPT', 'PDB', 'RELEASE',
|
||||||
'SUBSYSTEM', 'STACK', 'out:', 'map:', 'ENTRY:',
|
'SUBSYSTEM', 'STACK', 'out:', 'map:', 'ENTRY:',
|
||||||
'implib:', 'delayload:', 'def', 'COMMENT:' ],
|
'implib:', 'delayload:', 'def', 'COMMENT:' ],
|
||||||
'regcomp', [ '-env:', 'vnd.sun.star.expand:' , 'vnd.openoffice.pymodule' ],
|
|
||||||
'regmerge', [ '/UCR' ],
|
'regmerge', [ '/UCR' ],
|
||||||
'rc', [ '-D' ],
|
'rc', [ '-D' ],
|
||||||
'rsc', [ '-DOOO_' ] );
|
'rsc', [ '-DOOO_' ] );
|
||||||
|
@ -974,11 +974,6 @@ IDLC*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/idlc
|
|||||||
REGMERGE*=$(AUGMENT_LIBRARY_PATH) $(VALGRINDTOOL) $(SOLARBINDIR)/regmerge
|
REGMERGE*=$(AUGMENT_LIBRARY_PATH) $(VALGRINDTOOL) $(SOLARBINDIR)/regmerge
|
||||||
REGCOMPARE*=$(AUGMENT_LIBRARY_PATH) $(VALGRINDTOOL) $(SOLARBINDIR)/regcompare
|
REGCOMPARE*=$(AUGMENT_LIBRARY_PATH) $(VALGRINDTOOL) $(SOLARBINDIR)/regcompare
|
||||||
|
|
||||||
.IF "$(DEBUGREGCOMP)" != "" || "$(debugregcomp)" != ""
|
|
||||||
GDBREGCOMPTRACE=$(GDBTRACE)
|
|
||||||
.ENDIF
|
|
||||||
|
|
||||||
REGCOMP*=$(AUGMENT_LIBRARY_PATH_LOCAL) $(GDBREGCOMPTRACE) $(SOLARBINDIR)/regcomp
|
|
||||||
CPPUMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/cppumaker
|
CPPUMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/cppumaker
|
||||||
JAVAMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/javamaker
|
JAVAMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/javamaker
|
||||||
RDBMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/rdbmaker
|
RDBMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/rdbmaker
|
||||||
|
@ -25,7 +25,6 @@ Linux x86, Solaris x86, and Solaris SPARC:
|
|||||||
/opt/openoffice.org/ure/THIRDPARTYLICENSEREADME.html
|
/opt/openoffice.org/ure/THIRDPARTYLICENSEREADME.html
|
||||||
/opt/openoffice.org/ure/README
|
/opt/openoffice.org/ure/README
|
||||||
/opt/openoffice.org/ure/bin/uno
|
/opt/openoffice.org/ure/bin/uno
|
||||||
/opt/openoffice.org/ure/bin/regcomp
|
|
||||||
/opt/openoffice.org/ure/bin/regmerge
|
/opt/openoffice.org/ure/bin/regmerge
|
||||||
/opt/openoffice.org/ure/bin/regview
|
/opt/openoffice.org/ure/bin/regview
|
||||||
/opt/openoffice.org/ure/bin/javaldx
|
/opt/openoffice.org/ure/bin/javaldx
|
||||||
@ -48,7 +47,6 @@ Linux x86, Solaris x86, and Solaris SPARC:
|
|||||||
/opt/openoffice.org/ure/lib/libstdc++.so.6 [external; Linux x86 only]
|
/opt/openoffice.org/ure/lib/libstdc++.so.6 [external; Linux x86 only]
|
||||||
/opt/openoffice.org/ure/bin/startup.sh [private]
|
/opt/openoffice.org/ure/bin/startup.sh [private]
|
||||||
/opt/openoffice.org/ure/bin/uno.bin [private]
|
/opt/openoffice.org/ure/bin/uno.bin [private]
|
||||||
/opt/openoffice.org/ure/bin/regcomp.bin [private]
|
|
||||||
/opt/openoffice.org/ure/lib/unorc [private]
|
/opt/openoffice.org/ure/lib/unorc [private]
|
||||||
/opt/openoffice.org/ure/lib/libreg.so.3 [private]
|
/opt/openoffice.org/ure/lib/libreg.so.3 [private]
|
||||||
/opt/openoffice.org/ure/lib/libstore.so.3 [private]
|
/opt/openoffice.org/ure/lib/libstore.so.3 [private]
|
||||||
@ -95,7 +93,6 @@ Program Files\URE\LICENSE
|
|||||||
Program Files\URE\THIRDPARTYLICENSEREADME.html
|
Program Files\URE\THIRDPARTYLICENSEREADME.html
|
||||||
Program Files\URE\README
|
Program Files\URE\README
|
||||||
Program Files\URE\bin\uno.exe
|
Program Files\URE\bin\uno.exe
|
||||||
Program Files\URE\bin\regcomp.exe
|
|
||||||
Program Files\URE\bin\regmerge.exe
|
Program Files\URE\bin\regmerge.exe
|
||||||
Program Files\URE\bin\regview.exe
|
Program Files\URE\bin\regview.exe
|
||||||
Program Files\URE\bin\cppu3.dll
|
Program Files\URE\bin\cppu3.dll
|
||||||
@ -183,13 +180,13 @@ A URE installation contains the following public files:
|
|||||||
- uno is the executable file that runs UNO components. For more details, see
|
- uno is the executable file that runs UNO components. For more details, see
|
||||||
the SDK Developer's Guide.
|
the SDK Developer's Guide.
|
||||||
|
|
||||||
- regcomp, regmerge, and regview are tools that work with binary registries that
|
- regmerge and regview are tools that work with binary registries that contain
|
||||||
contain UNO type or UNO service information. For more details, see the SDK
|
UNO type or UNO service information. For more details, see the SDK Developer's
|
||||||
Developer's Guide.
|
Guide.
|
||||||
|
|
||||||
- javaldx is a helper program on Linux x86, Solaris x86, and Solaris SPARC that
|
- javaldx is a helper program on Linux x86, Solaris x86, and Solaris SPARC that
|
||||||
enables Java executables to use a Java VM, such as the Sun JDK/JRE. Executables
|
enables Java executables to use a Java VM, such as the Sun JDK/JRE. Executables
|
||||||
such as uno and regcomp run this helper automatically.
|
such as uno run this helper automatically.
|
||||||
|
|
||||||
- cppu, cppuhelper, purpenvhelper, sal, and salhelper are the public C++ UNO
|
- cppu, cppuhelper, purpenvhelper, sal, and salhelper are the public C++ UNO
|
||||||
runtime dynamic libraries that client code can call. For details on the
|
runtime dynamic libraries that client code can call. For details on the
|
||||||
@ -264,11 +261,6 @@ For details on how to override the UNO deployment variables, see the SDK
|
|||||||
Developer's Guide or go to http://udk.openoffice.org/common/man/concept/
|
Developer's Guide or go to http://udk.openoffice.org/common/man/concept/
|
||||||
micro_deployment.html.
|
micro_deployment.html.
|
||||||
|
|
||||||
If you want to deploy additional UNO types and services, use regcomp.
|
|
||||||
|
|
||||||
CAUTION: Do not deploy these types and services to the types.rdb and
|
|
||||||
services.rdb in the URE installation.
|
|
||||||
|
|
||||||
|
|
||||||
URE Java Framework
|
URE Java Framework
|
||||||
------------------
|
------------------
|
||||||
|
Loading…
x
Reference in New Issue
Block a user