Posts

Showing posts from September, 2019

Get Global Properties

private Properties properties;     /**      *      * @method setProperties      * @param properties      */     public void setProperty(Properties properties)     {       logger.debug("setting properties");       this.properties = properties;     }     public String getGlobalProp(String propName)     {       logger.debug("getting properties");       return this.properties.getProperty(propName);     } ====================== Properties properties; public Map<String, Object> executeImpl(WebScriptRequest request, Status status) { String alf_dir =  properties.getProperty("dir.root"); } public Properties getProperties() { return properties; } public void setProperties(Properties properties) { this.properties = properties; } ======================================== import java.util.ResourceBundle; public final class CommonConstants { private CommonConstants() { // private construc

Alfresco log4j.properties and log after conversion JSON Log

# Set root logger level to error log4j.rootLogger=info, Console, File ###### Console appender definition ####### # All outputs currently set to be a ConsoleAppender. log4j.appender.Console=org.apache.log4j.ConsoleAppender #log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout=com.demo.logger.layout.json.SplunkJsonLayout # use log4j NDC to replace %x with tenant domain / username log4j.appender.Console.layout.ConversionPattern=%d{ISO8601} %x %-5p [%c{3}] [%t] %m%n #log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE} %-5p [%c] %m%n ###### File appender definition ####### log4j.appender.File=org.apache.log4j.DailyRollingFileAppender log4j.appender.File.File=alfresco.log log4j.appender.File.Append=true log4j.appender.File.DatePattern='.'yyyy-MM-dd #log4j.appender.File.layout=org.apache.log4j.PatternLayout log4j.appender.File.layout=com.demo.logger.layout.json.SplunkJsonLayout log4j.appender.File.layout.Conversion

Write logs in JSON format using jackson

import java.util.Collections; import java.util.Date; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import org.apache.log4j.Layout; import org.apache.log4j.Level; import org.apache.log4j.spi.LoggingEvent; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.demo.logger.model.MyModel; public class SplunkJsonLayout extends Layout { private final Gson gson = new GsonBuilder().create();     private final String hostname = getHostname().toLowerCase();     private final String username = System.getProperty("user.name").toLowerCase();       private Level minimumLevelForSlowLogging = Level.ALL;     private List<String> mdcFieldsToLog = Collections.emptyList();     @Override public void activateOptions() { // TODO Auto-generated method stub

Alfresco basic authentication

@Component public class RestTemplateFactory implements FactoryBean<RestTemplate>, InitializingBean {     private RestTemplate restTemplate;     public RestTemplateFactory() {         super();     }     // API     @Override     public RestTemplate getObject() {         return restTemplate;     }     @Override     public Class<RestTemplate> getObjectType() {         return RestTemplate.class;     }     @Override     public boolean isSingleton() {         return true;     }     @Override     public void afterPropertiesSet() {         HttpHost host = new HttpHost("localhost", 8080, "http");         final ClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactoryBasicAuth(host);         restTemplate = new RestTemplate(requestFactory);         restTemplate.getInterceptors().add(new BasicAuthenticationInterceptor("admin", "admin"));     } } -----------------------------------------

Write log in Json format using log4j

import java.io.File; import java.io.IOException; import java.net.InetAddress; import java.net.UnknownHostException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.Enumeration; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.TimeZone; import java.util.regex.Pattern; import org.apache.log4j.Appender; import org.apache.log4j.Category; import org.apache.log4j.FileAppender; import org.apache.log4j.Layout; import org.apache.log4j.helpers.LogLog; import org.apache.log4j.spi.AppenderAttachable; import org.apache.log4j.spi.LoggingEvent; import org.apache.log4j.spi.ThrowableInformation; public class JsonLayout extends Layout { private static final Pattern SEP_PATTERN = Pattern.compile("(?:\\p{Space}*?[,;]\\p{Space}*)+");     private static final Pattern PAIR_SEP_PATTERN = Pattern.compile("(?:\\p{Space}*?[:=]\\p{Space}*)+"

Use alfresco webscript from third party

public class HelperUtil { private static final Log LOGGER = LogFactoryUtil.getLog(HelperUtil.class); //Private Default Constructor private HelperUtil(){ } public static String getWebScriptURL(String webscriptname) throws UnsupportedEncodingException{ String url = null; String server = PropsUtil.get("alfresco.webscript.url"); String port = PropsUtil.get("alfresco.webscript.port"); String protocol =PropsUtil.get("alfresco.webscript.protocol"); String service = PropsUtil.get("alfresco.webscript.service"); String fS = StringPool.FORWARD_SLASH; String cl = StringPool.COLON; if(Validator.isNotNull(port)) { url = protocol+cl+fS+fS+server+cl+port+fS+"alfresco"+fS+service+fS+webscriptname; }else { url = protocol+cl+fS+fS+server+fS+"alfresco"+fS+service+fS+webscriptname; } return url; } public static String executeWebscript(String requestBody, String webscript

Sample java webscript for search

public class SampleWebscrip extends DeclarativeWebScript   { private NodeService nodeService; private NamespaceService namespaceService; private SearchService searchService; private FileFolderService fileFolderService;   protected Map<String, Object> executeImpl(WebScriptRequest req, Status status, Cache cache)   { String luceneRequest = "ASPECT:\"cm: testAspect \""; ResultSet rs = null; try {             logger.debug("Query for existing cm:referencing."); rs = searchService.query(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE, SearchService.LANGUAGE_FTS_ALFRESCO, luceneRequest);             logger.debug("Processing query results"); for (ResultSetRow r : rs) { NodeRef nRef = null; try { nRef = r.getNodeRef(); String nodenamespace = nodeService.getType(nRef).getNamespaceURI(); } Map<String, Object> model = new HashMap<String, Object>(); model.put("success", “anymessage”); r

Get Audit Data using java webscript

1. Create file at location: /config/alfresco/extension/templates/webscripts/org/alfresco/record.get.desc.xml <webscript>   <shortname>Audit Data Scripts</shortname>   <description>Record Audit Information</description>   <url>/api/test/extensions/record/{store_type}/{store_id}/{id}/{userName}/{action}/{site}</url>   <authentication>user</authentication>   <format default="">argument</format> </webscript> 2. Create entry at location to call the webscript: /source/web/components/test/demo.js // Setup the URL to call for a GET web script that will record this action var uri = YAHOO.lang.substitute(Alfresco.constants.PROXY_URI + "api/test/extensions/record/{store_type}/{store_id}/{id}/{userName}/{action}/{site}", { store_type: store, store_id: store_type, site: site, id: nodeid, userName: user, action: actionName });     //Send the request to record the ac