Open Source: Cómo podemos monitorizar nuestras aplicaciones con JAMon???

Java, Open Source, Programación 31 de diciembre del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)
Loading ... Loading ...

JAMon: ¨The Java Application Monitor (JAMon) is a free, simple, high performance, thread safe, Java API that allows developers to easily monitor production applications.¨

Nos ayuda a monitorizar nuestras aplicaciones, para poder saber que recurso se manda ejecutar con mayor concurrencia, monitorización del jdbc proxi, etc. tanto en aplicaciones web como Stand-alone, en su página esta el software y la documentación necesaria para poderlo implementar de una manera fácil y en pocos pasos.
Cuando hice el un main() todo me funciono correctamente pero he tenido problemas para que muestre las estadísticas dentro de una aplicación web, así que les dejo el main que prácticamente es el que esta en su página, y cuando logre corregir los problemas que tengo para implementarlo en otra aplicación les escribo un nuevo post con los problemas y las soluciones, además de los resultados.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/**
 * 
 */
package test;
 
import com.jamonapi.Monitor;
import com.jamonapi.MonitorFactory;
 
/**
 * @author serunix.com
 *
 */
public class TestJAMon {
 
	/**
	 * @param args
	 * @throws InterruptedException 
	 */
	public static void main(String[] args) throws InterruptedException {
		// TODO Auto-generated method stub
 
		Monitor mon=null;
        for (int i=1; i<=10; i++) {
            mon = MonitorFactory.start("myFirstMonitor");
            Thread.sleep(100+i);
            mon.stop();
 
        }
        System.out.println(mon.toString()); 
 
 
	}
 
}
Be Sociable, Share!

Base de datos: Un ejemplo de Ibatis con Spring en java

Base de datos, Java, Mysql, Open Source, Programación 22 de diciembre del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)
Loading ... Loading ...

La verdad es que no sabía nada de este Ibatis (framework de persistencia de datos basado en archivos xml), si no te lo enseñan hay que aprender sólo para poderse dar una idea de las diferentes  opciones que hay en cuanto al manejo de la Data Base. Aquí les dejo un pequeño ejemplo de como sería la configuración de Ibatis con Spring y que esta en java, ya que también se puede hacer con Ruby. Ibatis tiene sus ventajas y desventajas, así que sólo queda probarlo.

1.- El ejemplo se basa en almacenar las recetas de una farmacia.

2.- Creamos los DTO

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.serunix.model;
 
import java.util.List;
 
/**
 * @author serunix
 *
 */
public class Recipe {
 
	private int recipeId;
	private String patientName;
	private List<?> medicaments;	
}
1
2
3
4
5
6
7
8
9
10
11
12
13
package com.serunix.model;
 
/**
 * @author serunix
 *
 */
public class Medicament  {
 
	private int medicamentId;
	private String name;
	private String description;
	private Recipe recipe;
}

2.- Los servicios

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.serunix.model.services;
 
import java.util.List;
 
import com.serunix.model.Recipe;
 
/**
 * @author serunix
 *
 */
public interface RecipeDaoImpl {
 
	List<?> getAllRecipes();
 
	Recipe getRecipeById(Integer id);
 
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.serunix.model.services;
 
import java.util.List;
 
import com.serunix.model.Medicament;
 
/**
 * @author serunix
 * 
 */
public interface MedicamentDaoImpl {
 
	List<?> getAllMedicaments();
 
	Medicament getMedicamentById(Integer id);
 
	int update(Medicament medicament);
 
	Boolean insert(Medicament medicament);
 
	int delete(Integer id);
}

3.- Los Daos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.serunix.model.daos;
 
import java.util.List;
 
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
 
import com.serunix.model.Recipe;
import com.serunix.model.services.RecipeDaoImpl;
/**
 * @author serunix
 *
 */
public class RecipeDao extends SqlMapClientDaoSupport implements RecipeDaoImpl {
 
 
	public List<?> getAllRecipes() {
		return (List<?>)getSqlMapClientTemplate().queryForList("Recipe.getAllRecipes", null);
	}
 
