Mengambil Konfigurasi dari File Properties
Pada posting sebelumnya saya telah membahas tentang bagaimana cara menyimpan konfigurasi di file properties. Pada posting kali ini, saya akan membahas tentang bagaimana cara mengambil konfigurasi dari file properties. Lets Begin….
package com.yudi; import java.io.File; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.PropertiesConfiguration; public class AppLoadConfig { public static void main(String[] args) { PropertiesConfiguration config = new PropertiesConfiguration(); File file = new File("/home/yudi/log/yudi.properties"); try { config.load(file); } catch (ConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } // mengambil data property dari file properties String nama = config.getString("name.anda"); String jenkel = config.getString("jenis.kelamin"); String status = config.getString("status.kawin"); System.out.println("nama = " + nama); System.out.println("jenkel = " + jenkel); System.out.println("status = " + status); } }
Output…
nama = Yudi Wira jenkel = laki tulen status = kasih tau gak ya...
Simpan Konfigurasi di File Properties
Pada posting ini saya akan sedikit men-demokan bagaimana cara menyimpan konfigurasi di file properties menggunakan library Apache Common Configuration. Lets Begin…
terlebih dahulu download library Apache Common Configuration
package com.yudi; import java.io.File; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.PropertiesConfiguration; public class AppSaveConfig { public static void main(String[] args) { //obyek configurasi PropertiesConfiguration config = new PropertiesConfiguration(); //set propertinya config.setProperty("name.anda", "Yudi Wira"); config.setProperty("jenis.kelamin", "laki tulen"); config.setProperty("status.kawin", "kasih tau gak ya..."); //save configurasi ke file File file = new File("/home/yudi/log/yudi.properties"); try { config.save(file); } catch (ConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
Outputnya…
name.anda = Yudi Wira jenis.kelamin = laki tulen status.kawin = kasih tau gak ya...
Tutorial ActiveMQ + Spring JMS + Maven + Log4j Part II
Setelah pada posting sebelumnya Tutorial ActiveMQ + Spring JMS + Maven + Log4j Part I kita telah membuat projectnya di Eclipse, pada postingan ini kita akan men-setting queue di ActiveMQ. Lets Begin….
1. Jalankan ActiveMQ
yudi@YudiMint /opt/apache-activemq-5.8.0/bin $ sudo ./activemq start
2. Web Console ActiveMQ
Akses web console activeMQ di url
http://localhost:8161/admin
3. Buat Queue ActiveMQ
1. Klik menu Queues
2. Lalu masukkan nama queue di kolom name lalu klik button Create
4. Testing Application
1. Jalankan Project SpringMQ yang tadi telah kita buat dengan Server Tomcat 7.
2. Pada Web console Active MQ di menu Queues, pada queue IncomingQueues klik Operations Send To maka akan muncul window seperti gambar dibawah. Tentukan berapa jumlah message yang akan dikirim, disini saya akan mengirim 100 message dengan isi messagenya Test Message. Lalu klik button Send
3. Coba refresh browsernya dan akan terlihat kalau IncomingQueues telah mengirim message ke OutgoingMessages. lihat gambar dibawah ini
That’s a wrap… demikian tutorial yang singkat ini. mohon maaf jika ada yang tidak berkenan dihati….
any comment will be appreciate….
Refference : google.com
Tutorial ActiveMQ + Spring JMS + Maven + Log4j Part I
Setelah postingan sebelumnya membahas cara install ActiveMQ di Linux. Pada kesempatan kali ini saya akan memberikan tutorial implementasi ActiveMQ dengan menggunakan Spring JMS. Lets Begin…
1. Tools yang digunakan
- Apache ActiveMQ
- Spring JMS
- Apache Maven
- Log4j
Project Structure
2. Project Dependency
Tambahkan dependency activeMQ, Spring dan Log4j di pom.xml
File:pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.yudi</groupId> <artifactId>SpringMQ</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>SpringMQ Maven Webapp</name> <url>http://maven.apache.org</url> <properties> <releaseCandidate>1</releaseCandidate> <spring.version>3.1.1.RELEASE</spring.version> <java.version>1.5</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <maven.javadoc.reporting.version>2.7</maven.javadoc.reporting.version> <commons.logging.version>1.1.1</commons.logging.version> <log4j.version>1.2.16</log4j.version> <context.path>spring-activemq-sample</context.path> </properties> <dependencies> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.1.0</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.4</version> </dependency> </dependencies> <build> <finalName>SpringMQ</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <warName>${context.path}</warName> </configuration> </plugin> </plugins> </build> </project>
3. OutgoingMessageSender
File:OutgoingMessageSender.java
package com.yudi.jms; import javax.jms.JMSException; import javax.jms.Queue; import org.apache.log4j.Logger; import org.springframework.jms.core.JmsTemplate; public class OutgoingMessageSender { private static final Logger LOG = Logger.getLogger(OutgoingMessageSender.class); private JmsTemplate jmsTemplate; private Queue queue; public void sendMessage(String message) throws JMSException { LOG.info("Message yang akan di taruh di queue. Queue[" + queue.toString() + "] Message[" + message + "]"); jmsTemplate.convertAndSend(queue, message); } public void setJmsTemplate(JmsTemplate jmsTemplate) { this.jmsTemplate = jmsTemplate; } public void setQueue(Queue queue) { this.queue = queue; } }
4. IncomingListener
File:IncomingListener.java
package com.yudi.jms; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageListener; import javax.jms.TextMessage; import javax.management.JMException; import org.apache.log4j.Logger; public class IncomingListener implements MessageListener { private OutgoingMessageSender outgoingMessageSender; private static final Logger LOG = Logger.getLogger(IncomingListener.class); public void setOutgoingMessageSender( OutgoingMessageSender outgoingMessageSender) { this.outgoingMessageSender = outgoingMessageSender; } public void onMessage(Message message) { // TODO Auto-generated method stub LOG.info("Terima message dari queue" + message); if (message instanceof TextMessage) { try { String msgText = ((TextMessage) message).getText(); LOG.info("proses message " + msgText); outgoingMessageSender.sendMessage(msgText); } catch (JMSException e) { // TODO: handle exception LOG.info("Error :" + e.getMessage()); } } else { String errMsg = "Message Salah"; LOG.error(errMsg); throw new RuntimeException(errMsg); } } }
5. Spring Configuration
Buat spring configurationnya.
File:spring-config.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:jee="http://www.springframework.org/schema/jee" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd"> <jee:jndi-lookup id="mqConnectionFactory" jndi-name="java:comp/env/jms/mqConnectionFactory" /> <jee:jndi-lookup id="incomingQueues" jndi-name="java:comp/env/jms/incomingQueues" /> <jee:jndi-lookup id="outgoingQueues" jndi-name="java:comp/env/jms/outgoingQueues" /> <bean id="incomingListener" class="com.yudi.jms.IncomingListener"> <property name="outgoingMessageSender" ref="outgoingMessageSender" /> </bean> <bean id="outgoingMessageSender" class="com.yudi.jms.OutgoingMessageSender"> <property name="jmsTemplate" ref="jmsTemplate" /> <property name="queue" ref="outgoingQueues" /> </bean> <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate"> <property name="connectionFactory" ref="mqConnectionFactory" /> </bean> <bean id="yudiMessageListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer"> <property name="connectionFactory" ref="mqConnectionFactory" /> <property name="destination" ref="incomingQueues" /> <property name="messageListener" ref="incomingListener" /> <property name="concurrentConsumers" value="4" /> </bean> </beans>
6. Context Configuration
File:context.xml
<Context> <Resource name="jms/mqConnectionFactory" auth="Container" type="org.apache.activemq.ActiveMQConnectionFactory" description="JMS Connection Factory" factory="org.apache.activemq.jndi.JNDIReferenceFactory" brokerURL="tcp://localhost:61616" /> <Resource name="jms/incomingQueues" auth="Container" type="org.apache.activemq.command.ActiveMQQueue" factory="org.apache.activemq.jndi.JNDIReferenceFactory" physicalName="IncomingQueues"/> <Resource name="jms/outgoingQueues" auth="Container" type="org.apache.activemq.command.ActiveMQQueue" factory="org.apache.activemq.jndi.JNDIReferenceFactory" physicalName="OutgoingQueues"/> </Context>
7. Log4j
File:log4j.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <!-- Appenders --> <appender name="console" class="org.apache.log4j.ConsoleAppender"> <param name="Target" value="System.out" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-5p: [%d{MMM-dd HH:mm:ss,SSS}] %c{3} - %m%n" /> </layout> </appender> <!-- File Appender --> <appender name="file" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="/home/yudi/log/springMQ.log"/> <param name="MaxFileSize" value="10000KB"/> <param name="MaxBackupIndex" value="20"/> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-5p: [%d{MMM-dd HH:mm:ss,SSS}] %c{3} - %m%n" /> </layout> </appender> <logger name="org.springframework.beans"> <level value="warn" /> </logger> <logger name="org.springframework.web"> <level value="debug" /> </logger> <logger name="com.yudi.jms"> <level value="debug" /> </logger> <!-- Root Logger --> <root> <priority value="info" /> <appender-ref ref="file" /> </root> </log4j:configuration>
8. Web.XML
File:web.xml
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value> /WEB-INF/config/spring-config.xml </param-value> </context-param> <!-- Loads the Spring web application context using the config file defined above. --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> </web-app>
Bersambung ke posting selanjutnya…
Install Active MQ di Linux
Pada posting kali ini saya akan mencoba berbagi pengalaman saya pada saat menginstall apache activeMQ di kompi ane yang kebetulan menggunakan OS Linux. Tidak usah berlama – lama langsung kita mulai….
Step 1. Download Apache Active MQ
1. Download disini Apache ActiveMQ
Step 2. Extract File
1. Extract file yang sudah di download tadi ke folder yang kamu inginkan. kalau saya memindahkan file nya ke /opt. Ketikkan perintah berikut :
yudi@YudiMint /opt $ sudo tar -zxvf /media/Data/SoftwareLinux/apache-activemq-5.8.0-bin.tar.gz
2. Jika ActiveMQ startup tidak executable, ganti permissionsnya
chmod 755 activemq
Step 3. Run Apache ActiveMQ
1. Jalankan Apache ActiveMQ
sudo sh activemq start
yudi@YudiMint /opt/apache-activemq-5.8.0/bin $ sudo ./activemq start INFO: Using default configuration (you can configure options in one of these file: /etc/default/activemq /home/yudi/.activemqrc) INFO: Invoke the following command to create a configuration file ./activemq setup [ /etc/default/activemq | /home/yudi/.activemqrc ] INFO: Using java '/usr/lib/jvm/jdk1.6.0_29/bin/java' INFO: Starting - inspect logfiles specified in logging.properties and log4j.properties to get details INFO: pidfile created : '/opt/apache-activemq-5.8.0/data/activemq-YudiMint.pid' (pid '4194') yudi@YudiMint /opt/apache-activemq-5.8.0/bin $
Step 4. Test ActiveMQ
1. Default port ActiveMQ adalah 61616
netstat -an|grep 61616
yudi@YudiMint /opt/apache-activemq-5.8.0/bin $ netstat -an|grep 61616 tcp6 0 0 :::61616 :::* LISTEN yudi@YudiMint /opt/apache-activemq-5.8.0/bin $
Step 5. Monitoring ActiveMQ
1. Untuk activeMQ versi 4.x keatas, anda bisa memonitor activeMQ di webconsole yang bisa anda akses di alamat
http://localhost:8161/admin
Username = admin
Password = admin
Encrypt + Decrypt Menggunakan Jasypt
Pada Posting kali ini penulis memposting bagaimana cara encrypt / decript menggunakan jasypt. kalau dahulu kita melakukan encrypt harus belajar kriptografi, Java aja udah susah apalagi belajar kriptografi. tapi itu dulu… sekarang sudah ada frameworknya yaitu Jasypt. penggunaan jasypt ini tergolong mudah, tanpa basa basi lagi lets begin….
1. Contoh encrypt/decrypt Jasypt
sebelum memulai koding, download dahulu library Jasyptnya
jasypt-1.9.0.jar
jika anda menggunakan apache maven, silahkan tambahkan dependency nya di pom.xml
<dependency> <groupId>org.jasypt</groupId> <artifactId>jasypt</artifactId> <version>1.9.0</version> </dependency>
package com.yudi.jsypt; import org.jasypt.util.text.BasicTextEncryptor; public class TesMain { private static void encryptedPass(String test) { BasicTextEncryptor encryptor = new BasicTextEncryptor(); encryptor.setPassword("gilelundro"); String encryptedPass = encryptor.encrypt(test); String plainText = encryptor.decrypt(encryptedPass); System.out.println("Encrypted : "+encryptedPass+" Plain Text ="+plainText); } public static void main(String[] args) { encryptedPass("Tes dulu ya...."); } }