Opening our Libraries on GitHub
All of us software developers have been using open-source software for many years now. Some of the notable ones (for the Java guys) being:
- Apache open-source libraries
- Apache HTTPD
- MySQL DB
- Spring framework
- And many more.. !
Over the last 4+ years, we at Increff have built a repository of libraries to ease up software development. Slowly it became a dream at Increff to contribute back to the open-source community. We are pleased to announce that we are open-sourcing all our internal libraries on GitHub. https://github.com/increff
Here is a brief description of what all these libraries do:
OAuth allows providing the authorization required by an Application (the Client) to access some Resource on a Resource Server, on behalf of the Resource Owner. The commons-oauth2 library allows access authorization based on the OAuth 2.0 model. Specifically, using commons-oauth2, Google OAuth2.0 integration can be established in web applications.
The standard Java libraries fail to provide enough methods for the manipulation of its core classes. commons-lang provides some of these needed extra methods through a host of helper utilities for dealing with constructs like Collections, Date-Time formats, and Files among other things.
commons-sheet2 is a library for providing a structured way to perform file read and write operations. It is primarily used within Increff’s IMDB library.
Commons-quartz is a library for providing a background job scheduling framework in different timezones using cron-based triggers.
commons-printing provides methods to deal with printers and printing tasks. It allows the identification of available printers as well the processing of printing jobs on the printers. Using commons-printing you can fetch a list of all available printing services, select a printing service by name and print a document using a specific printer.
commons-mysql contains a collection of classes and methods that allow interaction with a MySQL database. Various methods are available for performing operations on the database such as creating and dropping databases, pushing or pulling data to and from the DB, truncating or deleting from tables, etc.
commons-logging provides a custom log4j appender to manage log files. To avoid logs from eating up server disk space and systematically organize the logs, commons-logging provides Log4j appenders that name and manage logs created by running applications. Logfile management can be managed through parameters like max file size and max disk usage.
commons-Gmail library is created keeping in mind instances where we might need to consume a file that comes in the mail. With the methods available in this library, you can read the next or all emails from a given address or mark an email as read /unread.
The commons-gelf library is useful for logging HTTP requests and responses using the GELF protocol to Graylog and to ELK for monitoring. It is extensively used in SaaS-based applications, especially in Increff’s Assure integrations as it provides a structured way to log JSON format messages.
The commons-ftp library offers functionalities to perform various operations on remote FTPs such as retrieval of a file or a directory, moving files between directories, and deletion and upload of files. It finds usage in Increff Assure’s integrations to interact with client ERP systems.
commons-diff library can be used to compare two directories or files. commons-diff can be used to compare just the set of filenames in the two directories or, for files with the same names in the two directories, it can compare the files line-by-line.
commons-browser is a library used for Browser automation and web scraping using the Selenium library. Using commons-browser, many of the browser tasks, such as navigating to a page, filling forms, clicking on items, etc. can be automated. It can thus be used for automation testing. To allow the interaction with a browser, Selenium requires a Web Driver. commons-browser makes use of ChromeDriver to simulate a real browser.
The commons-template library provides templates for various applications such as invoices, manifests, etc in PDF formats. It is extensively used in Assure. It makes use of the Apache Velocity and wkhtmltopdf libraries for creating templates and formats. It provides methods that take as input the parameters to be populated in the PDF along with the .io.vm template resource files. After this, it can generate a PDF output based on the provided template + parameters.
This library is used for storage and retrieval of documents from cloud storage platforms such as Google Cloud Storage, Amazon S3, etc. An abstract class contains the methods to create, read, delete and write objects from any of the mentioned storage locations.