	public Recipe getRecipeById(Integer id) {		
	    return (Recipe)getSqlMapClientTemplate().queryForObject("Recipe.getRecipeById", id);	    
	 }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package com.serunix.model.daos;
 
import java.util.List;
 
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
 
import com.serunix.model.Medicament;
import com.serunix.model.services.MedicamentDaoImpl;
/**
 * @author serunix
 *
 */
public class MedicamentDao extends SqlMapClientDaoSupport implements MedicamentDaoImpl {
 
	 public List<?> getAllMedicaments() {
	        return (List<?>) getSqlMapClientTemplate().queryForList("getAllMedicaments", null);
	    }
	    public Medicament getMedicamentById(Integer id) {
	        return ((Medicament)getSqlMapClientTemplate().queryForObject("getMedicamentById", id));
	    }
	    public int update(Medicament medicament) {
	        return getSqlMapClientTemplate().update("update", medicament);
	    }
	    public Boolean insert(Medicament medicament) {
	        return (Boolean)getSqlMapClientTemplate().insert("insert", medicament);   
	    }
	    public int delete(Integer id) {
	        return (int)getSqlMapClientTemplate().delete("delete", id);
	    }
}

4.- Los mapeos.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?xml version="1.0" encoding="UTF-8"?>
 
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
 
<sqlMap namespace="Medicament">
 
    <cacheModel id="recipeCache" type="MEMORY" readOnly="false" >
        <flushInterval hours="24"/>
    </cacheModel>
 
    <resultMap class="com.serunix.model.Medicament" id="medicamentsMap">
      <result property="medicamentId"
              column="medicamentId"/>
      <result property="name"
              column="name"/>  
      <result property="description"
              column="description"/> 
 
    </resultMap>
 
 
    <select id="findMedicaments"  parameterClass="java.lang.Integer" resultMap="medicamentsMap" cacheModel="recipeCache">
    	SELECT * FROM tcmedicaments  WHERE recipeId = #id#;
    </select>
 
</sqlMap>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?xml version="1.0" encoding="UTF-8"?>
 
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN" "http://www.ibatis.com/dtd/sql-map-2.dtd">
 
<sqlMap namespace="Recipe">
 
    <cacheModel id="recipeCache" type="MEMORY" readOnly="false" >
        <flushInterval hours="24"/>
    </cacheModel>
 
	<resultMap class="com.serunix.model.Recipe" id="recipeMap">
      <result property="recipeId"
              column="recipeId"/>
      <result property="patientName"
              column="patientName"/>  
      <result property="medicaments"
              column="recipeId" select="Medicament.findMedicaments" />                                
    </resultMap>
 
    <select id="getRecipeById" parameterClass="java.lang.Integer"  resultMap="recipeMap" cacheModel="recipeCache">
 
        SELECT * FROM trrecipes  WHERE recipeId = #id#;
 
    </select>    
 
</sqlMap>

5.- Y bueno lo más importante creo yo, el spring-context.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
        "http://www.springframework.org/dtd/spring-beans.dtd">
 
<beans>
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
        <property name="url"><value>jdbc:mysql://127.0.0.1/SU BASE</value></property>
        <property name="username"><value>SU USUARIO</value></property>
        <property name="password"><value>SU PASSWORD</value></property>
    </bean>
 
    <bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
        <property name="dataSource"><ref bean="dataSource"/></property>
        <property name="configLocation">
            <value>classpath:SqlMapConfig.xml</value>
        </property>
        <property name="useTransactionAwareDataSource">
            <value>true</value>
        </property>
    </bean>
 
