Hi all, I just kind of completed migrating the sling/core project. As I already noted in the wiki page, the core project is currently almost the complete Sling implementation, which is not a good thing.
I will take on splitting this project into at least three projects as soon as the rest of the projects have been migrated to the new Sling API (see SLING-98). For the moment, the current sling/core should probably more or less do the trick. Regards Felix Am Montag, den 26.11.2007, 07:11 -0800 schrieb [EMAIL PROTECTED]: > Page Edited : SLING : Module Reorganization Proposal > Module Reorganization Proposal has been edited by Felix Meschberger > (Nov 26, 2007). > > Change summary: > > reflect current state of sling/core > > > (View changes) > > Content: > In issue SLING-83 Betrand proposes to improve our project layout to > make it easier to developers to find their way through the projects > making up Sling. On this page, I would like to propose a new structure > for further discussion. > > [ Naming Conventions ] [ Top Level Projects ] [ Sling Commons > Projects ] [ JCR Related Projects ] [ Sling Launcher Projects ] > [ Maven Plugin Projects ] [ microsling Projects ] [ OSGi Projects ] > [ Scripting Engine Projects ] [ Sling Main Projects ] [ Removed and > Replaced Projects ] > Naming Conventions > Projects > * groupId: All projects have the same groupId org.apache.sling > * artifactId: The artifactId is fully qualified with the groupId > plus a name built from the project folder as listed below with > slashes / and dashes - replaced by dots .. See below for > exceptions. > > The final artifact name - pom.build.finalName - is the Maven 2 default > consisting of the artifactId and the version. The Bundle-SymbolicName > is defined in the parent pom as being just the artifactId. > > Exceptions to artifactId rule > > * The parent project's artifactId is sling > * The artifactId of the projets in the sling folder is just the > project name without the parent folder sling, e.g core for the > Sling core project. > * The Maven 2 plugin projects in the maven folder follow the > naming convention for Maven 2 plugins. > Java Packages > Each project consists of a series of Java Packages. To prevent > collision between projects with respect to Java Packages, each project > has a root Java Package which is the fully qualified Maven 2 project > name consisting of the artifactId such that the Bundle symbolic name > and the root Java Package are the same. > > > Top Level Projects > Status > Who > Folder > Artifact ID > Description > OK > fmeschbe > parent > org.apache.sling.sling > Parent > Project > OK > fmeschbe > api > org.apache.sling.api > Core API > > The Sling parent project and the Sling API projects are the only > remaining projects at the top level of the repository. > > > Sling Commons Projects > Status > Who > Folder > Artifact ID > Description > OK > fmeschbe > commons/json > org.apache.sling.commons.json > JSON support > from json.org > OK > fmeschbe > commons/mime > org.apache.sling.commons.mime > Generalized > MIME type > mapping > service > > These projects in the commons folder contain common functionality used > by multiple other projects and may be either referred to by way of > OSGi package import or by inlining the respective packages/classes > into the bundle. > > > JCR Related Projects > Status > Who > Folder > Artifact ID > Description > OK > fmeschbe > jcr/api > org.apache.sling.jcr.api > Bundle-ized > JCR/Jackrabbit > API + Session > Pooling > OK > fmeschbe > jcr/resource > org.apache.sling.jcr.resource > JCR based > ResourceResolver, Mapping (formerly the sling-content-jcr bundle in the > content folder) > OK > fmeschbe > jcr/classloader > org.apache.sling.jcr.classloader > JCR based > ClassLoader > OK > fmeschbe > jcr/jackrabbit-client > org.apache.sling.jcr.jackrabbit.client > Access > existing JCR > Repository > OK > fmeschbe > jcr/jackrabbit-server > org.apache.sling.jcr.jackrabbit.server > Embedded JCR > Repository > OK > fmeschbe > jcr/jackrabbit-extractor > org.apache.sling.jcr.jackrabbit.extractor > Jackrabbit > Query > Extensions > > The projects in the jcr folder are related to JCR. > > > Sling Launcher Projects > Status > Who > Folder > Artifact ID > Description > OK > fmeschbe > launcher/app > org.apache.sling.launcher.app > Command line > Sling launcher > (embedded > Jetty) > (formerly the > sling-app > project) > OK > fmeschbe > launcher/webapp > org.apache.sling.launcher.webapp > Sling launcher > Web > Application > (formerly the > sling-servlet > project) > > Launchers for Sling are located in the launcher folder. Two projects > currently exist. The app project which launches Sling from the command > line and the webapp project which is a web application which launches > Sling as a web application in a servlet container. > > > Maven Plugin Projects > Status > Who > Folder > Artifact ID > Description > OK > cziegeler > maven/maven-jcrocm-plugin > org.apache.sling.maven-jcrocm-plugin > JavaDoc Tag > support for > JCR OCM > Mapping > – > – > maven/maven-jspc-plugin > org.apache.sling.maven-jspc-plugin > JSP Compiler > for bundled > JSPs > OK > cziegeler > maven/maven-sling-plugin > org.apache.sling.maven-sling-plugin > Various helper > goals > > The maven folder contains Maven 2 plugin projects which simplify > development of Sling itself as well as applications extending Sling. > > > microsling Projects > Status > Who > Folder > Artifact ID > Description > OK > fmeschbe > microsling > – > Container for > microsling > – > – > microsling/core > org.apache.sling.microsling.core > microsling > Core > Implementation > – > – > microsling/webapp > org.apache.sling.microsling.webapp > microsling Web > Application > > The microsling folder contains the microsling projects which is a very > simple implementation of the Sling API. microsling is only statically > extensible (as opposed to Sling, which is extensible dynamically at > run time). > > > OSGi Projects > Status > Who > Folder > Artifact ID > Description > OK > fmeschbe > osgi/log > org.apache.sling.osgi.log > LogService > impl and Log > API provider > OK > fmeschbe > osgi/assembly > org.apache.sling.osgi.assembly > Assembly > packaging > (this project > will be > removed in the > future because > it provides a > subset of the > functionality > of the new > Deployment > Package > Service > contained in > the OSGi > Compendium > Service > Specification > R 4.1) > OK > fmeschbe > osgi/obr > org.apache.sling.osgi.obr > OSGi Bundle > Repository > server > OK > fmeschbe > osgi/console-web > org.apache.sling.osgi.onsole.web > Web Based OSGi > management > console > > The projects in the osgi folder are used to extend the functionality > of an OSGi framework. These projects are used to implement running > Sling instances but do not directly influence Sling itself. > > > Scripting Engine Projects > Status > Who > Folder > Artifact ID > Description > – > – > scripting/resolver > org.apache.sling.scripting.resolver > ScriptResolver > implementation > and Engine > support > – > – > scripting/jsp > org.apache.sling.scripting.jsp > JSP (includes > Jasper) > In Progress > cziegeler > scripting/jsp-taglib > org.apache.sling.scripting.jsp.taglib > JSP TagLib for > Sling > OK > cziegeler > scripting/javascript > org.apache.sling.scripting.javascript > JavaScript > using Rhino > (includes ESP > support) > OK > cziegeler > scripting/velocity > org.apache.sling.scripting.velocity > Velocity > Templating > OK > cziegeler > scripting/freemarker > org.apache.sling.scripting.freemarker > Freemarker > Templating > OK > cziegeler > scripting/ruby > org.apache.sling.scripting.ruby > Ruby > Templating > – > – > scripting/??? > org.apache.sling.scripting.??? > more scripting > engines, e.g. > JSR-223 > > One of the most notable extensions of the Sling API compared to the > Component API is the better definition of implementing scripting. > Formerly scripting was supported as just a special way of a Component > requiring more or less complex setup in the repository. The projects > in the scripting folder implement the new SlingScriptingEngine > interface for various script languages. The resolver project > implements the SlingScriptResolver interface for Sling. > > > Sling Main Projects > Status > Who > Folder > Artifact ID > Description > OK > fmeschbe > sling/core > org.apache.sling.core > The Core Sling > engine. See > note below. > – > – > sling/cache > org.apache.sling.cache > Output caching > of response > data > (currently > empty) > OK > cziegeler > sling/event > org.apache.sling.event > Distributed > Eventing using > JCR > In Progress > fmeschbe > sling/sample > org.apache.sling.sample > Sample > Servlets and > JSPs > OK > cziegeler > sling/scheduler > org.apache.sling.scheduler > Quartz-based > Scheduler for > Sling > In Progress > fmeschbe > sling/servlets-standard > org.apache.sling.servlets.standard > Standard > Servlets, e.g. > nt:file, > nt:folder > > The projects in the sling folder are the core Sling API implementation > projects. In addition added value projects such as scheduling and > distributed eventing projects are also located in this folder. > > Note on sling/core: The core project is currently almost a complete > implementation of the Sling framework. Only the JCR Repository access > and Object Content Mapping functionality is not part of the core. This > project should be broken apart such that only the bare minimum of the > functionality is contained. This is to be further analyzed. > > > Removed and Replaced Projects > * The component-api project defining the old Component API is > replaced by the new api project defining the Sling API. > Therefore the component-api project is removed. > * The project JSP compiler (Jasper plus Eclipse Java Compiler) > project jasper-sling is not a standalone project any more. It > has been integrated into the project implementing the > SlingScriptingEngine for JSP script/jsp. > > > Powered by Atlassian Confluence (Version: 2.2.9 Build:#527 Sep 07, > 2006) - Bug/feature request > > Unsubscribe or edit your notifications preferences
