Labels

Monday, February 24, 2014

How to set URI and Authentication Credentials to Partner Link Dynamically!

Oracle BPEL is a pain to deal with when trying to have a full control of the header and authentication. This will show you a simple way to set the HTTPAdapter URI and Credential for the Basic Authentication. You can set the URI dynamically using the endpointURI as it will allow you to overwrite it with a variable at run time. The same we like to also get the username/password to also be passing in at runtime. Oracle has a set of headers properties that you can set, but statically are:
oracle.webservices.auth.username
oracle.webservices.auth.password
But the problem, come when you attempt to overwrite these values with your own at runtime the BPEL simple ignore it.
To solve this problem, we will have to force the HTTPAdapter to use the good old javax.xml.ws.security.auth.username and password method of passing the basic credential, because the Oracle BPEL will not reject the toProperty setting in the BPEL. Here are the three headers properties that allow data to be replaced at runtime just before invoke.
endpointURI
javax.xml.ws.security.auth.username
javax.xml.ws.security.auth.password
[composite.xml]

 true
 bogus
 bogus
 DEFAULT
 30000
 WSDLDriven
 GET
 https://testsvr.cnci.org/test/products
 url-encoded
 
BPEL Dynamic URI and Credentials composite [yourBPEL.bpel]

 
 
 



 ...



    
    
    

BPEL Dynamic URI and Credentials bpel.xml

Saturday, November 16, 2013

Ngọc Trâm » Gió!

Cơn gió lạ thổi hồn em vội vã
Sầu giăng giăng
Trăng lặn,
cánh hoa tàn.
Cành mai vàng lặng lẽ níu xuân sang
Xua hơi thở,
Ngỡ ngàng...
Đêm chới với!

Cơn gió lạ mang mùi hương đắm đuối
Lau giùm em...
Giọt lệ chớm mi rồi!
Kìa!
Đỉnh trời vụt một mảnh sao côi
Đêm ngã xuống...
Hấp hối từng hơi thở.

Gió cứ thổi, thổi đi!
Đừng bỡ ngỡ
Chợt nhìn đêm tắt thở
Vỡ òa...
Rơi...
Từng mảnh tan ra
Khoảng trống bao la
Hun hút gió.

Khi cánh cửa tình yêu mở ngỏ
Nào hay đâu từ đó gió không về.

--Ngọc Trâm

Bùi Ngọc Thành » Mắt Phượng

Một lần hạt nắng chiều rơi
Ngủ quên trên cánh mây trời dịu êm.
Mi em cong vạt cỏ mềm
Chân tôi trượt giữa đôi miền thực – hư.
Lạc vào mắt phượng xanh mơ
Níu tôi ở lại bên bờ nhớ thương.
Phận tằm trót thả tơ vương
Theo mây dệt mộng thiên đường gấm hoa.
Một lần …thoáng đã mù xa
Bên hiên trường cũ, là là phượng bay...


Bùi Ngọc Thành

Chiều Ni!

Chiều ni, mưa nhỏ li ri
Mưa như lần nớ mẹ đi về trời
Bỏ đàn con lại chơi vơi
Mưa con cũng vội vàng rơi lệ nì

Nhớ mẹ
T.A. Nguyen
November 16, 2013

Thursday, October 24, 2013

A JDBC ConnectionManager that load the right driver base on it URL

A simple class to automatically load the correct (most popular) JDBC driver base on the connection URL. If you have other driver URL and driver that I missed here, please send it via comments or email me and I will update this class.

package org.cnci.db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.util.HashMap;
import java.util.Map;

/*
 * ConnectionManager
 * @author: T.A. Nguyen
 * 
 * Simple solution to automatically load the JDBC driver based on the 
 * connection url.  You can arrange the order and move the most used
 * to the top to provide sequential search.
 */
public class ConnectionManager {
 private static final Map DRVS = new HashMap();
 
