quinta-feira, 16 de agosto de 2007

trabalhando com latex

Passo 1: Instale o latex:

miktex: http://www.miktex.org/
TEXLive: http://www.tug.org/texlive/
Passo 2: Instale o gostscript e o gsViewer:

http://www.cs.wisc.edu/~ghost/index.html
Passo 3: Instale o corretor ortográfico aspell:

programa: http://ftp.gnu.org/gnu/aspell/w32/Aspell-0-50-3-3-Setup.exe
dicionário: http://ftp.gnu.org/gnu/aspell/w32/Aspell-pt-0.50-2-3.exe
Plugin Eclipse: url: http://texlipse.sourceforge.net/

profile no firefox

execute o firefox com a seguinte linha de comando:

firefox.exe -ProfileManager

terça-feira, 7 de agosto de 2007

CVS

Criar novo repositório no cvs

  • execute o comando:
    cvs -d repdir init
(repdir é nome do seu novo repositório)

Links úteis

domingo, 5 de agosto de 2007

Exemplo completo com EJB 3

Criando o Entity Bean

package teste;

import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Cliente implements Serializable {
   private static final long serialVersionUID = 1L;
   @Id
   private int codigo;
   private String nome;
   private String endereco;
   private String telefone;

   public String toString() {
      return String
            .format("%20s%20s%20s%20s", codigo, nome, endereco, telefone);
   }

   public int getCodigo() {
      return codigo;
   }

   public void setCodigo(int codigo) {
      this.codigo = codigo;
   }

   public String getNome() {
      return nome;
   }

   public void setNome(String nome) {
      this.nome = nome;
   }

   public String getEndereco() {
      return endereco;
   }

   public void setEndereco(String endereco) {
      this.endereco = endereco;
   }

   public String getTelefone() {
      return telefone;
   }

   public void setTelefone(String telefone) {
      this.telefone = telefone;
   }
}


Criando o Session Bean
Interface Remota
package teste;

import java.util.List;

import javax.ejb.Remote;

@Remote
public interface ClienteBean {
   void inserir(Cliente cliente);

   List<Cliente> listar();
}


Implementação
package teste;

import java.util.List;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

@Stateless(name = "cli", mappedName = "ejb/ClienteBean")
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public class ClienteBeanImpl implements ClienteBean {
   @PersistenceContext(unitName = "bean1")
   private EntityManager em;

   public void inserir(Cliente cliente) {
      em.persist(cliente);
   }

   @TransactionAttribute(TransactionAttributeType.NEVER)
   public List<Cliente> listar() {
      Query query = em.createQuery("select c from Cliente c");
      return query.getResultList();
   }
}


Cliente do EJB
import java.util.List;
import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import teste.Cliente;
import teste.ClienteBean;

public class Consumo {
   public static void main(String[] args) {
      if (args.length == 0) {
         System.out.println("Qtd de parametros incorreta");
         System.exit(0);
      }
      int codigo = new Integer(args[0]);
      try {
         Properties props = new Properties();
         props.setProperty("java.naming.factory.initial",
               "com.sun.enterprise.naming.SerialInitContextFactory");
         props.setProperty("java.naming.factory.url.pkgs",
               "com.sun.enterprise.naming");
         props.setProperty("java.naming.factory.state",
               "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
         // optional. Defaults to localhost. Only needed if web server is
         // running
         // on a different host than the appserver
         props.setProperty("org.omg.CORBA.ORBInitialHost""10.0.0.100");
         // optional. Defaults to 3700. Only needed if target orb port is not
         // 3700.
         props.setProperty("org.omg.CORBA.ORBInitialPort""3700");
         InitialContext ctx = new InitialContext(props);
         ClienteBean bean = (ClienteBeanctx.lookup("ejb/ClienteBean");
         Cliente cliente = new Cliente();
         cliente.setCodigo(codigo);
         cliente.setNome("antonio");
         cliente.setEndereco("Rua 2");
         cliente.setTelefone("6363-5252");
         bean.inserir(cliente);
         List<Cliente> lista = bean.listar();
         for (Cliente c : lista) {
            System.out.println(c);
         }
      catch (NamingException e) {
         e.printStackTrace();
      }
   }
}


Relação de .jar
Arquivos .jar necessários:

No ejb:
  • appserv-rt.jar
  • javaee.jar

No cliente:
  • appserv-rt.jar
  • javaee.jar
  • appserv-deployment-client.jar

Iniciando ao JavaDB (Derby)

  • Passo 1
ligue o servidor com o comando: java -jar derbynet.jar start
  • Passo 2
dados para conexão:
url: jdbc:derby://localhost:1527/exemplojpa;create=true
driver: org.apache.derby.jdbc.ClientDriver

arquivo driver: derbyclient.jar

Propriedades da JPA

DataSource
referencia a um datasource:

<jta-data-source>java:comp/env/jdbc/simenet</jta-data-source> 


referencia a um datasource no tomcat (fora da JTA): Com HIBERNATE

<non-jta-data-source>java:comp/env/jdbc/simenet</non-jta-data-source> 

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
             version="1.0">
    <persistence-unit name="default">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <properties>
            <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
            <property name="hibernate.connection.driver_class" value="org.hsqldb.jdbcDriver"/>
            <property name="hibernate.connection.username" value="sa"/>
            <property name="hibernate.connection.password" value=""/>
            <property name="hibernate.connection.url" value="jdbc:hsqldb:."/>
            <property name="hibernate.max_fetch_depth" value="3"/>
        </properties>
    </persistence-unit>
</persistence>


Com TOPLINK
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence persistence_1_0.xsd" version="1.0">
        <persistence-unit name="default">
                <provider>oracle.toplink.essentials.PersistenceProvider</provider>
                <exclude-unlisted-classes>false</exclude-unlisted-classes>
                <properties>
                        <property name="toplink.ddl-generation" value="drop-and-create-tables" />
                        <property name="toplink.logging.level" value="FINE" />
                        <property name="toplink.jdbc.url" value="jdbc:mysql://localhost/myDB" />
                        <property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver" />
                        <property name="toplink.jdbc.user" value="root" />
                        <property name="toplink.jdbc.password" value="" />
                </properties>
        </persistence-unit>
</persistence>


Configuração do TopLink para funcionamento com datasource no tomcat:


import oracle.toplink.essentials.jndi.JNDIConnector;
import oracle.toplink.essentials.sessions.Session;
import oracle.toplink.essentials.tools.sessionconfiguration.SessionCustomizer;

public class ToplinkSessionCustomizer implements SessionCustomizer {
  public void customize(Session sessionthrows Exception {
    JNDIConnector connector = (JNDIConnectorsession.getLogin()
        .getConnector();
    connector.setLookupType(JNDIConnector.STRING_LOOKUP);
  }
}

linha a ser acrescientada nas properties:

<property name="toplink.session.customizer" value="pacote.ToplinkSessionCustomizer"/>
veja link: http://forums.oracle.com/forums/thread.jspa?messageID=1899677