jPivot Print and Excel Export on Pentaho 5

jPivot and Pentaho 5

Pentaho 5 has many new cool features, one of these is that jPivot now is a plugin like Pivot4J and Saiku.

https://github.com/pentaho/pentaho-platform-plugin-jpivot

The Problem

When you choose the option Print or Excel you have the error 404.

the error 404 jPivot

The Solution

  1. It’s necessary to downgrade the jar “fop-0.94.jar” to “fop0.20.5.jar” on  biserver-ce/tomcat/webapps/pentaho/WEB-INF/lib . Dowload here.
  2. Uncomment in biserver-ce/pentaho-solutions/system/pentaho-jpivot-plugin/plugin.spring.xml, the following code snippet:
    <bean id="Print" class="org.pentaho.jpivot.proxies.ProxyPrintServlet"/>
  3. Restart your server.

Enjoy it!

how to version Pentaho with SVN-Subversion

The importance of using versioning code is not news to anyone, but for Pentaho projects especially this task becomes a little more complicated, because unlike other types of projects, you need to merge the code that you write to the configuration and customization of the tool.

The most trivial way to version a Pentaho project is to put an entire Pentaho installation directory under version control with subversion, and this is bad, very bad! … Because you will be versioning biserver all files, including those you will never need to change.

Another point i want to highlight before starting the tutorial, is that I am not against Git, on the contrary I have some projects on GitHub, what happens is that until now could not get the same convenience for versioning a project of biserver as I have with SVN, they are:

  • Possibility to checkout / clone on a folder that is not empty;
  • Possibility to checkout / clone only part of the repository, ie a specific folder;
  • Possibility to overwrite files of the same name.

For those who want to use Git I recommend giving it a read on the CBF (Community Build Framework), and if anyone knows of a way to use Git with the characteristics described above please do not hesitate to contact me, would love to have such flexibility with Git.

Version pentaho with SVN
For this tutorial i created a repository SVN/Subversion on Google https://code.google.com/p/versione-pentaho, do so a checkout of the repository.

$ svn checkout https://versione-pentaho.googlecode.com/svn/trunk/ tutorial

Within its workcopy create a folder where you will create a directory structure similar to biserver, something like:

nameProject/
	.../VersionBiServer/
		.../biserver-ce
		.../administration-console
$ cd tutorial
$ mkdir nameProject
$ cd nameProject
$ mkdir 4.5.0-stable
$ cd 4.5.0-stable
$ mkdir biserver-ce
$ mkdir administration-console

Now add this folder in your workcopy and do commit.

$ svn add nameProject/
A         nameProject
A         nameProject/4.5.0-stable
A         nameProject/4.5.0-stable/administration-console
A         nameProject/4.5.0-stable/biserver-ce
$ svn commit -m 'creating directories structure' --username mota.fernandomaia@gmail.com

Now we have the basic directory structure to start versioning our project, as an example i will add in the folder biserver-ce a file called README.txt file and start-pentaho.sh version 4.5.0-stable, so that we know here the two types of cases that are new files and files that belong to tool but we need to change them and consequently versioná them, the file start-pentaho.sh will change it by putting the option startup catalina the famous -Dfile.encoding=utf-8 option that solves the problem of stress in Pentaho.

$ svn add nameProject/4.5.0-stable/biserver-ce/start-pentaho.sh
A         nameProject/4.5.0-stable/biserver-ce/start-pentaho.sh
$ svn add nameProject/4.5.0-stable/biserver-ce/README.txt
A         nameProject/4.5.0-stable/biserver-ce/README.txt
$ svn commit -m 'add files' --username mota.fernandomaia@gmail.com
Add    nameProject/4.5.0-stable/biserver-ce/README.txt
Add    nameProject/4.5.0-stable/biserver-ce/start-pentaho.sh
Committed revision 3

The moment of truth!

Note that in our project only this versioned files we created or changed, then we get the project to run.

Download the version of biserver you’re working (this tutorial is version 4.5.0-stable) and extract in a folder with the name of the release, ie, the same structure that we created above, then you will have something like :

