/xservices/trunk/src/main/java/net/brutex/xservices/ws/rs/CVSInfoImpl.java |
---|
12,6 → 12,7 |
import javax.ws.rs.core.HttpHeaders; |
import javax.ws.rs.core.Response; |
import lombok.extern.slf4j.Slf4j; |
import net.brutex.xservices.types.scm.AttributeType; |
import net.brutex.xservices.types.scm.ItemListType; |
import net.brutex.xservices.types.scm.ItemType; |
29,8 → 30,6 |
import org.apache.commons.jcs.JCS; |
import org.apache.commons.jcs.access.CacheAccess; |
import org.apache.commons.jcs.access.exception.CacheException; |
import org.apache.logging.log4j.LogManager; |
import org.apache.logging.log4j.Logger; |
import org.netbeans.lib.cvsclient.Client; |
import org.netbeans.lib.cvsclient.command.CommandAbortedException; |
import org.netbeans.lib.cvsclient.command.CommandException; |
45,8 → 44,9 |
import org.netbeans.lib.cvsclient.event.EventManager; |
import org.netbeans.lib.cvsclient.event.FileInfoEvent; |
@Slf4j |
public class CVSInfoImpl implements CVSInfo { |
private static final Logger logger = LogManager.getLogger(); |
final ObjectFactory FACTORY = new ObjectFactory(); |
final ItemListType list = this.FACTORY.createItemListType(); |
53,7 → 53,7 |
public Response getRepositoryFiles(HttpHeaders h, File f, String modules, |
boolean isRecursive, boolean showRevisions, boolean forceNoCache) { |
String cachekey = "getFiles" + f.toURI().toString(); |
CVSInfoImpl.logger.debug("forceNoCache=" + forceNoCache); |
log.debug("forceNoCache=" + forceNoCache); |
ItemListType cacheresult = (ItemListType) getCacheInstance().get( |
cachekey); |
121,7 → 121,7 |
try { |
CVSInfoImpl.this.getCacheInstance().put(key, cvsfile); |
} catch (CacheException e) { |
CVSInfoImpl.logger.error("Could not cache item '" |
log.error("Could not cache item '" |
+ key + "'", e); |
} |
} |
142,7 → 142,7 |
rlog.setRecursive(isRecursive); |
CVSInfoImpl.logger.info("Executing CVS command '" + rlog.getCVSCommand() |
log.info("Executing CVS command '" + rlog.getCVSCommand() |
+ "' against '" + cvsclient.getRoot().host + "@" |
+ cvsclient.getRoot().repository + "'"); |
client.executeCommand(rlog, cvsclient.getGlobalOptions()); |
149,7 → 149,7 |
getCacheInstance().put(cachekey, this.list); |
} catch (ConfigurationException e) { |
CVSInfoImpl.logger.error("CVS Configuration File '" + f.getAbsolutePath() |
log.error("CVS Configuration File '" + f.getAbsolutePath() |
+ f.getName() + "'not found.", e); |
} catch (CommandAbortedException e) { |
e.printStackTrace(); |
172,7 → 172,7 |
public Response getModules(HttpHeaders h, File f, boolean forceNoCache) { |
String cachekey = "Modules" + f.toURI().toString(); |
CVSInfoImpl.logger.debug("forceNoCache=" + forceNoCache); |
log.debug("forceNoCache=" + forceNoCache); |
ModuleListType response = (ModuleListType) getCacheInstance().get( |
cachekey); |
200,12 → 200,12 |
CheckoutCommand co = new CheckoutCommand(); |
co.setShowModulesWithStatus(true); |
CVSInfoImpl.logger.info("Executing CVS command '" + co.getCVSCommand() |
log.info("Executing CVS command '" + co.getCVSCommand() |
+ "' against '" + cvsclient.getRoot().host + "@" |
+ cvsclient.getRoot().repository + "'"); |
client.executeCommand(co, cvsclient.getGlobalOptions()); |
if (list.getModules().size() == 0) { |
CVSInfoImpl.logger.warn("Repository '" |
log.warn("Repository '" |
+ cvsclient.getRoot().repository |
+ "' does not have modules"); |
} |
220,14 → 220,14 |
public Response getTags(HttpHeaders h, File f, boolean withFiles) { |
String cachekey = f.toURI().toString() + ":taglist"; |
CVSInfoImpl.logger.debug("Retrieving Tags from cache using key '" + cachekey |
log.debug("Retrieving Tags from cache using key '" + cachekey |
+ "'"); |
TagListType tags = (TagListType) getCacheInstance().get(cachekey); |
if (tags != null) { |
CVSInfoImpl.logger.debug("Delivering Tags from cache."); |
log.debug("Delivering Tags from cache."); |
return Response.ok(tags).build(); |
} |
CVSInfoImpl.logger.warn("Taglist not found in cache."); |
log.warn("Taglist not found in cache."); |
return Response.noContent().build(); |
} |
239,17 → 239,17 |
ItemListType list = null; |
if (!forceNoCache) { |
CVSInfoImpl.logger.debug("Retrieving file content from cache using key '" |
log.debug("Retrieving file content from cache using key '" |
+ cachekey + "'"); |
list = (ItemListType) getCacheInstance().get(cachekey); |
} |
if (list != null) { |
CVSInfoImpl.logger.debug("Delivering file content from cache."); |
log.debug("Delivering file content from cache."); |
return Response.ok(list).build(); |
} |
CVSInfoImpl.logger.warn("File content not found in cache."); |
log.warn("File content not found in cache."); |
list = this.FACTORY.createItemListType(); |
try { |
CVSClient cvsclient = new CVSClient(f); |
306,7 → 306,7 |
checkout.setModule(filestring); |
checkout.setPipeToOutput(true); |
CVSInfoImpl.logger.info("Execute CVS command '" + checkout.getCVSCommand() |
log.info("Execute CVS command '" + checkout.getCVSCommand() |
+ "' against '" + cvsclient.getRoot().host + "@" |
+ cvsclient.getRoot().repository + "'"); |
client.executeCommand(checkout, cvsclient.getGlobalOptions()); |
330,10 → 330,10 |
CacheAccess<Object, Object> jcs = null; |
String cacheinstance = "CVSCache"; |
try { |
CVSInfoImpl.logger.trace("Getting cache instance named 'CVSCache'"); |
log.trace("Getting cache instance named 'CVSCache'"); |
jcs = JCS.getInstance("CVSCache"); |
} catch (CacheException e) { |
CVSInfoImpl.logger.error("Failed to get cache instance", e); |
log.error("Failed to get cache instance", e); |
e.printStackTrace(); |
} |
return jcs; |
347,27 → 347,22 |
+ client.getRoot().repository; |
String cachestring = "FINDINGS-" + cvsroot; |
CVSInfoImpl.logger |
.debug("Fetch searchFileContent response from cache using cachekey '" |
log.debug("Fetch searchFileContent response from cache using cachekey '" |
+ cachestring + "'"); |
FindingsListType result = (FindingsListType) getCacheInstance() |
.get(cachestring); |
if (result != null) |
CVSInfoImpl.logger.debug("Found object for key '" + cachestring |
log.debug("Found object for key '" + cachestring |
+ "' in cache."); |
else { |
CVSInfoImpl.logger.debug("Found no object for key '" + cachestring |
log.debug("Found no object for key '" + cachestring |
+ "' in cache."); |
} |
if (result != null) |
return Response.ok(result).build(); |
} catch (CommandAbortedException e) { |
} catch (CommandAbortedException | AuthenticationException | ConfigurationException e) { |
e.printStackTrace(); |
} catch (ConfigurationException e) { |
e.printStackTrace(); |
} catch (AuthenticationException e) { |
e.printStackTrace(); |
} |
return Response.noContent().build(); |
} |
/xservices/trunk/src/main/java/net/brutex/xservices/ws/rs/DIMCMInfoImpl.java |
---|
33,6 → 33,7 |
import javax.ws.rs.core.Response; |
import javax.ws.rs.core.UriInfo; |
import lombok.extern.slf4j.Slf4j; |
import org.apache.commons.configuration2.PropertiesConfiguration; |
import org.apache.commons.configuration2.builder.fluent.Configurations; |
import org.apache.commons.configuration2.ex.ConfigurationException; |
39,9 → 40,8 |
import org.apache.commons.jcs.JCS; |
import org.apache.commons.jcs.access.CacheAccess; |
import org.apache.commons.jcs.access.exception.CacheException; |
import org.apache.logging.log4j.LogManager; |
import org.apache.logging.log4j.Logger; |
import net.brutex.xservices.cmtypes.ItemType; |
import net.brutex.xservices.cmtypes.ItemTypeList; |
import net.brutex.xservices.types.FileInfoType; |
78,9 → 78,9 |
* |
* @author Brian Rosenberger, bru(at)brutex.de |
*/ |
@Slf4j |
public class DIMCMInfoImpl implements DIMCMInfo { |
Logger logger = LogManager.getLogger(); |
/* |
* (non-Javadoc) |
238,7 → 238,7 |
if (search == null || search.equals("")) { |
search = "*"; |
logger.info("No search pattern supplied, using default '*'."); |
log.info("No search pattern supplied, using default '*'."); |
} |
FileWalker finder = new FileWalker(search); |
245,7 → 245,7 |
try { |
Files.walkFileTree(dir.toPath(), |
EnumSet.of(FileVisitOption.FOLLOW_LINKS), depth, finder); |
logger.info("FileWalker returned '" + finder.getCount() |
log.info("FileWalker returned '" + finder.getCount() |
+ "' hits. '" + finder.getTotal() |
+ "' files have been scanned."); |
List<Path> result = finder.getResult(); |
261,7 → 261,7 |
list.add(new FileInfoType(f, baseuri)); |
} |
} catch (IOException e2) { |
logger.error(e2.getMessage(), e2); |
log.error(e2.getMessage(), e2); |
; |
} |
} |
324,7 → 324,7 |
if (conn != null) |
return conn; |
} catch (Exception e) { |
logger.error(e.getMessage()); |
log.error(e.getMessage()); |
} |
/* |
/xservices/trunk/src/main/java/net/brutex/xservices/ws/rs/FileInfoImpl.java |
---|
47,6 → 47,7 |
import javax.ws.rs.core.StreamingOutput; |
import javax.ws.rs.core.UriInfo; |
import lombok.extern.slf4j.Slf4j; |
import net.brutex.xservices.security.DirectoryPermission; |
import net.brutex.xservices.types.FileInfoType; |
import net.brutex.xservices.util.FileWalker; |
54,8 → 55,6 |
import org.apache.commons.jcs.JCS; |
import org.apache.commons.jcs.access.CacheAccess; |
import org.apache.commons.jcs.access.exception.CacheException; |
import org.apache.logging.log4j.LogManager; |
import org.apache.logging.log4j.Logger; |
import org.apache.shiro.SecurityUtils; |
import org.apache.shiro.authz.UnauthorizedException; |
64,10 → 63,10 |
* |
* @author Brian Rosenberger, bru(at)brutex.de |
*/ |
@Slf4j |
public class FileInfoImpl implements FileInfo { |
Logger logger = LogManager.getLogger(); |
/* (non-Javadoc) |
77,19 → 76,19 |
{ |
if(dir==null) { |
dir = "c:/"; |
logger.warn("No directory specified. Default is 'c:/'."); |
log.warn("No directory specified. Default is 'c:/'."); |
} |
isPermitted(dir); |
URI baseuri = URI.create(uriInfo.getBaseUri()+FileInfo.BASE_PATH+"getFile?file="); |
logger.info(String.format("Listing directory '%s'.", dir)); |
log.info(String.format("Listing directory '%s'.", dir)); |
if (level <= 0) level = 1; |
if ((!withDir) && (!withFiles)) withFiles = true; |
String cachekey = level + "||" + withFiles + "||" + withDir + "||" + search + "||" + dir; |
try { |
logger.debug(String.format("Hitting cache with cachekey '%s'", cachekey)); |
log.debug(String.format("Hitting cache with cachekey '%s'", cachekey)); |
CacheAccess<Object, Object> jcs = JCS.getInstance("FileCache"); |
/*Try to retrieve the file list from the cache*/ |
98,9 → 97,9 |
if (list == null || !useCache) { |
list = setDirectory(baseuri, dir, withDir, withFiles, level, search); |
jcs.put(cachekey, list); |
logger.debug("Stored in Cache: " + list.toString()); |
log.debug("Stored in Cache: " + list.toString()); |
} else { |
logger.debug("Got from Cache: " + list.toString()); |
log.debug("Got from Cache: " + list.toString()); |
} |
int fromIndex = 0; |
110,7 → 109,7 |
if (toIndex > list.size()) toIndex = list.size(); |
if (fromIndex > toIndex) fromIndex = toIndex; |
GenericEntity<List<FileInfoType>> sublist = new GenericEntity<List<FileInfoType>>(list.subList(fromIndex, toIndex)) {}; |
logger.info(String.format("Returning items %s to %s from total of %s items in the list.", fromIndex, toIndex, list.size())); |
log.info(String.format("Returning items %s to %s from total of %s items in the list.", fromIndex, toIndex, list.size())); |
return Response.ok(sublist).build(); |
} catch (CacheException e) { |
return Response.serverError().build(); |
133,13 → 132,13 |
if(search==null || search.equals("") ) { |
search = "*"; |
logger.info("No search pattern supplied, using default '*'."); |
log.info("No search pattern supplied, using default '*'."); |
} |
FileWalker finder = new FileWalker(search); |
try { |
Files.walkFileTree(dir.toPath(), EnumSet.of(FileVisitOption.FOLLOW_LINKS), depth, finder); |
logger.info("FileWalker returned '"+finder.getCount()+"' hits. '" + finder.getTotal() + "' files have been scanned."); |
log.info("FileWalker returned '"+finder.getCount()+"' hits. '" + finder.getTotal() + "' files have been scanned."); |
List<Path> result = finder.getResult(); |
for(Path f : result) { |
if(! withDirectories) { |
151,7 → 150,7 |
list.add(new FileInfoType(f, baseuri)); |
} |
} catch (IOException e2) { |
logger.error(e2.getMessage(), e2);; |
log.error(e2.getMessage(), e2);; |
} |
} |
196,7 → 195,7 |
//In case we can not find the media type for some reason |
//the default assignment is taken, so we can |
//ignore this error. |
logger.debug(String.format("Could not probe media type for file '%s'. Default is '%s'", path.toString(), mime.getType()), e); |
log.debug(String.format("Could not probe media type for file '%s'. Default is '%s'", path.toString(), mime.getType()), e); |
} |
Response r = Response.ok(path.toFile(), mime).build(); |
String fileName = path.getFileName().toString(); |
204,7 → 203,7 |
return r; |
} catch (IOException e1) { |
// TODO Auto-generated catch block |
logger.error(e1.getMessage(), e1); |
log.error(e1.getMessage(), e1); |
return Response.serverError().build(); |
} |
} |
252,7 → 251,7 |
private boolean isPermitted(String dir) { |
if(! SecurityUtils.getSubject().isPermitted( new DirectoryPermission(dir))) { |
logger.warn(String.format("User '%s' does not have permission to access '%s'.",SecurityUtils.getSubject().getPrincipal(), dir )); |
log.warn(String.format("User '%s' does not have permission to access '%s'.",SecurityUtils.getSubject().getPrincipal(), dir )); |
throw new NotAuthorizedException(new UnauthorizedException("User does not have permission to access "+ dir)); |
} |
return true; |
/xservices/trunk/src/main/java/net/brutex/xservices/ws/rs/OpenAirInfoServiceImpl.java |
---|
8,13 → 8,12 |
import javax.ws.rs.core.HttpHeaders; |
import javax.ws.rs.core.Response; |
import lombok.extern.slf4j.Slf4j; |
import org.apache.commons.configuration2.PropertiesConfiguration; |
import org.apache.commons.configuration2.builder.fluent.Configurations; |
import org.apache.commons.configuration2.ex.ConfigurationException; |
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.mgmt.api.xml.Customer; |
import net.brutex.mgmt.api.xml.DateFilter; |
23,9 → 22,9 |
import net.brutex.mgmt.api.xml.StringEntity; |
import net.brutex.mgmt.openair.OpenAirRestConnection; |
@Slf4j |
public class OpenAirInfoServiceImpl implements OpenAirInfoService { |
static final Logger logger = LogManager.getLogger(); |
@Override |
public Response getCompanies(HttpHeaders paramHttpHeaders, String search) { |
59,7 → 58,7 |
final PropertiesConfiguration props; |
try { |
final String config = "../openair.properties"; |
logger.debug("Loading Open Air connection details from " + this.getClass().getClassLoader().getResource("/") |
log.debug("Loading Open Air connection details from '{}'.", this.getClass().getClassLoader().getResource("/") |
+ config); |
final URL configloc = this.getClass().getClassLoader().getResource(config); |
76,12 → 75,9 |
con = new OpenAirRestConnection(JCS.getInstance("FileCache"), company, user, password); |
return con; |
} catch (CacheException e) { |
logger.error(e); |
} catch (CacheException | ConfigurationException e) { |
log.error(e.getMessage()); |
e.printStackTrace(); |
} catch (ConfigurationException e) { |
logger.error(e); |
e.printStackTrace(); |
} finally { |
} |