<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>HIDEN.org &#187; Open-Jacob</title>
	<atom:link href="http://www.hiden.org/category/open-jacob/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hiden.org</link>
	<description>EDV mit System</description>
	<lastBuildDate>Fri, 19 Aug 2011 16:37:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Apache2 and Tomcat 5.5</title>
		<link>http://www.hiden.org/open-jacob/apache2-and-tomcat-5-5/</link>
		<comments>http://www.hiden.org/open-jacob/apache2-and-tomcat-5-5/#comments</comments>
		<pubDate>Sun, 23 Jan 2011 18:44:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Open-Jacob]]></category>
		<category><![CDATA[SysAdmin]]></category>

		<guid isPermaLink="false">http://www.hiden.org/?p=433</guid>
		<description><![CDATA[Assuming you have a default installation of Apache 2 and Tomcat 5.5 running on your Ubuntu box. Like apache on http://hiserver and Tomcat on http://hiserver:8080 Now you want to accces i.e. http://hiserver:8080/baula through apache with http://hiserver/baula Install mod_jk with ﻿﻿apt-get install libapache2-mod-jk and enable the module with a2enmod jk create the file /etc/apache2/mods-enabled/jk.conf JkWorkersFile /etc/apache2/workers.properties [...]]]></description>
			<content:encoded><![CDATA[<p>Assuming you have a default installation of Apache 2 and Tomcat 5.5 running on your Ubuntu box.</p>
<p>Like apache on <em>http://hiserver</em> and Tomcat on <em>http://hiserver:8080</em></p>
<p>Now you want to accces i.e. <em>http://hiserver:8080/baula</em> through apache with <em>http://hiserver/baula</em></p>
<p><span id="more-433"></span>Install mod_jk with</p>
<blockquote><p>﻿﻿apt-get install libapache2-mod-jk</p></blockquote>
<p>and enable the module with</p>
<blockquote><p>a2enmod jk</p></blockquote>
<p>create the file <em>/etc/apache2/mods-enabled/jk.conf</em></p>
<blockquote>
<div id="_mcePaste">JkWorkersFile /etc/apache2/workers.properties</div>
<div id="_mcePaste">JkLogFile /var/log/apache2/mod_jk.log</div>
<div id="_mcePaste">JkLogLevel error</div>
</blockquote>
<p>create the file <em>/etc/apache2/workers.properties</em> (change the content to your needs)</p>
<blockquote><p>workers.tomcat_home=/opt/baula/tomcat<br />
workers.java_home=/usr/lib/java<br />
ps=/<br />
worker.list=mainworker<br />
worker.mainworker.type=ajp13<br />
worker.mainworker.port=8009<br />
worker.mainworker.cachesize=20</p></blockquote>
<p>edit i.e.<em> /etc/apache2/sites-available/default </em>and place the following between the &lt;VirtualHost&gt; tags</p>
<blockquote><p>JKMount /baula* mainworker</p></blockquote>
<p>Now restart Apache and <em>http://hiserver/baula</em> should show the content of <em>http://hiserver:<strong>8080</strong>/baula</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hiden.org/open-jacob/apache2-and-tomcat-5-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Birt Reports with OpenJacob and the Euro Sign</title>
		<link>http://www.hiden.org/open-jacob/birt-reports-with-openjacob-and-the-euro-sign/</link>
		<comments>http://www.hiden.org/open-jacob/birt-reports-with-openjacob-and-the-euro-sign/#comments</comments>
		<pubDate>Mon, 20 Sep 2010 07:54:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Open-Jacob]]></category>

		<guid isPermaLink="false">http://hiden.org/?p=366</guid>
		<description><![CDATA[The following has only been testet with jACOB / MySQL / Birt running on Ubuntu 10.04 (Lucid Lynx). For some strange reason it happens that text containing Euro signs (€) displays perfectly well between OpenJacob and MySQL but when running a Birt Report they aren&#8217;t displayed correctly. This happens with a driver URL in Birt [...]]]></description>
			<content:encoded><![CDATA[<p>The following has only been testet with jACOB / MySQL / Birt running on Ubuntu 10.04 (Lucid Lynx).</p>
<p>For some strange reason it happens that text containing Euro signs (€) displays perfectly well between OpenJacob and MySQL but when running a Birt Report they aren&#8217;t displayed correctly.</p>
<p>This happens with a driver URL in Birt like:<br />
<em>jdbc:mysql://localhost:3306/databasename</em></p>
<p>but adding some character set information to the URL in Birt resolves this issue<br />
<em>jdbc:mysql://localhost:3306/databasename?characterSetResults=UTF-8</em></p>
<p>Maybe someone from <a href="http://www.tarragon-software.com/cms/">Tarragon Software</a> could be so nice to comment on this.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hiden.org/open-jacob/birt-reports-with-openjacob-and-the-euro-sign/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Birt Reports with OpenJacob</title>
		<link>http://www.hiden.org/open-jacob/birt-reports-with-openjacob/</link>
		<comments>http://www.hiden.org/open-jacob/birt-reports-with-openjacob/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 06:19:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Open-Jacob]]></category>
		<category><![CDATA[Open-Jacob - Code Snippets]]></category>

		<guid isPermaLink="false">http://hiden.org/?p=339</guid>
		<description><![CDATA[Integrating Birt Reports into OpenJacob is quite straightforward but note that (at the time of this writing) you need Birt Version 2.5 ! When creating the report&#8217;s datasource you have to use the same name you use in your jACOB application. Otherwise jACOB will not be able to use your Report. Create your report and [...]]]></description>
			<content:encoded><![CDATA[<p>Integrating Birt Reports into OpenJacob is quite straightforward but note that (at the time of this writing) you need Birt Version 2.5 !</p>
<ol>
<li>When creating the report&#8217;s datasource you have to use the same name you use in your jACOB application. Otherwise jACOB will not be able to use your Report.</li>
<li>Create your report and specify the required parameters.</li>
<li>When having finished your report, upload the .rptdesign file to a document field in your application. (e.g. a config table)</li>
<li>The following code opens the report, hands over a parameter and returns a .pdf</li>
</ol>
<pre>	BirtReport rpt = new BirtReport(cnfrec.getDocumentValue("report"));
	rpt.setParameterValue("mypar", currentRecord.getStringValue("pkey"));
	byte[] barr = rpt.createPDF();
	context.createDocumentDialog(null, "doc.pdf", barr).show();</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.hiden.org/open-jacob/birt-reports-with-openjacob/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jACOB 2.9 has been released</title>
		<link>http://www.hiden.org/open-jacob/jacob2/</link>
		<comments>http://www.hiden.org/open-jacob/jacob2/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 17:31:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Open-Jacob]]></category>

		<guid isPermaLink="false">http://hiden.org/?p=300</guid>
		<description><![CDATA[With Open-jACOB 2.9 tarragon-software.com made another big step forward. The new version contains many many improvements compared to the previous official release like: Tree browser with drag and drop. Radio buttons to select functions. Hideable Forms Enum fields with I18N Tooltips. A combination of error messages and tips on how to correct. Foreign fields as [...]]]></description>
			<content:encoded><![CDATA[<p>With Open-jACOB 2.9 <a href="http://www.tarragon-software.com">tarragon-software.com</a> made another big step forward.<br />
The new version contains many many improvements compared to the previous official release like:</p>
<ul>
<li> Tree browser with drag and drop.</li>
<li> Radio buttons to select functions.</li>
<li> Hideable Forms</li>
<li> Enum fields with I18N</li>
<li> Tooltips. A combination of error messages and tips on how to correct.</li>
<li> Foreign fields as combo box.</li>
<li> Breadcrumb control.</li>
<li> Single sign on functionality through CAS.</li>
<li> Embedded transactions</li>
<li> Dynamic changeable forms.</li>
<li> Full text search on long text fields.</li>
<li> Distinguish between primary and secondary DBâs in multiple databases, dependent on who owns the data.</li>
</ul>
<p>Installation instructions can be found at <a href="http://www.openjacob.org/">openjacob.org</a></p>
<p>The Java Docs are <a href="http://www.tarragon-software.com/wiki/javadoc/index.html">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hiden.org/open-jacob/jacob2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open-Jacob CommandEntryPoints and Encoding</title>
		<link>http://www.hiden.org/open-jacob/open-jacob-commandentrypoints-and-encoding/</link>
		<comments>http://www.hiden.org/open-jacob/open-jacob-commandentrypoints-and-encoding/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 17:49:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Open-Jacob]]></category>

		<guid isPermaLink="false">http://hiden.org/?p=253</guid>
		<description><![CDATA[I&#8217;ve written a small servlet that communicates with a Jacob Application through CommandEntry Points. Not the most elegant solution for sure but _very_ flexible. When the servlet calls the entry point&#8217;s Url then we have everything UTF-8 encoded and additionally used URLEncoder.encode(URL). On the jacob side the Data arrives as ISO8859-1 although everything in Jacob [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve written a small servlet that communicates with a Jacob Application through CommandEntry Points. Not the most elegant solution for sure but _very_ flexible.</p>
<p>When the servlet calls the entry point&#8217;s Url then we have everything UTF-8 encoded and additionally used URLEncoder.encode(URL).</p>
<p>On the jacob side the Data arrives as ISO8859-1 although everything in Jacob appears to be UTF-8. But a simple</p>
<pre>String data1= new String(properties.getProperty("data1").getBytes("ISO8859-1"),"UTF-8");</pre>
<p>does the job.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hiden.org/open-jacob/open-jacob-commandentrypoints-and-encoding/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open-Jacob and cascading deletes</title>
		<link>http://www.hiden.org/open-jacob/open-jacob-and-cascading-deletes/</link>
		<comments>http://www.hiden.org/open-jacob/open-jacob-and-cascading-deletes/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 14:55:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Open-Jacob]]></category>

		<guid isPermaLink="false">http://hiden.org/?p=181</guid>
		<description><![CDATA[Open-Jacob (currently) does not support cascading deletes. Depending on the database used you could implement this at the database level but this would be no good idea since Open-Jacob itself keeps track of the data and could stumble when records are getting modified from another side. Let&#8217;s assume the following database schema We want to [...]]]></description>
			<content:encoded><![CDATA[<p>Open-Jacob (currently) does not support cascading deletes. Depending on the database used you could implement this at the database level but this would be no good idea since Open-Jacob itself keeps track of the data and could stumble when records are getting modified from another side.</p>
<p>Let&#8217;s assume the following database schema</p>
<p style="text-align: center;"><img class="size-full wp-image-182 aligncenter" title="relations" src="http://www.hiden.org/wp-content/uploads/2009/09/relations.jpeg" alt="relations" width="235" height="172" /></p>
<p><span id="more-181"></span></p>
<p>We want to be able to delete records from the tables <strong>hauptprf</strong> and/or <strong>teilprf</strong>. Therefore we need toÂ  add some code to the classes <strong>HauptprfTableRecord</strong> and <strong>TeilprfTableRecord</strong> both attached to the respective tablealias.</p>
<p><strong>HauptprfTableRecord</strong></p>
<blockquote><p>public void afterDeleteAction(IDataTableRecord tableRecord, IDataTransaction transaction) throws Exception<br />
{<br />
IDataTable hprdet = tableRecord.getAccessor().getTable(Hauptprfdet.NAME);<br />
hprdet.qbeSetKeyValue(Hauptprfdet.hauptprf_key, tableRecord.getValue(&#8220;pkey&#8221;));<br />
hprdet.fastDelete(transaction);</p>
<p>IDataTable hprdok = tableRecord.getAccessor().getTable(Hauptprfdok.NAME);<br />
hprdok.qbeSetKeyValue(Hauptprfdok.hauptprf_key, tableRecord.getValue(&#8220;pkey&#8221;));<br />
hprdok.fastDelete(transaction);</p>
<p>IDataTable hprgeb = tableRecord.getAccessor().getTable(Hauptprfgeb.NAME);<br />
hprgeb.qbeSetKeyValue(Hauptprfgeb.hauptprf_key, tableRecord.getValue(&#8220;pkey&#8221;));<br />
hprgeb.fastDelete(transaction);</p>
<p>IDataTable teilprf = tableRecord.getAccessor().getTable(Teilprf.NAME);<br />
teilprf.qbeSetKeyValue(Teilprf.hauptprf_key, tableRecord.getValue(&#8220;pkey&#8221;));<br />
teilprf.searchAndDelete(transaction);<br />
}
</p></blockquote>
<p><strong>TeilprfTableRecord</strong></p>
<blockquote><p>public void afterDeleteAction(IDataTableRecord tableRecord, IDataTransaction transaction) throws Exception<br />
{<br />
IDataTable teildet = tableRecord.getAccessor().getTable(Teilprfdet.NAME);<br />
teildet.qbeSetKeyValue(Teilprfdet.teilprf_key, tableRecord.getValue(&#8220;pkey&#8221;));<br />
teildet.fastDelete(transaction);</p>
<p>IDataTable teildok = tableRecord.getAccessor().getTable(Teilprfdok.NAME);<br />
teildok.qbeSetKeyValue(Teilprfdok.teilprf_key, tableRecord.getValue(&#8220;pkey&#8221;));<br />
teildok.fastDelete(transaction);</p>
<p>IDataTable colldat = tableRecord.getAccessor().getTable(Collecteddata.NAME);<br />
colldat .qbeSetKeyValue(Collecteddata.teilprf_key, tableRecord.getValue(&#8220;pkey&#8221;));<br />
colldat .fastDelete(transaction);<br />
}
</p></blockquote>
<p>The only important thing is that fastDelete offers great performance but DOES NOT trigger any other hooks. Therefore deleting the teilprf data from the hauptprfÂ  function contains the searchAndDelete function ! All the other delete operations can be done using fastDelete since the respective tables are the last in the hierarchy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hiden.org/open-jacob/open-jacob-and-cascading-deletes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reverse Engeneering a Database for Open-Jacob</title>
		<link>http://www.hiden.org/open-jacob/reverse-engeneering-a-database/</link>
		<comments>http://www.hiden.org/open-jacob/reverse-engeneering-a-database/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 19:51:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Open-Jacob]]></category>

		<guid isPermaLink="false">http://hiserver/hiden.org/?p=112</guid>
		<description><![CDATA[In order to reverse engineer a existing database you can use the FetchDatasourceSchemaInfo Entry Point. 1. Create a new blank jACOB Application 2. Create a datasource in the jACOB Admin Application that points to the desired database you want to reverese engineer. 3. Call the entry point http://localhost:8080/jacob/cmdenter?entry=FetchDatasourceSchemaInfo&#38;app=admin&#38;user=USERNAME&#38;pwd=PASSWORD&#38;dataSource=DATASOURCE&#38;newapp=NEWAPP Where you replace localhost:8080 with the real [...]]]></description>
			<content:encoded><![CDATA[<p>In order to reverse engineer a existing database you can use the <strong>FetchDatasourceSchemaInfo</strong> Entry Point.<span id="more-112"></span></p>
<p>1. Create a new blank jACOB Application</p>
<p>2. Create a datasource in the jACOB Admin Application that points to the desired database you want to reverese engineer.</p>
<p>3. Call the entry point<br />
<a title="http://localhost:8080/jacob/cmdenter?entry=FetchDatasourceSchemaInfo&amp;app=admin&amp;user=USERNAME&amp;pwd=PASSWORD&amp;dataSource=DATASOURCE&amp;newapp=NEWAPP" rel="nofollow" href="http://localhost:8080/jacob/cmdenter?entry=FetchDatasourceSchemaInfo&amp;app=admin&amp;user=USERNAME&amp;pwd=PASSWORD&amp;dataSource=DATASOURCE&amp;newapp=NEWAPP">http://localhost:8080/jacob/cmdenter?entry=FetchDatasourceSchemaInfo&amp;app=admin&amp;user=USERNAME&amp;pwd=PASSWORD&amp;dataSource=DATASOURCE&amp;newapp=NEWAPP</a><br />
Where you replace <em>localhost:8080</em> with the real jACOB-server name and port.<br />
Replace <em>DATASOURCE</em> in the url with the name of the data source schema information should be fetched from.<br />
Replace <em>NEWAPP</em> in the url with the desired application name of the generated JAD file.</p>
<p>4. If everything works then your browser shows the new JAD.</p>
<p>Now show the source code of this page and paste the content into your application.jad</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hiden.org/open-jacob/reverse-engeneering-a-database/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Modern Odyssey</title>
		<link>http://www.hiden.org/open-jacob/a-modern-odyssey/</link>
		<comments>http://www.hiden.org/open-jacob/a-modern-odyssey/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 19:16:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Open-Jacob]]></category>

		<guid isPermaLink="false">http://hiserver/hiden.org/?p=104</guid>
		<description><![CDATA[I have been developing M$-Access based solutions for about a decade. The more I dug deeper the more I&#8217;ve been dissatisfied. Therefore I started to look around for a new development tool. I should &#8220;only&#8221; meet a few requirements. Open Source &#8211; not because I didn&#8217;t want to spend money but because I wantet to [...]]]></description>
			<content:encoded><![CDATA[<p>I have been developing M$-Access based solutions for about a decade. The more I dug deeper the more I&#8217;ve been dissatisfied. Therefore I started to look around for a new development tool. <span id="more-104"></span></p>
<p>I should &#8220;only&#8221; meet a few requirements.</p>
<ol>
<li>Open Source &#8211; not because I didn&#8217;t want to spend money but because I wantet to be free.</li>
<li>Web based &#8211; I was tired of hassling aoround with all sorts of dependencies.</li>
<li>Platform idependent &#8211; both for development and runtime.</li>
<li>Multilanguage</li>
<li>a GUI Designer</li>
</ol>
<p>What I&#8217;ve been using (or tried to use)  for all sorts of small apps from around 2005 was:</p>
<ul>
<li><a href="http://www.devdata.de/ccstudio.php">CodeCharge Studio</a> -misses 1,3,4</li>
<li>ActiveGrid &#8211; missed 4 &#8211; and was discontinued &#8211; successor WaveMaker</li>
<li><a href="http://wavemaker.com/">Wavemaker</a> &#8211; missed only 4 &#8211; but sloooow designer</li>
<li>RubyOnRails &#8211; missed 4, 5</li>
<li><a href="http://awareim.com/">AwareIM</a> &#8211; missed 4 &#8211; nice tool, easy to learn, solid apps but _very_ hard to extend</li>
<li>Not to mention those that promised a lot but took hours to install&#8230;..</li>
</ul>
<p><small>I don&#8217;t know if any of my unmet requirements from the above products have changed in the meantime.</small></p>
<p>But someday in spring 2008 I stumpled upon <a href="http://www.openjacob.org/">Open-Jacob</a>. It was some sort of &#8220;love at the first sight&#8221;. It simply does everything I wanted to have.</p>
<p>The first <a href="http://www.baula.at">application</a> built with Open-Jacob had its go-live yesterday and more are to come.</p>
<p><strong>Thanks a lot to <a href="http://www.tarragon-software.com/">Tarragon-Software</a>, Achim Böken, Andreas Sonntag and Andreas Herz for building such a great tool !</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hiden.org/open-jacob/a-modern-odyssey/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

