How could i check the version of dojo installed in domino server? - xpages

How could i check the version of dojo installed in domino server?

The default dojo version can be obtained by calling this:
com.ibm.xsp.context.DojoLibraryFactory.getDefaultLibrary().getVersion()
If You want to see all versions that can be found on server try this:
com.ibm.xsp.context.DojoLibraryFactory.getDojoLibraries()
If You want to check what version is current database using then You can do this:
com.ibm.commons.Platform.getInstance().getProperty("xsp.client.script.dojo.version")

On 8.5.3 there are Dojo versions 1.5.1 and 1.6.1 installed. The question is which version is delivered by the server.
If you add this CSJS to your XPage you will get an alert containing current dojo version:
<xp:scriptBlock id="scriptBlockDojoVersion" value="dojo.addOnLoad( function(){ alert(dojo.version) } );" />

Related

XPages Extension Library cannot be found

I'm getting the error below when I run my application:
com.ibm.xsp.FacesExceptionEx: The application /test/Test.nsf requires com.ibm.xsp.extlib.relational.library
The extension library cannot be found, but the library was installed by replicating the updatesite.nsf from the main server to the current server throwing this error.
When I issue the command below:
tell http osgi ss com.ibm.xsp.extlib
The log show that the library is ACTIVE, but does not show that it has been INSTALLED.
Since the library is already on the server, how can I install it?
Your support will be appreciated.
Thanks.
com.ibm.xsp.extlib.relational.library is not part of the core 9.0.1 Extension Library. It was only incorporated into the core OpenNTF Extension Library in 9.0.1_v00_10. It was not incorporated into core IBM Extension Library until Feature Pack 8. You will see that nothing starting com.ibm.xsp.extlib is referenced in your screenshot of the server console, and version 9.0.1_v00_00 which shows you only have 9.0.1 base Extension Library installed. There are three options:
Install ExtLibX component from the OpenNTF Extension Library. You will still be using the base 9.0.1 version for all other controls.
Upgrade the version of the Extension Library to a more recent version, e.g. 9.0.1_v00_17. This will override the base 9.0.1 version of all Extension Library controls.
Upgrade to 9.0.1 Feature Pack 8.
Note that if you use ExtLibX, SSJS code or XPages components will continue to work when you subsequently upgrade ExtLib (or Domino to FP8+). However, to avoid name collisions, the Java class names will change. If you use custom Java code, you will need to edit and update the classes to the new Java package names when upgrading in the future.

ibm.commons error after upgrade to Notes 9

I have an XPage app that has been working fine. I upgraded my client from 8.5.3 FP6 to 9.0.1 FP1, built the database and now receive the following error on the 8.5.3 server console:
HTTP JVM: java.lang.NoSuchMethodError: com/ibm/commons/util/io/json/JsonJavaObject.put(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
If I rebuild from an 8.5.3 client it runs fine again.
Any suggestions on what I need to do differently using the 9.0.1 Designer client ?
Thanks...
Have you tried compiling the application to run as an earlier version? There is an option in xsp properties to compile with an earlier version.
If you can compile on your Designer, it's a specific problem for your server. Check plugins and additional Java libraries on your server. There might be a conflict.
On your server, extension library is installed? If yes, which version? (ExtLib for 8.5.3 contains IBM Commons jar, so it may be a reason of conflict), OpenNTF Domino API? Social Enabler?
You might also test with a clean Domino installation to determine the root cause.

How is the correct procedure for uninstalling or upgrading Extension Library on Domino server?

I have Extension Library instaled on Domino server 9.0.1 using update site database. Now when new version of ExtLib is released, how is the proper procedure to update to this new version? I removed documents from update site (for existing ExtLib) and imported new ExLib version but now it seems that I have both versions on Domino when I use tell http osgi ss com.ibm.xsp.extlib
Did you restart HTTP using restart task http?
FYI: XPages uses the latest version of loaded libraries.
You don't need to delete the old content from the update site, although that is a valid approach as well.
You can just disable the old content in the update site. In the image below, I have a 9.0.1 server, with 901_v00_03 of ExtLib & 901_v00_04 of ExtLib installed via update site. However, I have disabled the 901_v00_03 features in the update site (and restarted my server), and they do not show up in the console output.
The 901_v00_04 plugins show up in the console output, as do the core versions that came installed with 901 (901_v00_00_20131004-1200). The latest version of the plugins are the ones that will be used.i.e. 901_v00_04 ExtLib versions.
If you have removed the content from the active updateSite completely, and restarted the server, they should not appear in the console output at all. So we may need more info to find out what went wrong, if that is the case.

Dojo 1.7.2 as OSGI bundle

For a project we want to use dojo 1.7.2. I downloaded the version and unzipped everything to a directory.
I added the ibm directory from the js\dojo.1.5.1 directory of my 8.5.3 domino server.
And package all the files as a executable jar file.
In Domino 8.5.3 dojo 1.6.1 is loaded as OSGi bundle and is located in the \osgi\shared\eclipse\plugins
Is there a way to use the newest version of Dojo as OSGi bundle, the same way as dojo 1.6.1 is deployed??
Does your plugin define a Dojo version. I'm looking at the explanation for how the Domino 8.5.3 plugin defines the Dojo version on Page 40 of XPages Portable Command Guide, the section entitled "Installing Multiple Dojo Versions and Determining the Version Used".
It uses an inner text file in the plugin "/resource/dojo.properties" and a property line:
DojoVersion.versionStr=1.6.1
If you define a higher version number in your plugin, I believe that should get used by default. Alternatively, you should be able to define a different version number and use the xsp.client.dojo.script.version property in xsp.properties.
Have you tried xsp.client.script.dojo.version?

How to disable dojo 1.6.1 plugin on my Domino 8.5.3 server

Currently I am try to solve a bug in an application. Therefor I need the 1.4.3 dojo version.
On my 8.5.3 Domino server, by default there will be the 1.6.1 dojo version loaded.
This version is somewhere in a plugin, and not in the data\domino\js directery. The highest version is 1.5.1.
If I use the property 'xsp.client.script.dojo.version' in the xsp.properties file to set the required dojo version. It is not picked up by the database.
So where can I disable the 1.6.1 dojo version?
There is a known bug in 8.5.3 where the xsp.client.script.dojo.version is not honored if the setting to aggregate the CSS and JS is enabled on the Xpages panel of the application properties.
Disabling the "Use runtime optimized JavaScript and CSS resources" setting will allow your Xpage application to run with the lower version of dojo specified.
In 8.5.2 you had to set xsp.client.script.dojo.version in the server's xsp.properties. With 8.5.3 if you set it in the Application's xsp.properties, the setting is honoured. There's currently no option to set it at XPage level.
IBM are aware of the issue with "Use optimized runtime JavaScript and CSS resources" setting, so hopefully it will be fixed in 8.5.3 FP1.
Check out my blog post on this, shortly after 8.5.3 went gold http://www.intec.co.uk/domino-8-5-3-greater-power-over-dojo-thanks-ibm-for-your-work/

Resources