1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir #if !defined INCLUDED_JVMFWK_FWKBASE_HXX 28*cdf0e10cSrcweir #define INCLUDED_JVMFWK_FWKBASE_HXX 29*cdf0e10cSrcweir #include "rtl/ustring.hxx" 30*cdf0e10cSrcweir #include "libxmlutil.hxx" 31*cdf0e10cSrcweir namespace jfw 32*cdf0e10cSrcweir { 33*cdf0e10cSrcweir 34*cdf0e10cSrcweir class VendorSettings 35*cdf0e10cSrcweir { 36*cdf0e10cSrcweir ::rtl::OUString m_xmlDocVendorSettingsFileUrl; 37*cdf0e10cSrcweir CXmlDocPtr m_xmlDocVendorSettings; 38*cdf0e10cSrcweir CXPathContextPtr m_xmlPathContextVendorSettings; 39*cdf0e10cSrcweir 40*cdf0e10cSrcweir public: 41*cdf0e10cSrcweir VendorSettings(); 42*cdf0e10cSrcweir 43*cdf0e10cSrcweir /** Gets all plugin library URLs with the corresponding vendor name. 44*cdf0e10cSrcweir 45*cdf0e10cSrcweir It uses the /javaSelection/plugins/library element from the javavendors.xml 46*cdf0e10cSrcweir to locate the library. 47*cdf0e10cSrcweir Is is verified that the plug-in exist. If a plug-in does not exist then an 48*cdf0e10cSrcweir exception is thrown containing the error JFW_E_CONFIGURATION 49*cdf0e10cSrcweir */ 50*cdf0e10cSrcweir ::std::vector<PluginLibrary> getPluginData(); 51*cdf0e10cSrcweir 52*cdf0e10cSrcweir /* returns the file URL to the plugin. 53*cdf0e10cSrcweir */ 54*cdf0e10cSrcweir ::rtl::OUString getPluginLibrary(const ::rtl::OUString& sVendor); 55*cdf0e10cSrcweir 56*cdf0e10cSrcweir VersionInfo getVersionInformation(const ::rtl::OUString & sVendor); 57*cdf0e10cSrcweir 58*cdf0e10cSrcweir ::std::vector< ::rtl::OUString> getSupportedVendors(); 59*cdf0e10cSrcweir }; 60*cdf0e10cSrcweir 61*cdf0e10cSrcweir /* The class offers functions to retrieve verified bootstrap parameters. 62*cdf0e10cSrcweir */ 63*cdf0e10cSrcweir namespace BootParams 64*cdf0e10cSrcweir { 65*cdf0e10cSrcweir 66*cdf0e10cSrcweir /* Gets the file URL to the JRE which has been determined by the 67*cdf0e10cSrcweir bootstrap parameter UNO_JAVA_JFW_JREHOME or UNO_JAVA_JFW_ENV_JREHOME. 68*cdf0e10cSrcweir 69*cdf0e10cSrcweir In direct mode either of them must be set. If not an exception is thrown. 70*cdf0e10cSrcweir */ 71*cdf0e10cSrcweir ::rtl::OUString getJREHome(); 72*cdf0e10cSrcweir 73*cdf0e10cSrcweir ::std::vector< ::rtl::OString> getVMParameters(); 74*cdf0e10cSrcweir 75*cdf0e10cSrcweir ::rtl::OUString getUserData(); 76*cdf0e10cSrcweir 77*cdf0e10cSrcweir ::rtl::OUString getSharedData(); 78*cdf0e10cSrcweir 79*cdf0e10cSrcweir ::rtl::OUString getInstallData(); 80*cdf0e10cSrcweir /* returns the file URL to the vendor settings xml file. 81*cdf0e10cSrcweir */ 82*cdf0e10cSrcweir ::rtl::OUString getVendorSettings(); 83*cdf0e10cSrcweir 84*cdf0e10cSrcweir /* User the parameter UNO_JAVA_JFW_CLASSPATH and UNO_JAVA_JFW_ENV_CLASSPATH 85*cdf0e10cSrcweir to compose a classpath 86*cdf0e10cSrcweir */ 87*cdf0e10cSrcweir ::rtl::OString getClasspath(); 88*cdf0e10cSrcweir 89*cdf0e10cSrcweir ::rtl::OUString getClasspathUrls(); 90*cdf0e10cSrcweir 91*cdf0e10cSrcweir /** returns the content of UNO_JAVA_JFW_INSTALL_EXPIRE or a pretermined 92*cdf0e10cSrcweir value. If the bootstrap variable contains a string that cannot be 93*cdf0e10cSrcweir converted by OUString then it returns the predetermined value. 94*cdf0e10cSrcweir */ 95*cdf0e10cSrcweir ::sal_uInt32 getInstallDataExpiration(); 96*cdf0e10cSrcweir 97*cdf0e10cSrcweir } //end namespace 98*cdf0e10cSrcweir 99*cdf0e10cSrcweir 100*cdf0e10cSrcweir 101*cdf0e10cSrcweir enum JFW_MODE 102*cdf0e10cSrcweir { 103*cdf0e10cSrcweir JFW_MODE_APPLICATION, 104*cdf0e10cSrcweir 105*cdf0e10cSrcweir JFW_MODE_DIRECT 106*cdf0e10cSrcweir }; 107*cdf0e10cSrcweir 108*cdf0e10cSrcweir JFW_MODE getMode(); 109*cdf0e10cSrcweir 110*cdf0e10cSrcweir /** creates the -Djava.class.path option with the complete classpath, including 111*cdf0e10cSrcweir the paths which are set by UNO_JAVA_JFW_CLASSPATH_URLS. 112*cdf0e10cSrcweir */ 113*cdf0e10cSrcweir ::rtl::OString makeClassPathOption(::rtl::OUString const & sUserClassPath); 114*cdf0e10cSrcweir 115*cdf0e10cSrcweir ::rtl::OString getSettingsPath( const ::rtl::OUString & sURL); 116*cdf0e10cSrcweir 117*cdf0e10cSrcweir /** Get the system path to the javasettings.xml 118*cdf0e10cSrcweir Converts the URL returned from getUserSettingsURL to a 119*cdf0e10cSrcweir Systempath. An empty string is returned if the file 120*cdf0e10cSrcweir does not exist. 121*cdf0e10cSrcweir @throws FrameworkException 122*cdf0e10cSrcweir */ 123*cdf0e10cSrcweir ::rtl::OString getUserSettingsPath(); 124*cdf0e10cSrcweir 125*cdf0e10cSrcweir ::rtl::OString getInstallSettingsPath(); 126*cdf0e10cSrcweir 127*cdf0e10cSrcweir /** Returns the system path of the share settings file. 128*cdf0e10cSrcweir Returns a valid string or throws an exception. 129*cdf0e10cSrcweir @throws FrameworkException 130*cdf0e10cSrcweir */ 131*cdf0e10cSrcweir ::rtl::OString getSharedSettingsPath(); 132*cdf0e10cSrcweir 133*cdf0e10cSrcweir /* returns a valid string or throws an exception. 134*cdf0e10cSrcweir @throws FrameworkException 135*cdf0e10cSrcweir */ 136*cdf0e10cSrcweir ::rtl::OString getVendorSettingsPath(); 137*cdf0e10cSrcweir 138*cdf0e10cSrcweir ::rtl::OUString buildClassPathFromDirectory(const ::rtl::OUString & relPath); 139*cdf0e10cSrcweir 140*cdf0e10cSrcweir /** Called from writeJavaInfoData. It sets the process identifier. When 141*cdf0e10cSrcweir java is to be started, then the current id is compared to the one set by 142*cdf0e10cSrcweir this function. If they are identical then the Java was selected in the 143*cdf0e10cSrcweir same process. If that Java needs a prepared environment, such as a 144*cdf0e10cSrcweir LD_LIBRARY_PATH, then it must not be started in this process. 145*cdf0e10cSrcweir */ 146*cdf0e10cSrcweir void setJavaSelected(); 147*cdf0e10cSrcweir 148*cdf0e10cSrcweir /** Determines if the currently selected Java was set in this process. 149*cdf0e10cSrcweir 150*cdf0e10cSrcweir @see setProcessId() 151*cdf0e10cSrcweir */ 152*cdf0e10cSrcweir bool wasJavaSelectedInSameProcess(); 153*cdf0e10cSrcweir /* Only for application mode. 154*cdf0e10cSrcweir */ 155*cdf0e10cSrcweir ::rtl::OUString getApplicationClassPath(); 156*cdf0e10cSrcweir } 157*cdf0e10cSrcweir 158*cdf0e10cSrcweir #endif 159