GSoC 2016 Work Submission As a part of the final evaluation, GSoC 2016 accepted students are required to provide a permanent link with details about the work done along with the documentation for that work. This post is for that content.
Here are the details about my GSoC 2016 project once again:
Title: Apache SYNCOPE-809
Apache Software Foundation
The SYNCOPE-809 feature request points out the lack of a plugin for IDEs to allow users to create and edit mail templates and report stylesheets in the IDE itself instead of doing so using their dashboard.
htmlhelpers package The following files are available in the htmlhelpers package
AssistInfo.java: Provides replace functionality for template content AttributeInfo.java: Identifies attribute for html tags AutoIndentAction.java: Provides logic for auto indentation of html code CSSBlockScanner.java: Provides logic for CSS block identification CSSRule.java: Provides logic for CSS code identification DocTypeRule.java: Provides logic for html doctype tag identification HTMLAutoEditStrategy.java: Provides logic for html content assist HTMLCompletionProcessor.java: Provides logic for html code auto-completion HTMLContextType.
HTML Editor Resource Bundle The HTML editor requires some properties which should be both available for the functionality of the editor and should be readily available for editing. This resource bundle is available at “syncope/ide/eclipse/bundles/org.apache.syncope.ide.eclipse.plugin/src/main/resources/HTMLEditor.properties” .
Note: While writing tests for the plugin using swtbot, the editors were unable to initialize because for some reason the HTMLEditor was unable to access the resource bundle while automated testing, whereas while manually working with the plugin, the editors work perfectly fine.
Editors The editor displays the content of the mail and report templates, but to display all the available formats of a template, the editor needs to be a multi-page editor. This is done by the TemplateEditor class which extends the MultiPageEditorPart class to allow multiple text editors to be displayed in a single view. The input to these pages is provided by the TemplateEditorInput class which accepts the title, type and content of the template from the SyncopeView class.
The tree viewer was almost complete by the last post. The only thing required to be added was a reset button for re-fetching the keys to allow the user to refresh the list. Simple enough, I added the same functionality used after login. I wanted to list a few things that might be worth mentioning to anyone looking at the SyncopeView.java file.
Details about SyncopeView.java There is an invisible root to ensure that the tree view consists of 2 visible roots, namely Mail Templates and Report Templates.
Progress Report The SYNCOPE-809 project is going as expected. There are new things that I now understand crystal clear (like maven) and there are things that I don’t yet understand very well (most of the source code of syncope). But here’s another update on the part of it that I have been assigned to build.
What has been done since? The Tree Viewer was built, but I still had to interface with the syncope deployment to fetch and send data to a user defined url.
Now, diving into the plugin development, the first step for the process was to create a tree view as suggested in the issues page of apache syncope. The aim of this view would be to allow the user to view the available mail and report templates so that he/she can interact with it and open it up in the editor. Here are the images of the suggested tree view and the one I built.
Google Summer of Code (GSOC) Apache Syncope An Open Source Identity Management System Ready for a new start? The community bonding period has ended and we have reached the most awaited Coding Period. Been waiting for this day since long and it is every bit as exciting as I imagined. Don’t yet know what I’m talking about? Well let me tell you! My proposal got accepted earlier and I am now a Google Summer of Code Student.
Google Summer of Code (GSOC) Apache Syncope An Open Source Identity Management System Introduction Apache syncope is an identity management system which essentially means that it allows enterprises to maintain information and credentials for their employees in an organized and efficient way. It is a real world solution for a pressing problem.
Apache Syncope is an Open Source system for managing digital identities in enterprise environments, implemented in Java EE technology and released under Apache 2.