<?xml version="1.0" encoding="ISO-8859-1" ?>
<rss version="2.0"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
 xmlns:admin="http://webns.net/mvcb/"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:content="http://purl.org/rss/1.0/modules/content/"
 xmlns:wfw="http://wellformedweb.org/CommentAPI/">
<channel><title>Mindoo Blog | Comments</title><description>Cutting edge technologies - About Java, Lotus Notes and iPhone</description><link>http://www.mindoo.de/web/blog.nsf/</link><language>en-us</language><lastBuildDate>Thu, 26 Aug 2010 09:53:51 AM +0200</lastBuildDate>
<item>
<title>Our Lotusphere 2010 slides: BP203 - Leverage the New Java APIs in IBM Lotus Notes 8.5.1!</title>
<pubDate>Thu, 26 Aug 2010 09:53:51 AM +0200</pubDate>
<dc:creator>John</dc:creator>
<dc:subject>Our Lotusphere 2010 slides: BP203 - Leverage the New Java APIs in IBM Lotus Notes 8.5.1!</dc:subject>
<description><![CDATA[It's really a good article. I am extremely interested in the LotusScript creating new Eclipse tab layout demo. Could you please share some sample code of the demo? thanks a lot! :)]]></description>
<content:encoded><![CDATA[It's really a good article. I am extremely interested in the LotusScript creating new Eclipse tab layout demo. Could you please share some sample code of the demo? thanks a lot! :)]]></content:encoded>
<link>http://www.mindoo.de/web/blog.nsf/dx/25.01.2010004124KLEVSF.htm?opendocument&amp;comments#2010-08-26095351SERBA8.htm</link>
</item>
<item>
<title>Fast Notes view reading via C API Part 2: How to read views 99.7% faster than Notes.jar</title>
<pubDate>Fri, 20 Aug 2010 05:16:05 PM +0200</pubDate>
<dc:creator>Karsten Lehmann</dc:creator>
<dc:subject>Fast Notes view reading via C API Part 2: How to read views 99.7% faster than Notes.jar</dc:subject>
<description><![CDATA[The C API uses an internal memory buffer to transfer the data. If the buffer is full, NIFReadEntries cannot return more view entries. In that case it does not matter what you specify as the return count value, e.g. in your case 291, 300 or 9000. The amount of rows that are read in one call depends on your view data. For example, in Nathan Freemans sample database, NIFReadEntries reads 691 entries, while in another database that we tried (from MindPlan - { <a href="http://www.mindplan.com " target="_blank" title="Link: www.mindplan.com ">Link</a> } ), we only get 91.<br /><br />You may try to create your own buffer to optimize the throughput. We haven't played with that, because we need a way to let the user stop the read operation. If we read the view in one single step, there no way to cancel the operation AFAIK.]]></description>
<content:encoded><![CDATA[The C API uses an internal memory buffer to transfer the data. If the buffer is full, NIFReadEntries cannot return more view entries. In that case it does not matter what you specify as the return count value, e.g. in your case 291, 300 or 9000. The amount of rows that are read in one call depends on your view data. For example, in Nathan Freemans sample database, NIFReadEntries reads 691 entries, while in another database that we tried (from MindPlan - { <a href="http://www.mindplan.com " target="_blank" title="Link: www.mindplan.com ">Link</a> } ), we only get 91.<br /><br />You may try to create your own buffer to optimize the throughput. We haven't played with that, because we need a way to let the user stop the read operation. If we read the view in one single step, there no way to cancel the operation AFAIK.]]></content:encoded>
<link>http://www.mindoo.de/web/blog.nsf/dx/25.04.2010235255KLETNN.htm?opendocument&amp;comments#20.08.2010171605SERKWL.htm</link>
</item>
<item>
<title>Fast Notes view reading via C API Part 2: How to read views 99.7% faster than Notes.jar</title>
<pubDate>Fri, 20 Aug 2010 04:21:25 PM +0200</pubDate>
<dc:creator>Mikael Paul</dc:creator>
<dc:subject>Fast Notes view reading via C API Part 2: How to read views 99.7% faster than Notes.jar</dc:subject>
<description><![CDATA[What parameters on NIFReadEntries do you use to fix the number of line retrieve at each execution of NIFReadEntries ?<br /><br />I try the 6 th parameters ( ReturnCount ) with the value 3FF for a total of 9000 entries, and the method return me 219 lines each times.]]></description>
<content:encoded><![CDATA[What parameters on NIFReadEntries do you use to fix the number of line retrieve at each execution of NIFReadEntries ?<br /><br />I try the 6 th parameters ( ReturnCount ) with the value 3FF for a total of 9000 entries, and the method return me 219 lines each times.]]></content:encoded>
<link>http://www.mindoo.de/web/blog.nsf/dx/25.04.2010235255KLETNN.htm?opendocument&amp;comments#20082010162125SERJUF.htm</link>
</item>
<item>
<title>XPages series #9: How to debug an XPages application</title>
<pubDate>Mon, 9 Aug 2010 09:55:30 PM +0200</pubDate>
<dc:creator>Karsten Lehmann</dc:creator>
<dc:subject>XPages series #9: How to debug an XPages application</dc:subject>
<description><![CDATA[Hi Matt!<br /><br />Thanks a lot for the link! I did not know the Notes.ini options<br /><br />JavaEnableDebug=1 <br /><br />JavaDebugOptions=transport=dt_socket,server=y,suspend=y,address=*portnumber*<br /><br />to activate the server JVM's debug mode. That's an even better solution for some situations.<br /><br />Best regards,<br /><br />Karsten]]></description>
<content:encoded><![CDATA[Hi Matt!<br /><br />Thanks a lot for the link! I did not know the Notes.ini options<br /><br />JavaEnableDebug=1 <br /><br />JavaDebugOptions=transport=dt_socket,server=y,suspend=y,address=*portnumber*<br /><br />to activate the server JVM's debug mode. That's an even better solution for some situations.<br /><br />Best regards,<br /><br />Karsten]]></content:encoded>
<link>http://www.mindoo.de/web/blog.nsf/dx/20.07.2010094952KLEB7R.htm?opendocument&amp;comments#09.08.2010215530SERRD9.htm</link>
</item>
<item>
<title>XPages series #9: How to debug an XPages application</title>
<pubDate>Mon, 9 Aug 2010 08:23:50 PM +0200</pubDate>
<dc:creator>Matt Vargish</dc:creator>
<dc:subject>XPages series #9: How to debug an XPages application</dc:subject>
<description><![CDATA[Sorry, I managed to get the closing parens in the link...<br /><br />{ <a href="http://getthemostfromnotes.com/tsblog.nsf/d6plinks/KFRA-886LD3" target="_blank" title="Link: getthemostfromnotes.com/tsblog.nsf/d6plinks/KFRA-886LD3">Link</a> }]]></description>
<content:encoded><![CDATA[Sorry, I managed to get the closing parens in the link...<br /><br />{ <a href="http://getthemostfromnotes.com/tsblog.nsf/d6plinks/KFRA-886LD3" target="_blank" title="Link: getthemostfromnotes.com/tsblog.nsf/d6plinks/KFRA-886LD3">Link</a> }]]></content:encoded>
<link>http://www.mindoo.de/web/blog.nsf/dx/20.07.2010094952KLEB7R.htm?opendocument&amp;comments#08092010082350PMSERPKX.htm</link>
</item>
<item>
<title>XPages series #9: How to debug an XPages application</title>
<pubDate>Mon, 9 Aug 2010 08:22:31 PM +0200</pubDate>
<dc:creator>Matt Vargish</dc:creator>
<dc:subject>XPages series #9: How to debug an XPages application</dc:subject>
<description><![CDATA[Thanks Karsten, great series -- I look forward to more.<br /><br />I've just posted about my own experience trying to debug Java in DDE and linked here to your excellent content on XPages ({ <a href="http://getthemostfromnotes.com/tsblog.nsf/d6plinks/KFRA-886LD3). " target="_blank" title="Link: getthemostfromnotes.com/tsblog.nsf/d6plinks/KFRA-886LD3). ">Link</a> } I was able to step into XPages on the server, a bit messy -- and perhaps you've tried the approach -- but I thought I'd mention it.<br /><br />Regards, Matt]]></description>
<content:encoded><![CDATA[Thanks Karsten, great series -- I look forward to more.<br /><br />I've just posted about my own experience trying to debug Java in DDE and linked here to your excellent content on XPages ({ <a href="http://getthemostfromnotes.com/tsblog.nsf/d6plinks/KFRA-886LD3). " target="_blank" title="Link: getthemostfromnotes.com/tsblog.nsf/d6plinks/KFRA-886LD3). ">Link</a> } I was able to step into XPages on the server, a bit messy -- and perhaps you've tried the approach -- but I thought I'd mention it.<br /><br />Regards, Matt]]></content:encoded>
<link>http://www.mindoo.de/web/blog.nsf/dx/20.07.2010094952KLEB7R.htm?opendocument&amp;comments#08092010082231PMSERPK5.htm</link>
</item>
<item>
<title>XPages series #4: Backing Bean Management with XPages</title>
<pubDate>Tue, 3 Aug 2010 05:03:54 PM +0200</pubDate>
<dc:creator>Olle Thalén</dc:creator>
<dc:subject>XPages series #4: Backing Bean Management with XPages</dc:subject>
<description><![CDATA[Thanks for all the tips!<br /><br />I'll think try the first advice with nested repeaters as a start. I also read your article number 5 about detecting data changes in java, I think I'll try to use that approach if I want to detect changes a user has made to the UI component.<br /><br />Thanks again,<br /><br />Olle]]></description>
<content:encoded><![CDATA[Thanks for all the tips!<br /><br />I'll think try the first advice with nested repeaters as a start. I also read your article number 5 about detecting data changes in java, I think I'll try to use that approach if I want to detect changes a user has made to the UI component.<br /><br />Thanks again,<br /><br />Olle]]></content:encoded>
<link>http://www.mindoo.de/web/blog.nsf/dx/16.07.2009095816KLEBCY.htm?opendocument&amp;comments#08032010050354PMSERKNZ.htm</link>
</item>
<item>
<title>XPages series #4: Backing Bean Management with XPages</title>
<pubDate>Sat, 31 Jul 2010 04:08:14 PM +0200</pubDate>
<dc:creator>Karsten Lehmann</dc:creator>
<dc:subject>XPages series #4: Backing Bean Management with XPages</dc:subject>
<description><![CDATA[Thanks Olle!<br /><br />For a completely flexible data table, you could try three things:<br /><br />1. use two nested repeater controls<br /><br />The outer repeater iterates over the rows of your data (e.g. a Notes view). You could implement your own Java List interface that lazily loads data from a Notes view when someone calls List.get(index). I did this in a project. The List implementation contains a fixed cache of entries, so for example, when you call List.get(0), it not only fetches the view entry in row 0, but the entries with index 0 to 50 to improve performance.<br /><br />In your inner repeater, you can then render the code for the table columns. Each row of your outer List could return another List with the column values.<br /><br />2. use a Dojo grid component and feed it with JSON<br /><br />There are already some pretty nice components that can display data lists, so why not use one of these and let it read its data via Ajax call from your XPage as a JSON string? Stephan Wissel from IBM demonstrated in his blog how to return any kind of data in an XPage:<br /><br />{ <a href="http://www.wissel.net/blog/d6plinks/SHWL-7MGFBN" target="_blank" title="Link: www.wissel.net/blog/d6plinks/SHWL-7MGFBN">Link</a> }<br /><br />2. use a completely dynamic approach<br /><br />For another project, I created something more flexible. By using the XPages extensibility APIs, you can develop your own controls. I created a tree control that visualizes a Swing tree model on the web. The whole XPages UI is created in backend Java code when the XPages component tree is build at page load.<br /><br />All value bindings and method bindings for expand/collapse links and partial refreshs are created programmatically as well. You can get some hints on how to do that when you take a closer look at the OpenNTF project Medusa and I think there are also some articles in the Designer wiki.<br /><br />A sample control for this technique could look like this:<br /><br />public class MyControl extends UIComponentBase implements FacesComponent {<br /><br />public MyControl() {<br /><br />super();<br /><br />}<br /><br />public String getFamily() {<br /><br />return "com.company.MyControl";<br /><br />}<br /><br />public void buildContents(FacesContext ctx, FacesComponentBuilder builder) throws FacesException {<br /><br />Application application=ctx.getApplication();<br /><br />List children=getChildren();<br /><br />XspOutputText txt=new XspOutputText();<br /><br />ValueBinding binding=application.createValueBinding("#{javascript:return \"Hello World\"}");<br /><br />txt.setValueBinding("title", binding);<br /><br />children.add(txt);<br /><br />}<br /><br />}<br /><br />You see, you can create whatever you want in your XPages component tree.<br /><br />But be aware that this approach can be very hard to debug.]]></description>
<content:encoded><![CDATA[Thanks Olle!<br /><br />For a completely flexible data table, you could try three things:<br /><br />1. use two nested repeater controls<br /><br />The outer repeater iterates over the rows of your data (e.g. a Notes view). You could implement your own Java List interface that lazily loads data from a Notes view when someone calls List.get(index). I did this in a project. The List implementation contains a fixed cache of entries, so for example, when you call List.get(0), it not only fetches the view entry in row 0, but the entries with index 0 to 50 to improve performance.<br /><br />In your inner repeater, you can then render the code for the table columns. Each row of your outer List could return another List with the column values.<br /><br />2. use a Dojo grid component and feed it with JSON<br /><br />There are already some pretty nice components that can display data lists, so why not use one of these and let it read its data via Ajax call from your XPage as a JSON string? Stephan Wissel from IBM demonstrated in his blog how to return any kind of data in an XPage:<br /><br />{ <a href="http://www.wissel.net/blog/d6plinks/SHWL-7MGFBN" target="_blank" title="Link: www.wissel.net/blog/d6plinks/SHWL-7MGFBN">Link</a> }<br /><br />2. use a completely dynamic approach<br /><br />For another project, I created something more flexible. By using the XPages extensibility APIs, you can develop your own controls. I created a tree control that visualizes a Swing tree model on the web. The whole XPages UI is created in backend Java code when the XPages component tree is build at page load.<br /><br />All value bindings and method bindings for expand/collapse links and partial refreshs are created programmatically as well. You can get some hints on how to do that when you take a closer look at the OpenNTF project Medusa and I think there are also some articles in the Designer wiki.<br /><br />A sample control for this technique could look like this:<br /><br />public class MyControl extends UIComponentBase implements FacesComponent {<br /><br />public MyControl() {<br /><br />super();<br /><br />}<br /><br />public String getFamily() {<br /><br />return "com.company.MyControl";<br /><br />}<br /><br />public void buildContents(FacesContext ctx, FacesComponentBuilder builder) throws FacesException {<br /><br />Application application=ctx.getApplication();<br /><br />List children=getChildren();<br /><br />XspOutputText txt=new XspOutputText();<br /><br />ValueBinding binding=application.createValueBinding("#{javascript:return \"Hello World\"}");<br /><br />txt.setValueBinding("title", binding);<br /><br />children.add(txt);<br /><br />}<br /><br />}<br /><br />You see, you can create whatever you want in your XPages component tree.<br /><br />But be aware that this approach can be very hard to debug.]]></content:encoded>
<link>http://www.mindoo.de/web/blog.nsf/dx/16.07.2009095816KLEBCY.htm?opendocument&amp;comments#31.07.2010160814SERJL7.htm</link>
</item>
<item>
<title>XPages series #4: Backing Bean Management with XPages</title>
<pubDate>Sat, 31 Jul 2010 03:19:49 PM +0200</pubDate>
<dc:creator>Olle Thalén</dc:creator>
<dc:subject>XPages series #4: Backing Bean Management with XPages</dc:subject>
<description><![CDATA[Great article Karsten, I was looking for some examples for how to connect a table in the ui to a managed bean back-end. Now I know how to do it. :)<br /><br />I was thinking about one thing though, in your example the columns and their names are fixed. So it is difficult to swap between different views. I was thinking about creating a dynamic view control where you can set the view name as a parameter and then load the content of that view in a custom control. My idea was to use a backing bean to read which view the user wants to use, then using the standard domino api to access that view and populate a backing bean with data from that view.<br /><br />But in order to achieve this you must be able to render the columns in the table in a dynamic way, maybe using a repeat control? And instead of mapping the column value to a string property like you do, e.g value = "#{currentActor.firstname}", I would use value = "#{myBean.columns[indexVar]}". Where indexVar is the counter of the repeat control and columns is a java.util.List in the java bean.<br /><br />Do you think this would be possible? I know it is technically possible to access a list in a java bean with the above syntax in E.L, I'm not sure however if you can index one element in the list using the counter from the repeat control.<br /><br />I've seen example of dynamic views before, but those solutions have been based on SSJS and not the JSF technology. I think it breaks the MVC design pattern when you use too much SSJS, and I would prefer to have all my buisiness logic in beans, and use E.L to access data in the UI.]]></description>
<content:encoded><![CDATA[Great article Karsten, I was looking for some examples for how to connect a table in the ui to a managed bean back-end. Now I know how to do it. :)<br /><br />I was thinking about one thing though, in your example the columns and their names are fixed. So it is difficult to swap between different views. I was thinking about creating a dynamic view control where you can set the view name as a parameter and then load the content of that view in a custom control. My idea was to use a backing bean to read which view the user wants to use, then using the standard domino api to access that view and populate a backing bean with data from that view.<br /><br />But in order to achieve this you must be able to render the columns in the table in a dynamic way, maybe using a repeat control? And instead of mapping the column value to a string property like you do, e.g value = "#{currentActor.firstname}", I would use value = "#{myBean.columns[indexVar]}". Where indexVar is the counter of the repeat control and columns is a java.util.List in the java bean.<br /><br />Do you think this would be possible? I know it is technically possible to access a list in a java bean with the above syntax in E.L, I'm not sure however if you can index one element in the list using the counter from the repeat control.<br /><br />I've seen example of dynamic views before, but those solutions have been based on SSJS and not the JSF technology. I think it breaks the MVC design pattern when you use too much SSJS, and I would prefer to have all my buisiness logic in beans, and use E.L to access data in the UI.]]></content:encoded>
<link>http://www.mindoo.de/web/blog.nsf/dx/16.07.2009095816KLEBCY.htm?opendocument&amp;comments#2010-07-31151949SERHMX.htm</link>
</item>
<item>
<title>The View article: Add LSDoc Support to Domino Designer on Eclipse with Custom Plug-ins (download link included)</title>
<pubDate>Fri, 23 Jul 2010 03:37:49 AM +0200</pubDate>
<dc:creator>Stephan H. WIssel</dc:creator>
<dc:subject>The View article: Add LSDoc Support to Domino Designer on Eclipse with Custom Plug-ins (download link included)</dc:subject>
<description><![CDATA[Excellent!<br /><br />Suggestion: Put the installable on an Update site (OpenNTF could accommodate you there), so future updates are automatically deployed.<br /><br />One idea for the presentation: if you do an XPages UI it will work in a Local Notes client too.]]></description>
<content:encoded><![CDATA[Excellent!<br /><br />Suggestion: Put the installable on an Update site (OpenNTF could accommodate you there), so future updates are automatically deployed.<br /><br />One idea for the presentation: if you do an XPages UI it will work in a Local Notes client too.]]></content:encoded>
<link>http://www.mindoo.de/web/blog.nsf/dx/22.07.2010223240KLES4H.htm?opendocument&amp;comments#07232010033749AMSER3X8.htm</link>
</item>
<item>
<title>XPages series #9: How to debug an XPages application</title>
<pubDate>Wed, 21 Jul 2010 02:14:04 PM +0200</pubDate>
<dc:creator>Stephan H. Wissel</dc:creator>
<dc:subject>XPages series #9: How to debug an XPages application</dc:subject>
<description><![CDATA[You could launch Eclipse using the Domino JVM. This way it should find most of the classes on the classpath]]></description>
<content:encoded><![CDATA[You could launch Eclipse using the Domino JVM. This way it should find most of the classes on the classpath]]></content:encoded>
<link>http://www.mindoo.de/web/blog.nsf/dx/20.07.2010094952KLEB7R.htm?opendocument&amp;comments#07212010021404PMSERGCV.htm</link>
</item>
<item>
<title>XPages series #4: Backing Bean Management with XPages</title>
<pubDate>Thu, 15 Jul 2010 11:16:05 AM +0200</pubDate>
<dc:creator>Karsten Lehmann</dc:creator>
<dc:subject>XPages series #4: Backing Bean Management with XPages</dc:subject>
<description><![CDATA[Yes, that's possible. I think I saw some samples in the Designer wiki where they accessed web services from XPages in SSJS, but that's also possible in Java code.<br /><br />In 8.5.1, you may have to tweak with the Java security settings to make it work in the client, but IBM has worked on that issue for 8.5.2.<br /><br />See this blog posting for details on running XPages in the Notes client with code in Java beans:<br /><br />{ <a href="http://blog.mindoo.com/web/blog.nsf/dx/21.10.2009142550KLEGL7.htm?opendocument&comments#anc1" target="_blank" title="Link: blog.mindoo.com/web/blog.nsf/dx/21.10.2009142550KLEGL7.htm?opendocument&comments#anc1">Link</a> }<br /><br />It should work in an XPages app on a Domino server without security issues.]]></description>
<content:encoded><![CDATA[Yes, that's possible. I think I saw some samples in the Designer wiki where they accessed web services from XPages in SSJS, but that's also possible in Java code.<br /><br />In 8.5.1, you may have to tweak with the Java security settings to make it work in the client, but IBM has worked on that issue for 8.5.2.<br /><br />See this blog posting for details on running XPages in the Notes client with code in Java beans:<br /><br />{ <a href="http://blog.mindoo.com/web/blog.nsf/dx/21.10.2009142550KLEGL7.htm?opendocument&comments#anc1" target="_blank" title="Link: blog.mindoo.com/web/blog.nsf/dx/21.10.2009142550KLEGL7.htm?opendocument&comments#anc1">Link</a> }<br /><br />It should work in an XPages app on a Domino server without security issues.]]></content:encoded>
<link>http://www.mindoo.de/web/blog.nsf/dx/16.07.2009095816KLEBCY.htm?opendocument&amp;comments#15.07.2010111605SERCVL.htm</link>
</item>
<item>
<title>XPages series #4: Backing Bean Management with XPages</title>
<pubDate>Thu, 15 Jul 2010 10:43:29 AM +0200</pubDate>
<dc:creator>Fedor Belov</dc:creator>
<dc:subject>XPages series #4: Backing Bean Management with XPages</dc:subject>
<description><![CDATA[Thanks... is is very interesting info. Pls continue your work =)<br /><br />I've got a crazy idea, pls comment it:<br /><br />1. Java application server (tomcat) is responsible for background logic. It doesn't know about LN objects because we store content in SQL DB (mySQL, for example)<br /><br />2. xPages is used to display/update content in LN Client from/to SQL DB (using beans)]]></description>
<content:encoded><![CDATA[Thanks... is is very interesting info. Pls continue your work =)<br /><br />I've got a crazy idea, pls comment it:<br /><br />1. Java application server (tomcat) is responsible for background logic. It doesn't know about LN objects because we store content in SQL DB (mySQL, for example)<br /><br />2. xPages is used to display/update content in LN Client from/to SQL DB (using beans)]]></content:encoded>
<link>http://www.mindoo.de/web/blog.nsf/dx/16.07.2009095816KLEBCY.htm?opendocument&amp;comments#15.07.2010104329SERC98.htm</link>
</item>
<item>
<title>XPages series #4: Backing Bean Management with XPages</title>
<pubDate>Thu, 15 Jul 2010 02:25:14 AM +0200</pubDate>
<dc:creator>Karsten Lehmann</dc:creator>
<dc:subject>XPages series #4: Backing Bean Management with XPages</dc:subject>
<description><![CDATA[Fedor, yes, it's possible. Should be faster, but another advantage is that you can directly call Java from Javascript and pass variables between both languages without writing values to Notes documents, pass their note id to an agent etc.<br /><br />Regarding the memory leaks: Well, it depends on your code. Compared to executing an agent, using beans might have a higher risk of producing memory leaks, because the Notes agents are loaded with their own classloader and unloaded after their execution (which makes it slower to call the agent compared to call Java methods directly).<br /><br />You should avoid using the singleton design pattern in your bean code, because all XPages code is executed in the same JVM instance and that JVM only shuts down when you shut down the whole server. By using singletons, the garbage collector is not able to release the memory allocated by your bean code.<br /><br />A better approach is to store data and object references either in one of the scope maps (e.g. session scope). The Domino server flushes those maps after a timeout. I think the default session duration is 30 minutes.]]></description>
<content:encoded><![CDATA[Fedor, yes, it's possible. Should be faster, but another advantage is that you can directly call Java from Javascript and pass variables between both languages without writing values to Notes documents, pass their note id to an agent etc.<br /><br />Regarding the memory leaks: Well, it depends on your code. Compared to executing an agent, using beans might have a higher risk of producing memory leaks, because the Notes agents are loaded with their own classloader and unloaded after their execution (which makes it slower to call the agent compared to call Java methods directly).<br /><br />You should avoid using the singleton design pattern in your bean code, because all XPages code is executed in the same JVM instance and that JVM only shuts down when you shut down the whole server. By using singletons, the garbage collector is not able to release the memory allocated by your bean code.<br /><br />A better approach is to store data and object references either in one of the scope maps (e.g. session scope). The Domino server flushes those maps after a timeout. I think the default session duration is 30 minutes.]]></content:encoded>
<link>http://www.mindoo.de/web/blog.nsf/dx/16.07.2009095816KLEBCY.htm?opendocument&amp;comments#15.07.2010022514SER2HT.htm</link>
</item>
<item>
<title>XPages series #4: Backing Bean Management with XPages</title>
<pubDate>Wed, 14 Jul 2010 12:31:38 PM +0200</pubDate>
<dc:creator>Fedor Belov</dc:creator>
<dc:subject>XPages series #4: Backing Bean Management with XPages</dc:subject>
<description><![CDATA[Does it mean that we are able to realize background logic using beans without any Java/LS agent? Is it faster, better? What about memory leak?]]></description>
<content:encoded><![CDATA[Does it mean that we are able to realize background logic using beans without any Java/LS agent? Is it faster, better? What about memory leak?]]></content:encoded>
<link>http://www.mindoo.de/web/blog.nsf/dx/16.07.2009095816KLEBCY.htm?opendocument&amp;comments#14.07.2010123138SERECT.htm</link>
</item>
<item>
<title>Lotusphere announcement: LS2Eclipse - Leverage Eclipse/Expeditor features in your Lotusscript code!</title>
<pubDate>Wed, 30 Jun 2010 04:28:33 PM +0200</pubDate>
<dc:creator>Karsten Lehmann</dc:creator>
<dc:subject>Lotusphere announcement: LS2Eclipse - Leverage Eclipse/Expeditor features in your Lotusscript code!</dc:subject>
<description><![CDATA[Hi Joerg,<br /><br />at the moment it's temporarily suspended due to very high project workload. I'm planning to work on it again in about 2 months from now.<br /><br />We had some trouble with the tool after Lotusphere, because we tried for a long time to use an alternative approach that we got from our fellows at Teamstudio, which would have been the best bridging solution between both worlds so far and supported on multiple platforms. Unfortunately, it turned out to be too instable to be used, so I focused again on two different approaches for Windows/Linux and Mac that I had created (As heavy Mac users, our goal is of course to be Mac compatible from the beginning)<br /><br />The Mac client was a bit tricky, because threading is different than on Windows and we also worked with IBM on some issues in the client and waited long time whether they will be fixed in 8.5.2 to make our Windows approach also work on the Mac.<br /><br />IBM now told us that they will look into the issues for 8.5.3.<br /><br />So finally, the last time I worked on LS2Eclipse, I was unifying the code of my different approaches for Windows/Linux and Mac to make deployment easier.<br /><br />Well, then a few projects crossed our road...<br /><br />If you're interested in the solution, please feel free to send me an email.<br /><br />Best regards,<br /><br />Karsten]]></description>
<content:encoded><![CDATA[Hi Joerg,<br /><br />at the moment it's temporarily suspended due to very high project workload. I'm planning to work on it again in about 2 months from now.<br /><br />We had some trouble with the tool after Lotusphere, because we tried for a long time to use an alternative approach that we got from our fellows at Teamstudio, which would have been the best bridging solution between both worlds so far and supported on multiple platforms. Unfortunately, it turned out to be too instable to be used, so I focused again on two different approaches for Windows/Linux and Mac that I had created (As heavy Mac users, our goal is of course to be Mac compatible from the beginning)<br /><br />The Mac client was a bit tricky, because threading is different than on Windows and we also worked with IBM on some issues in the client and waited long time whether they will be fixed in 8.5.2 to make our Windows approach also work on the Mac.<br /><br />IBM now told us that they will look into the issues for 8.5.3.<br /><br />So finally, the last time I worked on LS2Eclipse, I was unifying the code of my different approaches for Windows/Linux and Mac to make deployment easier.<br /><br />Well, then a few projects crossed our road...<br /><br />If you're interested in the solution, please feel free to send me an email.<br /><br />Best regards,<br /><br />Karsten]]></content:encoded>
<link>http://www.mindoo.de/web/blog.nsf/dx/11.01.2010135317KLEH5D.htm?opendocument&amp;comments#30.06.2010162833SERJYW.htm</link>
</item>
<item>
<title>XPages series #5: Helper classes to access the JSF environment and Lotus Notes data</title>
<pubDate>Wed, 30 Jun 2010 04:05:32 PM +0200</pubDate>
<dc:creator>Johnny Jiang</dc:creator>
<dc:subject>XPages series #5: Helper classes to access the JSF environment and Lotus Notes data</dc:subject>
<description><![CDATA[Hi Karsten,<br /><br />Your blog has been really helpful for me, thanks a lot.<br /><br />Johnny]]></description>
<content:encoded><![CDATA[Hi Karsten,<br /><br />Your blog has been really helpful for me, thanks a lot.<br /><br />Johnny]]></content:encoded>
<link>http://www.mindoo.de/web/blog.nsf/dx/18.07.2009191738KLENAL.htm?opendocument&amp;comments#06302010040532PMSERJJH.htm</link>
</item>
<item>
<title>Lotusphere announcement: LS2Eclipse - Leverage Eclipse/Expeditor features in your Lotusscript code!</title>
<pubDate>Wed, 30 Jun 2010 04:04:04 PM +0200</pubDate>
<dc:creator>Joerg S.</dc:creator>
<dc:subject>Lotusphere announcement: LS2Eclipse - Leverage Eclipse/Expeditor features in your Lotusscript code!</dc:subject>
<description><![CDATA[Hi Karsten, <br /><br />what's the current state of your LS2Eclipse project?<br /><br />Joerg]]></description>
<content:encoded><![CDATA[Hi Karsten, <br /><br />what's the current state of your LS2Eclipse project?<br /><br />Joerg]]></content:encoded>
<link>http://www.mindoo.de/web/blog.nsf/dx/11.01.2010135317KLEH5D.htm?opendocument&amp;comments#06302010040404PMSERJHL.htm</link>
</item>
<item>
<title>Fast Notes view reading via C API Part 2: How to read views 99.7% faster than Notes.jar</title>
<pubDate>Sat, 8 May 2010 08:53:30 PM +0200</pubDate>
<dc:creator>Bill Wheaton</dc:creator>
<dc:subject>Fast Notes view reading via C API Part 2: How to read views 99.7% faster than Notes.jar</dc:subject>
<description><![CDATA[Nathan, what if you upped the ante to say 1.5 million docs - is it linear?]]></description>
<content:encoded><![CDATA[Nathan, what if you upped the ante to say 1.5 million docs - is it linear?]]></content:encoded>
<link>http://www.mindoo.de/web/blog.nsf/dx/25.04.2010235255KLETNN.htm?opendocument&amp;comments#05082010085330PMSERQ6H.htm</link>
</item>
<item>
<title>Fast Notes view reading via C API Part 2: How to read views 99.7% faster than Notes.jar</title>
<pubDate>Mon, 26 Apr 2010 16:41:27 +0200</pubDate>
<dc:creator>Nathan T. Freeman</dc:creator>
<dc:subject>Fast Notes view reading via C API Part 2: How to read views 99.7% faster than Notes.jar</dc:subject>
<description><![CDATA[Performance test off my multi-threaded JNI vs. notes.jar<br /><br />4 overall loops: JNI ViewEntry walk (FastVE), notes.jar ViewEntry walk (SlowVE), JNI Document walk (FastDoc), notes.jar Document walk (SlowDoc).<br /><br />Running against 4 identical NSFs, each with a single view that shows 15,000 documents.<br /><br />Each test run starts 8 jobs of that loop styles, 2 jobs per NSF. The timing number is the average run time for each job.<br /><br />Local NSF, FastVE, avg ms: 1700<br /><br />Local NSF, SlowVE avg ms: 15000<br /><br />Local NSF FastDoc, avg ms: 2000<br /><br />Local NSF SlowDoc avg ms: 24000<br /><br />Remote server: 100Mbps server about 30 feet from my desk.<br /><br />Remote NSF, FastVE, avg ms: 6100<br /><br />Remote NSF, SlowVE, avg ms: 132000<br /><br />Remote NSF, FastDoc, avg ms: 6200<br /><br />Remote NSF, SlowDoc avg ms: 261000<br /><br />This is using a ReadEntry block size of 1000.<br /><br />Remember, each average is determined by running 8 jobs with the same algorithm concurrently against 4 separate instances of an identical NSF.]]></description>
<content:encoded><![CDATA[Performance test off my multi-threaded JNI vs. notes.jar<br /><br />4 overall loops: JNI ViewEntry walk (FastVE), notes.jar ViewEntry walk (SlowVE), JNI Document walk (FastDoc), notes.jar Document walk (SlowDoc).<br /><br />Running against 4 identical NSFs, each with a single view that shows 15,000 documents.<br /><br />Each test run starts 8 jobs of that loop styles, 2 jobs per NSF. The timing number is the average run time for each job.<br /><br />Local NSF, FastVE, avg ms: 1700<br /><br />Local NSF, SlowVE avg ms: 15000<br /><br />Local NSF FastDoc, avg ms: 2000<br /><br />Local NSF SlowDoc avg ms: 24000<br /><br />Remote server: 100Mbps server about 30 feet from my desk.<br /><br />Remote NSF, FastVE, avg ms: 6100<br /><br />Remote NSF, SlowVE, avg ms: 132000<br /><br />Remote NSF, FastDoc, avg ms: 6200<br /><br />Remote NSF, SlowDoc avg ms: 261000<br /><br />This is using a ReadEntry block size of 1000.<br /><br />Remember, each average is determined by running 8 jobs with the same algorithm concurrently against 4 separate instances of an identical NSF.]]></content:encoded>
<link>http://www.mindoo.de/web/blog.nsf/dx/25.04.2010235255KLETNN.htm?opendocument&amp;comments#04262010044127PMSERK8Y.htm</link>
</item>

</channel></rss>
