svn commit: r1553093 - /sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutor.java
Author: cziegeler Date: Mon Dec 23 10:50:52 2013 New Revision: 1553093 URL: http://svn.apache.org/r1553093 Log: Correct javadocs Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutor.java Modified: sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutor.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutor.java?rev=1553093r1=1553092r2=1553093view=diff == --- sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutor.java (original) +++ sling/trunk/bundles/extensions/event/src/main/java/org/apache/sling/event/jobs/consumer/JobExecutor.java Mon Dec 23 10:50:52 2013 @@ -63,25 +63,28 @@ public interface JobExecutor { /** * Execute the job. * - * If the job has been processed successfully, {@link JobExecutionContext#SUCCEEDED()} should be returned. - * If the job has not been processed completely, but might be rescheduled {@link JobExecutionContext#FAILED()} - * should be returned. - * If the job processing failed and should not be rescheduled, {@link JobExecutionContext#CANCELLED()} should - * be returned. + * If the job has been processed successfully, a job result of succeeded should be returned. This result can + * be generated by calling codeJobExecutionContext.result().succeeded()/code. + * + * If the job has not been processed completely, but might be rescheduled failed should be returned. + * This result can be generated by calling codeJobExecutionContext.result().failed()/code. + * + * If the job processing failed and should not be rescheduled, cancelled should be returned. + * This result can be generated by calling codeJobExecutionContext.result().cancelled()/code. * * If the executor decides to process the job asynchronously it should return codenull/code * and notify the job manager by using the {@link JobExecutionContext#asyncProcessingFinished(JobExecutionResult)} - * method. + * method of the processing result. * * If the processing fails with throwing an exception/throwable, the process will not be rescheduled - * and treated like the method would have returned {@link JobExecutionContext#CANCELLED()}. + * and treated like the method would have returned a cancelled result. * - * Instead of the constants from the JobExecutionContext class, this method can return a custom instance containing - * additional information using the builder pattern available from {@link JobExecutionContext#result(String)}. + * Additional information can be added to the result by using the builder pattern available + * from {@link JobExecutionContext#result()}. * * @param job The job * @param context The execution context. - * @return The job execution result + * @return The job execution result or codenull/code for asynchronous processing. */ JobExecutionResult process(Job job, JobExecutionContext context); }
svn commit: r1553094 [5/5] - in /sling/trunk/samples/mail-archive: ./ docs/ server/ server/src/ server/src/main/ server/src/main/java/ server/src/main/java/org/ server/src/main/java/org/apache/ server
Added: sling/trunk/samples/mail-archive/ui/src/main/resources/initial-content/apps/mailarchiveserver/navbar.html.esp URL: http://svn.apache.org/viewvc/sling/trunk/samples/mail-archive/ui/src/main/resources/initial-content/apps/mailarchiveserver/navbar.html.esp?rev=1553094view=auto == --- sling/trunk/samples/mail-archive/ui/src/main/resources/initial-content/apps/mailarchiveserver/navbar.html.esp (added) +++ sling/trunk/samples/mail-archive/ui/src/main/resources/initial-content/apps/mailarchiveserver/navbar.html.esp Mon Dec 23 11:11:15 2013 @@ -0,0 +1,68 @@ +div class=navbar + % load(head.esp); % + +!-- NAVIGATION BAR -- + + a href=%= homePage %home/a +% + if (currentNode.getName() == search) { +% + a href=/mailarchiveserver/search.htmlsearch/a +% + } else { +% + a href=/mailarchiveserver/archive.htmlarchive/a +% + var name = []; + var href = []; + var node = currentNode; + var folding = false; + var fname = ; + var fhref = ; + while (node.getName() != archive) { + var rt = node[sling:resourceType]; + if (rt == mailarchiveserver/list) + folding = true; + + if (rt != undefined) { + if (!folding) { + name.push(node[jcr:text]); + href.push(node.getPath()+.html); + } else { + fname += node[jcr:text]+.; + if (fhref == ) + fhref = node.getPath()+.html; + } + } + node = node.getParent(); + } + if (folding) { + name.push(fname.substring(0, fname.length-1)); + href.push(fhref); + } + + while (name.length 0) { + out.print( a href=+href.pop()++name.pop()+/a); + } + } +% +/div + +!-- SAERCH BAR -- + +form method=GET action=/mailarchiveserver/search.html style=width: 40%; margin: 1em auto; +input type=text name=q style=width: 70%; value='%= request.getParameter('q') ? request.getParameter('q') : '' %' / +input type=submit value=Search style=width: 23%; / span +title='You can search in the following ways +(similar to Markmail) +General terms: server +Or phrases:latest news +Sender field: from:Roy Fielding, from:adobe.com +Subject field: subject:how to +List field:list:sling + +Search is NOT case sensitive, i.e. searching for list:oak and LIST:OAK will produce same results. + +Constraints are ANDed together except in the case of multiple fielded constraints of the same type which will be ORed together. +'(?)/span br +/form Added: sling/trunk/samples/mail-archive/ui/src/main/resources/initial-content/apps/mailarchiveserver/root/html.esp URL: http://svn.apache.org/viewvc/sling/trunk/samples/mail-archive/ui/src/main/resources/initial-content/apps/mailarchiveserver/root/html.esp?rev=1553094view=auto == --- sling/trunk/samples/mail-archive/ui/src/main/resources/initial-content/apps/mailarchiveserver/root/html.esp (added) +++ sling/trunk/samples/mail-archive/ui/src/main/resources/initial-content/apps/mailarchiveserver/root/html.esp Mon Dec 23 11:11:15 2013 @@ -0,0 +1,26 @@ +html + +head +% + load(../head.esp); + if (! request.getRequestParameter(noredirect) ) { + response.sendRedirect(startPage) + } +% + titleMail Archive Server/title +/head + +body + div class=content + h1Welcome to the Mail Archive Server!/h1 br + + dl + dtChoose what you want to do:/dt br + dda href=%= currentNode.getPath() %/import.mbox.htmlImport mbox file to the archive/a/dd br + dda href=%= currentNode.getPath() %/archive.htmlBrowse archive/a/dd br + dda href=%= currentNode.getPath() %/search.htmlSearch archive/a/dd br + /dl + /div +/body + +/html Added: sling/trunk/samples/mail-archive/ui/src/main/resources/initial-content/apps/mailarchiveserver/search/html.esp URL: http://svn.apache.org/viewvc/sling/trunk/samples/mail-archive/ui/src/main/resources/initial-content/apps/mailarchiveserver/search/html.esp?rev=1553094view=auto == --- sling/trunk/samples/mail-archive/ui/src/main/resources/initial-content/apps/mailarchiveserver/search/html.esp (added) +++
svn commit: r1553098 [1/6] - in /sling/trunk/samples/mail-archive/server: ./ src/test/java/org/apache/sling/mailarchiveserver/impl/ src/test/java/org/apache/sling/mailarchiveserver/util/ src/test/reso
Author: bdelacretaz Date: Mon Dec 23 12:00:04 2013 New Revision: 1553098 URL: http://svn.apache.org/r1553098 Log: SLING-3297 - fix tests and add some public mbox test files Added: sling/trunk/samples/mail-archive/server/src/test/java/org/apache/sling/mailarchiveserver/util/TU.java sling/trunk/samples/mail-archive/server/src/test/resources/ sling/trunk/samples/mail-archive/server/src/test/resources/test-files/ - copied from r1553094, sling/trunk/samples/mail-archive/server/test_files/ sling/trunk/samples/mail-archive/server/src/test/resources/test-files/mbox/ sling/trunk/samples/mail-archive/server/src/test/resources/test-files/mbox/hadoop-common-dev-201202.mbox sling/trunk/samples/mail-archive/server/src/test/resources/test-files/mbox/jackrabbit-dev-201201.mbox sling/trunk/samples/mail-archive/server/src/test/resources/test-files/mbox/jackrabbit-dev-201309.mbox sling/trunk/samples/mail-archive/server/src/test/resources/test-files/mbox/sling-dev-201203.mbox sling/trunk/samples/mail-archive/server/src/test/resources/test-files/mbox/tomcat-dev-201204.mbox Removed: sling/trunk/samples/mail-archive/server/test_files/ Modified: sling/trunk/samples/mail-archive/server/pom.xml sling/trunk/samples/mail-archive/server/src/test/java/org/apache/sling/mailarchiveserver/impl/MessageStoreImplRepositoryTest.java sling/trunk/samples/mail-archive/server/src/test/java/org/apache/sling/mailarchiveserver/impl/Mime4jMboxParserImplCountTest.java sling/trunk/samples/mail-archive/server/src/test/java/org/apache/sling/mailarchiveserver/impl/Mime4jMboxParserImplStreamingTest.java sling/trunk/samples/mail-archive/server/src/test/java/org/apache/sling/mailarchiveserver/impl/Mime4jMboxParserImplTest.java Modified: sling/trunk/samples/mail-archive/server/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/samples/mail-archive/server/pom.xml?rev=1553098r1=1553097r2=1553098view=diff == --- sling/trunk/samples/mail-archive/server/pom.xml (original) +++ sling/trunk/samples/mail-archive/server/pom.xml Mon Dec 23 12:00:04 2013 @@ -26,6 +26,15 @@ artifactIdmaven-scr-plugin/artifactId /plugin plugin +groupIdorg.apache.maven.plugins/groupId +artifactIdmaven-surefire-plugin/artifactId +configuration +systemProperties + test.folder.path${project.basedir}/target/test-classes/test-files/test.folder.path +/systemProperties +/configuration +/plugin +plugin groupIdorg.apache.felix/groupId artifactIdmaven-bundle-plugin/artifactId extensionstrue/extensions Modified: sling/trunk/samples/mail-archive/server/src/test/java/org/apache/sling/mailarchiveserver/impl/MessageStoreImplRepositoryTest.java URL: http://svn.apache.org/viewvc/sling/trunk/samples/mail-archive/server/src/test/java/org/apache/sling/mailarchiveserver/impl/MessageStoreImplRepositoryTest.java?rev=1553098r1=1553097r2=1553098view=diff == --- sling/trunk/samples/mail-archive/server/src/test/java/org/apache/sling/mailarchiveserver/impl/MessageStoreImplRepositoryTest.java (original) +++ sling/trunk/samples/mail-archive/server/src/test/java/org/apache/sling/mailarchiveserver/impl/MessageStoreImplRepositoryTest.java Mon Dec 23 12:00:04 2013 @@ -24,6 +24,7 @@ import org.apache.sling.api.resource.Res import org.apache.sling.discovery.impl.setup.MockedResourceResolver; import org.apache.sling.mailarchiveserver.api.MboxParser; import org.apache.sling.mailarchiveserver.util.MailArchiveServerConstants; +import org.apache.sling.mailarchiveserver.util.TU; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -34,7 +35,6 @@ public class MessageStoreImplRepositoryT private MessageStoreImpl store; static final String TEST_RT_KEY = sling_resourceType; - private static final String TEST_FOLDER = test_files/; private static final String BODY_SUFFIX = _body; private static final String HEADERS_SUFFIX = _headers; @@ -85,14 +85,14 @@ public class MessageStoreImplRepositoryT @Test public void testStructure() throws IOException { MboxParser parser = new Mime4jMboxParserImpl(); - final File file = new File(TEST_FOLDER + MBOX_FILE); + final File file = new File(TU.TEST_FOLDER, MBOX_FILE); store.saveAll(parser.parse(new FileInputStream(file))); assertStructure(); } private void assertSaveMessage(String messageFile) throws MimeException, IOException, FileNotFoundException { MessageBuilder builder = new DefaultMessageBuilder(); - Message
svn commit: r1553100 - in /sling/trunk/samples/mail-archive: ./ stats/ stats/src/ stats/src/main/ stats/src/main/java/ stats/src/main/java/org/ stats/src/main/java/org/apache/ stats/src/main/java/org/
Author: bdelacretaz Date: Mon Dec 23 12:13:35 2013 New Revision: 1553100 URL: http://svn.apache.org/r1553100 Log: SLING-3297 - add my (work in progress) stats module Added: sling/trunk/samples/mail-archive/stats/ (with props) sling/trunk/samples/mail-archive/stats/pom.xml sling/trunk/samples/mail-archive/stats/src/ sling/trunk/samples/mail-archive/stats/src/main/ sling/trunk/samples/mail-archive/stats/src/main/java/ sling/trunk/samples/mail-archive/stats/src/main/java/org/ sling/trunk/samples/mail-archive/stats/src/main/java/org/apache/ sling/trunk/samples/mail-archive/stats/src/main/java/org/apache/sling/ sling/trunk/samples/mail-archive/stats/src/main/java/org/apache/sling/mailarchive/ sling/trunk/samples/mail-archive/stats/src/main/java/org/apache/sling/mailarchive/stats/ sling/trunk/samples/mail-archive/stats/src/main/java/org/apache/sling/mailarchive/stats/MailStatsProcessor.java sling/trunk/samples/mail-archive/stats/src/main/java/org/apache/sling/mailarchive/stats/OrgMapper.java sling/trunk/samples/mail-archive/stats/src/main/java/org/apache/sling/mailarchive/stats/impl/ sling/trunk/samples/mail-archive/stats/src/main/java/org/apache/sling/mailarchive/stats/impl/MailStatsProcessorImpl.java sling/trunk/samples/mail-archive/stats/src/main/java/org/apache/sling/mailarchive/stats/impl/OrgMapperImpl.java sling/trunk/samples/mail-archive/stats/src/main/java/org/apache/sling/mailarchive/stats/impl/StatsDataServlet.java sling/trunk/samples/mail-archive/stats/src/main/java/org/apache/sling/mailarchive/stats/impl/StatsTestServlet.java sling/trunk/samples/mail-archive/stats/src/main/resources/ sling/trunk/samples/mail-archive/stats/src/main/resources/initial-content/ sling/trunk/samples/mail-archive/stats/src/main/resources/initial-content/apps/ sling/trunk/samples/mail-archive/stats/src/main/resources/initial-content/apps/mailserver/ sling/trunk/samples/mail-archive/stats/src/main/resources/initial-content/apps/mailserver/stats/ sling/trunk/samples/mail-archive/stats/src/main/resources/initial-content/apps/mailserver/stats/destination/ sling/trunk/samples/mail-archive/stats/src/main/resources/initial-content/apps/mailserver/stats/destination/destination.esp (with props) sling/trunk/samples/mail-archive/stats/src/main/resources/initial-content/apps/mailserver/stats/stats.esp (with props) Modified: sling/trunk/samples/mail-archive/pom.xml Modified: sling/trunk/samples/mail-archive/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/samples/mail-archive/pom.xml?rev=1553100r1=1553099r2=1553100view=diff == --- sling/trunk/samples/mail-archive/pom.xml (original) +++ sling/trunk/samples/mail-archive/pom.xml Mon Dec 23 12:13:35 2013 @@ -11,5 +11,6 @@ modules moduleserver/module moduleui/module +modulestats/module /modules /project Propchange: sling/trunk/samples/mail-archive/stats/ -- --- svn:ignore (added) +++ svn:ignore Mon Dec 23 12:13:35 2013 @@ -0,0 +1,13 @@ +target +bin +*.iml +*.ipr +*.iws +.settings +.project +.classpath +.externalToolBuilders +maven-eclipse.xml + + + Added: sling/trunk/samples/mail-archive/stats/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/samples/mail-archive/stats/pom.xml?rev=1553100view=auto == --- sling/trunk/samples/mail-archive/stats/pom.xml (added) +++ sling/trunk/samples/mail-archive/stats/pom.xml Mon Dec 23 12:13:35 2013 @@ -0,0 +1,131 @@ +?xml version=1.0 encoding=UTF-8? +project xmlns=http://maven.apache.org/POM/4.0.0; xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; xsi:schemaLocation=http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd; + +modelVersion4.0.0/modelVersion + +parent +groupIdorg.apache.sling/groupId +artifactIdsling/artifactId +version18/version +/parent + +groupIdorg.apache.sling/groupId +artifactIdorg.apache.sling.mailarchive.stats/artifactId +packagingbundle/packaging +version0.0.1-SNAPSHOT/version + +nameApache Sling Mail Archive Server Stats/name +inceptionYear2013/inceptionYear + +description +Stats module for the mail archive server +/description + +properties +sling.java.version6/sling.java.version +/properties + +build +plugins +plugin +groupIdorg.apache.felix/groupId +artifactIdmaven-scr-plugin/artifactId +/plugin +plugin +groupIdorg.apache.felix/groupId +artifactIdmaven-bundle-plugin/artifactId +extensionstrue/extensions +configuration +instructions +
svn commit: r1553102 - /sling/trunk/samples/mail-archive/README.md
Author: bdelacretaz Date: Mon Dec 23 12:22:02 2013 New Revision: 1553102 URL: http://svn.apache.org/r1553102 Log: SLING-3297 - README Added: sling/trunk/samples/mail-archive/README.md Added: sling/trunk/samples/mail-archive/README.md URL: http://svn.apache.org/viewvc/sling/trunk/samples/mail-archive/README.md?rev=1553102view=auto == --- sling/trunk/samples/mail-archive/README.md (added) +++ sling/trunk/samples/mail-archive/README.md Mon Dec 23 12:22:02 2013 @@ -0,0 +1,25 @@ +Apache Sling mail archive server sample app +== + +This is a work in progress sample application for Sling, initially +contributed by Igor Bogomolov who wrote it as part of an internship, +and meant to create a useful mail archive server that also serves +as a more complex Sling sample. + +To run this, install the dom, core and mbox bundles from the +http://james.apache.org/mime4j/ project on a trunk Sling launchpad +instance, and install the bundles provided by this module. Note the +MIME4J-231 issue when building the Mime4J bundles. + +Then, start at http://localhost:8080/mailarchiveserver/import.mbox.html +to import a few mbox files, you can find some at +server/src/test/resources/test-files/mbox/ + +http://localhost:8080/mailarchiveserver.html is the server's homepage. + +To import live mail from a mail server you need a Connector - the SLING-3297 +contribution does include one for Exchange, but we haven't included it +in this sample so far. + +Stats (even more work in progress) are available at +http://localhost:8080/content/mailarchiveserver/stats.html
svn commit: r1553104 - in /sling/trunk/samples/mail-archive/server/src: main/java/org/apache/sling/mailarchiveserver/impl/ test/java/org/apache/sling/mailarchiveserver/impl/
Author: bdelacretaz Date: Mon Dec 23 12:37:37 2013 New Revision: 1553104 URL: http://svn.apache.org/r1553104 Log: SLING-3297 - use unicode literals in strings Modified: sling/trunk/samples/mail-archive/server/src/main/java/org/apache/sling/mailarchiveserver/impl/MessageStoreImpl.java sling/trunk/samples/mail-archive/server/src/test/java/org/apache/sling/mailarchiveserver/impl/MessageStoreImplStaticMethodsTest.java sling/trunk/samples/mail-archive/server/src/test/java/org/apache/sling/mailarchiveserver/impl/ThreadKeyGeneratorImplSubjectEqualityTest.java sling/trunk/samples/mail-archive/server/src/test/java/org/apache/sling/mailarchiveserver/impl/ThreadKeyGeneratorImplTest.java Modified: sling/trunk/samples/mail-archive/server/src/main/java/org/apache/sling/mailarchiveserver/impl/MessageStoreImpl.java URL: http://svn.apache.org/viewvc/sling/trunk/samples/mail-archive/server/src/main/java/org/apache/sling/mailarchiveserver/impl/MessageStoreImpl.java?rev=1553104r1=1553103r2=1553104view=diff == --- sling/trunk/samples/mail-archive/server/src/main/java/org/apache/sling/mailarchiveserver/impl/MessageStoreImpl.java (original) +++ sling/trunk/samples/mail-archive/server/src/main/java/org/apache/sling/mailarchiveserver/impl/MessageStoreImpl.java Mon Dec 23 12:37:37 2013 @@ -82,8 +82,11 @@ public class MessageStoreImpl implements private BundleContext bundleContext = null; static final String FIELD_SEPARATOR = : ; -private static final String[] RE_PREFIXES = { re:, aw:, fw:, re , aw , fw , çå¤}; -// for testing + +// TODO should be configurable, and should probably be in ThreadKeyGeneratorImpl +private static final String[] RE_PREFIXES = { re:, aw:, fw:, re , aw , fw , \u7B54\u590D}; + +// TODO for testing?? String archivePath = MailArchiveServerConstants.ARCHIVE_PATH; String resourceTypeKey = MailArchiveServerConstants.RT_KEY; Modified: sling/trunk/samples/mail-archive/server/src/test/java/org/apache/sling/mailarchiveserver/impl/MessageStoreImplStaticMethodsTest.java URL: http://svn.apache.org/viewvc/sling/trunk/samples/mail-archive/server/src/test/java/org/apache/sling/mailarchiveserver/impl/MessageStoreImplStaticMethodsTest.java?rev=1553104r1=1553103r2=1553104view=diff == --- sling/trunk/samples/mail-archive/server/src/test/java/org/apache/sling/mailarchiveserver/impl/MessageStoreImplStaticMethodsTest.java (original) +++ sling/trunk/samples/mail-archive/server/src/test/java/org/apache/sling/mailarchiveserver/impl/MessageStoreImplStaticMethodsTest.java Mon Dec 23 12:37:37 2013 @@ -6,19 +6,13 @@ import static org.apache.sling.mailarchi import static org.apache.sling.mailarchiveserver.impl.MessageStoreImpl.removeRe; import static org.junit.Assert.assertEquals; -import java.util.Date; -import java.util.Map; - -import org.apache.james.mime4j.dom.Message; -import org.apache.james.mime4j.message.MessageImpl; -import org.apache.sling.mailarchiveserver.util.MailArchiveServerConstants; import org.junit.Test; public class MessageStoreImplStaticMethodsTest { @Test public void testMakeJcrFriendly() { - assertEquals(Remove each char, , makeJcrFriendly(��!@#$%^*()+={}[],/?\\;:'\)); + assertEquals(Remove each char, , makeJcrFriendly(\\uFFFD\uFFFD!@#$%^*()+={}[],/?;:'\\\)); assertEquals(Substitute each char with _ char, trimming, a, makeJcrFriendly(.a_)); assertEquals(Substitute each char with _ char, b_e, makeJcrFriendly(b_ .-e)); } Modified: sling/trunk/samples/mail-archive/server/src/test/java/org/apache/sling/mailarchiveserver/impl/ThreadKeyGeneratorImplSubjectEqualityTest.java URL: http://svn.apache.org/viewvc/sling/trunk/samples/mail-archive/server/src/test/java/org/apache/sling/mailarchiveserver/impl/ThreadKeyGeneratorImplSubjectEqualityTest.java?rev=1553104r1=1553103r2=1553104view=diff == --- sling/trunk/samples/mail-archive/server/src/test/java/org/apache/sling/mailarchiveserver/impl/ThreadKeyGeneratorImplSubjectEqualityTest.java (original) +++ sling/trunk/samples/mail-archive/server/src/test/java/org/apache/sling/mailarchiveserver/impl/ThreadKeyGeneratorImplSubjectEqualityTest.java Mon Dec 23 12:37:37 2013 @@ -25,11 +25,10 @@ public class ThreadKeyGeneratorImplSubje public static ListObject[] data() { final ListObject[] result = new ArrayListObject[](); -result.add(new Object[] {Chef cookbooks for Installing CQ packages, Re: Chef cookbooks for Installing CQ packages} ); +result.add(new Object[] {Chef cookbooks for Installing FAQ packages, Re: Chef cookbooks for Installing FAQ packages} ); result.add(new Object[] {Dropbox to throw
svn commit: r1553128 - /sling/trunk/contrib/extensions/cassandra/pom.xml
Author: bdelacretaz Date: Mon Dec 23 15:30:23 2013 New Revision: 1553128 URL: http://svn.apache.org/r1553128 Log: SLING-2798 - explicit dependency Modified: sling/trunk/contrib/extensions/cassandra/pom.xml Modified: sling/trunk/contrib/extensions/cassandra/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/cassandra/pom.xml?rev=1553128r1=1553127r2=1553128view=diff == --- sling/trunk/contrib/extensions/cassandra/pom.xml (original) +++ sling/trunk/contrib/extensions/cassandra/pom.xml Mon Dec 23 15:30:23 2013 @@ -265,8 +265,11 @@ artifactIdorg.apache.sling.api/artifactId version2.4.2/version /dependency - - +dependency +groupIdorg.apache.sling/groupId +artifactIdorg.apache.sling.commons.testing/artifactId +version2.0.16/version +/dependency /dependencies /project
svn commit: r1553130 - /sling/trunk/samples/mail-archive/stats/pom.xml
Author: bdelacretaz Date: Mon Dec 23 15:36:15 2013 New Revision: 1553130 URL: http://svn.apache.org/r1553130 Log: SLING-3297 - fix wrong dependency Modified: sling/trunk/samples/mail-archive/stats/pom.xml Modified: sling/trunk/samples/mail-archive/stats/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/samples/mail-archive/stats/pom.xml?rev=1553130r1=1553129r2=1553130view=diff == --- sling/trunk/samples/mail-archive/stats/pom.xml (original) +++ sling/trunk/samples/mail-archive/stats/pom.xml Mon Dec 23 15:36:15 2013 @@ -104,8 +104,8 @@ version2.0.6/version /dependency dependency -groupIdorg.apache.sling.mailarchiveserver/groupId -artifactIdserver/artifactId +groupIdorg.apache.sling/groupId +artifactIdorg.apache.sling.mailarchive.server/artifactId version0.1.0-SNAPSHOT/version scopeprovided/scope /dependency
svn commit: r1553131 [2/2] - in /sling/trunk/samples/mail-archive: ./ server/ server/src/main/java/org/apache/sling/mailarchiveserver/api/ server/src/main/java/org/apache/sling/mailarchiveserver/impl/
Modified: sling/trunk/samples/mail-archive/ui/src/main/resources/initial-content/apps/mailarchiveserver/message/preview.html.esp URL: http://svn.apache.org/viewvc/sling/trunk/samples/mail-archive/ui/src/main/resources/initial-content/apps/mailarchiveserver/message/preview.html.esp?rev=1553131r1=1553130r2=1553131view=diff == --- sling/trunk/samples/mail-archive/ui/src/main/resources/initial-content/apps/mailarchiveserver/message/preview.html.esp (original) +++ sling/trunk/samples/mail-archive/ui/src/main/resources/initial-content/apps/mailarchiveserver/message/preview.html.esp Mon Dec 23 15:47:20 2013 @@ -1,3 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * License); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ div a class=nolinkstyle href=% Modified: sling/trunk/samples/mail-archive/ui/src/main/resources/initial-content/apps/mailarchiveserver/navbar.html.esp URL: http://svn.apache.org/viewvc/sling/trunk/samples/mail-archive/ui/src/main/resources/initial-content/apps/mailarchiveserver/navbar.html.esp?rev=1553131r1=1553130r2=1553131view=diff == --- sling/trunk/samples/mail-archive/ui/src/main/resources/initial-content/apps/mailarchiveserver/navbar.html.esp (original) +++ sling/trunk/samples/mail-archive/ui/src/main/resources/initial-content/apps/mailarchiveserver/navbar.html.esp Mon Dec 23 15:47:20 2013 @@ -1,3 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * License); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ div class=navbar % load(head.esp); % Modified: sling/trunk/samples/mail-archive/ui/src/main/resources/initial-content/apps/mailarchiveserver/root/html.esp URL: http://svn.apache.org/viewvc/sling/trunk/samples/mail-archive/ui/src/main/resources/initial-content/apps/mailarchiveserver/root/html.esp?rev=1553131r1=1553130r2=1553131view=diff == --- sling/trunk/samples/mail-archive/ui/src/main/resources/initial-content/apps/mailarchiveserver/root/html.esp (original) +++ sling/trunk/samples/mail-archive/ui/src/main/resources/initial-content/apps/mailarchiveserver/root/html.esp Mon Dec 23 15:47:20 2013 @@ -1,3 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * License); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * AS IS BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ html head Modified: sling/trunk/samples/mail-archive/ui/src/main/resources/initial-content/apps/mailarchiveserver/search/html.esp URL: http://svn.apache.org/viewvc/sling/trunk/samples/mail-archive/ui/src/main/resources/initial-content/apps/mailarchiveserver/search/html.esp?rev=1553131r1=1553130r2=1553131view=diff == ---
svn commit: r1553137 - /sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/api/HealthCheck.java
Author: cziegeler Date: Mon Dec 23 16:13:29 2013 New Revision: 1553137 URL: http://svn.apache.org/r1553137 Log: Update javadocs Modified: sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/api/HealthCheck.java Modified: sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/api/HealthCheck.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/api/HealthCheck.java?rev=1553137r1=1553136r2=1553137view=diff == --- sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/api/HealthCheck.java (original) +++ sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/api/HealthCheck.java Mon Dec 23 16:13:29 2013 @@ -38,7 +38,7 @@ public interface HealthCheck { /** * Optional service property: the name of the MBean for registering * the health check as an MBean. If this property is missing the - * health check is not registered. + * health check is not registered as a JMX MBean. * If there is more than one service with the same value for this * property, the one with the highest service ranking is registered * only.
svn commit: r1553143 - in /sling/whiteboard/justin/yamf: org.apache.sling.yamf.impl/pom.xml org.apache.sling.yamf.server-side-tests/pom.xml
Author: justin Date: Mon Dec 23 16:27:37 2013 New Revision: 1553143 URL: http://svn.apache.org/r1553143 Log: pom cleanup Modified: sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/pom.xml sling/whiteboard/justin/yamf/org.apache.sling.yamf.server-side-tests/pom.xml Modified: sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/pom.xml URL: http://svn.apache.org/viewvc/sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/pom.xml?rev=1553143r1=1553142r2=1553143view=diff == --- sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/pom.xml (original) +++ sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/pom.xml Mon Dec 23 16:27:37 2013 @@ -28,8 +28,8 @@ artifactIdorg.apache.sling.yamf.impl/artifactId packagingbundle/packaging version0.0.1-SNAPSHOT/version -nameorg.apache.sling.yamf.impl/name -descriptionorg.apache.sling - org.apache.sling.yamf.impl/description +nameYAMF Implementation/name +descriptionYet Another Model Factory Implementation/description properties sling.java.version6/sling.java.version /properties @@ -130,31 +130,4 @@ scopecompile/scope /dependency /dependencies -profiles -profile -idautoInstallBundle/id -build -plugins -plugin -groupIdorg.apache.sling/groupId -artifactIdmaven-sling-plugin/artifactId -version2.0.4-incubator/version -executions -execution -idinstall-bundle/id -goals -goalinstall/goal -/goals -configuration - slingUrlhttp://localhost:/system/console/slingUrl -useradmin/user -passwordadmin/password -/configuration -/execution -/executions -/plugin -/plugins -/build -/profile -/profiles /project Modified: sling/whiteboard/justin/yamf/org.apache.sling.yamf.server-side-tests/pom.xml URL: http://svn.apache.org/viewvc/sling/whiteboard/justin/yamf/org.apache.sling.yamf.server-side-tests/pom.xml?rev=1553143r1=1553142r2=1553143view=diff == --- sling/whiteboard/justin/yamf/org.apache.sling.yamf.server-side-tests/pom.xml (original) +++ sling/whiteboard/justin/yamf/org.apache.sling.yamf.server-side-tests/pom.xml Mon Dec 23 16:27:37 2013 @@ -20,8 +20,8 @@ artifactIdorg.apache.sling.yamf.server-side-tests/artifactId packagingbundle/packaging version0.0.1-SNAPSHOT/version -nameorg.apache.sling.yamf.server-side-tests/name -descriptionorg.apache.sling - org.apache.sling.yamf.server-side-tests/description +nameYAMF ITs/name +descriptionYet Another Model Factory ITs/description build plugins plugin @@ -122,31 +122,4 @@ scopeprovided/scope /dependency /dependencies -profiles -profile -idautoInstallBundle/id -build -plugins -plugin -groupIdorg.apache.sling/groupId -artifactIdmaven-sling-plugin/artifactId -version2.0.4-incubator/version -executions -execution -idinstall-bundle/id -goals -goalinstall/goal -/goals -configuration - slingUrlhttp://localhost:/system/console/slingUrl -useradmin/user -passwordadmin/password -/configuration -/execution -/executions -/plugin -/plugins -/build -/profile -/profiles /project
svn commit: r1553145 - in /sling/whiteboard/justin/yamf: org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/annotations/ org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/
Author: justin Date: Mon Dec 23 16:27:50 2013 New Revision: 1553145 URL: http://svn.apache.org/r1553145 Log: adding a source annotation which ties a specific injection point to a specific injector. also works as a meta annotation, see e.g. @Filter Added: sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/annotations/Source.java - copied, changed from r1553144, sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/annotations/Filter.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/impl/MultipleInjectorTest.java Modified: sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/annotations/Filter.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/YamfAdapterFactory.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/injectors/BindingsInjector.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/injectors/OSGiServiceInjector.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/injectors/RequestAttributeInjector.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/injectors/ValueMapInjector.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/spi/Injector.java Modified: sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/annotations/Filter.java URL: http://svn.apache.org/viewvc/sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/annotations/Filter.java?rev=1553145r1=1553144r2=1553145view=diff == --- sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/annotations/Filter.java (original) +++ sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/annotations/Filter.java Mon Dec 23 16:27:50 2013 @@ -26,6 +26,7 @@ import java.lang.annotation.Target; */ @Target({ ElementType.FIELD, ElementType.METHOD }) @Retention(RetentionPolicy.RUNTIME) +@Source(osgi-services) public @interface Filter { public String value(); Copied: sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/annotations/Source.java (from r1553144, sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/annotations/Filter.java) URL: http://svn.apache.org/viewvc/sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/annotations/Source.java?p2=sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/annotations/Source.javap1=sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/annotations/Filter.javar1=1553144r2=1553145rev=1553145view=diff == --- sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/annotations/Filter.java (original) +++ sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/annotations/Source.java Mon Dec 23 16:27:50 2013 @@ -22,12 +22,13 @@ import java.lang.annotation.RetentionPol import java.lang.annotation.Target; /** - * Provide a filter on an @Inject. + * Annotation which indicates the specific injector which will populate this injection. + * Can also be used as a meta-annotation to declare that some other annotation implies + * a source. */ -@Target({ ElementType.FIELD, ElementType.METHOD }) +@Target({ ElementType.FIELD, ElementType.METHOD, ElementType.ANNOTATION_TYPE }) @Retention(RetentionPolicy.RUNTIME) -public @interface Filter { - -public String value(); +public @interface Source { +String value(); } Modified: sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/YamfAdapterFactory.java URL: http://svn.apache.org/viewvc/sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/YamfAdapterFactory.java?rev=1553145r1=1553144r2=1553145view=diff == --- sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/YamfAdapterFactory.java (original) +++ sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/YamfAdapterFactory.java Mon Dec 23 16:27:50 2013 @@ -16,6 +16,7 @@ */ package org.apache.sling.yamf.impl; +import java.lang.annotation.Annotation; import java.lang.reflect.AnnotatedElement;
svn commit: r1553142 - in /sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl: ModelPackageBundleListener.java YamfAdapterFactory.java
Author: justin Date: Mon Dec 23 16:27:35 2013 New Revision: 1553142 URL: http://svn.apache.org/r1553142 Log: refactor bundle listener into separate class Added: sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/ModelPackageBundleListener.java Modified: sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/YamfAdapterFactory.java Added: sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/ModelPackageBundleListener.java URL: http://svn.apache.org/viewvc/sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/ModelPackageBundleListener.java?rev=1553142view=auto == --- sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/ModelPackageBundleListener.java (added) +++ sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/ModelPackageBundleListener.java Mon Dec 23 16:27:35 2013 @@ -0,0 +1,151 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the License); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.sling.yamf.impl; + +import java.net.URL; +import java.util.ArrayList; +import java.util.Dictionary; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Hashtable; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.apache.commons.lang.StringUtils; +import org.apache.sling.api.adapter.AdapterFactory; +import org.apache.sling.commons.osgi.PropertiesUtil; +import org.apache.sling.yamf.api.Model; +import org.osgi.framework.Bundle; +import org.osgi.framework.BundleContext; +import org.osgi.framework.BundleEvent; +import org.osgi.framework.BundleListener; +import org.osgi.framework.ServiceRegistration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class ModelPackageBundleListener implements BundleListener { + +private static final Logger log = LoggerFactory.getLogger(ModelPackageBundleListener.class); + +private final BundleContext bundleContext; + +private final AdapterFactory factory; + +private final MapBundle, ListServiceRegistration registeredModelFactories; + +public ModelPackageBundleListener(BundleContext bundleContext, AdapterFactory factory) { +this.bundleContext = bundleContext; +this.factory = factory; +this.registeredModelFactories = new HashMapBundle, ListServiceRegistration(); +for (final Bundle bundle : this.bundleContext.getBundles()) { +if (bundle.getState() == Bundle.ACTIVE) { +addBundle(bundle); +} +} + +this.bundleContext.addBundleListener(this); +} + +@Override +public synchronized void bundleChanged(BundleEvent event) { +if (event.getType() == BundleEvent.STOPPED) { +removeBundle(event.getBundle()); +} else if (event.getType() == BundleEvent.STARTED) { +addBundle(event.getBundle()); +} +} + +public synchronized void unregisterAll() { +IteratorMap.EntryBundle, ListServiceRegistration it = registeredModelFactories.entrySet().iterator(); +while (it.hasNext()) { +for (ServiceRegistration reg : it.next().getValue()) { +reg.unregister(); +} +it.remove(); +} +} + +private void addBundle(final Bundle bundle) { +Dictionary?, ? headers = bundle.getHeaders(); +String packageList = PropertiesUtil.toString(headers.get(Sling-YAMF-Packages), null); +if (packageList != null) { +ListServiceRegistration regs = new ArrayListServiceRegistration(); + +packageList = StringUtils.deleteWhitespace(packageList); +String[] packages = packageList.split(,); +for (String singlePackage : packages) { +@SuppressWarnings(unchecked) +EnumerationURL classUrls = bundle.findEntries(/ + singlePackage.replace('.', '/'), *.class, +true); +while (classUrls.hasMoreElements()) { +
svn commit: r1553144 - in /sling/whiteboard/justin/yamf: org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/annotations/ org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/api/ o
Author: justin Date: Mon Dec 23 16:27:44 2013 New Revision: 1553144 URL: http://svn.apache.org/r1553144 Log: rename api package - annotations Added: sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/annotations/ sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/annotations/Default.java - copied, changed from r1553143, sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/api/Default.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/annotations/Filter.java - copied, changed from r1553143, sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/api/Filter.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/annotations/Model.java - copied, changed from r1553143, sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/api/Model.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/annotations/Optional.java - copied, changed from r1553143, sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/api/Optional.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/annotations/Projection.java - copied, changed from r1553143, sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/api/Projection.java Removed: sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/api/Default.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/api/Filter.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/api/Model.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/api/Optional.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/api/Projection.java Modified: sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/ModelPackageBundleListener.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/YamfAdapterFactory.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/injectors/OSGiServiceInjector.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/testmodels/classes/ArrayOSGiModel.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/testmodels/classes/BindingsModel.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/testmodels/classes/CollectionOSGiModel.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/testmodels/classes/DefaultStringModel.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/testmodels/classes/ListOSGiModel.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/testmodels/classes/ProjectionModel.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/testmodels/classes/ResourceModelWithRequiredField.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/testmodels/classes/SetOSGiModel.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/testmodels/classes/SimpleOSGiModel.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/testmodels/classes/SimplePropertyModel.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/testmodels/classes/SubClass.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/testmodels/interfaces/ResourceModelWithRequiredField.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/testmodels/interfaces/SimplePropertyModel.java Copied: sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/annotations/Default.java (from r1553143, sling/whiteboard/justin/yamf/org.apache.sling.yamf.api/src/main/java/org/apache/sling/yamf/api/Default.java) URL:
svn commit: r1553149 - in /sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor: ExecutionResult.java HealthCheckDescriptor.java HealthCheckResultCache.
Author: cziegeler Date: Mon Dec 23 16:59:19 2013 New Revision: 1553149 URL: http://svn.apache.org/r1553149 Log: SLING-3278 : Provide a HealthCheckExecutor service. Only use service.id as cache key, don't hold service reference Modified: sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/ExecutionResult.java sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/HealthCheckDescriptor.java sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/HealthCheckResultCache.java Modified: sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/ExecutionResult.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/ExecutionResult.java?rev=1553149r1=1553148r2=1553149view=diff == --- sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/ExecutionResult.java (original) +++ sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/ExecutionResult.java Mon Dec 23 16:59:19 2013 @@ -20,7 +20,6 @@ package org.apache.sling.hc.core.impl.ex import java.text.Collator; import java.util.Date; import java.util.Iterator; -import java.util.LinkedList; import java.util.List; import org.apache.sling.hc.api.HealthCheck; @@ -33,23 +32,27 @@ public class ExecutionResult implements private final HealthCheckResult resultFromHC; -private final HealthCheckDescriptor healthCheckDescriptor; +private final String name; +private final ListString tags; private final Date finishedAt; private final long elapsedTimeInMs; +private final long serviceId; /** Build a single-value Result * @param s if lower than OK, our status is set to OK */ ExecutionResult(final HealthCheckDescriptor healthCheckDescriptor, HealthCheckResult simpleResult, long elapsedTimeInMs) { -this.healthCheckDescriptor = healthCheckDescriptor; +this.name = healthCheckDescriptor.getName(); +this.tags = healthCheckDescriptor.getTags(); this.resultFromHC = simpleResult; this.finishedAt = new Date(); this.elapsedTimeInMs = elapsedTimeInMs; +this.serviceId = healthCheckDescriptor.getServiceId(); } /** * Shortcut constructor to created error result. - * + * * @param healthCheckDescriptor * @param status * @param errorMessage @@ -60,7 +63,7 @@ public class ExecutionResult implements /** * Shortcut constructor to created error result. - * + * * @param healthCheckDescriptor * @param status * @param errorMessage @@ -69,11 +72,13 @@ public class ExecutionResult implements this(healthCheckDescriptor, new Result(status, errorMessage), elapsedTime); } +@Override public boolean isOk() { return resultFromHC.isOk(); } +@Override public Result.Status getStatus() { return resultFromHC.getStatus(); } @@ -88,24 +93,27 @@ public class ExecutionResult implements return ExecutionResult [status= + getStatus() + , finishedAt= + finishedAt + , elapsedTimeInMs= + elapsedTimeInMs + ]; } +@Override public long getElapsedTimeInMs() { return elapsedTimeInMs; } -HealthCheckDescriptor getHealthCheckDescriptor() { -return healthCheckDescriptor; +Long getServiceId() { +return this.serviceId; } +@Override public String getHealthCheckName() { -return healthCheckDescriptor != null ? healthCheckDescriptor.getName() : toString(); +return this.name; } @Override public ListString getHealthCheckTags() { -return healthCheckDescriptor != null ? healthCheckDescriptor.getTags() : new LinkedListString(); +return this.tags; } +@Override public Date getFinishedAt() { return finishedAt; } Modified: sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/HealthCheckDescriptor.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/HealthCheckDescriptor.java?rev=1553149r1=1553148r2=1553149view=diff == --- sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/HealthCheckDescriptor.java (original) +++ sling/trunk/bundles/extensions/healthcheck/core/src/main/java/org/apache/sling/hc/core/impl/executor/HealthCheckDescriptor.java Mon Dec 23 16:59:19 2013 @@ -32,17 +32,18 @@ import
svn commit: r1553235 - in /sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl: pom.xml src/main/java/org/apache/sling/yamf/impl/ModelPackageBundleListener.java
Author: justin Date: Tue Dec 24 00:24:28 2013 New Revision: 1553235 URL: http://svn.apache.org/r1553235 Log: using bundle tracker instead of bundle listener Modified: sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/pom.xml sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/ModelPackageBundleListener.java Modified: sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/pom.xml URL: http://svn.apache.org/viewvc/sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/pom.xml?rev=1553235r1=1553234r2=1553235view=diff == --- sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/pom.xml (original) +++ sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/pom.xml Tue Dec 24 00:24:28 2013 @@ -45,7 +45,9 @@ extensionstrue/extensions configuration instructions -Embed-Dependency*;scope=compile/Embed-Dependency +Embed-Dependency +*;scope=compile, + org.osgi.compendium;inline=org/osgi/util/tracker/*/Embed-Dependency /instructions /configuration /plugin @@ -66,6 +68,7 @@ dependency groupIdorg.osgi/groupId artifactIdorg.osgi.compendium/artifactId +version4.2.0/version scopeprovided/scope /dependency dependency Modified: sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/ModelPackageBundleListener.java URL: http://svn.apache.org/viewvc/sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/ModelPackageBundleListener.java?rev=1553235r1=1553234r2=1553235view=diff == --- sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/ModelPackageBundleListener.java (original) +++ sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/ModelPackageBundleListener.java Tue Dec 24 00:24:28 2013 @@ -35,56 +35,35 @@ import org.osgi.framework.BundleContext; import org.osgi.framework.BundleEvent; import org.osgi.framework.BundleListener; import org.osgi.framework.ServiceRegistration; +import org.osgi.util.tracker.BundleTracker; +import org.osgi.util.tracker.BundleTrackerCustomizer; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public class ModelPackageBundleListener implements BundleListener { - +public class ModelPackageBundleListener implements BundleTrackerCustomizer { + private static final Logger log = LoggerFactory.getLogger(ModelPackageBundleListener.class); - -private final BundleContext bundleContext; -private final AdapterFactory factory; +private final BundleContext bundleContext; -private final MapBundle, ListServiceRegistration registeredModelFactories; +private final BundleTracker bundleTracker; +private final AdapterFactory factory; + public ModelPackageBundleListener(BundleContext bundleContext, AdapterFactory factory) { this.bundleContext = bundleContext; this.factory = factory; -this.registeredModelFactories = new HashMapBundle, ListServiceRegistration(); -for (final Bundle bundle : this.bundleContext.getBundles()) { -if (bundle.getState() == Bundle.ACTIVE) { -addBundle(bundle); -} -} - -this.bundleContext.addBundleListener(this); +this.bundleTracker = new BundleTracker(bundleContext, Bundle.ACTIVE, this); +this.bundleTracker.open(); } - + @Override -public synchronized void bundleChanged(BundleEvent event) { -if (event.getType() == BundleEvent.STOPPED) { -removeBundle(event.getBundle()); -} else if (event.getType() == BundleEvent.STARTED) { -addBundle(event.getBundle()); -} -} - -public synchronized void unregisterAll() { -IteratorMap.EntryBundle, ListServiceRegistration it = registeredModelFactories.entrySet().iterator(); -while (it.hasNext()) { -for (ServiceRegistration reg : it.next().getValue()) { -reg.unregister(); -} -it.remove(); -} -} - -private void addBundle(final Bundle bundle) { +public Object addingBundle(Bundle bundle, BundleEvent event) { +ListServiceRegistration regs = new ArrayListServiceRegistration(); + Dictionary?, ? headers = bundle.getHeaders(); String packageList = PropertiesUtil.toString(headers.get(Sling-YAMF-Packages), null); if (packageList != null) { -ListServiceRegistration regs = new ArrayListServiceRegistration();
svn commit: r1553233 - in /sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src: main/java/org/apache/sling/yamf/impl/ main/java/org/apache/sling/yamf/impl/injectors/ test/java/org/apache/sling
Author: justin Date: Tue Dec 24 00:24:22 2013 New Revision: 1553233 URL: http://svn.apache.org/r1553233 Log: add support for child resource injection as well as the ability to adapt an injection if necessary Added: sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/injectors/ChildResourceInjector.java - copied, changed from r1553145, sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/injectors/RequestAttributeInjector.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/testmodels/classes/ChildModel.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/testmodels/interfaces/ChildResourceModel.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/testmodels/interfaces/ChildValueMapModel.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/testmodels/interfaces/ParentModel.java Modified: sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/YamfAdapterFactory.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/injectors/OSGiServiceInjector.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/injectors/RequestAttributeInjector.java sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/impl/ResourceModelClassesTest.java Modified: sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/YamfAdapterFactory.java URL: http://svn.apache.org/viewvc/sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/YamfAdapterFactory.java?rev=1553233r1=1553232r2=1553233view=diff == --- sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/YamfAdapterFactory.java (original) +++ sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/YamfAdapterFactory.java Tue Dec 24 00:24:22 2013 @@ -44,6 +44,7 @@ import org.apache.felix.scr.annotations. import org.apache.felix.scr.annotations.Reference; import org.apache.felix.scr.annotations.ReferenceCardinality; import org.apache.felix.scr.annotations.ReferencePolicy; +import org.apache.sling.api.adapter.Adaptable; import org.apache.sling.api.adapter.AdapterFactory; import org.apache.sling.commons.osgi.ServiceUtil; import org.apache.sling.yamf.annotations.Default; @@ -445,6 +446,12 @@ public class YamfAdapterFactory implemen private boolean setField(Field field, Object createdObject, Object value) { if (value != null) { +if (!isAcceptableType(field.getClass(), value) value instanceof Adaptable) { +value = ((Adaptable)value).adaptTo(field.getClass()); +if (value == null) { +return false; +} +} boolean accessible = field.isAccessible(); try { if (!accessible) { @@ -466,7 +473,13 @@ public class YamfAdapterFactory implemen } private boolean setMethod(Method method, MapMethod, Object methods, Object value) { -if (value != null (isAcceptableType(method.getReturnType(), value))) { +if (value != null) { +if (!isAcceptableType(method.getReturnType(), value) value instanceof Adaptable) { +value = ((Adaptable)value).adaptTo(method.getReturnType()); +if (value == null) { +return false; +} +} methods.put(method, value); return true; } else { Copied: sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/injectors/ChildResourceInjector.java (from r1553145, sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/injectors/RequestAttributeInjector.java) URL: http://svn.apache.org/viewvc/sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/injectors/ChildResourceInjector.java?p2=sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/injectors/ChildResourceInjector.javap1=sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/injectors/RequestAttributeInjector.javar1=1553145r2=1553233rev=1553233view=diff == --- sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/injectors/RequestAttributeInjector.java (original) +++
[CONF] Apache Sling YAMF - Yet Another Model Factory
Justin Edelson edited the page: YAMF - Yet Another Model Factory Table of Contents Many Sling projects want to be able to create model objects - POJOs which are automatically mapped from Sling objects, typically resources, but also request objects. Sometimes these POJOs need OSGi services as well. ... Code Block language java @Model(adaptables=SlingHttpServletRequest.class) public interface MyModel { @Inject @Projection(resource) String getPropertyName(); } Annotation Reference @Model - declares a model class or interface @Inject - marks a field or method as injectable @Named - declare a name for the injection (otherwise, defaults based on field or method name). @Optional - marks a field or method injection as optional @Source - explictly tie an injected field or method to a particular injector (by name). Can also be on other annotations. @Filter - an OSGi service filter @PostConstruct - methods to call upon model option creation (only for model classes) @Projection - project a JavaBean property as the adaptable.
[CONF] Apache Sling YAMF - Yet Another Model Factory
Justin Edelson edited the page: YAMF - Yet Another Model Factory ... Value Map (valuemap) - adapt the adaptable to a ValueMap and retrive properties. OSGI Services (osgi-services) - lookup services based on class name (including List and Array support). Effectively ignores name. Script Bindings (script-bindings) - gets script bindings from request and looks up by name. Child Resources (child-resources) - gets child resources by name. Request Attributes (request-atttributes) - gets request attributes View Online Like View Changes Add Comment Stop watching space Manage Notifications This message was sent by Atlassian Confluence 5.0.3, Team Collaboration Software