.../4.5.0-stable/
	.../biserver-ce
	.../administration-console

What we do then is a new checkout this new folder that contains the biserver “original”, then all the files that are new shall be added and existing ones, such as start-pentaho.sh need to be overridden, this is only possible because we are creating the directories in SVN with the same structure biserver.

$ svn checkout --force https://versione-pentaho.googlecode.com/svn/trunk/nameProject/4.5.0-stable 4.5.0-stable
E    4.5.0-stable/administration-console
E    4.5.0-stable/biserver-ce
E    4.5.0-stable/biserver-ce/start-pentaho.sh
A    4.5.0-stable/biserver-ce/README.txt

Note then that only the README.txt was added, opening file start-pentaho.sh you will find that the option -Dfile.encoding=utf-8 not present in the file, this is because SVN does not overwrite the files already exist locally with the same name if you do not force yourself to do this, then inside the folder 4.5.0-stable run the following command.

$ svn revert -R .
Reverted 'biserver-ce/start-pentaho.sh'

This will force the SVN overwrite all files and then file your start-pentaho.sh now but will as versioned.

And that’s it, now we have our codes and modified files in biserver therefore this is the method I developed for versioning projects that use the Pentaho biserver to other files and subdirectories of your project just go inserting folders and Versioning only the files you want.

This method gives me the convenience of only two commands (update and revert) can have on my production server all the changes I made in my development environment.

Enjoy and comment if you have any criticism or suggestion.

Como versionar projetos de Pentaho com SVN

A importância do uso de versionadores de código não é novidade para ninguém, mas para projetos de Pentaho em especial quando você utiliza o biserver, que é a plataforma Web de visualização e gerenciamento de acesso a usuários disponibilizados pela Pentaho tanto na versão Enterprise como Community, esta tarefa se torna um pouco mais complicada, pois diferente de outros tipos de projetos, você precisa mesclar os códigos que você escreve com os de configuração e personalização da ferramenta, como arquivos XML de conexão a banco de dados e themes respectivamente.

A forma mais trivial de versionar um projeto de Pentaho é versionar todo o biserver, e isso é ruim, muito ruim!… pois você estará versionando todos os arquivos do biserver, inclusive aqueles que você nunca irá precisar alterar, e sem falar dos vários .jars que são em grande parte responsáveis por algo em torno de 500MB de arquivo quando extraido o biserver mais recente, isso por si só já serve de motivação para este tutorial, mas pessoalmente eu ainda tinha na época em que desenvolvi este método outro problema que era uma péssima conexão de internet, algo que infelizmente no Brasil ainda é algo comum e todos nós sofremos com isso, então imagine um chekout de 500 mb!

Um outro ponto que quero destacar antes de iniciar o tutorial, é que não sou contra o Git, muito pelo contrário tenho alguns projetos no GitHub, o que acontece é que até o presente momento não consegui obter a mesma praticidade para versionar um projeto de biserver como tenho com o SVN, são eles:

  • Possibilidade de checkout/clone em um pasta que não esteja vazia;
  • Possibilidade de checkout/clone  de apenas parte do repositório, ou seja, de uma pasta em específico;
  • Possibilidade de sobrescrever arquivos de mesmo nome.

Para quem deseja utilizar o Git eu recomendo dar uma lida sobre o CBF(Community Build framework), e se caso alguém souber de uma forma de utilizar o Git com a características que descrevi acima por favor não deixe de me contactar, adoraria ter tal flexibilidade com o Git.

Versionando o biserver com Subversion

Para este tutorial criei um repositório SVN/Subversion no Google https://code.google.com/p/versione-pentaho, faça então um checkout do repositório.

$ svn checkout https://versione-pentaho.googlecode.com/svn/trunk/ tutorial

Dentro da sua workcopy crie uma pasta onde você irá criar uma estrutura de diretórios similar ao do biserver, algo como:

nomeProjeto/
	.../VersaoBiServer/
		.../biserver-ce
		.../administration-console
