Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Spaces"

(Use Case One)
 
(22 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{CommentBox|Eclipse Proposed Project
+
==What is the Spaces Project?==
* [http://www.eclipse.org/proposals/spaces/ Project Proposal]
+
''Quoting from the [http://www.eclipse.org/spaces Spaces home page]:''
}}
+
Share your tweaks, twiddles, and nifty home-brew Eclipse plug-ins!
=Introduction=
+
Share your examples, your work-saving automations, your user-interface short cuts, and more.
The Spaces project will provide an extensible framework and exemplary implementation for an Eclipse feature/plug-in set that streamlines the process of publishing, materializing and sharing a code base against a specified set of virtual services for source management, release staging and downloading, bug-tracking and community collaboration. The initial exemplary implementation will include an adapter to connect the framework to an extended version of AOL's virtual storage infrastructure (XDrive). Other exemplary implementations to capable and available virtual infrastructures will be included based on community demand and project resources (the project welcomes additional contributors to help with, e.g., an adapter to SourceForge).
+
  
=Next steps=
+
Spaces is about expanding the Eclipse community by providing easy-to-use "spaces" for Eclipse users to publish and share their own plug-ins. The Spaces plug-ins provide easy to use user interface wrappers around a few Eclipse operations for publishing update sites, sharing source code, and materializing workspaces.  
At the EclipseCon Spaces BOF we discussed some next steps. After BOF there were also some discussions in the hallway and at the bar.
+
I thought it was a good idea to capture some of the things that where discussed.
+
  
==Top Level Model==
+
==Using Spaces==
What is really an EclipseSpace? How are they named? Can an individual have only one or several spaces? What if several users wants to share a space, who is the owner? Can a space be handed over to someone else? etc.
+
See the [http://www.eclipse.org/spaces/how-to-publish.php How to Publish] and [http://www.eclipse.org/spaces/how-to-consume.php How to Consume] instructions.
How is the space different from a component or project?
+
  
===Naming===
+
==Architecture==
Clearly space names needs to be unique across space providers, so it seems natural that space names start with an identifier for the space provider. The space provider then has the responsibility to ensure that created spaces within their domain are unique. To keep the requirements simple the rest of the naming scheme and how a space can be shared, for a group, handed over etc. can be decided by the space provider. If however we want to create Eclipse user interfaces for management of access rights, etc. then there needs to be common APIs.
+
The project has been dormant for a bit, and we now start to elaborate on architecture, project plan, etc. This page should become the "spaces index page". I am adding new content as subpages under this page as a starting point.
 +
* [[Spaces/Tasklist]]
 +
* [[Spaces/Architecture]]
 +
* [[Spaces/Naming]]
 +
* [[Spaces/Architecture/appspecs|Applications]]
 +
* [[Spaces/Milestones]]
 +
* [[Spaces/Use Cases]]
 +
* [[Spaces/Spi/ProviderSpi]] - what a space provider should implement
 +
* [[Spaces/Spi/PublisherSpi]] - extension for new ways to publish artifacts (not implemented by service provider)
 +
* [[Spaces/Authorization Support]] - description of how to work with authorization
 +
* [[Spaces/Building from source]] - how to build the Spaces update site
 +
* [[Spaces/Standalone Xdrive]] - how to use the xdrive bundle stand alone (no eclipse runtime)
  
Spacenames should start with the space provider top URL (in reverse like for package names) for space services. As an example, this prefix could be "com.aol.spaces" 
+
The Spaces project will provide an extensible framework and exemplary implementation for an Eclipse feature/plug-in set that streamlines the process of publishing, materializing and sharing a code base against a specified set of virtual services for source management, release staging and downloading, bug-tracking and community collaboration. The initial exemplary implementation will include an adapter to connect the framework to an extended version of AOL's virtual storage infrastructure (XDrive). Other exemplary implementations to capable and available virtual infrastructures will be included based on community demand and project resources (the project welcomes additional contributors to help with, e.g., an adapter to SourceForge).
 
+
The space provider can then choose to have the space name be the same as the member name, or let members create multiple spaces. assuming the first is selected, the space name for member "fred" would be "com.aol.spaces.fred", or perhaps "com.aol.spaces/fred".
+
 
+
====Naming inside the space====
+
I think we also need a formal structure inside the space. At least for the top level structure where the user can keep one or several (?) update sites, one or several (?) CM repositories (possibly both CVS and SVN repositories).
+
Our primary focus is Eclipse artifacts, so update sites works well, but for other technologies, maybe some other entry point for "downloads" is needed.  
+
  
Once inside the CM repository the naming and structure depends on the technology used (java project, C project, etc.)
 
  
==Space Services==
+
==Testing==
The simplest service is just a "file respository" that allows sharing.
+
Test instructions can be found here: [[Spaces Testing]]
  
...to be continued...
 
==Client Plugin==
 
The first version of the client plug-in should satisfy these use-cases:
 
===Use Case One===
 
# I start Eclipse (one that has the Spaces plug-in installed)
 
# File > New > Project > Plug-in Development > Plug-in Project > "demo" ... Hello World ...
 
# Right-click menu over project "demo" and choose Spaces > Publish Plug-in
 
# A wizard/dialog box opens to ask me a few questions including:
 
## Which spaces adapter to use. I will choose "AOL Eclipse Spaces" for this example.
 
## Because this is the first time I have used AOL Eclipse Spaces in this instance of Eclipse, I am asked for my login and password. These are stored in the Eclipse workspace so that I don't have to enter them in the future.
 
# The Spaces plug-in does a client side build and then uploads the results to the storage server:
 
## Compile all the java code (usually already compiled via incremental compiler)
 
## Jar-up the class files.
 
## Jar into a plug-in jar with correct manifest file, etc.
 
## Create a feature.xml for this one plug-in. Saves the feature.xml along with the plugin.xml so that it can be re-used. (The Spaces plug-in either asks for the necessary information via the wizard, or it assumes some defaults, or it generates some defaults from the plug-in code.)
 
## Jar into a feature jar with correct manifest file, etc.
 
## Download the site.xml from my AOL Eclipse Spaces update site. If there is no site.xml, generate a new empty site.xml locally.
 
## Add this new feature to the local site.xml
 
## Upload the new site.xml, feature jar, and plugin jar to my AOL Eclipse Spaces update site.
 
# My friends and I can go to my AOL Eclipse Spaces update site using the Eclipse Update Manager (based on my AOL XDrive permissions) and download and install my "demo" plug-in.
 
  
===Use Case Two===
+
[[Category:Spaces]]
===Use Case Three===
+

Latest revision as of 03:30, 6 March 2008

What is the Spaces Project?

Quoting from the Spaces home page: Share your tweaks, twiddles, and nifty home-brew Eclipse plug-ins! Share your examples, your work-saving automations, your user-interface short cuts, and more.

Spaces is about expanding the Eclipse community by providing easy-to-use "spaces" for Eclipse users to publish and share their own plug-ins. The Spaces plug-ins provide easy to use user interface wrappers around a few Eclipse operations for publishing update sites, sharing source code, and materializing workspaces.

Using Spaces

See the How to Publish and How to Consume instructions.

Architecture

The project has been dormant for a bit, and we now start to elaborate on architecture, project plan, etc. This page should become the "spaces index page". I am adding new content as subpages under this page as a starting point.

The Spaces project will provide an extensible framework and exemplary implementation for an Eclipse feature/plug-in set that streamlines the process of publishing, materializing and sharing a code base against a specified set of virtual services for source management, release staging and downloading, bug-tracking and community collaboration. The initial exemplary implementation will include an adapter to connect the framework to an extended version of AOL's virtual storage infrastructure (XDrive). Other exemplary implementations to capable and available virtual infrastructures will be included based on community demand and project resources (the project welcomes additional contributors to help with, e.g., an adapter to SourceForge).


Testing

Test instructions can be found here: Spaces Testing

Back to the top