package com.sun.s1asdev.jdbc.CustomResourceFactories.ejb;
import com.sun.s1asdev.custom.resource.CustomResourceJavaBean;
import javax.annotation.Resource;
import javax.ejb.*;
import javax.naming.*;
import java.rmi.RemoteException;
import java.sql.*;
import java.rmi.RemoteException;
import java.util.Properties;
import java.util.Enumeration;
import java.util.Set;
import java.util.Iterator;
import java.net.URL;
@Stateful
public class SimpleBMPBean {
protected Object obj;
@Resource(mappedName="custom/my-properties-file")
Properties myPropertiesFile;
@Resource(mappedName="custom/my-simple-properties")
Properties mySimpleProperties;
@Resource(mappedName="custom/my-properties-xml-file")
Properties myPropertiesXMLFile;
@Resource(mappedName="custom/my-properties-file-with-values")
Properties myPropertiesWithValues;
@Resource(mappedName="custom/my-properties-xml-file-with-values")
Properties myPropertiesWithXMLFileWithValues;
@Resource(mappedName="custom/my-properties-file")
Properties myPropertiesFileLookup;
@Resource(mappedName="custom/my-simple-properties")
Properties mySimplePropertiesLookup;
@Resource(mappedName="custom/my-properties-xml-file")
Properties myPropertiesXMLFileLookup;
@Resource(mappedName="custom/my-properties-file-with-values")
Properties myPropertiesWithValuesLookup;
@Resource(mappedName="custom/my-properties-xml-file-with-values")
Properties myPropertiesWithXMLFileWithValuesLookup;
private boolean testAndPrintProperties(String resourceName, Properties properties){
boolean propertiesFound = false;
System.out.println("resource-name : " + resourceName);
if(properties != null){
for(Object o : properties.keySet()){
propertiesFound = true;
System.out.println("key : " + o + ", value : " + properties.get(o));
}
}else{
propertiesFound = false;
System.out.println("null properties from resource : " + resourceName);
}
return propertiesFound;
}
public boolean testLookupNames() throws RemoteException{
System.out.println("myPropertiesFileLookup : " + myPropertiesFileLookup);
System.out.println("mySimplePropertiesLookup : " + mySimplePropertiesLookup);
System.out.println("myPropertiesXMLFileLookup : " + myPropertiesXMLFileLookup);
System.out.println("myPropertiesWithValuesLookup : " + myPropertiesWithValuesLookup);
System.out.println("myPropertiesWithXMLFileWithValuesLookup : " + myPropertiesWithXMLFileWithValuesLookup);
boolean myPropertiesFileLookupBoolean = testAndPrintProperties("myPropertiesFileLookup", myPropertiesFileLookup);
boolean mySimplePropertiesLookupBoolean = testAndPrintProperties("mySimplePropertiesLookup", mySimplePropertiesLookup);
boolean myPropertiesXMLFileLookupBoolean = testAndPrintProperties("myPropertiesXMLFileLookup", myPropertiesXMLFileLookup);
boolean myPropertiesWithValuesLookupBoolean = testAndPrintProperties("myPropertiesWithValuesLookup", myPropertiesWithValuesLookup);
boolean myPropertiesWithXMLFileWithValuesLookupBoolean = testAndPrintProperties("myPropertiesWithXMLFileWithValuesLookup", myPropertiesWithXMLFileWithValuesLookup);
boolean injectionSucceeded = myPropertiesFileLookup != null && mySimplePropertiesLookup != null
&& myPropertiesXMLFileLookup != null && myPropertiesWithValuesLookup != null && myPropertiesWithXMLFileWithValuesLookup != null;
boolean nonEmptyProperties = myPropertiesFileLookupBoolean && mySimplePropertiesLookupBoolean && myPropertiesXMLFileLookupBoolean
&& myPropertiesWithValuesLookupBoolean && myPropertiesWithXMLFileWithValuesLookupBoolean;
return injectionSucceeded && nonEmptyProperties;
}
public boolean testMappedNames() throws RemoteException{
System.out.println("myPropertiesFile : " + myPropertiesFile);
System.out.println("mySimpleProperties : " + mySimpleProperties);
System.out.println("myPropertiesXMLFile : " + myPropertiesXMLFile);
System.out.println("myPropertiesWithValues : " + myPropertiesWithValues);
System.out.println("myPropertiesWithXMLFileWithValues : " + myPropertiesWithXMLFileWithValues);
boolean myPropertiesFileBoolean= testAndPrintProperties("myPropertiesFile", myPropertiesFile);
boolean mySimplePropertiesBoolean= testAndPrintProperties("mySimpleProperties", mySimpleProperties);
boolean myPropertiesXMLFileBoolean= testAndPrintProperties("myPropertiesXMLFile", myPropertiesXMLFile);
boolean myPropertiesWithValuesBoolean= testAndPrintProperties("myPropertiesWithValues", myPropertiesWithValues);
boolean myPropertiesWithXMLFileWithValuesBoolean= testAndPrintProperties("myPropertiesWithXMLFileWithValues", myPropertiesWithXMLFileWithValues);
boolean injectionSucceeded = myPropertiesFile != null && mySimpleProperties != null
&& myPropertiesXMLFile != null && myPropertiesWithValues != null && myPropertiesWithXMLFileWithValues != null;
boolean nonEmptyProperties = myPropertiesFileBoolean && mySimplePropertiesBoolean && myPropertiesXMLFileBoolean &&
myPropertiesWithValuesBoolean && myPropertiesWithXMLFileWithValuesBoolean;
return injectionSucceeded && nonEmptyProperties;
}
public boolean testJavaBean(String testValue) {
try {
InitialContext ic = new InitialContext();
CustomResourceJavaBean o = (CustomResourceJavaBean) ic.lookup("java:comp/env/custom/my-java-bean");
if (o != null) {
//System.out.println("Custom Resource : " + o);
System.out.println("Custom resource value : " + o.getProperty());
if (o.getProperty().equalsIgnoreCase(testValue)) {
return true;
}
}
} catch (NamingException e) {
e.printStackTrace();
}
return false;
}
public boolean testPrimitives(String type, String value, String resourceName) throws RemoteException {
try {
InitialContext ic = new InitialContext();
Object o = ic.lookup("java:comp/env/" + resourceName);
if (o != null) {
System.out.println("Custom resource value : " + o);
if (o.toString().equalsIgnoreCase(value)) {
return true;
}
}
} catch (NamingException e) {
e.printStackTrace();
}
return false;
}
public boolean testProperties(Properties properties, String resourceName) throws RemoteException {
try {
InitialContext ic = new InitialContext();
Properties p = (Properties) ic.lookup(resourceName);
Set keys = p.keySet();
Iterator iterator = keys.iterator();
while (iterator.hasNext()) {
String key = (String) iterator.next();
String value = (String) p.get(key);
String result = (String) properties.get(key);
if (result != null) {
if (!result.equalsIgnoreCase(value)) {
return false;
}
} else {
return false;
}
}
return true;
} catch (NamingException e) {
e.printStackTrace();
}
return false;
}
public boolean testURL(String url, String resourceName) throws RemoteException {
try {
InitialContext ic = new InitialContext();
URL boundURL = (URL) ic.lookup(resourceName);
if (boundURL != null) {
if (boundURL.toString().equals(url))
return true;
}
} catch (NamingException e) {
e.printStackTrace();
}
return false;
}
public Integer ejbCreate() throws CreateException {
return new Integer(1);
}
public void ejbLoad() {
}
public void ejbStore() {
}
public void ejbRemove() {
}
public void ejbActivate() {
}
public void ejbPassivate() {
}
public void unsetEntityContext() {
}
public void ejbPostCreate() {
}
}