Hi Robert

See my notes inlined:

> On Nov 22, 2017, at 1:25 AM, Robert Munteanu <romb...@apache.org> wrote:
> 
> Hi Andreas,
> 
> On Tue, 2017-11-21 at 15:42 -0800, Andreas Schaefer wrote:
>> Hi
>> 
>> Last and this year I am working on a IntelliJ Plugin to help develop
>> Sling / AEM
>> projects. Since the start I ran into issue with the Sling Tooling IDE
>> code base
>> as the code is geared towards Eclipse and its use of OSGi. Despite
>> several
>> tries to come up with a resolution to create a code base that would
>> work equally
>> all for IntelliJ and Eclipse there was not progress made towards a
>> solution.
> 
> Yes, I am aware of that :-( I still don't have a good answer on how to
> build AEM and IntelliJ plugins together. If you have examples or ideas
> how to do that I'd be happy to work towards that goal.
> 
> The idea would be simple: allow plain Maven artifacts to be consumed by
> both an IntelliJ Maven build and an Eclipse Maven build. This is
> currently complicated due to the Tycho/p2 implementation which requires
> p2 update sites over http.

There are a few things that I needs to be done:

1. Make common code like impl-vlt eclipse agnostic. If you want or need
an Activator / Logger then we can create an interface and then you wrap
this in an eclipse module.

2. Shared code that interacts with the IDE needs to be written in a way
that each plugin can extend or delegate it and the common code is left
in a non-eclipse module. IntelliJ right now uses a class that contains common
IDE code and its access to the remote server. Then IntelliJ plugin is
extending that class providing the integration with IntelliJ.

I would be willing to create the same wrapper for Eclipse if someone can
show where to find the necessary Eclipse code like IServer, IFile etc and 
the implementation of it. I tried to find it but could not find in a reasonable
amount of time.

> 
>> 
>> That said since then there are other issues that came up which make
>> developing
>> and using an Plugin difficult:
>> 
>> 1. There is no support for developing and deploying parts of a Sling
>> Content Bundle
>> as the only way to deploy content is building and deploying the
>> bundle.
> 
> What do you mean by Content Bundle? If you are talking about bundles
> using the content loader [1], then support is there for deployment.
> When a bundle is deployed, all output resources should be gathered in
> the output directory and the proper manifest generated. The only
> limitation I'm aware of is while working in debug mode [2].

Ok, I will take a Content Bundle and test that.

> 
> 
>> 2. IntelliJ (and I assume Eclipse) Plugin cannot import resources
>> from Sling / AEM
>> from a Sling Content Bundle
> 
> With the same understanding of content bundles, we only support content
> packages. That was the pattern we saw most used developing AEM and
> Sling apps, and that is the one we support right now.

If my content is stored in a SLING-INF folder can I import a resource
from Sling using the plugin?

> 
>> 
>> 3. IntelliJ and Sling (AFAIK) do not support OSGi bundle deployment
>> as part of a
>> JCR Package which can lead to problems with OSGi bundles in Sling
>> (not sure about
>> AEM). This is an general issue with embedded bundles when they are
>> deployed
>> both as embedded and standalone archive.
> 
> I'm curious, why would you want to deploy an OSGi bundle when working
> on a content package? I would rather configure them as bundle modules
> and allow deployment to work independently of content packages.
> 
> Is it only because the bundle is deployed by both the JCR installer and
> then also via the Web Console? If so, I'd like to hear some examples of
> what goes wrong, to see if we can fix them or work around them.

Having my bundles embedded inside a Content Package is to make sure
that both are in sync. For example if I updated my page (resource) as well
as the Sling Model it uses then I can deploy it together. 

I installed Eclipse Oxygen, the latest from Sling (Git) and started it. Then
I took a sling project that has a core (OSGi bundle) and an ui.apps that
has the core embedded but also contains resources. When I deploy this
manually (via Maven) then any updates to the core bundle will not be
taken effect in Sling until I deploy it again from Maven.

This is AFAIK due to the fact that the bundle from the package overrides
any deployments directly to the OSGi container and this is also a problem
if someone deploys the bundle manually or through bundle deployment
tool after a JCR package with that bundle is deployed.

A plugin should be able to deploy the bundle as part of the package
from within the plugin if embedded bundles are supported in Sling.

> 
>> 
>> 
>> This list makes me think that the Sling Tooling IDE module is not
>> actively developed
>> anymore. Please let me know what you plans are so we can adjust it on
>> our end.
> 
> The IDE tooling is actively developed, just not at the pace it used to
> be. Most 'core' features are there, and we're now mostly doing
> polishing, maintenance, and incremental fixes.
> 
> Hope that answers you questions.
> 
> Robert
> 
> [1]: https://sling.apache.org/documentation/bundles/content-loading-jcr
> -contentloader.html
> [2]: https://issues.apache.org/jira/browse/SLING-4091

Reply via email to