Moving OA Soap Wrapper into current trunk version
git-svn-id: https://brutex.net/svn/xservices/trunk@190 e7e49efb-446e-492e-b9ec-fcafc1997a86master
parent
a59bd05fde
commit
9a0d90a4b4
|
@ -0,0 +1,494 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2017 Brian Rosenberger (Brutex Network)
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package net.brutex.xservices.ws.impl;
|
||||||
|
|
||||||
|
import java.net.URL;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.GregorianCalendar;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.activation.DataHandler;
|
||||||
|
import javax.jws.WebParam;
|
||||||
|
import javax.jws.WebService;
|
||||||
|
|
||||||
|
import org.apache.commons.configuration.ConfigurationException;
|
||||||
|
import org.apache.commons.configuration.PropertiesConfiguration;
|
||||||
|
import org.apache.commons.jcs.JCS;
|
||||||
|
import org.apache.commons.jcs.access.exception.CacheException;
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
|
import net.brutex.DocBuilder.DocBuilder;
|
||||||
|
import net.brutex.mgmt.api.generator.JITCompiler;
|
||||||
|
import net.brutex.mgmt.api.xml.AnyEntity;
|
||||||
|
import net.brutex.mgmt.api.xml.Customer;
|
||||||
|
import net.brutex.mgmt.api.xml.DateFilter;
|
||||||
|
import net.brutex.mgmt.api.xml.Project;
|
||||||
|
import net.brutex.mgmt.api.xml.Query;
|
||||||
|
import net.brutex.mgmt.api.xml.Query.BOOL;
|
||||||
|
import net.brutex.mgmt.api.xml.QueryEntity;
|
||||||
|
import net.brutex.mgmt.api.xml.StringEntity;
|
||||||
|
import net.brutex.mgmt.api.xml.TimesheetEntry;
|
||||||
|
import net.brutex.mgmt.api.xml.TimesheetFilter;
|
||||||
|
import net.brutex.mgmt.api.xml.User;
|
||||||
|
import net.brutex.mgmt.openair.OpenAirRestConnection;
|
||||||
|
import net.brutex.xservices.types.ant.AttachmentType;
|
||||||
|
import net.brutex.xservices.util.BrutexNamespaces;
|
||||||
|
import net.brutex.xservices.ws.OpenAirProxyService;
|
||||||
|
import net.brutex.xservices.ws.XServicesFault;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Brian Rosenberger
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@WebService(targetNamespace = BrutexNamespaces.WS_XSERVICES, endpointInterface = "net.brutex.xservices.ws.OpenAirProxyService", serviceName = OpenAirProxyService.SERVICE_NAME)
|
||||||
|
public class OpenAirProxyServiceImpl implements OpenAirProxyService {
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Log4j2 Set Up
|
||||||
|
*/
|
||||||
|
private final Logger logger = LogManager.getLogger(OpenAirProxyServiceImpl.class);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
|
* @see
|
||||||
|
* net.brutex.xservices.ws.OpenAirProxyService#getTimeEntryList(java.lang.
|
||||||
|
* String)
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<TimesheetEntry> getTimeEntryList(int oa_projectid, int oa_customerid, int oa_userid,
|
||||||
|
GregorianCalendar startdate, GregorianCalendar enddate, boolean includeNonBillable, List<TimesheetFilter.TimesheetFilterType> filter) throws XServicesFault {
|
||||||
|
return getTimeEntries(oa_projectid, oa_customerid, oa_userid, startdate, enddate, includeNonBillable, filter);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private List<TimesheetEntry> getTimeEntries(final int oa_projectid, final int oa_customerid, final int oa_userid,
|
||||||
|
final GregorianCalendar fromDate, final GregorianCalendar toDate, final boolean includeNonBillable, List<TimesheetFilter.TimesheetFilterType> filter)
|
||||||
|
throws XServicesFault {
|
||||||
|
|
||||||
|
List<TimesheetEntry> resultlist = new ArrayList<TimesheetEntry>();
|
||||||
|
|
||||||
|
if( filter != null && filter.size()>0) {
|
||||||
|
for( TimesheetFilter.TimesheetFilterType f : filter) {
|
||||||
|
resultlist.addAll(
|
||||||
|
getTimeEntriesRAW(oa_projectid, oa_customerid, oa_userid, fromDate, toDate, includeNonBillable, f)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
resultlist = getTimeEntriesRAW(oa_projectid, oa_customerid, oa_userid, fromDate, toDate, includeNonBillable, null);
|
||||||
|
}
|
||||||
|
return resultlist;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private List<TimesheetEntry> getTimeEntriesRAW(final int oa_projectid, final int oa_customerid, final int oa_userid,
|
||||||
|
final GregorianCalendar fromDate, final GregorianCalendar toDate, final boolean includeNonBillable, TimesheetFilter.TimesheetFilterType filter)
|
||||||
|
throws XServicesFault {
|
||||||
|
|
||||||
|
final OpenAirRestConnection con = getOpenAirConnection();
|
||||||
|
if (con == null) {
|
||||||
|
throw new XServicesFault("Could not establish Open Air connection.");
|
||||||
|
}
|
||||||
|
|
||||||
|
Query query = new Query(TimesheetEntry.class);
|
||||||
|
|
||||||
|
if (oa_projectid > 0) {
|
||||||
|
query.addQuery(new QueryEntity("projectid", new StringEntity(String.valueOf(oa_projectid))), BOOL.AND);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (oa_customerid > 0) {
|
||||||
|
query.addQuery(new QueryEntity("customerid", new StringEntity(String.valueOf(oa_customerid))), BOOL.AND);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (oa_userid > 0) {
|
||||||
|
query.addQuery(new QueryEntity("userid", new StringEntity(String.valueOf(oa_userid))), BOOL.AND);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fromDate != null) {
|
||||||
|
//adjust
|
||||||
|
fromDate.add(GregorianCalendar.DAY_OF_MONTH, -1);
|
||||||
|
DateFilter date = new DateFilter("date");
|
||||||
|
date.setStartdate(fromDate);
|
||||||
|
if (toDate != null) {
|
||||||
|
toDate.add(GregorianCalendar.DAY_OF_MONTH, 1);
|
||||||
|
date.setEnddate(toDate);
|
||||||
|
}
|
||||||
|
query.addFilter(date);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (filter != null) {
|
||||||
|
query.addFilter(new TimesheetFilter(filter));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
List<TimesheetEntry> timesheets = (List<TimesheetEntry>) con.getEntitiesByQuery(query);
|
||||||
|
if (!includeNonBillable)
|
||||||
|
timesheets = filterBillableOnly(timesheets);
|
||||||
|
return timesheets;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Query q = new Query(Project.class);
|
||||||
|
*
|
||||||
|
* //QueryEntity qe = new QueryEntity("Portfolio__c", new
|
||||||
|
* StringEntity("Serena")); QueryEntity qe = new QueryEntity("id", new
|
||||||
|
* StringEntity("19738")); //DWP Bank QueryEntity qe2 = new
|
||||||
|
* QueryEntity("id", new StringEntity("19737")); //PNW //QueryEntity qe2
|
||||||
|
* = new QueryEntity("customer_name", new StringEntity(
|
||||||
|
* "Gerencia Informatica Seguridad Social (GISS)"));
|
||||||
|
*
|
||||||
|
* q.addQuery(qe, Query.BOOL.OR); q.addQuery(qe2, Query.BOOL.OR);
|
||||||
|
*
|
||||||
|
* List<Project> list = (List<Project>) con.getEntitiesByQuery(q, true);
|
||||||
|
*
|
||||||
|
* /*for (Project p : list) {
|
||||||
|
* Logger.getLogger("TestMain").debug(p.getName());
|
||||||
|
* System.out.println(p.toString()); }
|
||||||
|
*/
|
||||||
|
// User user = con.getUserByLogin("brosenberger");
|
||||||
|
|
||||||
|
// System.out.println(user.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AttachmentType getExcelTimesheet(int oa_projectid, int oa_customerid, int oa_userid,
|
||||||
|
GregorianCalendar startdate, GregorianCalendar enddate, boolean includeNonBillable, List<TimesheetFilter.TimesheetFilterType> filter, AttachmentType template)
|
||||||
|
throws XServicesFault {
|
||||||
|
|
||||||
|
List<TimesheetEntry> list = getTimeEntries(oa_projectid, oa_customerid, oa_userid, startdate, enddate,
|
||||||
|
includeNonBillable, filter);
|
||||||
|
AttachmentType t = getExcelTimesheet2(list, includeNonBillable, template);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Try to set a time sheet name:
|
||||||
|
* SignOff <From> - <To> <Project> - <Id> <User>.xlxs
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
String filename = "SignOff";
|
||||||
|
if(startdate!=null) {
|
||||||
|
filename += "_";
|
||||||
|
filename += startdate.toZonedDateTime()
|
||||||
|
.format( DateTimeFormatter.ofPattern( "uuuu-MM-dd" ) );
|
||||||
|
}
|
||||||
|
if(enddate!=null) {
|
||||||
|
filename += "-";
|
||||||
|
filename += enddate.toZonedDateTime()
|
||||||
|
.format( DateTimeFormatter.ofPattern( "uuuu-MM-dd" ) );
|
||||||
|
}
|
||||||
|
if(oa_projectid > 0) {
|
||||||
|
//Project spezifiziert
|
||||||
|
filename += "_";
|
||||||
|
if(list.size()>0) {
|
||||||
|
TimesheetEntry anyentry = list.get(0);
|
||||||
|
filename += anyentry.getProject().getName();
|
||||||
|
} else {
|
||||||
|
filename +="Emtpy";
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
//Mehrere Projekte, gibt es vielleicht nur eins?
|
||||||
|
int i = 0;
|
||||||
|
Set<String> namen = new HashSet<String>();
|
||||||
|
for (TimesheetEntry entry : list) {
|
||||||
|
namen.add( entry.getProject().getId() );
|
||||||
|
}
|
||||||
|
if(namen.size()>1) {
|
||||||
|
filename += "_Multiple_Projects";
|
||||||
|
} else {
|
||||||
|
if(list.size()>0) {
|
||||||
|
TimesheetEntry anyentry = list.get(0);
|
||||||
|
filename += anyentry.getProject().getName();
|
||||||
|
} else {
|
||||||
|
filename +="_Emtpy";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Username
|
||||||
|
if(oa_userid>0) {
|
||||||
|
filename += "_";
|
||||||
|
if(list.size()>0) {
|
||||||
|
TimesheetEntry anyentry = list.get(0);
|
||||||
|
filename += anyentry.getUser().getName();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
filename = filename.replace(" ","_");
|
||||||
|
filename = filename.replaceAll("[^A-Za-z0-9_\\-]", "");
|
||||||
|
filename += ".xlsx";
|
||||||
|
t.setFilename(filename);
|
||||||
|
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AttachmentType getExcelTimesheet2(List<TimesheetEntry> entries, boolean includeNonBillable,
|
||||||
|
AttachmentType templatefile) throws XServicesFault {
|
||||||
|
DocBuilder builder = new DocBuilder();
|
||||||
|
DataHandler dh;
|
||||||
|
if (templatefile != null) {
|
||||||
|
dh = builder.createTimesheet(entries, templatefile.getContent());
|
||||||
|
} else {
|
||||||
|
dh = builder.createTimesheet(entries, null);
|
||||||
|
}
|
||||||
|
AttachmentType t = new AttachmentType();
|
||||||
|
t.setContent(dh);
|
||||||
|
|
||||||
|
t.setFilename("timesheet.xlsx");
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Project> getProjectsByExternalId(String externalid) throws XServicesFault {
|
||||||
|
|
||||||
|
final OpenAirRestConnection con = getOpenAirConnection();
|
||||||
|
if (con == null) {
|
||||||
|
throw new XServicesFault("Could not establish Open Air connection.");
|
||||||
|
}
|
||||||
|
|
||||||
|
Query query = new Query(Project.class);
|
||||||
|
|
||||||
|
if (externalid.length() > 0) {
|
||||||
|
query.addQuery(new QueryEntity("externalid", new StringEntity(externalid)), BOOL.AND);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Project> projects = (List<Project>) con.getEntitiesByQuery(query);
|
||||||
|
|
||||||
|
return projects;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
|
* @see
|
||||||
|
* net.brutex.xservices.ws.OpenAirProxyService#getProjectsByOppId(java.lang.
|
||||||
|
* String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<Project> getProjectsByOppId(String oppid) throws XServicesFault {
|
||||||
|
final OpenAirRestConnection con = getOpenAirConnection();
|
||||||
|
if (con == null) {
|
||||||
|
throw new XServicesFault("Could not establish Open Air connection.");
|
||||||
|
}
|
||||||
|
|
||||||
|
Query query = new Query(Project.class);
|
||||||
|
|
||||||
|
if (oppid.length() > 0) {
|
||||||
|
query.addQuery(new QueryEntity("opportunity_num__c", new StringEntity(oppid)), BOOL.OR);
|
||||||
|
query.addQuery(new QueryEntity("SAP_Oracle_Number__c", new StringEntity(oppid)), BOOL.OR);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Project> projects = (List<Project>) con.getEntitiesByQuery(query);
|
||||||
|
|
||||||
|
return projects;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Customer getCustomerById(int customerid) throws XServicesFault {
|
||||||
|
final OpenAirRestConnection con = getOpenAirConnection();
|
||||||
|
if (con == null) {
|
||||||
|
throw new XServicesFault("Could not establish Open Air connection.");
|
||||||
|
}
|
||||||
|
|
||||||
|
Query query = new Query(Customer.class);
|
||||||
|
|
||||||
|
if (customerid > 0) {
|
||||||
|
query.addQuery(new QueryEntity("id", new StringEntity(String.valueOf(customerid))), BOOL.AND);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Customer> customer = (List<Customer>) con.getEntitiesByQuery(query);
|
||||||
|
|
||||||
|
if (customer.isEmpty()) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return customer.get(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see net.brutex.xservices.ws.OpenAirProxyService#getUpdatedCustomer(java.util.GregorianCalendar)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<Customer> getUpdatedCustomer(GregorianCalendar date, int offset) throws XServicesFault {
|
||||||
|
|
||||||
|
final OpenAirRestConnection con = getOpenAirConnection();
|
||||||
|
if (con == null) {
|
||||||
|
throw new XServicesFault("Could not establish Open Air connection.");
|
||||||
|
}
|
||||||
|
|
||||||
|
Query query = new Query(Customer.class);
|
||||||
|
//query.addQuery("Address_Country", new StringEntity(search), BOOL.AND);
|
||||||
|
query.addQuery("active", new StringEntity("1"), BOOL.AND);
|
||||||
|
|
||||||
|
DateFilter datefilter = new DateFilter("updated");
|
||||||
|
date.add(GregorianCalendar.MINUTE, -1*offset);
|
||||||
|
datefilter.setStartdate(date);
|
||||||
|
query.addFilter(datefilter);
|
||||||
|
|
||||||
|
List<Customer> customer = (List<Customer>) con.getEntitiesByQuery(query);
|
||||||
|
|
||||||
|
if (customer.isEmpty()) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return customer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Project> getUpdatedProjects(GregorianCalendar date, int offset) throws XServicesFault {
|
||||||
|
|
||||||
|
final OpenAirRestConnection con = getOpenAirConnection();
|
||||||
|
if (con == null) {
|
||||||
|
throw new XServicesFault("Could not establish Open Air connection.");
|
||||||
|
}
|
||||||
|
|
||||||
|
Query query = new Query(Project.class);
|
||||||
|
//query.addQuery("Address_Country", new StringEntity(search), BOOL.AND);
|
||||||
|
query.addQuery("Stage", new StringEntity("3"), BOOL.AND);
|
||||||
|
|
||||||
|
DateFilter datefilter = new DateFilter("updated");
|
||||||
|
date.add(GregorianCalendar.MINUTE, -1*offset);
|
||||||
|
datefilter.setStartdate(date);
|
||||||
|
query.addFilter(datefilter);
|
||||||
|
|
||||||
|
List<Project> project = (List<Project>) con.getEntitiesByQuery(query);
|
||||||
|
|
||||||
|
if (project.isEmpty()) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return project;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public User getUserById(int userid) throws XServicesFault {
|
||||||
|
Query query = new Query(User.class);
|
||||||
|
if (userid > 0) {
|
||||||
|
query.addQuery(new QueryEntity("id", new StringEntity(String.valueOf(userid))), BOOL.AND);
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return getUserByQuery(query);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public User getUserByUsername(String username) throws XServicesFault {
|
||||||
|
Query query = new Query(User.class);
|
||||||
|
query.addQuery(new QueryEntity("nickname", new StringEntity(username)), BOOL.AND);
|
||||||
|
return getUserByQuery(query);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<AnyEntity> getAnyObject(String objecttype, List<QueryParameter> queries) throws XServicesFault {
|
||||||
|
JITCompiler.load();
|
||||||
|
final OpenAirRestConnection con = getOpenAirConnection();
|
||||||
|
if (con == null) {
|
||||||
|
throw new XServicesFault("Could not establish Open Air connection.");
|
||||||
|
}
|
||||||
|
Class clazz;
|
||||||
|
try {
|
||||||
|
Class.forName("net.brutex.mgmt.api.xml.EntityType");
|
||||||
|
Class.forName("net.brutex.mgmt.api.xml.AbstractEntity");
|
||||||
|
clazz = Class.forName("net.brutex.mgmt.api.xml."+objecttype);
|
||||||
|
} catch (ClassNotFoundException ex ) {
|
||||||
|
throw new XServicesFault(ex);
|
||||||
|
}
|
||||||
|
Query query = new Query(clazz);
|
||||||
|
|
||||||
|
for(QueryParameter p : queries) {
|
||||||
|
query.addQuery(new QueryEntity(p.field, new StringEntity(p.value)), BOOL.AND);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<AnyEntity> anyentity = (List<AnyEntity>) con.getEntitiesByQuery(query);
|
||||||
|
|
||||||
|
if (anyentity.isEmpty()) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return anyentity;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private User getUserByQuery(Query query) throws XServicesFault {
|
||||||
|
final OpenAirRestConnection con = getOpenAirConnection();
|
||||||
|
if (con == null) {
|
||||||
|
throw new XServicesFault("Could not establish Open Air connection.");
|
||||||
|
}
|
||||||
|
User user = (User) con.getSingleEntityByQuery(query);
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
List<TimesheetEntry> filterBillableOnly(List<TimesheetEntry> timesheets) {
|
||||||
|
List<TimesheetEntry> list = new ArrayList<TimesheetEntry>();
|
||||||
|
for (TimesheetEntry entry : timesheets) {
|
||||||
|
if (entry.getProjecttask().isBillable()) {
|
||||||
|
list.add(entry);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
private OpenAirRestConnection getOpenAirConnection() {
|
||||||
|
|
||||||
|
/*
|
||||||
|
* get details from configuration file
|
||||||
|
*/
|
||||||
|
final PropertiesConfiguration props;
|
||||||
|
try {
|
||||||
|
final String config = "../openair.properties";
|
||||||
|
logger.debug("Loading Open Air connection details from " + this.getClass().getClassLoader().getResource("/")
|
||||||
|
+ config);
|
||||||
|
|
||||||
|
final URL configloc = this.getClass().getClassLoader().getResource(config);
|
||||||
|
|
||||||
|
props = new PropertiesConfiguration(configloc);
|
||||||
|
final String user = props.getString("user");
|
||||||
|
final String password = props.getString("password");
|
||||||
|
final String company = props.getString("company");
|
||||||
|
final String apikey = props.getString("apikey", "_PUT_HERE_");
|
||||||
|
final String namespace = props.getString("namespace");
|
||||||
|
|
||||||
|
final OpenAirRestConnection con;
|
||||||
|
|
||||||
|
con = new OpenAirRestConnection(JCS.getInstance("OACache"), company, user, password);
|
||||||
|
return con;
|
||||||
|
} catch (CacheException e) {
|
||||||
|
logger.error(e);
|
||||||
|
e.printStackTrace();
|
||||||
|
} catch (ConfigurationException e) {
|
||||||
|
logger.error(e);
|
||||||
|
e.printStackTrace();
|
||||||
|
} finally {
|
||||||
|
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue