Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[stellation-res] Partial API freeze coming; API audits requested.

We're going to be trying to partially freeze some of the Stellation APIs
over the next two weeks. It would be very helpful to us if anyone with
some time could look over the public APIs of the to-be-frozen code, and
point out anything wrong.

What I mean by partially freeze is that the only permissible change to
the frozen APIs is addition, and addition will only be allowed to
support new functionality that cannot be implemented using the current
APIs.

We haven't precisely defined the freeze zone yet. But an initial
approximation is:

	org.eclipse.stellation.artifacts:
		- All interfaces.
		- The agents and artifact types for Text and Compound
			artifacts.
	org.eclipse.stellation.repos.database.AbstractDatabase
	org.eclipse.stellation.repos:
		- AccessPoint, Handle, Authenticator, BranchImage
	org.eclipse.stellation.repos.io:
		- Everything.
	org.eclipse.stellation.workspace:
		- Configuration, Connection, Location, Project,
		  Workspace

An example of what we'd like to find is things like the current
API of Output, where there is a method:

	OutputStream getOutputStream(Integer id, String type,
                                   PropertyMap properites,
                                   long time) throws IOException;

This looks like a getter, but it's got a bunch of side effects:
it creates resources like directories, it stores properties in
the project metadata, and it sets the file modification time.

I'm in the process of changing it to a set of methods (leaving out
exceptions for brevity):
	void createResource(Integer id);
	OutputStream getOutputStream(Integer id);
	void writeProperties(Integer id, PropertyMap properties);
	void setResourceTime(long time);

Thanks,
	-Mark

-- 
Mark Craig Chu-Carroll,  IBM T.J. Watson Research Center  
*** The Stellation project: Advanced SCM for Collaboration
***		http://www.eclipse.org/stellation
*** Work Email: mcc@xxxxxxxxxxxxxx  ------- Personal Email:
markcc@xxxxxxxxxxx

Attachment: signature.asc
Description: This is a digitally signed message part


Back to the top