6/19/08

Setup MySQL with Ofbiz

Download ofbiz weekily build and extract it somewhere you want. From your ofbiz directory, edit file entityengine.xml in framework/entity/config
add new datasources below localmysql datasource part

    <datasource name="custommysql"
helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"
field-type-name="mysql"
check-on-start="true"
add-missing-on-start="true"
check-pks-on-start="false"
use-foreign-keys="true"
join-style="ansi-no-parenthesis"
alias-view-columns="false"
drop-fk-use-foreign-key-keyword="true"
table-type="InnoDB"
character-set="latin1"
collate="latin1_general_cs">
<read-data reader-name="seed"/>
<read-data reader-name="seed-initial"/>
<read-data reader-name="demo"/>
<read-data reader-name="ext"/>
<inline-jdbc
jdbc-driver="com.mysql.jdbc.Driver"
jdbc-uri="jdbc:mysql://localhost/ofbiz"
jdbc-username="ofbizuser"
jdbc-password="mypass"
isolation-level="ReadCommitted"
pool-minsize="2"
pool-maxsize="250"/>
<!-- <jndi-jdbc jndi-server-name="localjndi" jndi-name="java:/MySqlDataSource" isolation-level="Serializable"/> -->
</datasource>
<datasource name="custommysqlolap"
helper-class="org.ofbiz.entity.datasource.GenericHelperDAO"
field-type-name="mysql"
check-on-start="true"
add-missing-on-start="true"
check-pks-on-start="false"
use-foreign-keys="true"
join-style="ansi-no-parenthesis"
alias-view-columns="false"
drop-fk-use-foreign-key-keyword="true"
table-type="InnoDB"
character-set="latin1"
collate="latin1_general_cs">
<read-data reader-name="seed"/>
<read-data reader-name="seed-initial"/>
<read-data reader-name="demo"/>
<read-data reader-name="ext"/>
<inline-jdbc
jdbc-driver="com.mysql.jdbc.Driver"
jdbc-uri="jdbc:mysql://localhost/ofbizolap?autoReconnect=true"
jdbc-username="ofbizuser"
jdbc-password="mypass"
isolation-level="ReadCommitted"
pool-minsize="2"
pool-maxsize="250"/>
<!-- <jndi-jdbc jndi-server-name="localjndi" jndi-name="java:/DerbyDataSource" isolation-level="ReadCommitted"/> -->
</datasource>

change the "default" delegator make it look like this
<delegator name="default" entity-model-reader="main" entity-group-reader="main" entity-eca-reader="main" distributed-cache-clea$
<group-map group-name="org.ofbiz" datasource-name="custommysql"/>
<group-map group-name="org.ofbiz.olap" datasource-name="custommysqlolap"/>
</delegator>


put mysql driver under framework/entity/lib/jdbc
[admin@localhost ofbiz]$ ls framework/entity/lib/jdbc
derby-10.4.1.3.jar mysql-connector-java-5.1.6-bin.jar
[admin@localhost ofbiz]$


prepare database <create database ,grant user>
mysql> create database ofbiz;
Query OK, 1 row affected (0.05 sec)

mysql> create database ofbizolap;
Query OK, 1 row affected (0.05 sec)

mysql> grant all on *.* to 'ofbizuser'@'localhost' identified by 'mypass';
Query OK, 0 rows affected (0.03 sec)

mysql>


now we're ready to run ant to load database into mysql. Let's go.
[admin@localhost ofbiz]$ ./ant run-install
...
[java] 2008-06-19 10:59:06,245 (main) [ ContainerLoader.java:114:INFO ] Shutting down containers

BUILD SUCCESSFUL
Total time: 5 minutes 25 seconds
[admin@localhost ofbiz]$

6/18/08

Cannot use SUN rmic, as it is not available.

I download ofbiz weekly build[ofbiz_20080602.zip] from sourceforge and try to build it on eclipse. How to config on eclipse? How to use ofbiz with external database? you can find out from google or may be I'll post here later.:P
This post is about error when I run ant build target 'run-install' to load configured data. Below error'll show on eclipse console.

...
stubs:
[rmic] RMI Compiling 1 class to D:\eclipse_workspace\ofbiz2\framework\service\build\classes

BUILD FAILED
D:\eclipse_workspace\ofbiz2\build.xml:125: The following error occurred while executing this line:
D:\eclipse_workspace\ofbiz2\framework\build.xml:142: The following error occurred while executing this line:
D:\eclipse_workspace\ofbiz2\framework\service\build.xml:101: Cannot use SUN rmic, as it is not available. A common solution is to set the environment variable JAVA_HOME or CLASSPATH.