 static {
  DRVS.put("jdbc:oracle:thin",            "oracle.jdbc.OracleDriver");
  DRVS.put("jdbc:sqlserver:",             "com.microsoft.sqlserver.jdbc.SQLServerDriver");
  DRVS.put("jdbc:weblogic:sqlserver:",    "weblogic.jdbc.sqlserver.SQLServerDriver");
  DRVS.put("jdbc:microsoft:sqlserver:",   "com.microsoft.jdbc.sqlserver.SQLServerDriver");
  DRVS.put("jdbc:db2:",                   "com.ibm.db2.jcc.DB2Driver");
  DRVS.put("jdbc:informix-sqli:",         "com.informix.jdbc.IfxDriver");
  DRVS.put("jdbc:mysql:",                 "com.mysql.jdbc.Driver");
  DRVS.put("jdbc:netezza:",               "org.netezza.Driver");
  DRVS.put("jdbc:oracle:oci",             "oracle.jdbc.OracleDriver");
  DRVS.put("jdbc:sybase:Tds:",            "com.sybase.jdbc4.jdbc.SybDriver");
  DRVS.put("jdbc:teradata:",              "com.ncr.teradata.TeraDriver");
  DRVS.put("jdbc:jtds:",                  "net.sourceforge.jtds.jdbc.Driver");
  DRVS.put("jdbc:postgresql:",            "org.postgresql.Driver");
  DRVS.put("jdbc:Cache:",                 "com.intersys.jdbc.CacheDriver");
  DRVS.put("jdbc:FrontBase:",             "com.frontbase.jdbc.FBJDriver");
  DRVS.put("jdbc:h2:",                    "org.h2.Driver");
  DRVS.put("jdbc:hsqldb:hsql:",           "org.hsqldb.jdbcDriver");
  //DRVS.put("jdbc:derby:",               "org.apache.derby.jdbc.ClientDriver"); // Automatically loaded by JVM
  DRVS.put("jdbc:mimer:",                 "com.mimer.jdbc.Driver");
  DRVS.put("jdbc:pervasive:",             "com.pervasive.jdbc.v2.Driver");
  DRVS.put("jdbc:sqlite:",                "org.sqlite.JDBC");
  DRVS.put("jdbc:as400:",                 "com.ibm.as400.access.AS400JDBCDriver");
  DRVS.put("jdbc:mckoi:",                 "com.mckoi.JDBCDriver");
  DRVS.put("jdbc:firebirdsql:",           "org.firebirdsql.jdbc.FBDriver");
  DRVS.put("jdbc:rmi:",                   "RmiJdbc.RJDriver");
  DRVS.put("jdbc:ids",                    "ids.sql.IDSDriver");
  DRVS.put("jdbc:idb:",                   "org.enhydra.instantdb.jdbc.idbDriver"); // InstantDB
  DRVS.put("jdbc:interbase:",             "interbase.interclient.Driver");
  DRVS.put("jdbc:HypersonicSQL:",         "org.hsql.jdbcDriver");
  DRVS.put("jdbc:weblogic:mssqlserver4:", "weblogic.jdbc.mssqlserver4.Driver");
  DRVS.put("jdbc:pointbase:",             "com.pointbase.jdbc.jdbcUniversalDriver");
  DRVS.put("jdbc:cloudscape:",            "COM.cloudscape.core.JDBCDriver");
  DRVS.put("jdbc:JTurbo:",                "com.ashna.jturbo.driver.Driver");
  DRVS.put("jdbc:inetdae:",               "com.inet.tds.TdsDriver");
  DRVS.put("jdbc:cognos:",                "cs.jdbc.driver.CompositeDriver");
  DRVS.put("jdbc:neon:",                  "com.neon.jdbc.Driver");
 }
 

 private ConnectionManager() {
 }

 public static String getDriver(String url) {
  if (url != null) {
   for (String prefix : DRVS.keySet()) {
    if (url.startsWith(prefix)) {
     return DRVS.get(prefix);
    }
   }
  }
  return null;
 }

 public static Connection getConnection(String url, String user, String password) throws Exception {
  Connection conn = null;
  if (url != null) {
   Class.forName(getDriver(url));
   if (user != null && password != null) {
    conn = DriverManager.getConnection(url, user, password);
   } else {
    conn = DriverManager.getConnection(url);
   }
  }
  return conn;
 }
}

Monday, October 7, 2013

Hàn Mặc Tử » Bẽn Lẻn

Trăng nằm sóng soải trên cành liễu
Đợi gió đông về để lả lơi
Hoa lá ngây tình không muốn động
Lòng em hồi hộp, chị Hằng ơi.

Trong khóm vi vu rào rạt mãi
Tiếng lòng ai nói? Sao im đi?
Ô kìa, bóng nguyệt trần truồng tắm
Lộ cái khuôn vàng dưới đáy khe.

Vô tình để gió hôn lên má
Bẽn lẻn làm sao lúc nửa đêm
Em sợ lang quân em biết được
Nghi ngờ tới cái tiết trinh em.

Tác Giả: Hàn Mặc Tử

Saturday, March 30, 2013

Nha Trang

Nắng mai hôn nhẹ tóc thề
Hồn em theo gió xuân về đắm say
Ai kia bên nớ xuân này

Trong anh có vấn ngày ngày nhớ em
Rêng em một thoáng nhạc êm
Anh đi thây kệ, xuân mềm em trao
Nhả theo tiếng gió lao xao
Gió về bên ấy lẻn vào mộng anh ...

Cảm hứng,
Tặng em
March 30, 2013
T.A. Nguyen