martes, 9 de julio de 2013

JPA Modificar conexion Hibernate por codigo (persistense.xml)


Map addedOrOverridenProperties = new HashMap();

// Let's suppose we are using Hibernate as JPA provider
addedOrOverridenProperties.put("hibernate.show_sql", true);
addedOrOverridenProperties.put("hibernate.connection.url", Configuracion.getProperty("Bd_PcsCsv_Str"));
addedOrOverridenProperties.put("hibernate.connection.username", Configuracion.getProperty("Bd_PcsCsv_Usr"));
addedOrOverridenProperties.put("hibernate.connection.password", Configuracion.getProperty("Bd_PcsCsv_Pas"));

Persistence.createEntityManagerFactory([PERSISTENCE_UNIT_NAME], addedOrOverridenProperties); 

lunes, 8 de julio de 2013

Maven - slf4j con log4j

En pom.xml

<project>
...
<dependencies>
...
  <dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-log4j12</artifactId>
   <version>1.7.7</version>
  </dependency>
...
</dependencies>
...
</project>

Solo es necesaria esta dependencia, internamente carga las dependencias que necesita.
En la clase;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public static Logger logger = LoggerFactory.getLogger(Clase.class); 

Mysql - Duplicar una base de datos

Desde cmd, ir a la carpeta bin donde esta instalado el mysql y ejecutar los sgtes comandos
  1. mysqldump -u nombre_usuario -p --routines  nombre_base_original > nombre_fichero_volcado
  2. Para cargar se utiliza el comando mysql
    mysql
    -u nombre_usuario -p nombre_base_copia <  nombre_fichero_volcado

viernes, 5 de julio de 2013

Servlet como demonio (con Timer)

Se supone que esta trabajando en un proyecto tipo WEB.
Desde MyEclipse crear un nuevo Servlet, este creara la estructura necesaria para el ej.

 Agregar en el init() del servlet

// definir como variable estatica
public static Timer timer = new Timer(true);

 /**
  * Initialization of the servlet. 

  *
  * @throws ServletException
  *             if an error occurs
  */
 public void init() throws ServletException {

  TimerTask timerTask = new TimerTask() {
   @Override
   public void run() {
    // Aqui todo el codigo
    System.out.println("Probando timer");
   }
  }; // schedule del timer cada 10 segundos en este caso
  timer.schedule(timerTask, 0, 10000);
 }

En el web.XML

Agregar a la línea del servelt:


  Chequeo de Bd para eliminar timeout
  CheckBD
  CheckBD
  cl.intelidata.servlet.CheckBD
  1
 

 Si trabaja con maven agregar la sgte dependencia..

   <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.4</version>
      <scope>compile</scope>
    </dependency>

Ulilizando myeclipse como ide.
Mas info de servlet en: http://chuwiki.chuidiang.org/index.php?title=Servlet_y_Maven

lunes, 15 de abril de 2013

Maven jar autoejecutable - con dependencias - runnable




Solo reemplazar nombre package y mainClass por la que corresponda.

Maven configurar scm y nexus central



    <scm>
        <url>scm:svn:https://Desarrollo/svn/desarrollo/trunk/${project.artifactId}</url>
        <connection>scm:svn:https://Desarrollo/svn/desarrollo/trunk/${project.artifactId}</connection>
        <developerConnection>scm:svn:https://Desarrollo/svn/desarrollo/trunk/${project.artifactId}</developerConnection>
    </scm>

    <distributionManagement>
        <repository>
            <id>nexus</id>
            <name>Internal Releases</name>
            <url>http://192.168.1.100:8081/nexus/content/repositories/releases/</url>
        </repository> -<snapshotRepository>
            <id>nexus</id>
            <name>Internal Snapshots</name>
            <url>http://192.168.1.100:8081/nexus/content/repositories/snapshots/</url>
        </snapshotRepository>
    </distributionManagement>


Esto acompañado de la configuración correcta de maven. settings.xml, como por ej:

<settings>
  <servers>
    <server>
      <id>192.168.1.100</id>
      <username>jastorga</username>
      <password>jastorga</password>
    </server>
    <server>
      <id>nexus</id>
      <username>jastorga</username>
      <password>jastorga</password>
    </server>
    <server>
      <id>releases</id>
      <username>jastorga</username>
      <password>jastorga</password>
    </server>
    <server>
      <id>snapshots</id>
      <username>jastorga</username>
      <password>jastorga</password>
    </server>
  </servers>

  <mirrors>
    <mirror>
      <!--This sends everything else to /public -->
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>
      <url>http://192.168.1.100:8081/nexus/content/groups/public</url>
    </mirror>
  </mirrors>

  <profiles>
    <profile>
      <id>nexus</id>
      <!--Enable snapshots for the built in central repo to direct -->
      <!--all requests to nexus via the mirror -->
      <repositories>
        <repository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
      </repositories>
     <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <url>http://central</url>
          <releases><enabled>true</enabled></releases>
          <snapshots><enabled>true</enabled></snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
  <activeProfiles>
    <!--make the profile active all the time -->
    <activeProfile>nexus</activeProfile>
  </activeProfiles>
</settings>