Hi Nathiesha, How is the progress on converting project to a maven project? Please let us know if you face any issues.
BTW, [1] is a good article on osgi services with eclipse plugins. We can use them for further decoupling publishers and report generators. Thanks, [1] http://www.vogella.com/tutorials/OSGiServices/article.html On 29 Jul 2016 5:19 p.m., "Nathiesha Maddage" <[email protected]> wrote: > Hi Jasintha and Kavith, > > Here is the project plan for the upcoming 3/4 weeks. > > *July 30th-1st Aug* > > > - Add and configure pom.xml > - Use Maven tycho plugin > - Build project using Maven > > > > *2nd Aug-6th Aug* > > > - Write a REST web service to publish errors, deploy in tomcat and > testing. > - Add options for the current plugin project to use above web service > - Add current project classes and methods to be comply with above > changes > > > *7th Aug-11th Aug* > > > - Define an extension point of the plugin > - Add methods to get the registered plugins and their Project keys, > to maintain a map > - Add methods to group errors under their required plugins > - Change the publisher methods to create multiple issues in Jira > > > *12th Aug -15th Aug* > > > - Improve ErrorPublisher interfaces > - Write OSGI services for ErrorPublisher interfaces > > > > *16th Aug – 17th Aug* > > > - Create Feature Project using the plugin > > > * 18th Aug – 20th Aug* > > > - Refine the code > - Fix bugs > - Testing > > > *21st Aug – 22nd Aug* > > > - Documentation > > > Thanks and regards > > Nathiesha > > > On Fri, Jul 29, 2016 at 9:48 AM, Nathiesha Maddage < > [email protected]> wrote: > >> Hi all, >> >> Here are the minutes of the meeting I had yesterday (28/07/16) with >> Jasintha and Kavith. >> >> During the meeting the current project progress was discussed and >> suggestions were made to improve and finalize the development of the >> project. Listed below are the key points discussed during the meeting. >> >> 1. Instructions were given on how to add pom.xml, to change its >> fields to match with the project , to use Maven tycho plugin and to build >> the project using maven. >> >> 2. Suggestions were made on creating and improving interfaces like >> ErrorPublisher and ReportGenerator, and how to call the publish method of >> all the registered publishers using an iterator in the main controller >> class. >> >> 3. We planned to add another option for the user, where he does >> not have any gmail and jira credentials, but a remote server would take >> care of publishing the error using a common general account. For that I was >> asked to write a REST web service that would handle this procedure, and to >> deploy it in tomcat for testing. Possibility of using micro services for >> this was also discussed. >> >> 4. We planned to add multiple project keys for the jira create >> issue option where required, and to assign the project key based on the >> plugin that is responsible for the error. For that purpose, it was >> suggested to create an extension point of the project, so other plugins can >> extend it and define their own project key. Using this all the plugins that >> have extended the error reporter plugin and their respective project keys >> can be fetched, and a map can be maintained, to be used during the error >> reporting process. >> >> 5. To expose the Publisher classes, OSGI services will be >> introduced to the project. >> >> 6. It was suggested to create a feature by adding this plugin. >> >> >> Furthermore instructions were given on the documentation required for the >> project, and time frame for documentation was suggested. And I was asked to >> send a project plan for the upcoming 3 weeks. >> >> >> Thanks and regards >> >> Nathiesha >> >> >> On Tue, Jul 26, 2016 at 7:39 AM, Nathiesha Maddage < >> [email protected]> wrote: >> >>> Hi Kavith, >>> >>> I accepted the invitation. >>> >>> Thanks and regards >>> Nathiesha >>> >>> On Mon, Jul 25, 2016 at 8:42 PM, Kavith Lokuhewage <[email protected]> >>> wrote: >>> >>>> Hi Nathiesha, >>>> >>>> I have sent the invitation for the meeting at 2pm-3pm on 28/07/2016 [1]. >>>> >>>> Thanks, >>>> >>>> [1] https://goo.gl/PLEWQd >>>> >>>> >>>> *Kavith Lokuhewage* >>>> Senior Software Engineer >>>> WSO2 Inc. - http://wso2.com >>>> lean . enterprise . middleware >>>> Mobile - +94779145123 >>>> Linkedin <http://www.linkedin.com/pub/kavith-lokuhewage/49/473/419> >>>> Twitter <https://twitter.com/KavithThiranga> >>>> >>>> On Mon, Jul 25, 2016 at 8:13 PM, Nathiesha Maddage < >>>> [email protected]> wrote: >>>> >>>>> Hi Kavith, >>>>> >>>>> How about Thursday evening, for the meeting? I am free after 1 pm. >>>>> >>>>> Thank you for the examples. I was going to refactor the code by >>>>> introducing the interfaces as you suggested during the mid evaluation. But >>>>> I was not sure how to do that. I will try to change the code as given in >>>>> the examples before the next meeting. >>>>> >>>>> I think it is good to start converting the project to a maven project >>>>> as only a few weeks remaining to finalize the project. We can discuss >>>>> about >>>>> that during the meeting. >>>>> >>>>> Thanks and regards >>>>> >>>>> Nathiesha >>>>> >>>>> On Mon, Jul 25, 2016 at 3:10 PM, Kavith Lokuhewage <[email protected]> >>>>> wrote: >>>>> >>>>>> Hi Nathiesha, >>>>>> >>>>>> I noticed that there are some more pending tasks to restructure the >>>>>> code base as per the discussion we had during last code review. Just >>>>>> putting them down here again, so that you are able to go through again >>>>>> and >>>>>> complete any missing parts. >>>>>> >>>>>> *Introduce interfaces for the each sub component to decouple main >>>>>> controller logic from implementation specific things* >>>>>> >>>>>> For example, right now, the controller class (ErrorReporter) is >>>>>> hardly coupled with EmailSender and RemoteJiraConnector. We can think >>>>>> latter two as error report publishers and introduce an interface called >>>>>> ErrorPublisher as below. >>>>>> >>>>>> public interface ErrorPublisher{ >>>>>> void publish(ReportGenerator reportGen) throws IOException; >>>>>> } >>>>>> >>>>>> And then EmailSender and RemoreJiraConnector classes can be >>>>>> refactored like below. >>>>>> >>>>>> public class EmailPublisher implements ErrorPublisher{ >>>>>> >>>>>> void init () throws IOException{ >>>>>> //init : read preferences for SMTP connection params >>>>>> } >>>>>> >>>>>> // implement publish method >>>>>> void publish(ReportGenerator reportGen) throws IOException{ >>>>>> init(); >>>>>> //send mail >>>>>> } >>>>>> } >>>>>> >>>>>> public class JiraPublisher implements ErrorPublisher{ >>>>>> >>>>>> void init () throws IOException{ >>>>>> //init : read preferences for JIRA resp API connection >>>>>> params >>>>>> } >>>>>> >>>>>> // implement publish method >>>>>> void publish(ReportGenerator reportGen) throws IOException{ >>>>>> init(); >>>>>> //post to JIRA api and create issue >>>>>> } >>>>>> } >>>>>> >>>>>> Finally refactor ErrorReporter class to use only ErrorPublisher >>>>>> interface. Further more, introduce methods to bind/unbind error >>>>>> publishers. >>>>>> >>>>>> public class ErrorReporter { >>>>>> Map<String, ErrorPublisher> registeredPublishers; >>>>>> >>>>>> public void addPublisher (String id, ErrorPublisher publisher){ >>>>>> registeredPublishers.put(id,publisher); >>>>>> } >>>>>> >>>>>> public void reportError(){ >>>>>> //iterate over all publishers >>>>>> // and call publish() method >>>>>> } >>>>>> } >>>>>> >>>>>> (We can further ErrorReporter class by using OSGI services to let >>>>>> other devstudio plugins to contribute publishers as needed - we can do >>>>>> that >>>>>> later as time permits) >>>>>> >>>>>> For another example, currently you have used a class >>>>>> called ReportGenerator to generate the report in plain text and directly >>>>>> used that generator inside main controller. Instead, you can introduce an >>>>>> interface called ReportGenerator and create a class called >>>>>> TextReportGenerator and move the code there - and decouple main >>>>>> controller >>>>>> and let other people add report generators later (say an HTML report >>>>>> generator) as needed. It can be done in same manner as above example I >>>>>> have >>>>>> provided . >>>>>> >>>>>> Once you do above restructuring, we can further improve the code to >>>>>> use OSGI services to decouple these components even further. >>>>>> >>>>>> Finally, I think it is time for us to convert the project to a maven >>>>>> project and use tycho maven plugins for building it. I can assist you >>>>>> with >>>>>> this task - let's discuss this furthermore during the call. The main >>>>>> requirement here is to make this project directly mergable to developer >>>>>> studio repository. Since we are now reaching to the final weeks of GSOC >>>>>> coding period, I think we should concentrate a little more on this task. >>>>>> >>>>>> Please a suggest a time for the meeting so we are able to discuss >>>>>> these in-detail. >>>>>> >>>>>> Thanks, >>>>>> >>>>>> *Kavith Lokuhewage* >>>>>> Senior Software Engineer >>>>>> WSO2 Inc. - http://wso2.com >>>>>> lean . enterprise . middleware >>>>>> Mobile - +94779145123 >>>>>> Linkedin <http://www.linkedin.com/pub/kavith-lokuhewage/49/473/419> >>>>>> Twitter <https://twitter.com/KavithThiranga> >>>>>> >>>>>> On Mon, Jul 25, 2016 at 2:11 PM, Kavith Lokuhewage <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> Hi Nathiesha, >>>>>>> >>>>>>> There were some changes done to preference API since Eclipse Mars. I >>>>>>> suspect that the root cause for the issue should be it. I will go >>>>>>> through >>>>>>> the changes we did in Developer Studio to fix issues with new pref API >>>>>>> and >>>>>>> confirm you whether it is the root cause or not. >>>>>>> >>>>>>> Meanwhile, please suggest a time for another meeting this week - >>>>>>> probably on Thursday or Friday. We will go through the complete >>>>>>> implementation to verify that everything is in order. >>>>>>> I went through the code and have some comments too. I will put them >>>>>>> in github it self. >>>>>>> >>>>>>> Thanks, >>>>>>> >>>>>>> *Kavith Lokuhewage* >>>>>>> Senior Software Engineer >>>>>>> WSO2 Inc. - http://wso2.com >>>>>>> lean . enterprise . middleware >>>>>>> Mobile - +94779145123 >>>>>>> Linkedin <http://www.linkedin.com/pub/kavith-lokuhewage/49/473/419> >>>>>>> Twitter <https://twitter.com/KavithThiranga> >>>>>>> >>>>>>> On Wed, Jul 20, 2016 at 10:20 AM, Nathiesha Maddage < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> Hi all, >>>>>>>> >>>>>>>> I started unit testing with InfoCollector and Startup Classes, and >>>>>>>> created a few unit tests using JUnit. >>>>>>>> >>>>>>>> Regarding the progress of the project, I am currently working on >>>>>>>> the ReportArchive module. The ReportArchive module currently displays >>>>>>>> all >>>>>>>> the sent error reports to the user in a window, and I am working on >>>>>>>> adding >>>>>>>> a context menu option for each error report to inquire the current >>>>>>>> status >>>>>>>> of the issue. >>>>>>>> >>>>>>>> Regarding the Preference page, I tried creating a Input Dialog, >>>>>>>> that would open up for the very first time the plugin reports an >>>>>>>> error to >>>>>>>> the user. This dialog would ask the user to fill values to compulsory >>>>>>>> fields like Jira Username and Password, and it would store these >>>>>>>> values in >>>>>>>> the preference page as well, for future use. >>>>>>>> >>>>>>>> I tried to save the user entered values in Input dialog, to the >>>>>>>> preference page >>>>>>>> using Activator.getDefault().getPreferenceStore().setValue() method. >>>>>>>> This >>>>>>>> method would set the user entered values in respective fields of the >>>>>>>> preference page, but that is just temporary. These values disappear >>>>>>>> from >>>>>>>> the preference page the next time I run it. Only the default set >>>>>>>> values by >>>>>>>> the code and the values that I enter in the preference page there >>>>>>>> itself >>>>>>>> would retain permanently. I tried to fix this for a couple of days and >>>>>>>> tried almost every solution I could find in the internet regarding >>>>>>>> this. >>>>>>>> >>>>>>>> Have you encountered a situation like this where you have to set >>>>>>>> the values in preference page through code? Any idea whether this is >>>>>>>> possible and if so how to do it would be of big help! >>>>>>>> >>>>>>>> Best regards >>>>>>>> >>>>>>>> Nathiesha >>>>>>>> >>>>>>>> >>>>>>>> On Thu, Jul 7, 2016 at 6:31 AM, Nathiesha Maddage < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> Hi all, >>>>>>>>> >>>>>>>>> Regarding the current status of the project, I am working on the >>>>>>>>> development of the report Archive module, where the user can view the >>>>>>>>> previously sent error reports and also the current status of those >>>>>>>>> issues. >>>>>>>>> Meanwhile I thought to look into the testing part of the project as >>>>>>>>> well. >>>>>>>>> Is their any special testing framework used in Developer Studio >>>>>>>>> testing, >>>>>>>>> that I need to adopt? I though to use JUnit. Is it OK? >>>>>>>>> >>>>>>>>> Regards >>>>>>>>> >>>>>>>>> Nathiesha >>>>>>>>> >>>>>>>>> On Tue, Jun 28, 2016 at 9:34 AM, Nathiesha Maddage < >>>>>>>>> [email protected]> wrote: >>>>>>>>> >>>>>>>>>> Hi all, >>>>>>>>>> >>>>>>>>>> I downloaded and tried running the Data Analytics Server . >>>>>>>>>> Currently I am going through the DAS documentation and the REST API. >>>>>>>>>> Is it >>>>>>>>>> possible to post data using the REST API? As I noticed, it only >>>>>>>>>> allows to >>>>>>>>>> retrieve data from the DAS. >>>>>>>>>> >>>>>>>>>> Thanks and regards >>>>>>>>>> >>>>>>>>>> Nathiesha >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> >
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