$ cd tutorial
$ mkdir nomeProjeto
$ cd nomeProjeto
$ mkdir 4.5.0-stable
$ cd 4.5.0-stable
$ mkdir biserver-ce
$ mkdir administration-console

Agora adicione esta pasta na sua workcopy e faça o commit.

$ svn add nomeProjeto/
A         nomeProjeto
A         nomeProjeto/4.5.0-stable
A         nomeProjeto/4.5.0-stable/administration-console
A         nomeProjeto/4.5.0-stable/biserver-ce
$ svn commit -m 'criando estrutura de diretorios' --username mota.fernandomaia@gmail.com

Agora temos a estrutura de diretórios básica para começarmos a versionar o nosso projeto, como exemplo irei adicionar dentro da pasta biserver-ce um arquivo chamado README.txt  e o arquivo start-pentaho.sh da versão 4.5.0-stable, perceba então que teremos aqui os dois tipos de casos, arquivos que são novos e arquivos que pertencem a ferramenta mas que precisamos alterá-los e consequentemente versioná-los, no arquivo start-pentaho.sh irei alterá-lo colocando no option de inicialização do catalina o famoso  -Dfile.encoding=utf-8, opção que resolve o problema de acentuação no Pentaho.

$ svn add nomeProjeto/4.5.0-stable/biserver-ce/start-pentaho.sh
A         nomeProjeto/4.5.0-stable/biserver-ce/start-pentaho.sh
$ svn add nomeProjeto/4.5.0-stable/biserver-ce/README.txt
A         nomeProjeto/4.5.0-stable/biserver-ce/README.txt
$ svn commit -m 'add arquivos' --username mota.fernandomaia@gmail.com
Adicionando    nomeProjeto/4.5.0-stable/biserver-ce/README.txt
Adicionando    nomeProjeto/4.5.0-stable/biserver-ce/start-pentaho.sh
Transmitindo dados do arquivo ..
Committed revision 3

A hora da verdade!

Perceba que no nosso projeto só esta versionado os arquivos que criamos ou alteramos, então vamos colocar o projeto para rodar.

Faça o download da versão do biserver que você esta trabalhando (neste tutorial é a versão 4.5.0-stable) e extraia em uma pasta com o nome da versão, ou seja, a mesma estrutura que criamos mais acima, logo você terá algo como:

.../4.5.0-stable/
	.../biserver-ce
	.../administration-console

O que iremos fazer então é um novo checkout nesta nova pasta que contém o biserver “original”, logo todos os arquivos que são novos serâo adicionados e os que já existem, como o start-pentaho.sh precisára ser sobreescrito, isso só é possível porque estamos criando os diretórios no SVN com a mesma estrutura do biserver.

$ svn checkout --force https://versione-pentaho.googlecode.com/svn/trunk/nomeProjeto/4.5.0-stable 4.5.0-stable
E    4.5.0-stable/administration-console
E    4.5.0-stable/biserver-ce
E    4.5.0-stable/biserver-ce/start-pentaho.sh
A    4.5.0-stable/biserver-ce/README.txt
Gerado cópia de trabalho para revisão 3.

Perceba então que apenas o arquivo README.txt foi adicionado, ao abrir o arquivo start-pentaho.sh você constatará que o option -Dfile.encoding=utf-8 não esta presente no arquivo, isso acontece porque o SVN não sobreescreve os arquivos que já existem localmente com o mesmo nome caso você não o force a fazer isto, então dentro da pasta 4.5.0-stable execute o seguinte o comando.

$ svn revert -R .
Revertido 'biserver-ce/start-pentaho.sh'

Isso irá forçar o SVN a sobrescrever todos os arquivos e portanto o seu arquivo start-pentaho.sh agora sim estará conforme o versionado.

E é isso, agora temos os nossos códigos e arquivos modificados no biserver, portanto este é o método que desenvolvi para versionar os projetos que utilizo o biserver Pentaho, para os outros arquivos e subdiretórios do seu projeto basta você ir inserindo as pastas e versionando apenas os arquivos que deseja.