    <bean id="recipeDao" class="com.serunix.model.daos.RecipeDao">
        <property name="sqlMapClient">
            <ref bean="sqlMapClient"/>
        </property>
    </bean>
</beans>

y bueno aquí les dejo mi clase main….

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package test;
 
import java.util.Iterator;
 
import org.apache.log4j.Logger;
import org.springframework.context.support.ClassPathXmlApplicationContext;
 
import com.serunix.model.Medicament;
import com.serunix.model.Recipe;
import com.serunix.model.daos.RecipeDao;
 
/**
 * @author serunix
 *
 */
public class TestDaos {
	protected static Logger logger = Logger.getLogger(TestDaos.class);
 
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ClassPathXmlApplicationContext ctxt = new ClassPathXmlApplicationContext("spring-context.xml");
		RecipeDao repl = (RecipeDao) ctxt.getBean("recipeDao");
		Recipe recipe = (Recipe)repl.getRecipeById(1);
		Iterator<?> iteRecipe = recipe.getMedicaments().iterator();
		logger.info(" Recipe No. " + recipe.getRecipeId() + " \n");
		logger.info(" Patient Name: " + recipe.getPatientName() + " \n");
		while (iteRecipe.hasNext())
		{
			Medicament medicament = (Medicament)iteRecipe.next();
			logger.info(" ----- Medicaments ------------- \n");
			logger.info(medicament.getMedicamentId() + ".- Name: "+ medicament.getName() +" \n");
			logger.info( "\t Description: "+ medicament.getDescription() +" \n");
 
		}
 
	}
 
}

aquí les dejo el proyecto completo por si tienen algúna duda… PROYECTO TESTIBATIS
n

n
¿Qué framework de percistencia utilizas para la DB?
View Results

G2ZXWXZKCVA3

Be Sociable, Share!

Open Source: para que nos puede servir OpenWorkFlow?

Educación, Java, Open Source 17 de diciembre del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)
Loading ... Loading ...

OpenWorkFlow es un software que se utiliza, para modelar nuestros procesos de negocio por medio de UML. Hace tiempo utilice este software que me pareció interesante ya que te ayuda a saber, en que proceso y/o actor causaba un cuello de botella y así poder realizar una reingeniería con base a nuestras reglas de negocios o realizar una automatización (en caso que el proceso se realice de forma manual). Esta herramienta se puede implementar en varios lenguajes de programación como Java y Php, así que les recomiendo que lo prueben.

openWF

openFW

ahhh recuerden que en nuestra plantación estratégica, hay que tener en cuenta que tenemos que invertir el 80% del tiempo en el análisis y el 20% sólo en la ejecución en los procesos tomando en cuenta: nuestra metodología, nivel tecnológico, tamaño de la compañía, ingresos, etc.

Be Sociable, Share!

Maven: Cómo agregar una referencia de un jira al archivo change.xml?

Maven, Open Source, Programación 8 de diciembre del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)
Loading ... Loading ...

Lo primero es echarse un vistazo en la página de Apache, y leer un poco la documentación, y saber para que sirve cada uno de los plugins que tiene, la verdad es que revisando a fondo el archivo changes.xml, tiene muchísimas cosas interesantes que podrían servir para poder una referencia de cambios en nuestros proyectos, aquí les dejo un ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
   <issueManagement>
            <system>Jira</system>
            <url>http://localhost:8080/secure/</url>
    </issueManagement>
   <reporting>
           ...
            <plugins>
                  <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-changes-plugin</artifactId>
                        <version>2.2</version>
                        <configuration>
                              <xmlPath> ./changes.xml </xmlPath>
                              <issueLinkTemplatePerSystem> 
                                    <Redmine>%URL%/%ISSUE%</Redmine>
                              </issueLinkTemplatePerSystem>
                              <!-- para configurar como se muestran las fechas
                                      que en este caso seria en ingles  pero 
                                     es configurable en el formato que quieras -->
                              <publishDateLocale>en</publishDateLocale>
                          <publishDateFormat>MM-dd-yyyy</publishDateFormat>
                        </configuration>
                        <reportSets>
                              <reportSet>
                                    <reports>
                                          <report>changes-report</report>
                                    </reports>
                              </reportSet>
                        </reportSets>
                  </plugin>
            </plugins>
        ...
      </reporting>

y si quieren publicarlo en un servidor remoto, sólo hay que agregar la plugin de ftp

Be Sociable, Share!

Comó instalar Lighttpd en Windows XP pro?

