JAXB provides a framework for two-way binding between XML and Java structures, making it easy for developers to serialize and deserialize their XML into Java objects.
Decorating a class with @XmlElement and @XmlAttribute annotations is all it usually takes to build a rich domain model from XML, but sometimes you get into a situation where more custom processing is required.
A custom XMLJavaTypeAdapter can help resolve these issues by providing custom methods for marshalling and unmarshalling the XML into the correct Java type.
Continue reading “Java: Using XMLAdapter to process custom datatypes using JAXB”
Syslog is a message logging standard has been around for decades, but has renewed popularity as a method of log capture with the advent of containerization and centralized logging solutions.
Enabling an Ubutu 14.04 or 16.04 host to act as a syslog server only takes a few simple steps.
Continue reading “Ubuntu: Enabling syslog on Ubuntu and custom templates”
It is very common to have Logstash create time-based indexes in ElasticSearch that fit the format, <indexName>-YYYY.MM.DD. This means events submitted with @timestamp for that day all go to the same index.
However, if you do not explicitly specify an index template that maps each field to a type, you can end up with unexpected query results. The reason is that without explicit mappings, the index (that is created fresh each day) uses its best judgement to assign field types based on the first event inserted.
In this article, I’ll show you how to create explicit custom index templates so that field types are uniform across your time-series indexes.
Continue reading “ELK: Custom template mappings to force field types”
Nginx is a powerful application level proxy server. Whether for troubleshooting or analysis, enabling log levels and custom formats for the access/error logs is a common requirement.
By default, only messages in the error category are logged. If you want to enable more details, then modify nginx.conf like:
error_log file [level]
Enabling debug level on Linux would usually look like:
error_log /var/log/nginx/error.log debug;
Access logs and their format are also customized in nginx.conf. By default, if no format is specified then the combined format is used.
access_log file [format]
Continue reading “Nginx: Custom access log format and error levels”
SaltStack grains are used for relatively static information such as operating system, IP address, and other system properties. They are also useful for targeting minions, for example whether a system is part of dev/test/prod, or a flag on whether it falls under LifeScience or HIPAA regulation.
In this article we will implement a custom grain that determines whether a host is part of development, test, or production environment based on a simplistic naming scheme. This custom grain will be written in Python.
Continue reading “SaltStack: Creating a Custom Grain using Python”
The concept of custom methods which run directly on the Java Method Server has proven an extremely useful extension point for Documentum developers and solutions architects. Whether used in a workflow activity to integrate with an enterprise message queue or as an action for Webtop users who need temporarily escalated privileges to apply legal retention, custom Java methods have become a key customization in most customer environments. Features include:
- Lightweight invocation of methods as compared to dmbasic and external Java methods that require execution
- DFC operations execute on the same host as the Content Server which minimizes the effects of network latency and throughput
- Can be configured to run as the repository owner which allows them elevated privileges to content when necessary
- Provide the logic for workflow auto-activities, able to utilize any Java library including the DFC
- Provide the logic for custom job/methods, again able to utilize the full power of Java and its libraries
Continue reading “EMC OnDemand: Best Practices for Custom Methods”