Este método me dá a praticidade de com apenas dois comandos(update e revert) poder ter no meu servidor de produção todas as alterações que fiz no meu ambiente de desenvolvimento.

Aproveite e comente se você tiver alguma crítica ou sugestão.

Instalando o MongoDB no Ubuntu

Faça o download do Mongo http://www.mongodb.org/downloads
Neste tutorial usarei a versão 2.0.0 dísponivel em http://www.mongodb.org/dr/fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.0.tgz/download
Coloque o arquivo tgz do Mongo em uma pasta.

$ sudo mkdir /home/fernando/mongo
$ sudo cp /arquivoDeInstalacaoDoMongo /home/fernando/mongo

Descompacte o arquivo.

$ cd /home/fernando/mongo
$ sudo tar -vzxf mongodb-linux-x86_64-2.0.0.tgz

Acesse a pasta bin do Mongo e “crie” o banco.

$ cd /home/fernando/mongo/mongodb-linux-x86_64-2.0.0/bin
$ ./mongod

O Mongo por padrão irá criar a pasta /data/db, onde ficará armazenado os arquivos do banco.
Read more…

Titan Framework – SIS Biblioteca Parte 06 -Criando Section Empréstimo

Crie a pasta “emprestimo” para armazenar os arquivos da section.

$ mkdir /var/www/biblioteca/section/emprestimo

E agora os arquivos XML.
Read more…

Titan Framework – SIS Biblioteca Parte 05 -Criando Section Livro e Estudante

Basicamente repetimos o que fizemos no post anterior.

Section Livro

$ mkdir /var/www/biblioteca/section/livro

Read more…

Titan Framework – SIS Biblioteca Parte 04 -Criando um CRUD

Primeiro veja o modelo da base utilizado neste tutorial.
Modelo Base de Dados
Read more…

Titan Framework – SIS Biblioteca Parte 03 -Criando a Primeira Instância

Neste tutorial será abordado o desenvolvimento de um sistema para biblioteca, portanto crie a seguinte pasta /var/www/biblioteca.

$ mkdir /var/www/biblioteca

Clique com o botão direito sobre a pasta /var/www/biblioteca e faça o checkout(RabbitVCS SVN->obter….) da instância básica(https://svn.ledes.net/titan/repository/component/architect.creator/_base/basic/) disponível na Wiki do Titan.
Checkout Instância Básica
Ao final do download a estrutura de arquivos deve ser a seguinte:
Árvore de Arquivos
Read more…

Titan Framework – SIS Biblioteca Parte 02 – Instalação

RabbitVCS
Instale o RabbitVCS(cliente gráfico de SVN).

$ sudo apt-get update
$ sudo apt-get install rabbitvcs-core rabbitvcs-nautilus rabbitvcs-thunar rabbitvcs-gedit rabbitvcs-cli

Reinicie seu computador.

Download
Adicione seu usuário ao grupo www-data.

$ sudo adduser seuUsuario www-data

Coloque o seu usuário como dono da pasta /var/www/.

$ sudo chown -R www-data:seuUsuario /var/www/

Altere as permissões da pasta /var/www/.

$ sudo chmod 775 -R  /var/www/

Crie uma pasta chamada”titan” em /var/www/

$ mkdir /var/www/titan

Clique com o botão direito sobre a pasta /var/www/titan e clique em RabbitVCS SVN->Obter…, insira a URL(https://svn.ledes.net/titan/) do SVN do Titan e clique em ok.

checkout SVN Titan Framework

Read more…

Titan Framework- SIS Biblioteca Parte 01 – Instalação do Ambiente de Desenvolvimento

Gedit

Primeiro você deve instalar um bom editor, por exemplo o gedit.

$ sudo apt-get install gedit-plugins
$ sudo apt-add-repository ppa:ubuntu-on-rails/ppa
$ sudo apt-get update
$ sudo apt-get install gedit-gmate

Apache
Agora o servidor Web Apache.

$ sudo apt-get install apache2

Read more…