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

Reply via email to