zulus / extjs-eclipse

Eclipse plugin for extjs developing
11 stars 4 forks source link

build environment/ library support #15

Closed mepeisen closed 10 years ago

mepeisen commented 10 years ago

Support for build Environments and extjs libraries. Similar to Java (intstalled jre section). helps adding the extjs SDK and even distribute it via plugins. before distributing the gpled Versions of extjs we need to review the licenses (epl may be incompatible to gpl).

zulus commented 10 years ago

I can confirm that GPL is not compatible with EPL. But, we can create download / selection wizard ;)

mepeisen commented 10 years ago

Similar to Subversion plugin or similar to m2e connectors :-)

mepeisen commented 10 years ago

I commited the core extensions. There is now a LibraryManager. It manages extjs environments (the extjs sdk that can be downloaded from sencha homepage) and additional extjs libraries. One can use the core environments (built in from available facet versions) and later on the sdk distributed by additional plugins or create new libraries. You can see the include path container as soon as you install a new facet version. It will always choose the default environment as soon as you switch.

I will now merge the UI and build the "extjs core sdk repository" (or however we call it).

And of course we will need some unit tests :-)

mepeisen commented 10 years ago

The extjs preferences pages are now commited. They do not commit changes at the moment. Please Review :-)

First there is the "etxjs execution environment". Go to windows->Preference->ExtJS->ExtJS build Environment.

Changes in extjs: The build is now active. It tries to detect the environment and prints out if something is missing or if libraries are not compatible. The extjs files are not yet present in the include path container and index but this is one of the next tasks.

zulus commented 10 years ago

Nice ;) This view should also support Sencha Touch (same class system).

I'm afraid that with current JSDT performance, using zip's may be wrong idea :P

mepeisen commented 10 years ago

ok, I will have a look at sencha touch sdk. Don't know the performance yet. Hopefully it only needs to index the sources once becaus the URLs and file date do not change. But we will see.

mepeisen commented 10 years ago

OK, I don't have any aexperience with sencha touch. The SDK/zip seems to be similar to extjs except file and folder naming. It should be easy. But what about the API? For example sencha touch uses other version names. We should add some other facet for sencha touch. Should we add some ISenchaTouchProjectManager and ISenchaTouchLibraryManager and devide it completly?

zulus commented 10 years ago

I'm still thinking about that. Second facet can be a good option. In theory is possible to mix applications and sdks in one sencha cmd workspace.

mepeisen commented 10 years ago

Hi.

 

I commited the support for discovering and installing extjs sdk.

I used some things from maven (m2e) plugins.

 

However the extjs and sencha touch sdk will be published to another repository. The url to some kind of dictionary will be hard coded.

Where to publish ist? At the moment I was thinking of github itself (gh-pages branch). There will be the dictionary. But I don't know if it is a good idea to store the zips there. What do you think?

 

Examples can be downloaded there: http://www.xworlds.eu/test.zip

 

Greetings

Martin

zulus commented 10 years ago

bintray.com could be a good option for now. But here are available only 500MB. Alternatives:

  1. I'll prepare virtual machine for this update site
  2. Maybe will be possible to cooperate with sencha in the future :P
mepeisen commented 10 years ago

It is flexible since the dictionary plugin can point to any repository we want it. We do not even need to place them all in the same repository

mepeisen commented 10 years ago

hmmm. I cannot upload extjs 4.2.0/4.2.1/5.0.0 and sencha touch. They exceed the 50mb file limit at bintray.com

mepeisen commented 10 years ago

First Milestone finished. The only main thing missing is to apply InferrenceEngine on library files.

How to use it?

  1. As soon as you apply extjs or sencha touch facet the core plugin will apply a JavaScript build Container.
  2. Currently it applies a builtin environment (f.e. core-extjs-4.2).
  3. The builder runs and detects that it does not yet know anything about extjs 4.2 (mainly it does not find any sdk).
  4. Now you can decide to use the quick fix that tries to download a suitable gpl Version of extjs 4.2. Or you decide to go to the window preferences because you already have extjs 4.2 somewhere on your hdd.
  5. After either downloading plugins and restarting or choosing the sdk zip/folder on manually the build error disappears and the build container is populated (Project -> JavaScript Resources -> core-extjs-4.2)

Some advanced notes: -> You can install multiple sdk plugins, f.e. extjs 4.2.0 and 4.2.1. Extjs-plugin will choose the best matching plugin. See the Preference page "Core libraries (SDK)" and have a look at the extjs/4.2 note. Here you will see all installed builtin sdk. Choose the one you preferr (or try to download newer ones). -> You can create your own environments but notice that this is not recommended. Other developers may also Need to setup your custom environment before they can use your project. -> You may add custom libraries to any environment. That means that this library is used automatically. However this is not a good idea because other developers using your project won't see this options. Instead you should add your custom library in project preferences.


Open Tasks:

mepeisen commented 10 years ago

choose your sdk core library parsing download default sdk

zulus commented 10 years ago

If user is using own ExtJS distribution per project. We should allow select it.

mepeisen commented 10 years ago

I have created a new issue.