Hi Ed, 
     
    At least we have got an agreement, the current impact analyzer
    should be promoted to org.eclipse.ocl.ecore :) 
     
    I've always seen the OCL Tools components as those UI-based
    components which rely on a OCL Core infrastructure, as they were
    thought and we had been developed in the currently terminated OCL
    Tools project. Whereas the OCL Core components could sensibly work
    in stand-alone mode, the Tools components could probably need some
    Eclipse UI platform to run. Remember the namespace used to distinct
    bundles between the "MDT/UML" project and the "MDT/UML Tools" one. 
     
    On the one hand, distinguishing Tools components with a prefix does
    quite sense to me. Looking at a Juno installation, excepting the
    "org.eclipse.e4.emf.xpath" bundle, every bundle of the "new" e4
    project are categorized in a "core" / "ui" fashion. On the other
    hand, projects like EMF have its UI components categorized in the
    respective feature as you suggests. 
     
    I prefer the "core/tools" prefixes since it clearly distinguish core
    from UI-based components, apart from the benefits I mentioned in my
    previous post. Perhaps "ui" sounds better for you. Perhaps we could
    not introduce the "core" prefix, but at least use "tools/ui" one. 
     
    Finally I would like to better understand the/understand more
    inconvenients of my proposal. Your first argument doesn't suffice to
    me: we would be suffering of the same issue if we had had to deal
    with a separate OCL Tools project, and the Eclipse "Working Sets"
    help to organize the bundles in the workspace (for instance to group
    bundles concerning the same feature/tool, regardless its namespace). 
     
    Regards, 
    Adolfo. 
    El 04/02/2012 11:59, Ed Willink escribió:
    
      
      Hi Adolfo 
       
      Thanks, it's much easier to move forward once you have a stake in
      the ground. 
       
      Uniform core/tools prefixes seems attractive but, to avoid
      confusion from existing facilities, consider what would happen if
      we added a new symbolic proof tool. 
       
      With uniform core/tools prefixes we might have: 
       
      core.proof 
      core.doc.proof 
      core.examples.proof 
      core.tests.proof 
      tools.proof.compiler 
      tools.proof.editor 
      tools.doc.proof.editor 
      tools.examples.proof.editor 
      tools.tests.proof.editor 
         
      whereas if we group by tool rather than delivery we might have 
       
      proof.runtime 
      proof.compiler 
      proof.editor 
      proof.examples 
      proof.tests 
      proof.doc 
       
      If we need to use examples as an incubation area, during the
      examples phase we have no problem with 
       
      examples.proof.* 
       
      But if we find we need three categories of build rather than two,
      using the build category as a package prefix is unhelpful. 
       
      Also, I'm not sure that users want to have core/tools as part of
      their imported package path. 
       
      For tools at least I think we need a clear tool name as the first
      name. Subsequent names we can try to make regular to so that
      *.doc.*, *.tests.*, *.examples.*, *.runtime.* makes releng
      partitioning fairly easy. 
       
      For the current plugins "ecore" and "uml" can be regarded as tool
      names, so "ecore.tests" and "uml.tests" are regular names. 
       
      For the Impact Analyzer then "impact" is short and snappy, so
      perhaps we want "impact.ecore.runtime", "impact.ecore.analyzer",
      "impact.common.analyzer", "impact.tests", "impact.examples",
      "impact.doc" 
       
      For the Console, I would look towards http://wiki.eclipse.org/MDT/OCL/Debugger
      and so we might be looking at "debugger.input",
      "debugger.variables", "debugger.breakpoints", ... once we
      eventually promote from examples. 
       
      For the Xtext editors, "editor..." is probably ok, unless we want
      to split as "parser" and "editor". We can decide this later. 
       
      The Pivot model seem the hardest bit, because there is the neutral
      domain model. Perhaps "vm.runtime", "vm.model", "vm.library" so
      that "pivot" is left with a fairly similar purpose to "ecore" and
      "uml". 
       
      So we have the following top level 'tools': 
      common (may not reference any other 'tool') 
      ecore 
      uml 
      pivot 
      vm 
      impact 
      parser 
      editor 
      debugger 
      codegen 
       
      and the only plugins that do not comply are org.eclipse.ocl and
      org.eclipse.ocl.tests 
       
      Tool-specific facilities are in ...tests..., ...examples...,
      ...doc.... Cross-tool integration is in tests..., examples...,
      doc... 
       
      The above is for plugin/package names.  
       
      I think Core/Tool prefixes would be good for feature names since
      if we need to have three deliveries we probably need to re-arrange
      features anyway. 
       
          Regards 
       
              Ed 
       
      On 03/02/2012 16:15, Adolfo Sánchez-Barbudo Herrera wrote:
      
        
        Hi Ed, 
         
        Today is quite easy to identify OCL Tools components, that is: 
         
        org.eclipse.ocl.examples.* 
         
        The problems come when identifying Core components, unless we
        consider Core everything is not o.e.o.examples.* (However, this
        doesn't help from the point of view of the regular expressions
        which are used, anyway). 
         
        From a releng (and any user) perspective it would be quite easy
        identify components if we had: 
         
        - org.eclipse.ocl.core.*  for Core components. 
        - org.eclipse.ocl.tools.* for Tools components. 
         
        This distinction could help, if we desired to have
        documentation, examples and tests for both Core and Tools
        components: 
         
        - org.eclipse.ocl.core.doc for Core API usage 
        documentation/help. 
        - org.eclipse.ocl.core.examples.* for Core API usage examples. 
        - org.eclipse.ocl.core.tests.* for Core API tests. 
        - org.eclipse.ocl.tools.doc for Tools documentation/help. 
        - org.eclipse.ocl.tools.examples.* for Tools examples. 
        - org.eclipse.ocl.tools.tests.* for (probably UI-based) tests. 
         
        This namespace could also help to identify the future components
        of the project. Everything not scoped in
        org.eclipse.ocl.core/tools should probably be deprecated and
        eventually deleted in future releases. I imagine something like
        the following: 
          
        org.eclipse.ocl                                       ->
        mature, deprecated code 
        org.eclipse.ocl.uml                               -> mature,
        deprecated code 
        org.eclipse.ocl.ecore                            -> mature,
        deprecated code 
        org.eclipse.ocl.ecore.impactanalysis[1]  -> impact analysis
        for the mature deprecated code 
        org.eclipse.ocl.core.pivot                          -> new
        pivot implementation 
        org.eclipse.ocl.core.essentialocl               -> new
        pivot-based Essential OCL Implementation 
        org.eclipse.ocl.core.completeocl              -> new
        pivot-based Complete OCL Implementation 
        org.eclipse.ocl.core.impactanalysis         -> impact
        analysis for the new pivot-based implementation 
        org.eclipse.ocl.core.doc                             ->
        documentation for the Core API usage 
        org.eclipse.ocl.core.examples.*                -> Examples
        for Core API usage. 
        org.eclipse.ocl.core.tests.*                        -> tests
        for Core API. 
        org.eclipse.ocl.tools.console                     -> OCL
        Console. 
        org.eclipse.ocl.tools.editor.essentialocl   -> Editor for
        Essential OCL  
        org.eclipse.ocl.tools.editor.completeocl  -> Editor for
        Complete OCL 
        org.eclipse.ocl.tools.doc                            ->
        documentation/help for Tools. 
        org.eclipse.ocl.tools.examples.*               -> examples
        for Tools. 
        org.eclipse.ocl.tools.tests.*                       ->
        (probably UI-based) tests for Tools. 
         
        ... and such [2]. 
         
        Again, this is a suggestion, which could make sense since we are
        now distinguising and exposing different Core and Tools
        components. It's not a necessity at all. 
         
        Adding a new/good features organization, we could finally
        distribute Core components in a pure Core Repository, and the
        Tools components in a pure Tools Repository. We could also
        distribute the current (deprecated and removed in the future)
        Core components in a "Deprecated Repository". 
         
        Nowadays, because of the current feature organization, the Core
        Repository contains only Core Components, however, the Tools
        repository contains both Core and Tools components.  
         
        Note: [1] Just to name the impact analyzer. This obviously could
        be organized as Axel requires/expects. 
        Note: [2] I know that I'm missing a lot of plugins, but I hope
        the idea is caught. 
         
        Best Regards, 
        Adolfo. 
         
        El 03/02/2012 14:18, Ed Willink escribió:
        
          
          Hi Adolfo 
           
          Would you like to put together a proposal for revised feature
          and plugin names and hierarchy, since your releng perspective
          gives you slightly different interests? 4.0.0 is a major
          version so we can totally reorganize if absolutely necessary -
          I hope not. 
           
          From a modeling perspective, a Feature contain Features or
          Plugins so a simple indented list is sufficient to identify
          the intended location of all plugins and features and Update
          Site Names. 
           
          feature X (Descriptive Name for X) 
             plugin Y 
             feature Z (Descriptive Name for Z) 
                plugin A  
           
          For the sake of future proofing, assign names as if all
          plugins are promoted from examples now; we'll just defer
          renaming examples plugins until they are actually promoted.  
           
                  Regards 
           
                      Ed 
           
          On 03/02/2012 13:58, Adolfo Sánchez-Barbudo Herrera wrote:
          
            
            Finally, I would like to remark (I've not thought about it)
            the importance of the new namespace from the point of view
            of another stakeholder: The releng :). It could be
            interesting to avoid problems like [1] or further changes in
            the releng stuff configuration to accomodate new plugins,
            having a "coherent" or "uniform" namespace to distinguish
            Core components from the Tools one. 
             
            [1] https://bugs.eclipse.org/bugs/show_bug.cgi?id=370347#c1 
             
            El 03/02/2012 12:03, Ed Willink escribió:
            
              
              plugin and other global names 
              These obviously change. The simplest change is just delete
              ".examples". Do we want to do something else? 
              It would be nice if the event plugins went to EMF, but
              that doesn't look likely, so they too need review. 
              It would be nice to have names that can accommodate the
              pivot model sometime. I would like to try to partition the
              code into the run-time code that performs (re-)evaluation
              and the meta-run-time code that maintains the control
              objects that make IA so good. If this is possible, then we
              want corresponding names. Perhaps 
                org.eclipse.ocl.ecore.impact.runtime 
                org.eclipse.ocl.ecore.impact.analyzer 
              I hope that migration of the run-time code to align with
              the code generated Java can be done quite easily, since
              the code generated Java makes no use of any form of the
              OCL meta-model; just the polymorphic Values and
              polymorphic Domain model for which there is direct and
              Reflective Ecore support. Perhaps 
                org.eclipse.ocl.domain.impact.runtime 
              Migration of the meta-run-time code will be harder because
              that obviously makes use of the OCL meta-model. Perhaps 
                org.eclipse.ocl.pivot.impact.analyzer 
              In order to avoid code duplication, code that is
              independent of Ecore/UML/Pivot should be in perhaps 
                org.eclipse.ocl.common.impact 
              It may also be appropriate to place some declarations
              independent of Ecore/UML/Pivot such as extension points in 
                org.eclipse.ocl.common 
              We cannot easily use org.eclipse.ocl since that is highly
              Ecore/UML dependent. 
              NB being independent of Ecore does not prohibit use of
              EObject, EObject.eClass() etc. I hope that the external
              API facade can be Ecore/UML/Pivot independent and so in
              org.eclipse.ocl.common.impact. 
             
           
           
           
          
           
          _______________________________________________
mdt-ocl.dev mailing list
mdt-ocl.dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/mdt-ocl.dev
 
         
         
        
         
        
         
        _______________________________________________
mdt-ocl.dev mailing list
mdt-ocl.dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/mdt-ocl.dev
 
         
        
         
        No virus
          found in this message. 
          Checked by AVG - www.avg.com 
          Version: 2012.0.1913 / Virus Database: 2112/4781 - Release
          Date: 02/02/12 
       
       
       
      
       
      _______________________________________________
mdt-ocl.dev mailing list
mdt-ocl.dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/mdt-ocl.dev
 
     
     
    
  
 |