Open Source, Software, Windows 1 de noviembre del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)
Loading ... Loading ...

Ya había escrito acerca de este servidor web, y la verdad es que hay  buenas criticas,  ya que es rápido, ligero,   fácil instalación, etc. y bueno aquí una guía de instalación para Windows XP pro (Existe esta versión gracia  a un proyecto WLMP).

1.- Se lo bajan de aquí
2.- Si lo bajan el Zip (primero lo descomprimen), de lo contrario lo ejecuran y les mostrara el inicio de la instalación.

instalación de Lighttpd

instalación de Lighttpd

3.-  Aceptamos la licencia.

instalación de Lighttpd

instalación de Lighttpd

4.- Agregamos el servicio

instalación de Lighttpd

instalación de Lighttpd

5.- Vamos al browser y tecleamos http://localhost/ y nos tendría que mostrar el index del servidor.

instalación de Lightt

instalación de Lightt

6.- y listo!!

Be Sociable, Share!

WordPress es el más descargado!!!

General, Internet, Open Source 16 de octubre del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)
Loading ... Loading ...

Así es, como se dice por ahí… “…siempre hay cosas mejore que otras ó siempre hay uno mejor  en todo  :( “… por medio de esta página que se llama CMSWIRE obtuve algunas  estadísticas, como por ejemplo esta que nos muestra que wordpress es el más descargado del 2009… y si quieren saber más de este  apasionante mundo  sólo tienen que registrarse aquí y listo…

wordpress el más descargado

wordpress el más descargado

Be Sociable, Share!

Lighttpd: rápido, ligero, estándar, open source… etc. etc.

Open Source, Software, Unix/Linux, Windows 30 de septiembre del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)
Loading ... Loading ...

La verdad es que no lo conocía, hasta que me lo encontré navegando en Internet, con eso de que salen cosas nuevas todos los días :( y uno se va quedando desactualizado :( en fin… la verdad es que Lighttpd es un excelente servidor web, open source, y que en su página oficial mencionan muchas características muy buenas así que lo voy a instalar y les contaré que tal, esta disponible para Linux/Unix, aunque existe una versión para Windows

Be Sociable, Share!

GitHub como hosting de código para nuestro proyecto en Ruby on Rails…

Open Source, Programación, RubyOnRails 27 de septiembre del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)
Loading ... Loading ...

Y bueno, para poder subir el código que hagamos me he creado una cuenta en GitHub (es un hosting para repositorios Git)… y así sera más fácil… se los recomiendo a todos aquellos que desarrollen en ruby on rails, además que se pueden encontrar muchisisisisiissmo ejemplo y lo mejor e todo es que se pueden descargar. :)

Be Sociable, Share!

PostgreSQL 2009-09-09 Security Update

Base de datos, Open Source, Seguridad 10 de septiembre del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)
Loading ... Loading ...

Se acaba de liberar una actualización de postgresSQL que corrige varios bugs de seguridad que tenía en estas versiones: 8.4.1, 8.3.8, 8.2.14, 8.1.18, 8.0.22, y 7.4.26, así que todos aquellos que lo utilicen para almacenar sus datos, tienen que actualizar lo antes posible, aquí les dejo el link de los detalles.

Be Sociable, Share!

The Open Music Player “SongBird”

Google, Open Source 10 de septiembre del 2009

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5,00 out of 5)
Loading ... Loading ...

Un excelente reproductor de música, y lo mejor es que es open source, que no le pide nada al iTunes, así que hay que probarlo y aquí les dejo el link

songbird

songbird

Be Sociable, Share!
http://www.wikio.es BlogESfera - Directorio de Blogs Hispanos blogarama - the blog directory Mi Ping en TotalPing.com
Internet blogs Programming Blogs - Blog Catalog Blog Directory Internet blogs Buzzear (ES) Publicidad por tu blog con Boosterblog directorio de blogs
Agregar Web - Directorio de webs Directorio webs Directorio Web
Anuncios Gratis Blog Directory Technology Blogs - Blog Rankings

Switch to our mobile site