Total time: 8 seconds

I solve this by browse to Window->Preferences->Ant->Runtime then highlight on 'Global Entries', click 'Add Externals JARs' then select tools.jar from your $JAVA_HOME/lib directory. Try run ant build again then it sould be fine.

6/5/08

Compile subversion on Fedora core 6

I just move to new company. My first job here is setup a svn on FC6 box. This post is about how i built it.
First download, compile and install apache[must be 2.0 version to have same apr version as subversion-deps-1.4.6.tar.bz2]

[root@localhost ~]# wget http://mirrors.issp.co.th/apache/httpd/httpd-2.0.63.tar.bz2
...
[root@localhost ~]# tar xjf httpd-2.0.63.tar.bz2
[root@localhost ~]# cd httpd-2.0.63
[root@localhost httpd-2.0.63]# ./buildconf
[root@localhost httpd-2.0.63]# ./configure --enable-dav --enable-so --enable-maintainer-mode --prefix=/usr/local/apache20
...
[root@localhost httpd-2.0.63]# make && make install
...
[root@localhost httpd-2.0.63]# cd ..
[root@localhost ~]#

then download subversion source code and the subversion dependencies source code, extract both then go to compile and install apr, apr-util, neon and subversion itself.
[root@localhost ~]# wget http://subversion.tigris.org/downloads/subversion-1.4.6.tar.bz2
...
[root@localhost ~]# wget http://subversion.tigris.org/downloads/subversion-deps-1.4.6.tar.bz2
...
[root@localhost ~]# tar xjf subversion-1.4.6.tar.bz2
[root@localhost ~]# tar xjf subversion-deps-1.4.6.tar.bz2
[root@localhost ~]# cd subversion-1.4.6/apr
[root@localhost apr]# ./configure --prefix=/usr/local/apr
...
[root@localhost apr]# make && make install
...
[root@localhost apr]# cd ../apr-util
[root@localhost apr-util]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
...
[root@localhost apr-util]# make && make install
...
[root@localhost apr-util]# cd ../neon
[root@localhost neon]# ./configure --prefix=/usr/local/neon
...
[root@localhost neon]# make && make install
...
[root@localhost neon]# cd ..
[root@localhost subversion-1.4.6]# ./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache20/bin/apxs --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-neon=/usr/local/neon/ --with-ssl
...
[root@localhost subversion-1.4.6]# make && make install
...
[root@localhost subversion-1.4.6]#

now subversion is already installed, add apache user
[root@localhost subversion-1.4.6]# groupadd apache
[root@localhost subversion-1.4.6]# useradd -g apache -d /usr/local/apache20
[root@localhost subversion-1.4.6]# chown -Rv apache.apache /usr/local/apache20

edit /usr/local/apache2/conf/httpd.conf change..
User nobody
Group #-1

to
User apache
Group apache

and add this code to end of file.
<Location /subversion>
DAV svn
SVNPath /usr/local/subversion/repository/
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /usr/local/subversion/repository/conf/svn-auth-file
Require valid-user
</Location>

create password with this command
/usr/local/apache20/bin/htpasswd -cmd /usr/local/subversion/repository/conf/svn-auth-file {user-name}

create a repository
[root@localhost ~]# mkdir -v /usr/local/subversion/repository
[root@localhost ~]# svnadmin create --fs-type fsfs /usr/local/subversion/repository
[root@localhost ~]#

Last to test I will try import some file to repos.
[root@localhost src]# touch source1
[root@localhost src]# touch source2
[root@localhost src]# ls
source1 source2
[root@localhost src]# svn -m "initial import to svn" import . http://127.0.0.1/subversion/
Authentication realm: Subversion repository
Password for 'root':
Authentication realm: Subversion repository
Username: swd
Password for 'swd':
svn: Can't create directory '/usr/local/subversion/repository/db/transactions/0-1.txn': Permission denied

uhh.. you need to make apache user can access all the files in the repository.
[root@localhost src]# chown -R apache.apache /usr/local/subversion/repository
[root@localhost src]# chmod g+s /usr/local/subversion/repository/db
[root@localhost src]# svn -m "initial import to svn" import . http://127.0.0.1/subversion/
Authentication realm: Subversion repository
Password for 'root':
Authentication realm: Subversion repository
Username: swd
Password for 'swd':
Adding source1
Adding source2

Committed revision 1.
[root@localhost src]#

That's all. You can browse repos. via url 'http://127.0.0.1/subversion/'.