Robert Munteanu created SLING-3733:
--------------------------------------
Summary: Remodel API for more natural usage of IO operations
Key: SLING-3733
URL: https://issues.apache.org/jira/browse/SLING-3733
Project: Sling
Issue Type: Improvement
Components: IDE
Reporter: Robert Munteanu
Priority: Critical
Fix For: Sling Eclipse IDE 1.1.0
The current approach for working with I/O is a bit convoluted. To make sure we
integrate properly with multiple potential environments - Eclipse, IntelliJ,
Netbeans, CLI - our APIs work mainly with Strings and InputStreams ( or
byte-arrays ).
Although it works fine, it's starting to become awkward, as a single operation
can consist of multiple calls to API methods due to this back-and-forth. For
instance:
{code}
// Sling IDE API
String serializationFilePath =
serializationManager.getSerializationFilePath(resourceLocation,
serializationKind);
// Eclipse API
IPath serializationFilePath2 =
Path.fromPortableString(serializationFilePath);
// Eclipse API
IResource serializationResource =
syncDirectory.findMember(serializationFilePath2);
// a bit later...
// Sling IDE API
serializationManager.readSerializationData(serializationFilePath,
serializationResource.getContents();
{code}
We should overhaul the I/O-based APIs to work with I/O abstractios ( e.g.
FileReader -> EclipseFileReader ) and make those operations more coherent.
--
This message was sent by Atlassian JIRA
(v6.2#6252)