Java Examples for javax.jcr.Node
The following java examples will help you to understand the usage of javax.jcr.Node. These source code samples are taken from different open source projects.
Example 1
| Project: nextreports-server-master File: JcrStorageDao.java View source code |
public Entity[] getEntityChildren(String path) throws NotFoundException {
checkPath(path);
Node node = getNode(path);
try {
if (!node.hasNodes()) {
return new Entity[0];
}
List<Entity> entities = new ArrayList<Entity>();
NodeIterator nodes = node.getNodes();
while (nodes.hasNext()) {
Entity entity = getEntity(nodes.nextNode());
if (entity != null) {
entities.add(entity);
}
}
return entities.toArray(new Entity[entities.size()]);
} catch (RepositoryException e) {
throw convertJcrAccessException(e);
}
}Example 2
| Project: Cream-master File: JcrMapper.java View source code |
public static <T> T create(String parentNodePath, T entity) {
try {
MD md = getMetadata(entity.getClass());
String entityName = jcrom.getName(entity);
if (entityName == null || entityName.equals("")) {
throw new JcrMappingException("The name of the entity being created is empty!");
}
if (parentNodePath == null || parentNodePath.equals("")) {
throw new JcrMappingException("The parent path of the entity being created is empty!");
}
Node parentNode;
Session session = getSession();
Node rootNode = session.getRootNode();
if (parentNodePath.equals("/")) {
// special case, add directly to the root node
parentNode = rootNode;
} else {
String relativePath = relativePath(parentNodePath);
if (rootNode.hasNode(relativePath)) {
parentNode = rootNode.getNode(relativePath);
} else {
// if not found create it
parentNode = rootNode.addNode(relativePath);
}
}
Node newNode = jcrom.addNode(parentNode, entity, md.mixinTypes);
session.save();
if (md.isVersionable) {
checkinRecursively(session.getWorkspace().getVersionManager(), newNode);
}
return entity;
} catch (RepositoryException e) {
throw new JcrMappingException("Could not create node", e);
}
}Example 3
| Project: magnolia-thymeleaf-renderer-master File: AbstractMockMagnoliaTest.java View source code |
@Before
public void setUp() throws Exception {
/** mock up magnolia */
node = mock(Node.class);
Session session = mock(Session.class);
Workspace workspace = mock(Workspace.class);
when(workspace.getName()).thenReturn("pages");
when(session.getWorkspace()).thenReturn(workspace);
when(session.hasPermission(any(), any())).thenReturn(true);
when(node.getSession()).thenReturn(session);
when(node.getPath()).thenReturn("/home");
NodeIterator nodeIterator = mock(NodeIterator.class);
when(nodeIterator.hasNext()).thenReturn(false);
when(node.getNodes()).thenReturn(nodeIterator);
HttpServletRequest request = new MockHttpServletRequest();
request.setAttribute(DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE, webApplicationContext);
HttpServletResponse response = new MockHttpServletResponse();
WebContext webCtx = mock(WebContext.class);
when(webCtx.getRequest()).thenReturn(request);
when(webCtx.getResponse()).thenReturn(response);
AggregationState state = mock(AggregationState.class);
when(state.getMainContentNode()).thenReturn(node);
// when(state.equals(state)).thenReturn(true);
when(webCtx.getAggregationState()).thenReturn(state);
AccessManager accessManager = mock(AccessManager.class);
when(accessManager.isGranted(anyString(), anyLong())).thenReturn(true);
when(webCtx.getAccessManager(anyString())).thenReturn(accessManager);
when(webCtx.getLocale()).thenReturn(Locale.ENGLISH);
MgnlContext.setInstance(webCtx);
config = mock(ServerConfiguration.class);
when(config.isAdmin()).thenReturn(true);
componentProvider = mock(ComponentProvider.class);
Components.setComponentProvider(componentProvider);
when(componentProvider.getComponent(ServerConfiguration.class)).thenReturn(config);
engine = mock(RenderingEngine.class);
when(componentProvider.getComponent(RenderingEngine.class)).thenReturn(engine);
Provider<AggregationState> provider = mock(Provider.class);
TemplatingFunctions templatingFunctions = new TemplatingFunctions(provider);
when(componentProvider.getComponent(TemplatingFunctions.class)).thenReturn(templatingFunctions);
I18nContentSupport i18nContentSupport = mock(I18nContentSupport.class);
when(i18nContentSupport.getDefaultLocale()).thenReturn(Locale.ENGLISH);
when(componentProvider.getComponent(I18nContentSupport.class)).thenReturn(i18nContentSupport);
RenderableVariationResolver variationResolver = mock(RenderableVariationResolver.class);
when(componentProvider.getComponent(RenderableVariationResolver.class)).thenReturn(variationResolver);
I18nizer i18nizer = mock(I18nizer.class);
when(componentProvider.getComponent(I18nizer.class)).thenReturn(i18nizer);
Components.pushProvider(componentProvider);
DefaultMessagesManager mgr = new DefaultMessagesManager();
when(componentProvider.getComponent(MessagesManager.class)).thenReturn(mgr);
when(componentProvider.getComponent(BeanMerger.class)).thenReturn(new ProxyBasedBeanMerger());
RenderContext.push();
RenderContext.get().setModel(new HashMap<>());
ServletContext servletContext = mock(ServletContext.class);
thymeEngine = new SpringTemplateEngine();
thymeEngine.addTemplateResolver(new ClassLoaderTemplateResolver());
thymeEngine.addDialect(new MagnoliaDialect());
renderer = new ThymeleafRenderer();
renderer.setApplicationContext(webApplicationContext);
renderer.setServletContext(servletContext);
renderer.setEngine(thymeEngine);
renderableDefinition = mock(RenderableDefinition.class);
renderingContext = mock(RenderingContext.class);
when(engine.getRenderingContext()).thenReturn(renderingContext);
AreaElement areaElement = new AreaElement(config, renderingContext, engine, variationResolver);
areaElement.setContent(node);
when(componentProvider.newInstance(eq(AreaElement.class), any())).thenReturn(areaElement);
stringWriter = new StringWriter();
AppendableWriter out = new AppendableWriter(stringWriter);
when(renderingContext.getAppendable()).thenReturn(out);
BlossomTemplateDefinition templateDefinition = mock(BlossomTemplateDefinition.class);
when(templateDefinition.getDialog()).thenReturn(null);
AreaDefinition areaDef = mock(AreaDefinition.class);
when(areaDef.getName()).thenReturn("Area");
when(areaDef.getEnabled()).thenReturn(true);
Map<String, AreaDefinition> areaMap = new HashMap<>();
areaMap.put("Area", areaDef);
when(templateDefinition.getAreas()).thenReturn(areaMap);
when(renderingContext.getRenderableDefinition()).thenReturn(templateDefinition);
when(i18nizer.decorate(templateDefinition)).thenReturn(templateDefinition);
}Example 4
| Project: ecms-develop-master File: UIDialogForm.java View source code |
public void releaseLock() throws Exception {
if (isKeepinglock()) {
Node currentNode = getNode();
if ((currentNode != null) && currentNode.isLocked()) {
try {
if (currentNode.holdsLock()) {
String lockToken = LockUtil.getLockTokenOfUser(currentNode);
if (lockToken != null) {
currentNode.getSession().addLockToken(LockUtil.getLockToken(currentNode));
}
currentNode.unlock();
currentNode.removeMixin(Utils.MIX_LOCKABLE);
currentNode.save();
//remove lock from Cache
LockUtil.removeLock(currentNode);
}
} catch (LockException le) {
if (LOG.isErrorEnabled()) {
LOG.error("Fails when unlock node that is editing", le);
}
}
}
}
setIsKeepinglock(false);
}Example 5
| Project: accesscontroltool-master File: DumpServiceImpl.java View source code |
private void createTransientDumpNode(String dump, Node rootNode) throws ItemExistsException, PathNotFoundException, NoSuchNodeTypeException, LockException, VersionException, ConstraintViolationException, RepositoryException, ValueFormatException { NodeIterator nodeIt = rootNode.getNodes(); // TreeSet used here since only this type offers the methods first() and // last() TreeSet<Node> dumpNodes = new TreeSet<Node>(new JcrCreatedComparator()); Node previousDumpNode = null; // get all dump nodes while (nodeIt.hasNext()) { Node currNode = nodeIt.nextNode(); if (currNode.getName().startsWith(DUMP_NODE_PREFIX)) { dumpNodes.add(currNode); } } // try to get previous dump node if (!dumpNodes.isEmpty()) { previousDumpNode = dumpNodes.first(); } // is limit of dump nodes to save reached? if (dumpNodes.size() > (nrOfSavedDumps - 1)) { Node oldestDumpNode = dumpNodes.last(); oldestDumpNode.remove(); } Node dumpNode = getNewDumpNode(dump, rootNode); // order the newest dump node as first child node of ac root node if (previousDumpNode != null) { rootNode.orderBefore(dumpNode.getName(), previousDumpNode.getName()); } }
Example 6
| Project: example-projects-master File: ExoJcrEx01.java View source code |
public static void main(String[] args) throws Exception {
RepositoryImpl repository = setup();
// Add some nodes and properties
{
CredentialsImpl credentials = new CredentialsImpl("root", "exo".toCharArray());
SessionImpl session = (SessionImpl) repository.login(credentials, "production");
Node rootNode = session.getRootNode();
// clean up before test
if (rootNode.hasNode("training")) {
rootNode.getNode("training").remove();
}
Node training = rootNode.addNode("training", "nt:unstructured");
Node day1 = training.addNode("Day-1");
day1.setProperty("name", "JCR concepts, architecture and benefits");
Node day2 = training.addNode("Day-2");
day2.setProperty("name", "JCR for developers");
session.save();
session.logout();
}
// Read nodes and properties
{
CredentialsImpl credentials = new CredentialsImpl("root", "exo".toCharArray());
SessionImpl session = (SessionImpl) repository.login(credentials, "production");
Node rootNode = session.getRootNode();
Node training = rootNode.getNode("training");
NodeIterator nodeIterator = training.getNodes();
while (nodeIterator.hasNext()) {
Node node = (Node) nodeIterator.next();
System.out.println(node.getName() + ":" + node.getProperty("name").getString());
}
session.logout();
}
}Example 7
| Project: Hippo-CMS-Konakart-master File: AbstractProductFactory.java View source code |
@Override
public void add(String storeId, Product product, LanguageIf language, String baseImagePath) throws Exception {
if (!shouldAddProduct(product, language)) {
log.info("The product " + product.getName() + " will not be added to Hippo");
return;
}
KKCndConstants.PRODUCT_TYPE product_type = KKCndConstants.PRODUCT_TYPE.findByType(product.getType());
String productDocType = HippoModuleConfig.getConfig().getClientEngineConfig().getProductNodeTypeMapping().get(product_type.getNamespace());
if (StringUtils.isEmpty(productDocType)) {
log.error("No product namespace has been associated for the product namespace : " + product_type.getNamespace() + ". Please set the it within the pluginconfig located " + "at " + HippoModuleConfig.KONAKART_PRODUCT_TYPE_NAMESPACES_PATH);
return;
}
String absPath = contentRoot + "/" + Codecs.encodeNode(productFolder) + "/" + createProductNodeRoot(product);
// Create or retrieve the root folder
Node rootFolder;
// Does not exist - create it.
if (!session.getRootNode().hasNode(StringUtils.removeStart(absPath, "/"))) {
rootFolder = nodeHelper.createMissingFolders(absPath);
} else {
rootFolder = session.getNode(absPath);
}
// Create or retrieve the product node
Node productNode = nodeHelper.createOrRetrieveDocument(rootFolder, product, productDocType, session.getUserID(), getLanguageToSetToHippoDoc(language));
boolean addNewProduct = !productNode.hasNode(KKCndConstants.PRODUCT_ID);
boolean hasCheckout = false;
// Check if the node is check-in
if (!productNode.isCheckedOut()) {
nodeHelper.checkout(productNode.getPath());
hasCheckout = true;
}
// Set the state of the product
String state = (product.getStatus() == 0) ? NodeHelper.UNPUBLISHED_STATE : NodeHelper.PUBLISHED_STATE;
nodeHelper.updateState(productNode, state);
// Update the node
updateProperties(storeId, product, productNode, language);
// Create the konakart ref product
createOrUpdateKonakartProduct(product, productNode);
// Upload images
uploadImages(language, productNode, baseImagePath, product);
// Save the session
productNode.getSession().save();
// Save the node
if (hasCheckout) {
nodeHelper.checkin(productNode.getPath());
}
if (addNewProduct) {
if (log.isDebugEnabled()) {
log.debug("The konakart product with id : {} has been added", product.getId());
}
} else {
if (log.isDebugEnabled()) {
log.debug("The konakart product with id : {} has been updated", product.getId());
}
}
}Example 8
| Project: HippoWeblog-master File: ContentRewriterImpl.java View source code |
/**
* Internal method that rewrites all links, optionally makes links in external form or adds a rel="external" to external links
* @param html String of the HTML
* @param node {@link Node} that contains the HTML
* @param requestContext {@link HstRequestContext}
* @param externalizeLinks boolean that defines if all links should be rewritten to external form, e.g. http://example.com/link.html
* @return rewritten String of the HTML
*/
private String rewriteContent(String html, Node node, HstRequestContext requestContext, boolean externalizeLinks) {
// only create if really needed
StringBuilder sb = null;
// strip off html & body tag
String innerHTML = SimpleHtmlExtractor.getInnerHtml(html, "body", false);
if (innerHTML == null) {
innerHTML = html;
}
innerHTML = innerHTML.trim().replaceAll("facetselect=\".+?\"", "");
int globalOffset = 0;
while (innerHTML.indexOf(LINK_TAG, globalOffset) > -1) {
int offset = innerHTML.indexOf(LINK_TAG, globalOffset);
int hrefIndexStart = innerHTML.indexOf(HREF_ATTR_NAME, offset);
if (hrefIndexStart == -1) {
break;
}
if (sb == null) {
sb = new StringBuilder(html.length());
}
hrefIndexStart += HREF_ATTR_NAME.length();
offset = hrefIndexStart;
int endTag = innerHTML.indexOf(END_TAG, offset);
boolean appended = false;
if (hrefIndexStart < endTag) {
int hrefIndexEnd = innerHTML.indexOf(ATTR_END, hrefIndexStart);
if (hrefIndexEnd > hrefIndexStart) {
String documentPath = innerHTML.substring(hrefIndexStart, hrefIndexEnd);
offset = endTag;
sb.append(innerHTML.substring(globalOffset, hrefIndexStart));
if (isExternal(documentPath)) {
sb.append(documentPath);
} else {
HstLink href = getDocumentLink(documentPath, node, requestContext, (Mount) null);
if (href != null && href.getPath() != null) {
sb.append(href.toUrlForm(requestContext, externalizeLinks));
} else {
log.warn("Skip href because url is null");
}
}
sb.append(innerHTML.substring(hrefIndexEnd, endTag));
if (!externalizeLinks && isExternal(documentPath)) {
sb.append(REL_EXTERNAL);
}
appended = true;
}
}
if (!appended && offset > globalOffset) {
sb.append(innerHTML.substring(globalOffset, offset));
}
globalOffset = offset;
}
if (sb != null) {
sb.append(innerHTML.substring(globalOffset, innerHTML.length()));
innerHTML = String.valueOf(sb);
sb = null;
}
globalOffset = 0;
while (innerHTML.indexOf(IMG_TAG, globalOffset) > -1) {
int offset = innerHTML.indexOf(IMG_TAG, globalOffset);
int srcIndexStart = innerHTML.indexOf(SRC_ATTR_NAME, offset);
if (srcIndexStart == -1) {
break;
}
if (sb == null) {
sb = new StringBuilder(innerHTML.length());
}
srcIndexStart += SRC_ATTR_NAME.length();
offset = srcIndexStart;
int endTag = innerHTML.indexOf(END_TAG, offset);
boolean appended = false;
if (srcIndexStart < endTag) {
int srcIndexEnd = innerHTML.indexOf(ATTR_END, srcIndexStart);
if (srcIndexEnd > srcIndexStart) {
String srcPath = innerHTML.substring(srcIndexStart, srcIndexEnd);
offset = endTag;
sb.append(innerHTML.substring(globalOffset, srcIndexStart));
if (isExternal(srcPath)) {
sb.append(srcPath);
} else {
HstLink binaryLink = getBinaryLink(srcPath, node, requestContext, (Mount) null);
if (binaryLink != null && binaryLink.getPath() != null) {
sb.append(binaryLink.toUrlForm(requestContext, externalizeLinks));
} else {
log.warn("Could not translate image src. Skip src");
}
}
sb.append(innerHTML.substring(srcIndexEnd, endTag));
appended = true;
}
}
if (!appended && offset > globalOffset) {
sb.append(innerHTML.substring(globalOffset, offset));
}
globalOffset = offset;
}
if (sb == null) {
return innerHTML;
} else {
sb.append(innerHTML.substring(globalOffset, innerHTML.length()));
return sb.toString();
}
}Example 9
| Project: jackalope-master File: PageManagerImpl.java View source code |
@Override
public Page create(String parentPath, String pageName, String template, String title, boolean autoSave) throws WCMException {
if (parentPath == null)
throw new IllegalArgumentException("Parent path can't be null.");
if (pageName == null && title == null)
throw new IllegalArgumentException("Page and title name can't be both null.");
if (template != null && !template.isEmpty())
throw new UnsupportedOperationException("Templates are not supported.");
try {
Node parent = JcrUtils.getOrCreateByPath(parentPath, JcrConstants.NT_UNSTRUCTURED, session);
if (pageName == null || pageName.isEmpty())
pageName = JcrUtil.createValidName(title, JcrUtil.HYPHEN_LABEL_CHAR_MAPPING);
if (!JcrUtil.isValidName(pageName))
throw new IllegalArgumentException("Illegal page name: " + pageName);
Node pageNode = parent.addNode(pageName, JcrConstants.CQ_PAGE);
Node contentNode = pageNode.addNode("jcr:content", JcrConstants.CQ_PAGE_CONTENT);
if (title != null && !title.isEmpty())
contentNode.setProperty("jcr:title", title);
if (autoSave) {
session.save();
}
return getPage(pageNode.getPath());
} catch (RepositoryException e) {
throw new WCMException("Unable to create page", e);
}
}Example 10
| Project: spring-modules-master File: JcrTemplateTests.java View source code |
/*
* Test method for 'org.springmodules.jcr.JcrTemplate.getNodeByUUID(String)'
*/
public void testGetNodeByUUID() throws RepositoryException {
MockControl resultMock = MockControl.createControl(Node.class);
Node result = (Node) resultMock.getMock();
String uuid = "uuid";
sessionControl.expectAndReturn(session.getNodeByUUID(uuid), result);
sessionControl.replay();
sfControl.replay();
assertSame(jt.getNodeByUUID(uuid), result);
}Example 11
| Project: jackrabbit-master File: UserImporterTest.java View source code |
public void testImportWithIntermediatePath() throws IOException, RepositoryException, SAXException, NotExecutableException {
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<sv:node sv:name=\"some\" xmlns:mix=\"http://www.jcp.org/jcr/mix/1.0\" xmlns:nt=\"http://www.jcp.org/jcr/nt/1.0\" xmlns:fn_old=\"http://www.w3.org/2004/10/xpath-functions\" xmlns:fn=\"http://www.w3.org/2005/xpath-functions\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:sv=\"http://www.jcp.org/jcr/sv/1.0\" xmlns:rep=\"internal\" xmlns:jcr=\"http://www.jcp.org/jcr/1.0\">" + " <sv:property sv:name=\"jcr:primaryType\" sv:type=\"Name\"><sv:value>rep:AuthorizableFolder</sv:value></sv:property>" + " <sv:property sv:name=\"jcr:uuid\" sv:type=\"String\"><sv:value>d5433be9-68d0-4fba-bf96-efc29f461993</sv:value></sv:property>" + "<sv:node sv:name=\"intermediate\">" + " <sv:property sv:name=\"jcr:primaryType\" sv:type=\"Name\"><sv:value>rep:AuthorizableFolder</sv:value></sv:property>" + " <sv:property sv:name=\"jcr:uuid\" sv:type=\"String\"><sv:value>d87354a4-037e-4756-a8fb-deb2eb7c5149</sv:value></sv:property>" + "<sv:node sv:name=\"path\">" + " <sv:property sv:name=\"jcr:primaryType\" sv:type=\"Name\"><sv:value>rep:AuthorizableFolder</sv:value></sv:property>" + " <sv:property sv:name=\"jcr:uuid\" sv:type=\"String\"><sv:value>24263272-b789-4568-957a-3bcaf99dbab3</sv:value></sv:property>" + "<sv:node sv:name=\"t3\">" + " <sv:property sv:name=\"jcr:primaryType\" sv:type=\"Name\"><sv:value>rep:User</sv:value></sv:property>" + " <sv:property sv:name=\"jcr:uuid\" sv:type=\"String\"><sv:value>0b8854ad-38f0-36c6-9807-928d28195609</sv:value></sv:property>" + " <sv:property sv:name=\"rep:password\" sv:type=\"String\"><sv:value>{sha1}4358694eeb098c6708ae914a10562ce722bbbc34</sv:value></sv:property>" + " <sv:property sv:name=\"rep:principalName\" sv:type=\"String\"><sv:value>t3</sv:value></sv:property>" + "</sv:node>" + "</sv:node>" + "</sv:node>" + "</sv:node>";
NodeImpl target = (NodeImpl) sImpl.getNode(umgr.getUsersPath());
try {
doImport(target, xml);
assertTrue(target.isModified());
assertTrue(sImpl.hasPendingChanges());
Authorizable newUser = umgr.getAuthorizable("t3");
assertNotNull(newUser);
assertFalse(newUser.isGroup());
assertEquals("t3", newUser.getPrincipal().getName());
assertEquals("t3", newUser.getID());
NodeImpl n = ((UserImpl) newUser).getNode();
assertTrue(n.isNew());
Node parent = n.getParent();
assertFalse(n.isSame(target));
assertTrue(((NodeImpl) parent).isNodeType(UserConstants.NT_REP_AUTHORIZABLE_FOLDER));
assertFalse(parent.getDefinition().isProtected());
assertTrue(target.hasNode("some"));
assertTrue(target.hasNode("some/intermediate/path"));
} finally {
sImpl.refresh(false);
}
}Example 12
| Project: jcr-master File: TestImport.java View source code |
/**
* Test for http://jira.exoplatform.org/browse/JCR-872
*
* @throws Exception
*/
public void testAclImportDocumentView() throws Exception {
AccessManager accessManager = ((SessionImpl) root.getSession()).getAccessManager();
NodeImpl testRoot = (NodeImpl) root.addNode("TestRoot", "exo:article");
testRoot.addMixin("exo:owneable");
testRoot.addMixin("exo:privilegeable");
testRoot.setProperty("exo:title", "test");
session.save();
assertTrue(accessManager.hasPermission(testRoot.getACL(), PermissionType.SET_PROPERTY, new Identity("exo")));
testRoot.setPermission(testRoot.getSession().getUserID(), PermissionType.ALL);
testRoot.setPermission("exo", new String[] { PermissionType.SET_PROPERTY });
testRoot.removePermission(IdentityConstants.ANY);
session.save();
assertTrue(accessManager.hasPermission(testRoot.getACL(), PermissionType.SET_PROPERTY, new Identity("exo")));
assertFalse(accessManager.hasPermission(testRoot.getACL(), PermissionType.READ, new Identity("exo")));
File tmp = File.createTempFile("testAclImpormt", "tmp");
tmp.deleteOnExit();
serialize(testRoot, false, true, tmp);
testRoot.remove();
session.save();
NodeImpl importRoot = (NodeImpl) root.addNode("ImportRoot");
deserialize(importRoot, XmlSaveType.SESSION, true, ImportUUIDBehavior.IMPORT_UUID_COLLISION_REMOVE_EXISTING, new BufferedInputStream(new FileInputStream(tmp)));
session.save();
Node n1 = importRoot.getNode("TestRoot");
assertTrue("Wrong ACL", accessManager.hasPermission(((NodeImpl) n1).getACL(), PermissionType.SET_PROPERTY, new Identity("exo")));
assertFalse("Wrong ACL", accessManager.hasPermission(((NodeImpl) n1).getACL(), PermissionType.READ, new Identity("exo")));
importRoot.remove();
session.save();
}Example 13
| Project: sling-master File: ResourceResolverWithVanityBloomFilterTest.java View source code |
@Before
public synchronized void setup() throws Exception {
closeResolver();
resResolver = resourceResolverFactory.getAdministrativeResourceResolver(null);
setMaxCachedVanityPathEntries(0);
cleanupResolverFactory = resourceResolverFactory;
session = resResolver.adaptTo(Session.class);
mappingsFacade = new MappingsFacade(eventsCounter);
// Do the mappings setup only once, and clean it up
// after all tests
rootNode = maybeCreateNode(session.getRootNode(), "content", "nt:unstructured");
rootPath = rootNode.getPath();
session.save();
if (toDelete.isEmpty()) {
final Node mapRoot = maybeCreateNode(session.getRootNode(), "etc", "nt:folder");
final Node map = maybeCreateNode(mapRoot, "map", "sling:Mapping");
final Node http = maybeCreateNode(map, "http", "sling:Mapping");
maybeCreateNode(http, "localhost.80", "sling:Mapping");
final Node https = maybeCreateNode(map, "https", "sling:Mapping");
maybeCreateNode(https, "localhost.443", "sling:Mapping");
toDelete.add(map.getPath());
toDelete.add(rootNode.getPath());
}
mapRoot = session.getNode("/etc");
session.save();
// define a vanity path for the rootPath
vanity = new String[] { "testVanity", "testV", "testVanityToUpdate" };
rootNode.setProperty("sling:vanityPath", vanity);
rootNode.addMixin("sling:VanityPath");
saveMappings(session);
}Example 14
| Project: Priha-master File: VersionTest.java View source code |
/**
* Tests if
* <ul> <li><code>Version.setProperty(String, String[])</code></li>
* <li><code>Version.setProperty(String, String[], int)</code></li>
* <li><code>Version.setProperty(String, Value[])</code></li>
* <li><code>Version.setProperty(String, Value[], int)</code></li>
* <li><code>Version.setProperty(String, boolean)</code></li>
* <li><code>Version.setProperty(String, double)</code></li>
* <li><code>Version.setProperty(String, InputStream)</code></li>
* <li><code>Version.setProperty(String, String)</code></li>
* <li><code>Version.setProperty(String, Calendar)</code></li>
* <li><code>Version.setProperty(String, Node)</code></li>
* <li><code>Version.setProperty(String, Value)</code></li>
* <li><code>Version.setProperty(String, long)</code></li>
* </ul> all throw a
* {@link javax.jcr.nodetype.ConstraintViolationException}
*/
public void testSetProperty() throws Exception {
// create Value[] object
Value[] vArray = new Value[3];
vArray[0] = superuser.getValueFactory().createValue("abc");
vArray[1] = superuser.getValueFactory().createValue("xyz");
vArray[2] = superuser.getValueFactory().createValue("123");
// create String array
String[] s = { "abc", "xyz", "123" };
try {
version.setProperty(propertyName1, s);
version.save();
fail("Version should be read-only: Version.setProperty(String,String[]) did not throw a ConstraintViolationException");
} catch (ConstraintViolationException success) {
}
try {
version.setProperty(propertyName1, s, PropertyType.STRING);
version.save();
fail("Version should be read-only: Version.setProperty(String,String[],int) did not throw a ConstraintViolationException");
} catch (ConstraintViolationException success) {
}
try {
version.setProperty(propertyName1, vArray);
version.save();
fail("Version should be read-only: Version.setProperty(String,Value[]) did not throw a ConstraintViolationException");
} catch (ConstraintViolationException success) {
}
try {
version.setProperty(propertyName1, vArray, PropertyType.STRING);
version.save();
fail("Version should be read-only: Version.setProperty(String,Value[],int]) did not throw a ConstraintViolationException");
} catch (ConstraintViolationException success) {
}
try {
version.setProperty(propertyName1, true);
version.save();
fail("Version should be read-only: Version.setProperty(String,boolean) did not throw a ConstraintViolationException");
} catch (ConstraintViolationException success) {
}
try {
version.setProperty(propertyName1, 123);
version.save();
fail("Version should be read-only: Version.setProperty(String,double) did not throw a ConstraintViolationException");
} catch (ConstraintViolationException success) {
}
try {
byte[] bytes = { 73, 26, 32, -36, 40, -43, -124 };
InputStream inpStream = new ByteArrayInputStream(bytes);
version.setProperty(propertyName1, inpStream);
version.save();
fail("Version should be read-only: Version.setProperty(String,InputStream) did not throw a ConstraintViolationException");
} catch (ConstraintViolationException success) {
}
try {
version.setProperty(propertyName1, "abc");
version.save();
fail("Version should be read-only: Version.setProperty(String,String) did not throw a ConstraintViolationException");
} catch (ConstraintViolationException success) {
}
try {
Calendar c = new GregorianCalendar(1945, 1, 6, 16, 20, 0);
version.setProperty(propertyName1, c);
version.save();
fail("Version should be read-only: Version.setProperty(String,Calendar) did not throw a ConstraintViolationException");
} catch (ConstraintViolationException success) {
}
try {
version.setProperty(propertyName1, testRootNode);
version.save();
fail("Version should be read-only: Version.setProperty(String,Node) did not throw a ConstraintViolationException");
} catch (ConstraintViolationException success) {
}
try {
Value v = superuser.getValueFactory().createValue("abc");
version.setProperty(propertyName1, v);
version.save();
fail("Version should be read-only: Version.setProperty(String,Value) did not throw a ConstraintViolationException");
} catch (ConstraintViolationException success) {
}
try {
version.setProperty(propertyName1, -2147483650L);
version.save();
fail("Version should be read-only: Version.setProperty(String,long) did not throw a ConstraintViolationException");
} catch (ConstraintViolationException success) {
}
}Example 15
| Project: terye-master File: RestoreTest.java View source code |
/**
* VersionException expected on Node.restore(Version, boolean) if the
* specified version is not part of this node's version history.
*
* @throws RepositoryException
*/
public void testRestoreInvalidVersion() throws RepositoryException {
Version vNode2 = versionableNode2.checkin();
try {
versionableNode.restore(vNode2, true);
fail("VersionException expected on Node.restore(Version, boolean) if the specified version is not part of this node's version history.");
} catch (VersionException e) {
}
}Example 16
| Project: 2014-sling-rookie-session-master File: JcrReadSample.java View source code |
String readJcrContent(Session session) throws RepositoryException {
// get node directly
Node day1 = session.getNode("/content/adaptto/2013/day1");
// get first child node
Node firstTalk = day1.getNodes().nextNode();
// read property values
String title = firstTalk.getProperty("jcr:title").getString();
long duration = firstTalk.getProperty("durationMin").getLong();
// read multi-valued property
Value[] tagValues = firstTalk.getProperty("tags").getValues();
String[] tags = new String[tagValues.length];
for (int i = 0; i < tagValues.length; i++) {
tags[i] = tagValues[i].getString();
}
return "First talk: " + title + " (" + duration + " min)\n" + "Tags: " + Arrays.toString(tags) + "\n" + "Path: " + firstTalk.getPath();
}Example 17
| Project: acs-aem-commons-master File: WorkflowInstanceRemoverImpl.java View source code |
/**
* {@inheritDoc}
*/
public int removeWorkflowInstances(final ResourceResolver resourceResolver, final Collection<String> modelIds, final Collection<String> statuses, final Collection<Pattern> payloads, final Calendar olderThan, final int batchSize, final int maxDurationInMins) throws PersistenceException, WorkflowRemovalException, InterruptedException, WorkflowRemovalForceQuitException {
final long start = System.currentTimeMillis();
long end = -1;
int count = 0;
int checkedCount = 0;
int workflowRemovedCount = 0;
if (maxDurationInMins > 0) {
// Max duration has been requested (greater than 0)
// Convert minutes to milliseconds
long maxDurationInMs = maxDurationInMins * MS_IN_ONE_MINUTE;
// Compute the end time
end = start + maxDurationInMs;
}
try {
this.start(resourceResolver);
final List<Resource> containerFolders = this.getWorkflowInstanceFolders(resourceResolver);
for (Resource containerFolder : containerFolders) {
log.debug("Checking [ {} ] for workflow instances to remove", containerFolder.getPath());
final Collection<Resource> sortedFolders = this.getSortedAndFilteredFolders(containerFolder);
for (final Resource folder : sortedFolders) {
int remaining = 0;
for (final Resource instance : folder.getChildren()) {
if (this.forceQuit.get()) {
throw new WorkflowRemovalForceQuitException();
} else if (end > 0 && System.currentTimeMillis() >= end) {
throw new WorkflowRemovalMaxDurationExceededException();
}
final ValueMap properties = instance.getValueMap();
if (!StringUtils.equals(NT_CQ_WORKFLOW, properties.get(JcrConstants.JCR_PRIMARYTYPE, String.class))) {
// Only process cq:Workflow's
remaining++;
continue;
}
checkedCount++;
final String status = getStatus(instance);
final String model = properties.get(PN_MODEL_ID, String.class);
final Calendar startTime = properties.get(PN_STARTED_AT, Calendar.class);
final String payload = properties.get(PAYLOAD_PATH, String.class);
if (StringUtils.isBlank(payload)) {
log.warn("Unable to find payload for Workflow instance [ {} ]", instance.getPath());
remaining++;
continue;
} else if (CollectionUtils.isNotEmpty(statuses) && !statuses.contains(status)) {
log.trace("Workflow instance [ {} ] has non-matching status of [ {} ]", instance.getPath(), status);
remaining++;
continue;
} else if (CollectionUtils.isNotEmpty(modelIds) && !modelIds.contains(model)) {
log.trace("Workflow instance [ {} ] has non-matching model of [ {} ]", instance.getPath(), model);
remaining++;
continue;
} else if (olderThan != null && startTime != null && startTime.before(olderThan)) {
log.trace("Workflow instance [ {} ] has non-matching start time of [ {} ]", instance.getPath(), startTime);
remaining++;
continue;
} else {
if (CollectionUtils.isNotEmpty(payloads)) {
// Only evaluate payload patterns if they are provided
boolean match = false;
if (StringUtils.isNotEmpty(payload)) {
for (final Pattern pattern : payloads) {
if (payload.matches(pattern.pattern())) {
// payload matches a pattern
match = true;
break;
}
}
if (!match) {
// Not a match; skip to next workflow instance
log.trace("Workflow instance [ {} ] has non-matching payload path [ {} ]", instance.getPath(), payload);
remaining++;
continue;
}
}
}
try {
instance.adaptTo(Node.class).remove();
log.debug("Removed workflow instance at [ {} ]", instance.getPath());
workflowRemovedCount++;
count++;
} catch (RepositoryException e) {
log.error("Could not remove workflow instance at [ {} ]. Continuing...", instance.getPath(), e);
}
if (count % batchSize == 0) {
this.batchComplete(resourceResolver, checkedCount, workflowRemovedCount);
log.info("Removed a running total of [ {} ] workflow instances", count);
}
}
}
if (remaining == 0 && isWorkflowDatedFolder(folder) && !StringUtils.startsWith(folder.getName(), new SimpleDateFormat(WORKFLOW_FOLDER_FORMAT).format(new Date()))) {
// MUST match the YYYY-MM-DD(.*) pattern; do not try to remove root folders
try {
folder.adaptTo(Node.class).remove();
log.debug("Removed empty workflow folder node [ {} ]", folder.getPath());
// Incrementing only count to trigger batch save and not total since is not a WF
count++;
} catch (RepositoryException e) {
log.error("Could not remove workflow folder at [ {} ]", folder.getPath(), e);
}
}
}
// Save final batch if needed, and update tracking nodes
this.complete(resourceResolver, checkedCount, workflowRemovedCount);
}
} catch (PersistenceException e) {
this.forceQuit.set(false);
log.error("Error persisting changes with Workflow Removal", e);
this.error(resourceResolver);
throw e;
} catch (WorkflowRemovalException e) {
this.forceQuit.set(false);
log.error("Error with Workflow Removal", e);
this.error(resourceResolver);
throw e;
} catch (InterruptedException e) {
this.forceQuit.set(false);
log.error("Errors in persistence retries during Workflow Removal", e);
this.error(resourceResolver);
throw e;
} catch (WorkflowRemovalForceQuitException e) {
this.forceQuit.set(false);
log.warn("Workflow removal was force quit. The removal state is unknown.");
this.forceQuit(resourceResolver);
throw e;
} catch (WorkflowRemovalMaxDurationExceededException e) {
log.warn("Workflow removal exceeded max duration of [ {} ] minutes. Final removal commit initiating...", maxDurationInMins);
this.complete(resourceResolver, checkedCount, count);
}
if (log.isInfoEnabled()) {
log.info("Workflow Removal Process Finished! " + "Removed a total of [ {} ] workflow instances in [ {} ] ms", count, System.currentTimeMillis() - start);
}
return count;
}Example 18
| Project: bricket-master File: MultiboxPanel.java View source code |
private List<ImageObject> createImageList(MultiboxConfig conf) {
Reference ref = conf.getReference();
BrixNode dataNode = ref.getNodeModel().getObject();
// Erwartet wird ein Folder Namens thumb
// DataNode enthält die Layoutbilder, thumbs die gleichnamigen
// Thumbnails
// Für *.flv Dateien befindet sich in thumbs jeweils eine *.png Datei
List<String> slides = new ArrayList<String>();
List<String> thumbs = new ArrayList<String>();
Properties mbProperties = new Properties();
for (JcrNodeIterator iterator = dataNode.getNodes(); iterator.hasNext(); ) {
BrixNode node = new BrixNode((Node) iterator.next(), dataNode.getSession());
if (node.getPath().endsWith("/mb.properties")) {
try {
mbProperties.load(node.getNode(Property.JCR_CONTENT).getProperty("jcr:data").getBinary().getStream());
} catch (RepositoryException e) {
log.error("error retrieving properties from jcr.", e);
} catch (IOException e) {
log.error("error creating properties.", e);
}
} else if (node.getPath().endsWith("/thumb")) {
for (JcrNodeIterator subit = node.getNodes(); subit.hasNext(); ) {
BrixNode thumb = new BrixNode((Node) subit.next(), dataNode.getSession());
final String url = ((BricketApplication) getApplication()).getBrixLinkUrl(thumb, getRequestCycle());
thumbs.add(url);
}
} else {
final String url = ((BricketApplication) getApplication()).getBrixLinkUrl(node, getRequestCycle());
slides.add(url);
}
}
List<ImageObject> res = new ArrayList<ImageObject>();
for (String slide : slides) {
if (slide != null) {
String title = slide.substring(slide.lastIndexOf('/') + 1);
int order = Integer.MAX_VALUE;
try {
order = Integer.valueOf(mbProperties.getProperty(title + ".order"));
} catch (NumberFormatException nfe) {
log.error("invalid order value for: " + slide);
}
res.add(new ImageObject(slide, findThumb(slide, thumbs), title, mbProperties.getProperty(title + ".sub"), mbProperties.getProperty(title + ".desc"), order));
}
}
Collections.sort(res, new ImageObjectOrderComparator());
return res;
}Example 19
| Project: brix-cms-master File: NodeWrapper.java View source code |
public static JcrNode wrap(Node delegate, JcrSession session) {
if (delegate == null) {
return null;
} else {
Behavior behavior = session.getBehavior();
if (behavior != null) {
JcrNode node = behavior.wrap(delegate, session);
if (node != null) {
return node;
}
}
return new NodeWrapper(delegate, session);
}
}Example 20
| Project: brix-cms-plugins-master File: ItemFilter.java View source code |
@Override
public boolean isFilteredItem(Item item) {
try {
if (item instanceof Node) {
Node node = (Node) item;
if (node.isNodeType(BrixNode.JCR_MIXIN_BRIX_HIDDEN)) {
return true;
}
} else {
String name = item.getName();
if (name.startsWith("brix:")) {
return true;
}
}
} catch (RepositoryException e) {
return true;
}
return super.isFilteredItem(item);
}Example 21
| Project: chromattic-master File: LinkManagerTestCase.java View source code |
public void testAdd() throws Exception {
Session session = login();
AbstractLinkManager mgr = createLinkManager(session);
Node root = session.getRootNode();
Node a = root.addNode("a5");
a.addMixin("mix:referenceable");
Node b = root.addNode("b5");
b.addMixin("mix:referenceable");
//
assertNull(mgr.setReferenced(b, "ref", a));
assertEquals(b, mgr.getReferents(a, "ref"));
//
session.save();
mgr = createLinkManager(session);
assertEquals(b, mgr.getReferents(a, "ref"));
}Example 22
| Project: etk-component-master File: DomainSessionImpl.java View source code |
protected void _setLocalName(EntityContext ctx, String localName) throws RepositoryException {
if (ctx == null) {
throw new NullPointerException();
}
//
switch(ctx.getStatus()) {
case TRANSIENT:
((TransientEntityContextState) ctx.state).setLocalName(localName);
break;
case PERSISTENT:
Node parentNode = ctx.getNode().getParent();
String name = ctx.getNode().getName();
int index = name.indexOf(':');
String prefix = index == -1 ? null : name.substring(0, index);
_move(ThrowableFactory.ISE, ctx, parentNode, prefix, localName);
break;
default:
throw new IllegalStateException("Removed node cannot have its name updated");
}
}Example 23
| Project: forum-master File: JCRDataStorage.java View source code |
private Node getNodeAt(SessionProvider sProvider, String relPath) throws Exception {
if (relPath.indexOf(CommonUtils.SLASH) == 0) {
relPath = relPath.substring(1);
} else if (relPath.indexOf(Utils.CATEGORY) == 0) {
relPath = dataLocator.getForumCategoriesLocation() + CommonUtils.SLASH + relPath;
}
return sessionManager.getSession(sProvider).getRootNode().getNode(relPath);
}Example 24
| Project: gatein-mop-master File: NameEncodingTestCase.java View source code |
public void testEncodeSite() throws Exception {
ModelImpl model = pomService.getModel();
Workspace workspace = model.getWorkspace();
Site site = workspace.addSite(ObjectType.GROUP_SITE, ":");
ChromatticSessionImpl session = (ChromatticSessionImpl) model.getSession();
Node siteNode = session.getNode(site);
assertEquals("mop:%04", siteNode.getName());
}Example 25
| Project: hippo-jcr-shell-master File: JcrWrapper.java View source code |
public static boolean removeNode(final Node node) {
try {
removeFromCache(node.getPath());
if (node.getDepth() > 0) {
removeFromCache(node.getParent().getPath());
}
node.remove();
return true;
} catch (RepositoryException e) {
e.printStackTrace();
return false;
}
}Example 26
| Project: jackhammer-master File: WatchCommand.java View source code |
@Override
public void run() {
if (!directory.exists()) {
System.out.println("Cannot watch directory " + directory.getPath() + ". The specified path could not be found.");
return;
}
Node node;
try {
String tmp = rootPath;
if (rootPath.startsWith("/"))
tmp = rootPath.substring(1);
if ("".equals(tmp)) {
node = session.getRootNode();
} else {
node = session.getRootNode().getNode(tmp);
}
} catch (RepositoryException e) {
throw new RuntimeException("Unable to get node", e);
}
final DefaultFileHandlerFactory fileHandlerFactory = new DefaultFileHandlerFactory(new PathRelativizer(directory));
final EventBus eventBus = new EventBus();
eventBus.register(new LoggingEventListener(new Path(rootPath)));
eventBus.register(new UploadingEventListener(fileHandlerFactory, session, node));
final FileAlterationObserver observer = new FileAlterationObserver(directory);
final FileAlterationMonitor monitor = new FileAlterationMonitor(1000);
PathRelativizer pathRelativizer = new PathRelativizer(directory);
FileAlterationListener listener = new JackhammerFileAlternationListener(eventBus, pathRelativizer);
observer.addListener(listener);
monitor.addObserver(observer);
try {
System.out.println("Watching " + directory.getCanonicalPath() + " and uploading changes to " + node.getPath());
monitor.start();
} catch (Exception e) {
throw new RuntimeException("Unable to monitor files", e);
}
}Example 27
| Project: jackrabbit-migration-master File: NodeCopier.java View source code |
/**
* Copy node with srcPath from one repository to another using the export and import functions by first partitioning node to subnodes of size less than
* limit before exporting
* @param srcSession
* @param destSession
* @param srcPath
* @param destPath
* @param limit - size of a node in the partition
* @param createNodeType
* @throws RepositoryException
* @throws IOException
*/
public static void copy(Session srcSession, Session destSession, String srcPath, String destPath, long limit, boolean addNodeType) throws RepositoryException, IOException {
if (!srcSession.nodeExists(srcPath)) {
log.error(srcPath + " does not exist");
return;
}
createNodes(srcSession, destSession, destPath, addNodeType);
Node node = srcSession.getNode(srcPath);
int srcPathLength = srcPath.length();
NodePartitioner partitioner = new NodeSizePartitioner(limit);
Set<Map.Entry<String, Boolean>> descendants = partitioner.partition(node);
for (Map.Entry<String, Boolean> entry : descendants) {
String relPath = entry.getKey().substring(srcPathLength);
copy(srcSession, destSession, srcPath, destPath, relPath, entry.getValue(), addNodeType);
}
}Example 28
| Project: jcrom-extended-master File: TestMapping.java View source code |
static void printNode(Node node, String indentation) throws Exception {
System.out.println();
System.out.println(indentation + "------- NODE -------");
System.out.println(indentation + "Path: " + node.getPath());
System.out.println(indentation + "------- Properties: ");
PropertyIterator propertyIterator = node.getProperties();
while (propertyIterator.hasNext()) {
Property p = propertyIterator.nextProperty();
if (!p.getName().equals("jcr:data") && !p.getName().equals("jcr:mixinTypes") && !p.getName().equals("fileBytes")) {
System.out.print(indentation + p.getName() + ": ");
if (p.getDefinition().getRequiredType() == PropertyType.BINARY) {
System.out.print("binary, (length:" + p.getLength() + ") ");
} else if (!p.getDefinition().isMultiple()) {
System.out.print(p.getString());
} else {
for (Value v : p.getValues()) {
System.out.print(v.getString() + ", ");
}
}
System.out.println();
}
if (p.getName().equals("jcr:childVersionHistory")) {
System.out.println(indentation + "------- CHILD VERSION HISTORY -------");
printNode(node.getSession().getNodeByIdentifier(p.getString()), indentation + "\t");
System.out.println(indentation + "------- CHILD VERSION ENDS -------");
}
}
NodeIterator nodeIterator = node.getNodes();
while (nodeIterator.hasNext()) {
printNode(nodeIterator.nextNode(), indentation + "\t");
}
}Example 29
| Project: jcromfx-master File: TestMapping.java View source code |
static void printNode(Node node, String indentation) throws Exception {
System.out.println();
System.out.println(indentation + "------- NODE -------");
System.out.println(indentation + "Path: " + node.getPath());
System.out.println(indentation + "------- Properties: ");
PropertyIterator propertyIterator = node.getProperties();
while (propertyIterator.hasNext()) {
Property p = propertyIterator.nextProperty();
if (!p.getName().equals("jcr:data") && !p.getName().equals("jcr:mixinTypes") && !p.getName().equals("fileBytes")) {
System.out.print(indentation + p.getName() + ": ");
if (p.getDefinition().getRequiredType() == PropertyType.BINARY) {
System.out.print("binary, (length:" + p.getLength() + ") ");
} else if (!p.getDefinition().isMultiple()) {
System.out.print(p.getString());
} else {
for (Value v : p.getValues()) {
System.out.print(v.getString() + ", ");
}
}
System.out.println();
}
if (p.getName().equals("jcr:childVersionHistory")) {
System.out.println(indentation + "------- CHILD VERSION HISTORY -------");
printNode(node.getSession().getNodeByIdentifier(p.getString()), indentation + "\t");
System.out.println(indentation + "------- CHILD VERSION ENDS -------");
}
}
NodeIterator nodeIterator = node.getNodes();
while (nodeIterator.hasNext()) {
printNode(nodeIterator.nextNode(), indentation + "\t");
}
}Example 30
| Project: knowledge_vault-master File: DirectDocumentModule.java View source code |
/**
* Used when importing mail with attachments
*/
public Document create(String token, Document doc, InputStream is, String userId) throws UnsupportedMimeTypeException, FileSizeExceededException, UserQuotaExceededException, VirusDetectedException, ItemExistsException, PathNotFoundException, AccessDeniedException, RepositoryException, IOException, DatabaseException, ExtensionException {
log.debug("create({}, {}, {}, {})", new Object[] { token, doc, is, userId });
Document newDocument = null;
Node parentNode = null;
Session session = null;
int size = is.available();
if (Config.SYSTEM_READONLY) {
throw new AccessDeniedException("System is in read-only mode");
}
if (size > Config.MAX_FILE_SIZE) {
log.error("Uploaded file size: {} ({}), Max file size: {} ({})", new Object[] { FormatUtil.formatSize(size), size, FormatUtil.formatSize(Config.MAX_FILE_SIZE), Config.MAX_FILE_SIZE });
throw new FileSizeExceededException(Integer.toString(size));
}
String parent = JCRUtils.getParent(doc.getPath());
String name = JCRUtils.getName(doc.getPath());
// Add to KEA - must have the same extension
int idx = name.lastIndexOf('.');
String fileExtension = idx > 0 ? name.substring(idx) : ".tmp";
File tmp = File.createTempFile("okm", fileExtension);
try {
if (token == null) {
session = JCRUtils.getSession();
} else {
session = JcrSessionManager.getInstance().get(token);
}
// Escape dangerous chars in name
name = JCRUtils.escape(name);
doc.setPath(parent + "/" + name);
parentNode = session.getRootNode().getNode(parent.substring(1));
// Check file restrictions
String mimeType = Config.mimeTypes.getContentType(name.toLowerCase());
doc.setMimeType(mimeType);
if (Config.RESTRICT_FILE_MIME && MimeTypeDAO.findByName(mimeType) == null) {
throw new UnsupportedMimeTypeException(mimeType);
}
// Manage temporary files
byte[] buff = new byte[4 * 1024];
FileOutputStream fos = new FileOutputStream(tmp);
int read;
while ((read = is.read(buff)) != -1) {
fos.write(buff, 0, read);
}
fos.flush();
fos.close();
is.close();
is = new FileInputStream(tmp);
if (!Config.SYSTEM_ANTIVIR.equals("")) {
VirusDetection.detect(tmp);
}
// Start KEA
// Adding submitted keywords
Collection<String> keywords = doc.getKeywords() != null ? doc.getKeywords() : new ArrayList<String>();
if (!Config.KEA_MODEL_FILE.equals("")) {
MetadataExtractor mdExtractor = new MetadataExtractor(Config.KEA_AUTOMATIC_KEYWORD_EXTRACTION_NUMBER);
MetadataDTO mdDTO = mdExtractor.extract(tmp);
for (ListIterator<Term> it = mdDTO.getSubjectsAsTerms().listIterator(); it.hasNext(); ) {
Term term = it.next();
log.info("Term:" + term.getText());
if (Config.KEA_AUTOMATIC_KEYWORD_EXTRACTION_RESTRICTION) {
if (RDFREpository.getInstance().getKeywords().contains(term.getText())) {
// Replacing spaces to "_" and adding at ends space for other word
keywords.add(term.getText().replace(" ", "_"));
}
} else {
// Replacing spaces to "_" and adding at ends space for other word
keywords.add(term.getText().replace(" ", "_"));
}
}
}
// End KEA
// EP - PRE
Ref<Node> refParentNode = new Ref<Node>(parentNode);
Ref<File> refTmp = new Ref<File>(tmp);
Ref<Document> refDoc = new Ref<Document>(doc);
DocumentExtensionManager.getInstance().preCreate(session, refParentNode, refTmp, refDoc);
parentNode = refParentNode.get();
name = JCRUtils.escape(JCRUtils.getName(refDoc.get().getPath()));
mimeType = refDoc.get().getMimeType();
keywords = refDoc.get().getKeywords();
Node documentNode = BaseDocumentModule.create(session, parentNode, /* doc.getTitle() */
name, null, mimeType, keywords.toArray(new String[keywords.size()]), is);
// EP - POST
Ref<Node> refDocumentNode = new Ref<Node>(documentNode);
DocumentExtensionManager.getInstance().postCreate(session, refParentNode, refDocumentNode);
// Check document filters
// DocumentUtils.checkFilters(session, documentNode, mimeType);
// Set returned document properties
newDocument = BaseDocumentModule.getProperties(session, documentNode);
if (userId == null) {
// Check subscriptions
BaseNotificationModule.checkSubscriptions(documentNode, session.getUserID(), "CREATE_DOCUMENT", null);
// Check scripting
BaseScriptingModule.checkScripts(session, parentNode, documentNode, "CREATE_DOCUMENT");
// Activity log
UserActivity.log(session.getUserID(), "CREATE_DOCUMENT", documentNode.getUUID(), mimeType + ", " + size + ", " + doc.getPath());
} else {
// Check subscriptions
BaseNotificationModule.checkSubscriptions(documentNode, userId, "CREATE_MAIL_ATTACHMENT", null);
// Check scripting
BaseScriptingModule.checkScripts(session, parentNode, documentNode, "CREATE_MAIL_ATTACHMENT");
// Activity log
UserActivity.log(userId, "CREATE_MAIL_ATTACHMENT", documentNode.getUUID(), mimeType + ", " + size + ", " + doc.getPath());
}
} catch (javax.jcr.ItemExistsException e) {
log.warn(e.getMessage(), e);
JCRUtils.discardsPendingChanges(parentNode);
throw new ItemExistsException(e.getMessage(), e);
} catch (javax.jcr.PathNotFoundException e) {
log.warn(e.getMessage(), e);
JCRUtils.discardsPendingChanges(parentNode);
throw new PathNotFoundException(e.getMessage(), e);
} catch (javax.jcr.AccessDeniedException e) {
log.warn(e.getMessage(), e);
JCRUtils.discardsPendingChanges(parentNode);
throw new AccessDeniedException(e.getMessage(), e);
} catch (javax.jcr.RepositoryException e) {
log.error(e.getMessage(), e);
JCRUtils.discardsPendingChanges(parentNode);
throw new RepositoryException(e.getMessage(), e);
} catch (java.io.IOException e) {
log.error(e.getMessage(), e);
JCRUtils.discardsPendingChanges(parentNode);
throw e;
} catch (MetadataExtractionException e) {
log.error(e.getMessage(), e);
JCRUtils.discardsPendingChanges(parentNode);
throw new RepositoryException(e.getMessage(), e);
} catch (VirusDetectedException e) {
JCRUtils.discardsPendingChanges(parentNode);
throw e;
} catch (DatabaseException e) {
JCRUtils.discardsPendingChanges(parentNode);
throw e;
} catch (ExtensionException e) {
JCRUtils.discardsPendingChanges(parentNode);
throw e;
} finally {
org.apache.commons.io.FileUtils.deleteQuietly(tmp);
if (token == null)
JCRUtils.logout(session);
}
log.info("create: {}", newDocument);
return newDocument;
}Example 31
| Project: ks-master File: JCRDataStorage.java View source code |
public void addCalculateModeratorEventListener() throws Exception {
SessionProvider sProvider = SessionProvider.createSystemProvider();
Node categoryHome = getCategoryHome(sProvider);
try {
NodeIterator iter = categoryHome.getNodes();
NodeIterator iter1;
while (iter.hasNext()) {
Node catNode = iter.nextNode();
if (catNode.isNodeType(EXO_FORUM_CATEGORY)) {
addModeratorCalculateListener(catNode);
iter1 = catNode.getNodes();
while (iter1.hasNext()) {
Node forumNode = iter1.nextNode();
if (forumNode.isNodeType(EXO_FORUM)) {
addModeratorCalculateListener(forumNode);
}
}
}
}
} catch (Exception e) {
log.error("Failed to add calculate moderator event listener", e);
} finally {
sProvider.close();
}
}Example 32
| Project: magnolia-templating-master File: LinkModel.java View source code |
/**
* Get the title for an internal link by returning the first of the following items that are available
* <ul>
* <li>The title field of the component</li>
* <li>The title of the referenced page</li>
* <li>The node name of the referenced page</li>
* </ul>.
*/
protected String getInternalTitle() {
final String title = PropertyUtil.getString(content, PROPERTY_NAME_TITLE);
if (StringUtils.isNotBlank(title)) {
return title;
}
try {
final Node linkedNode = templatingFunctions.contentByReference(content, PROPERTY_NAME_INTERNAL, RepositoryConstants.WEBSITE);
final String pageTitle = PropertyUtil.getString(linkedNode, PROPERTY_NAME_TITLE, "");
if (StringUtils.isNotBlank(pageTitle)) {
return pageTitle;
}
return linkedNode.getName();
} catch (RepositoryException e) {
log.warn("An error occurred when trying to get referenced content for node [{}] and property [{}]", content, PROPERTY_NAME_INTERNAL, e);
}
return "";
}Example 33
| Project: modeshape-master File: ModeshapePersistenceIT.java View source code |
@Test
public void shouldNotImportInitialContentIfWorkspaceContentsChanged() throws Exception {
startRunStop( repository -> {
Session ws1Session = repository.login();
Node node = ws1Session.getNode("/a");
assertNotNull(node);
node.remove();
ws1Session.getRootNode().addNode("testNode");
ws1Session.save();
}, true, false);
startRunStop( repository -> {
Session ws1Session = repository.login();
try {
ws1Session.getNode("/a");
fail("The initial content should be be re-imported if a workspace is not empty");
} catch (PathNotFoundException e) {
}
ws1Session.getNode("/testNode");
}, false, true);
}Example 34
| Project: org.liveSense.service.thumbnailGenerator-master File: ThumbnailGeneratorJobEventHandler.java View source code |
public boolean createThumbnailsForImage(Resource resource) throws RepositoryException, Exception {
try {
log.info("Generating thumbnail for image " + resource.getPath());
Node node = null;
if (resource != null)
node = resource.adaptTo(Node.class);
if (node == null)
return false;
// if thumbnail folder does not exists we generate it
if (!node.getParent().hasNode(thumbnailFolder)) {
node.getParent().addNode(thumbnailFolder, "thumbnail:thumbnailFolder");
}
// session.save();
Node thumbnailFolderNode = node.getParent().getNode(thumbnailFolder);
// Removing thumbnail images
NodeIterator iter = thumbnailFolderNode.getNodes(resource.getName() + "*");
while (iter.hasNext()) {
Node rm = iter.nextNode();
if (rm.isNodeType("thumbnail:thumbnailImage") && rm.hasProperty("originalNodeLastModified") && rm.getProperty("originalNodeLastModified").getDate().equals(node.getNode("jcr:content").getProperty("jcr:lastModified").getDate())) {
} else {
log.info(" -> Removing old thumbnail: " + rm.getName());
rm.remove();
}
}
// Generating thumbnail images
for (int i = 0; i < thumbnailResolutions.length; i++) {
String[] reso = thumbnailResolutions[i].split("x");
int width, height;
width = Integer.parseInt(reso[0]);
height = Integer.parseInt(reso[1]);
String thumbnailName = resource.getName() + "." + width + "." + height + ".jpg";
if (!thumbnailFolderNode.hasNode(thumbnailName)) {
final BufferedImage src = ImageIO.read(node.getNode("jcr:content").getProperty("jcr:data").getBinary().getStream());
if (src == null) {
final StringBuffer sb = new StringBuffer();
for (String fmt : ImageIO.getReaderFormatNames()) {
sb.append(fmt);
sb.append(' ');
}
throw new IOException("Unable to read image, registered formats: " + sb);
}
final double scale = (double) width / src.getWidth();
int destWidth = width;
int destHeight = height > 0 ? height : new Double(scale * src.getHeight()).intValue();
log.info(" ---> Generating thumbnail, w={}, h={}", destWidth, destHeight);
final BufferedImage dest = new BufferedImage(destWidth, destHeight, BufferedImage.TYPE_INT_RGB);
ScaleFilter filter = new ScaleFilter(destWidth, destHeight);
filter.filter(src, dest);
final File tmp = File.createTempFile(getClass().getSimpleName(), resource.getName() + "." + Calendar.getInstance().getTimeInMillis());
try {
FileOutputStream outs = new FileOutputStream(tmp);
ImageIO.write(dest, "jpg", outs);
outs.flush();
outs.close();
// Create thumbnail node and set the mandatory properties
Node thumbnail = thumbnailFolderNode.addNode(thumbnailName, "thumbnail:thumbnailImage");
thumbnail.addNode("jcr:content", "nt:resource").setProperty("jcr:data", new Binary() {
InputStream is;
@Override
public InputStream getStream() throws RepositoryException {
try {
is = new FileInputStream(tmp);
} catch (FileNotFoundException e) {
log.error("IOError: ", e);
}
return is;
}
@Override
public int read(byte[] b, long position) throws IOException, RepositoryException {
return is.read(b, (int) position, 4096);
}
@Override
public long getSize() throws RepositoryException {
try {
return is.available();
} catch (IOException e) {
throw new RepositoryException(e);
}
}
@Override
public void dispose() {
try {
is.close();
} catch (Exception e) {
log.error("Dispose error!");
}
}
});
thumbnail.getNode("jcr:content").setProperty("jcr:lastModified", Calendar.getInstance());
thumbnail.getNode("jcr:content").setProperty("jcr:mimeType", "image/jpg");
thumbnail.setProperty("originalNodePath", resource.getPath());
thumbnail.setProperty("originalNodeLastModified", node.getNode("jcr:content").getProperty("jcr:lastModified").getDate());
thumbnail.setProperty("width", destWidth);
thumbnail.setProperty("height", destHeight);
log.info(" -> generated name: " + thumbnail.getPath() + " Width: {} Height: {} ", Integer.toString(destWidth), Integer.toString(destHeight));
//session.save();
} catch (Exception e) {
return false;
} finally {
if (tmp != null) {
tmp.delete();
}
}
}
}
return true;
} finally {
}
}Example 35
| Project: platform-master File: LoginHistoryServiceImpl.java View source code |
/**
* Create exo:LoginHistoryHome node.
*
* @throws RepositoryException
*/
protected void createHomeNode() throws RepositoryException {
SessionProvider sProvider = SessionProvider.createSystemProvider();
try {
ManageableRepository currentRepo = this.repositoryService.getCurrentRepository();
Session session = sProvider.getSession(currentRepo.getConfiguration().getDefaultWorkspaceName(), currentRepo);
Node rootNode = session.getRootNode();
if (!rootNode.hasNode(HOME)) {
Node homeNode = rootNode.addNode(HOME, "exo:LoginHisSvc_loginHistoryService");
homeNode.addMixin("exo:privilegeable");
Map<String, String[]> permissions = new HashMap<String, String[]>();
permissions.put("*:/platform/administrators", PermissionType.ALL);
permissions.put("*:/platform/users", new String[] { PermissionType.READ });
((ExtendedNode) homeNode).setPermissions(permissions);
homeNode.addMixin("exo:owneable");
rootNode.save();
// --- PLF-2493 : Umbrella for usability issues
if (homeNode.canAddMixin("exo:hiddenable")) {
homeNode.addMixin("exo:hiddenable");
}
Node globalLoginCounterNode = homeNode.addNode(ALL_USERS, "exo:LoginHisSvc_globalLoginCounter");
globalLoginCounterNode.setProperty("exo:LoginHisSvc_globalLoginCounter_lastIndex", 0);
homeNode.save();
LOG.info("Login history storage initialized.");
}
} finally {
sProvider.close();
}
}Example 36
| Project: sling-pipes-master File: WritePipeTest.java View source code |
@Test
public void testSimpleTree() throws Exception {
Resource confResource = context.resourceResolver().getResource(PATH_PIPE + "/" + NN_SIMPLETREE);
Pipe pipe = plumber.getPipe(confResource);
assertNotNull("pipe should be found", pipe);
assertTrue("this pipe should be marked as content modifier", pipe.modifiesContent());
pipe.getOutput();
context.resourceResolver().commit();
Resource appleResource = context.resourceResolver().getResource("/content/fruits/apple");
ValueMap properties = appleResource.adaptTo(ValueMap.class);
assertTrue("There should be hasSeed set to true", properties.get("hasSeed", false));
assertArrayEquals("Colors should be correctly set", new String[] { "green", "red" }, properties.get("colors", String[].class));
Node appleNode = appleResource.adaptTo(Node.class);
NodeIterator children = appleNode.getNodes();
assertTrue("Apple node should have children", children.hasNext());
}Example 37
| Project: sling-web-resource-master File: WebResourceInventoryManagerImpl.java View source code |
public Map<String, String> getWebResources(Session session) throws RepositoryException {
Map<String, String> result = new HashMap<String, String>();
Query query = session.getWorkspace().getQueryManager().createQuery("SELECT * FROM [webresource:WebResourceGroup] as webResourceGroupSet", Query.JCR_SQL2);
QueryResult queryResult = query.execute();
NodeIterator queryIt = queryResult.getNodes();
while (queryIt.hasNext()) {
Node webResourceNode = queryIt.nextNode();
result.put(webResourceNode.getProperty(WebResourceGroup.NAME).getString(), webResourceNode.getPath());
}
return result;
}Example 38
| Project: SlingBeans-master File: VltManager.java View source code |
public void importContentToRemote(String contentPath, String jcrPath, boolean nonRecursive) throws Exception {
if (lockUpdates) {
return;
}
contentPath = normalizePath(contentPath, true);
jcrPath = normalizePath(jcrPath, true);
LogHelper.logInfo(this, "importContent(%s, %s, %s)", contentPath, jcrPath, nonRecursive);
// File localFile = new File(localContentPath);
File vltContent = new File(contentPath);
FileArchive vltFileArchive = new FileArchive(vltContent);
vltSession = getSession();
vltFileArchive.open(false);
ImportOptions impOpts = new ImportOptions();
impOpts.setNonRecursive(false);
DefaultWorkspaceFilter defaultWorkspaceFilter = new DefaultWorkspaceFilter();
defaultWorkspaceFilter.add(new PathFilterSet(jcrPath));
impOpts.setFilter(defaultWorkspaceFilter);
Importer imp = new Importer(impOpts);
Node remoteRootNode = null;
remoteRootNode = vltSession.getRootNode();
imp.run(vltFileArchive, remoteRootNode);
vltFileArchive.close();
}Example 39
| Project: spring-modules-jcr-master File: JcrTemplateTests.java View source code |
/*
* Test method for 'org.springmodules.jcr.JcrTemplate.getNodeByUUID(String)'
*/
public void testGetNodeByUUID() throws RepositoryException {
MockControl resultMock = MockControl.createControl(Node.class);
Node result = (Node) resultMock.getMock();
String uuid = "uuid";
sessionControl.expectAndReturn(session.getNodeByUUID(uuid), result);
sessionControl.replay();
sfControl.replay();
assertSame(jt.getNodeByUUID(uuid), result);
}Example 40
| Project: experiencemanager-java-msmrollout-master File: ExampleLiveActionFactory.java View source code |
public void execute(Resource source, Resource target, LiveRelationship liverel, boolean autoSave, boolean isResetRollout) throws WCMException {
String lastMod = null;
log.info(" *** Executing ExampleLiveAction *** ");
/* Determine if the LiveAction is configured to copy the cq:lastModifiedBy property */
if ((Boolean) configs.get("repLastModBy")) {
/* get the source's cq:lastModifiedBy property */
if (source != null && source.adaptTo(Node.class) != null) {
ValueMap sourcevm = source.adaptTo(ValueMap.class);
lastMod = sourcevm.get(com.day.cq.wcm.api.NameConstants.PN_PAGE_LAST_MOD_BY, String.class);
}
/* set the target node's la-lastModifiedBy property */
Session session = null;
if (target != null && target.adaptTo(Node.class) != null) {
ResourceResolver resolver = target.getResourceResolver();
session = resolver.adaptTo(javax.jcr.Session.class);
Node targetNode;
try {
targetNode = target.adaptTo(javax.jcr.Node.class);
targetNode.setProperty("la-lastModifiedBy", lastMod);
log.info(" *** Target node lastModifiedBy property updated: {} ***", lastMod);
} catch (Exception e) {
log.error(e.getMessage());
}
}
if (autoSave) {
try {
session.save();
} catch (Exception e) {
try {
session.refresh(true);
} catch (RepositoryException e1) {
e1.printStackTrace();
}
e.printStackTrace();
}
}
}
}Example 41
| Project: staging-extension-master File: SocialDataExportResource.java View source code |
/**
* Export space avatar.
*
* @param exportTasks the export tasks
* @param space the space
* @param spaceIdentity the space identity
* @throws UnsupportedEncodingException the unsupported encoding exception
* @throws Exception the exception
* @throws PathNotFoundException the path not found exception
* @throws RepositoryException the repository exception
* @throws ValueFormatException the value format exception
*/
private void exportSpaceAvatar(List<ExportTask> exportTasks, Space space, Identity spaceIdentity) throws UnsupportedEncodingException, Exception, PathNotFoundException, RepositoryException, ValueFormatException {
// No method to get avatar using Social API, so we have to use JCR
String avatarURL = spaceIdentity.getProfile().getAvatarUrl();
avatarURL = avatarURL == null ? null : URLDecoder.decode(avatarURL, "UTF-8");
if (avatarURL != null && avatarURL.contains(space.getPrettyName())) {
int beginIndexAvatarPath = avatarURL.indexOf("repository/social") + ("repository/social").length();
int endIndexAvatarPath = avatarURL.indexOf("?");
String avatarNodePath = endIndexAvatarPath >= 0 ? avatarURL.substring(beginIndexAvatarPath, endIndexAvatarPath) : avatarURL.substring(beginIndexAvatarPath);
Session session = AbstractJCRImportOperationHandler.getSession(repositoryService, "social");
Node avatarNode = (Node) session.getItem(avatarNodePath);
Node avatarJCRContentNode = avatarNode.getNode("jcr:content");
String fileName = "avatar";
String mimeType = avatarJCRContentNode.hasProperty("jcr:data") ? avatarJCRContentNode.getProperty("jcr:mimeType").getString() : null;
InputStream inputStream = avatarJCRContentNode.hasProperty("jcr:data") ? avatarJCRContentNode.getProperty("jcr:data").getStream() : null;
Calendar lastModified = avatarJCRContentNode.hasProperty("jcr:data") ? avatarJCRContentNode.getProperty("jcr:lastModified").getDate() : null;
AvatarAttachment avatar = new AvatarAttachment(null, fileName, mimeType, inputStream, null, lastModified.getTimeInMillis());
exportTasks.add(new SpaceAvatarExportTask(space.getPrettyName(), avatar));
}
}Example 42
| Project: aem-samples-master File: ReferencedAssetsServlet.java View source code |
@Override
protected void doGet(SlingHttpServletRequest request, SlingHttpServletResponse response) throws IOException {
response.setContentType("application/json");
try {
JSONObject jsonOut = new JSONObject();
Node jcrNode = request.getResource().adaptTo(Node.class);
if (jcrNode == null) {
// every adaptTo() can return null, so let's handle that case here
// although it's very unlikely
LOG.error("cannot adapt resource {} to a node", request.getResource().getPath());
response.getOutputStream().print(new JSONObject().toString());
return;
}
// let's use the specialized assetReferenceSearch, which does all the work for us
AssetReferenceSearch search = new AssetReferenceSearch(jcrNode, DAM_ROOT, request.getResourceResolver());
Map<String, Asset> result = search.search();
for (String key : result.keySet()) {
Asset asset = result.get(key);
JSONObject assetDetails = new JSONObject();
assetDetails.put("path", asset.getPath());
assetDetails.put("mimetype", asset.getMimeType());
jsonOut.put(asset.getName(), assetDetails);
}
response.getOutputStream().print(jsonOut.toString(2));
} catch (JSONException e) {
LOG.error("Cannot serialize JSON", e);
response.getOutputStream().print(new JSONObject().toString());
}
}Example 43
| Project: astroboa-master File: ContentServiceTest.java View source code |
private ContentObject saveAndAssertBinaryContentIsSaved(ContentObject contentObject, String contentSource, File fileWhichContainsContent, String property, Map<String, byte[]> binaryContent) throws Exception {
try {
ImportConfiguration configuration = ImportConfiguration.object().persist(PersistMode.PERSIST_ENTITY_TREE).version(false).updateLastModificationTime(true).addBinaryContent(binaryContent).build();
contentObject = importService.importContentObject(contentSource, configuration);
//reload object
ContentObject object = contentService.getContentObject(contentObject.getId(), ResourceRepresentationType.CONTENT_OBJECT_INSTANCE, FetchLevel.ENTITY, CacheRegion.NONE, null, false);
BinaryProperty imageProperty = (BinaryProperty) object.getCmsProperty(property);
Assert.assertTrue(imageProperty.hasValues(), "No binary channel saved for " + property + " property");
for (BinaryChannel imageBinaryChannel : imageProperty.getSimpleTypeValues()) {
String sourceFilename = imageBinaryChannel.getSourceFilename();
Assert.assertTrue(StringUtils.isNotBlank(sourceFilename), " BinaryChannel " + imageBinaryChannel.getName() + " does not have a source file name");
File fileWhoseContentsAreSavedInBinaryChannel = null;
if (sourceFilename.equals(fileWhichContainsContent.getName())) {
fileWhoseContentsAreSavedInBinaryChannel = fileWhichContainsContent;
} else {
throw new Exception("BnaryChannel contains an invalid source file name " + sourceFilename);
}
String mimeType = new MimetypesFileTypeMap().getContentType(fileWhoseContentsAreSavedInBinaryChannel);
if (property.contains(".")) {
Assert.assertEquals(imageBinaryChannel.getName(), StringUtils.substringAfterLast(property, "."));
} else {
Assert.assertEquals(imageBinaryChannel.getName(), property);
}
Assert.assertEquals(imageBinaryChannel.getMimeType(), mimeType);
Assert.assertEquals(imageBinaryChannel.getSourceFilename(), sourceFilename);
Assert.assertEquals(imageBinaryChannel.getSize(), FileUtils.readFileToByteArray(fileWhoseContentsAreSavedInBinaryChannel).length);
Assert.assertEquals(imageBinaryChannel.getModified().getTimeInMillis(), fileWhoseContentsAreSavedInBinaryChannel.lastModified());
//Now test in jcr to see if the proper node is created
Node binaryChannelNode = getSession().getNodeByIdentifier(imageBinaryChannel.getId());
//If node is not found then exception has already been thrown
Assert.assertEquals(binaryChannelNode.getName(), imageBinaryChannel.getName(), " Invalid name for binary data jcr node " + binaryChannelNode.getPath());
if (property.contains(".")) {
Assert.assertEquals(binaryChannelNode.getProperty(CmsBuiltInItem.Name.getJcrName()).getString(), StringUtils.substringAfterLast(property, "."));
} else {
Assert.assertEquals(binaryChannelNode.getProperty(CmsBuiltInItem.Name.getJcrName()).getString(), property);
}
Assert.assertEquals(binaryChannelNode.getProperty(JcrBuiltInItem.JcrMimeType.getJcrName()).getString(), mimeType);
Assert.assertEquals(binaryChannelNode.getProperty(CmsBuiltInItem.SourceFileName.getJcrName()).getString(), sourceFilename);
Assert.assertEquals(binaryChannelNode.getProperty(CmsBuiltInItem.Size.getJcrName()).getLong(), fileWhoseContentsAreSavedInBinaryChannel.length());
Assert.assertEquals(binaryChannelNode.getProperty(JcrBuiltInItem.JcrLastModified.getJcrName()).getDate().getTimeInMillis(), fileWhoseContentsAreSavedInBinaryChannel.lastModified());
}
} catch (Exception e) {
logger.error("Initial \n{}", contentSource);
throw e;
}
return contentObject;
}Example 44
| Project: camel-master File: JcrProducer.java View source code |
public void process(Exchange exchange) throws Exception {
TypeConverter converter = exchange.getContext().getTypeConverter();
Session session = openSession();
Message message = exchange.getIn();
String operation = determineOperation(message);
try {
if (JcrConstants.JCR_INSERT.equals(operation)) {
Node base = findOrCreateNode(session.getRootNode(), getJcrEndpoint().getBase(), "");
Node node = findOrCreateNode(base, getNodeName(message), getNodeType(message));
Map<String, Object> headers = filterComponentHeaders(message.getHeaders());
for (String key : headers.keySet()) {
Object header = message.getHeader(key);
if (header != null && Object[].class.isAssignableFrom(header.getClass())) {
Value[] value = converter.convertTo(Value[].class, exchange, header);
node.setProperty(key, value);
} else {
Value value = converter.convertTo(Value.class, exchange, header);
node.setProperty(key, value);
}
}
node.addMixin("mix:referenceable");
exchange.getOut().setBody(node.getIdentifier());
session.save();
} else if (JcrConstants.JCR_GET_BY_ID.equals(operation)) {
Node node = session.getNodeByIdentifier(exchange.getIn().getMandatoryBody(String.class));
PropertyIterator properties = node.getProperties();
while (properties.hasNext()) {
Property property = properties.nextProperty();
Class<?> aClass = classForJCRType(property);
Object value;
if (property.isMultiple()) {
value = converter.convertTo(aClass, exchange, property.getValues());
} else {
value = converter.convertTo(aClass, exchange, property.getValue());
}
message.setHeader(property.getName(), value);
}
} else {
throw new RuntimeException("Unsupported operation: " + operation);
}
} finally {
if (session != null && session.isLive()) {
session.logout();
}
}
}Example 45
| Project: delcyon-capo-master File: JcrResourceDescriptor.java View source code |
@Override
public OutputStream getOutputStream(VariableContainer variableContainer, ResourceParameter... resourceParameters) throws Exception {
//return the output stream we have, if it's already open
if (this.pipedOutputStream != null) {
return this.pipedOutputStream;
}
synchronized (isWriting) {
isWriting = true;
//If we're going to write. make sure we have a node to write to.
if (getNode() == null) {
performAction(variableContainer, Action.CREATE, resourceParameters);
performAction(variableContainer, Action.COMMIT, resourceParameters);
}
final PipedInputStream pipedInputStream = new PipedInputStream() {
@Override
public void close() throws IOException {
//System.out.println("piped input close attempt: "+System.currentTimeMillis());
// TODO Auto-generated method stub
super.close();
//System.out.println("piped input closed: "+System.currentTimeMillis());
}
};
PipedOutputStream pipedOutputStream = new PipedOutputStream(pipedInputStream) {
@Override
public void close() throws IOException {
//System.out.println("piped output close attempt: "+System.currentTimeMillis());
super.close();
//System.out.println("isWaiting = "+isWriting);
Boolean _isWaiting = null;
synchronized (isWriting) {
_isWaiting = isWriting;
}
//System.out.println("isWaiting = "+_isWaiting);
while (_isWaiting == true) {
try {
// System.out.println("waiting for pipe thread to finish");
Thread.sleep(100);
synchronized (isWriting) {
_isWaiting = isWriting;
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
//System.out.println("piped output closed: "+System.currentTimeMillis());
JcrResourceDescriptor.this.pipedOutputStream = null;
}
};
//MimeTable mt = MimeTable.getDefaultTable();
//String mimeType = mt.getContentTypeFor(file.getName());
//if (mimeType == null) mimeType = "application/octet-stream";
// Node fileNode = node.addNode("<name>", "nt:file");
//System.out.println( fileNode.getName() );
//final Node resNode = fileNode.addNode("jcr:content", "nt:resource");
//resNode.setProperty("jcr:mimeType", "<mimeType>");
//resNode.setProperty("jcr:encoding", "");
Runnable pipe = new Runnable() {
@Override
public void run() {
try {
MD5FilterInputStream md5FilterInputStream = new MD5FilterInputStream(pipedInputStream);
ContentFormatTypeFilterInputStream contentFormatTypeFilterInputStream = new ContentFormatTypeFilterInputStream(md5FilterInputStream);
MimeTypeFilterInputStream mimeTypeFilterInputStream = new MimeTypeFilterInputStream(contentFormatTypeFilterInputStream);
SizeFilterInputStream sizeFilterInputStream = new SizeFilterInputStream(mimeTypeFilterInputStream);
//System.out.println("pipe thread start read: "+System.currentTimeMillis());
synchronized (hasPipeThreadStarted) {
hasPipeThreadStarted.notify();
}
Binary binary = getNode().getSession().getValueFactory().createBinary(sizeFilterInputStream);
if (binary.getSize() != 0) {
getNode().setProperty("jcr:data", binary);
getNode().setProperty(contentFormatTypeFilterInputStream.getName(), contentFormatTypeFilterInputStream.getValue());
if (contentFormatTypeFilterInputStream.getContentFormatType() != ContentFormatType.BINARY) {
byte[] buffer = new byte[(int) binary.getSize()];
binary.read(buffer, 0);
getNode().setProperty("content", new String(buffer));
} else if (getNode().hasProperty("content")) {
getNode().getProperty("content").remove();
}
getNode().setProperty(sizeFilterInputStream.getName(), sizeFilterInputStream.getValue());
getNode().setProperty(mimeTypeFilterInputStream.getName(), mimeTypeFilterInputStream.getValue());
//getNode().setProperty("jcr:mimeType",mimeTypeFilterInputStream.getValue());
getNode().setProperty(md5FilterInputStream.getName(), md5FilterInputStream.getValue());
} else //there is no data
{
PropertyIterator propertyIterator = getNode().getProperties();
while (propertyIterator.hasNext()) {
Property property = propertyIterator.nextProperty();
if (property.getName().startsWith("jcr:") == false) {
property.remove();
}
}
if (getNode().hasProperty("jcr:data")) {
getNode().getProperty("jcr:data").remove();
}
}
binary.dispose();
//System.out.println("pipe thread done: "+System.currentTimeMillis());
if (getNode().getSession() != null && getNode().getSession().isLive() && getNode().getSession().hasPendingChanges()) {
//TODO check for autocommit setting
getNode().getSession().save();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
//isWriting.notify();
synchronized (isWriting) {
isWriting = false;
}
//cleanup session out of thread
if (Thread.currentThread() instanceof ContextThread) {
((ContextThread) Thread.currentThread()).setSession(null);
}
}
}
};
synchronized (hasPipeThreadStarted) {
//System.err.println( "PipeWrite T="+Thread.currentThread()+" S="+session+" N="+absPath);
ContextThread contextThread = new ContextThread(pipe, getNode().getName() + " pipeThread-" + System.currentTimeMillis());
contextThread.setSession(getNode().getSession());
contextThread.start();
//Calendar lastModified = Calendar.getInstance();
//lastModified.setTimeInMillis(file.lastModified());
//resNode.setProperty("jcr:lastModified", lastModified);
//Uti
//System.out.println("waiting for pipe thread to start");
hasPipeThreadStarted.wait(1500);
}
this.pipedOutputStream = pipedOutputStream;
return pipedOutputStream;
}
}Example 46
| Project: droolsjbpm-master File: RulesRepository.java View source code |
/**
* Will add a node named 'nodeName' of type 'type' to 'parent' if such a
* node does not already exist.
*
* @param parent
* the parent node to add the new node to
* @param nodeName
* the name of the new node
* @param type
* the type of the new node
* @return a reference to the Node object that is created by the addition,
* or, if the node already existed, a reference to the pre-existant
* node.
* @throws RulesRepositoryException
*/
protected static Node addNodeIfNew(Node parent, String nodeName, String type) throws RulesRepositoryException {
Node node;
try {
node = parent.getNode(nodeName);
} catch (PathNotFoundException e) {
try {
log.debug("Adding new node of type: {} named: {} to parent node named {}", new Object[] { type, nodeName, parent.getName() });
node = parent.addNode(nodeName, type);
} catch (Exception e1) {
log.error("Caught Exception", e);
throw new RulesRepositoryException(e1);
}
} catch (Exception e) {
log.error("Caught Exception", e);
throw new RulesRepositoryException(e);
}
return node;
}Example 47
| Project: ease-master File: IndexTransfer.java View source code |
@Override
public void run() {
ResourceResolver resolver = null;
IndexServer server = indexService.getServer();
if (server == null) {
if (LOG.isInfoEnabled()) {
LOG.info("No index server available.");
}
return;
}
boolean modifiedIndex = false;
try {
resolver = indexService.getResolverFactory().getAdministrativeResourceResolver(null);
VersionManager versionManager = resolver.adaptTo(Session.class).getWorkspace().getVersionManager();
while (!this.terminated) {
boolean modifiedQueue = false;
modifiedIndex = false;
Resource queueRes = resolver.getResource(IndexService.QUEUE_ROOT);
if (queueRes != null) {
Iterator<Resource> jobs = queueRes.listChildren();
while (jobs.hasNext()) {
Resource jobRes = jobs.next();
try {
ValueMap jobData = jobRes.adaptTo(ValueMap.class);
String jobPath = jobData.get(IndexService.PN_PATH, String.class);
String jobAction = jobData.get(IndexService.PN_ACTION, String.class);
String jobRevision = jobData.get(IndexService.PN_REVISION, String.class);
if (IndexOperation.ADD.toString().equals(jobAction)) {
Resource targetRes = resolver.getResource(jobPath);
if (targetRes != null) {
// resolve any selected content version at this point
targetRes = VersioningUtil.resolveRevision(versionManager, targetRes, jobRevision);
if (targetRes != null) {
// drill into jcr:content
Resource contentRes = targetRes.getChild(JcrConstants.JCR_CONTENT);
if (contentRes != null) {
targetRes = contentRes;
}
if (indexService.getIndexer(targetRes) != null) {
try {
add(server, targetRes, jobPath);
modifiedIndex = true;
if (LOG.isDebugEnabled()) {
LOG.debug("Indexed {} at node {}", jobPath, targetRes.getPath());
}
} catch (Exception e) {
LOG.error("Error transferring item to index: " + jobPath, e);
}
} else {
if (LOG.isDebugEnabled()) {
LOG.debug("Ignoring {}", jobPath);
}
}
} else {
LOG.warn("Ignoring due to failed revision resolution: {}", jobPath);
}
} else {
LOG.warn("Ignoring due to content not found: {}", jobPath);
}
} else if (IndexOperation.REMOVE.toString().equals(jobAction)) {
try {
server.remove(jobPath);
} catch (Exception e) {
LOG.error("Error removing item from index: " + jobPath, e);
}
modifiedIndex = true;
}
jobRes.adaptTo(Node.class).remove();
modifiedQueue = true;
} catch (Exception e) {
LOG.error("Error processing index job " + jobRes.getName(), e);
}
}
if (modifiedQueue) {
resolver.adaptTo(Session.class).save();
}
if (modifiedIndex) {
server.commit();
}
}
// if no change to queue, wait until notification or timeout until next attempt
if (!modifiedQueue) {
try {
synchronized (this) {
this.wait(5000);
}
} catch (InterruptedException e) {
if (!this.terminated) {
LOG.error("Interrupted transfer without termination flag.");
break;
}
}
}
}
} catch (LoginException e) {
LOG.error("Error creating resource resolver.", e);
} catch (RepositoryException e) {
LOG.error("Error during repository access.", e);
if (modifiedIndex) {
try {
server.rollback();
} catch (Exception e1) {
LOG.error("Error rolling back index changes.", e1);
}
}
} catch (Exception e) {
LOG.error("Error during queue processing.", e);
} finally {
if (resolver != null) {
resolver.close();
}
}
}Example 48
| Project: exchange-extension-master File: IntegrationService.java View source code |
/**
*
* @param eventId
* @throws Exception
*/
public void updateOrCreateExchangeCalendarEvent(Node eventNode) throws Exception {
CalendarEvent event = exoStorageService.getExoEventByNode(eventNode);
if (isCalendarSynchronizedWithExchange(event.getCalendarId())) {
List<CalendarEvent> calendarEventsToUpdateModifiedTime = new ArrayList<CalendarEvent>();
updateOrCreateExchangeCalendarEvent(event, calendarEventsToUpdateModifiedTime);
if (!calendarEventsToUpdateModifiedTime.isEmpty()) {
for (CalendarEvent calendarEvent : calendarEventsToUpdateModifiedTime) {
// This is done to not have a cyclic updates between eXo and Exchange
exoStorageService.updateModifiedDateOfEvent(username, calendarEvent);
}
}
}
}Example 49
| Project: fcrepo4-master File: FedoraResourceImpl.java View source code |
@Override
public void delete() {
try {
// Remove inbound references to this resource and, recursively, any of its children
removeReferences(node);
final Node parent = getNode().getDepth() > 0 ? getNode().getParent() : null;
final String name = getNode().getName();
// This is resolved immediately b/c we delete the node before updating an indirect container's target
final boolean shouldUpdateIndirectResource = ldpInsertedContentProperty(node).flatMap(resourceToProperty(getSession())).filter(this::hasProperty).isPresent();
final Optional<Node> containingNode = getContainingNode(getNode());
node.remove();
if (parent != null) {
createTombstone(parent, name);
// also update membershipResources for Direct/Indirect Containers
containingNode.filter(UncheckedPredicate.uncheck((final Node ancestor) -> ancestor.hasProperty(LDP_MEMBER_RESOURCE) && (ancestor.isNodeType(LDP_DIRECT_CONTAINER) || shouldUpdateIndirectResource))).ifPresent( ancestor -> {
try {
FedoraTypesUtils.touch(ancestor.getProperty(LDP_MEMBER_RESOURCE).getNode());
} catch (final RepositoryException ex) {
throw new RepositoryRuntimeException(ex);
}
});
// update the lastModified date on the parent node
containingNode.ifPresent( ancestor -> {
FedoraTypesUtils.touch(ancestor);
});
}
} catch (final javax.jcr.AccessDeniedException e) {
throw new AccessDeniedException(e);
} catch (final RepositoryException e) {
throw new RepositoryRuntimeException(e);
}
}Example 50
| Project: jcr-springextension-master File: JcrTemplateTest.java View source code |
/*
* Test method for 'org.springframework.extensions.jcr.JcrTemplate.dump(Node)'
*/
@Test
public void testDumpNode() throws RepositoryException {
Node node = createNiceMock(Node.class);
PropertyIterator iterator = createMock(PropertyIterator.class);
NodeIterator iter = createMock(NodeIterator.class);
expect(node.getPath()).andReturn("path");
expect(node.getProperties()).andReturn(iterator);
expect(iterator.hasNext()).andReturn(false);
expect(node.getNodes()).andReturn(iter);
expect(iter.hasNext()).andReturn(false);
expect(session.getRootNode()).andReturn(node);
replay(session);
replay(sessionFactory);
replay(node);
jcrTemplate.dump(null);
verify(node);
}Example 51
| Project: kylo-master File: JcrUtil.java View source code |
/**
* Checks whether the given mixin node type is in effect for the given node.
*
* @param node the node
* @param mixinType the mixin node type
* @return <code>true</code> when the mixin node type is present, <code>false</code> instead.
*/
public static boolean hasMixinType(Node node, String mixinType) throws RepositoryException {
for (NodeType nodeType : node.getMixinNodeTypes()) {
if (nodeType.getName().equals(mixinType)) {
return true;
}
}
NodeType[] types = node.getPrimaryNodeType().getSupertypes();
if (types != null) {
for (NodeType nt : types) {
if (nt.getName().equals(mixinType)) {
return true;
}
}
}
return false;
}Example 52
| Project: Magnolia-master File: TemplatingFunctionsTest.java View source code |
@Test
public void testChildrenFromNode() throws RepositoryException {
// GIVEN
String[] expectedNamesDepth1 = (String[]) ArrayUtils.addAll(DEPTH_2_COMPONENT_NAMES, DEPTH_2_PAGE_NAMES);
// WHEN
List<Node> resultChildNodes = functions.children(topPage);
// THEN
assertNodesListEqualStringDefinitions(expectedNamesDepth1, resultChildNodes);
}Example 53
| Project: magnolia-vanity-url-master File: VanityUrlServiceTest.java View source code |
@Before
public void setUp() throws Exception {
ComponentsTestUtil.setInstance(I18nContentSupport.class, new DefaultI18nContentSupport());
MockWebContext webContext = new MockWebContext();
MockSession session = new MockSession(RepositoryConstants.WEBSITE);
createNode(session, "/internal/forward/page").setIdentifier(TEST_UUID_FORWARD);
createNode(session, "/internal/page").setIdentifier(TEST_UUID);
webContext.addSession(RepositoryConstants.WEBSITE, session);
MgnlContext.setInstance(webContext);
_service = new VanityUrlService() {
@Override
protected String getLinkFromNode(final Node node) {
String link = "";
if (node != null) {
try {
link = node.getPath() + ".html";
} catch (RepositoryException e) {
}
}
return link;
}
};
VanityUrlModule vanityUrlModule = new VanityUrlModule();
PublicUrlService publicUrlService = mock(PublicUrlService.class);
when(publicUrlService.createTargetUrl((Node) any())).thenReturn("http://www.aperto.de/page.html");
when(publicUrlService.createVanityUrl((Node) any())).thenReturn("http://www.aperto.de/vanity");
vanityUrlModule.setPublicUrlService(publicUrlService);
_service.setVanityUrlModule(vanityUrlModule);
}Example 54
| Project: manager.v3-master File: JcrDocumentTest.java View source code |
public final void testJcrDocumentFromMockRepo() throws RepositoryException {
MockRepositoryEventList mrel = new MockRepositoryEventList("MockRepositoryEventLog3.txt");
MockRepository r = new MockRepository(mrel);
MockRepositoryDocument doc = r.getStore().getDocByID("doc1");
Node node = new MockJcrNode(doc);
Document document = new JcrDocument(node);
countProperties(document);
}Example 55
| Project: modeshape-examples-master File: CDIController.java View source code |
/**
* Loads the children nodes of the node located at {@link CDIController#parentPath}
*/
public void loadChildren() {
children = new TreeSet<String>();
if (parentPath == null || parentPath.trim().length() == 0) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("The absolute path of the parent node is required"));
} else {
try {
Node parentNode = repositorySession.getNode(parentPath);
for (NodeIterator nodeIterator = parentNode.getNodes(); nodeIterator.hasNext(); ) {
children.add(nodeIterator.nextNode().getPath());
}
} catch (RepositoryException e) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(e.getMessage()));
}
}
}Example 56
| Project: modeshape-performance-master File: ThreeWayJoinTestSuite.java View source code |
@Override
public void beforeSuite() throws RepositoryException {
session = newSession();
root = session.getRootNode().addNode("testroot", "nt:unstructured");
nodeCount = suiteConfiguration.getNodeCount();
for (int i = 0; i < nodeCount; i++) {
Node foo = root.addNode("node" + i, "nt:unstructured");
foo.setProperty("foo", i);
for (int j = 0; j < nodeCount; j++) {
Node bar = foo.addNode("node" + j, "nt:unstructured");
bar.setProperty("bar", j);
for (int k = 0; k < nodeCount; k++) {
Node baz = bar.addNode("node" + k, "nt:unstructured");
baz.setProperty("baz", k);
}
}
session.save();
}
}Example 57
| Project: neba-master File: ModelRegistryTest.java View source code |
/**
* Requires the {@link Node} to have been mocked before hand, e.g. usig {@link #withPrimaryType(Resource, String)}.
*/
private void withMixinTypes(Resource resource, String... mixins) throws RepositoryException {
Node node = resource.adaptTo(Node.class);
NodeType[] mixinTypes = new NodeType[mixins.length];
for (int i = 0; i < mixins.length; ++i) {
mixinTypes[i] = mock(NodeType.class);
when(mixinTypes[i].getName()).thenReturn(mixins[i]);
}
when(node.getMixinNodeTypes()).thenReturn(mixinTypes);
}Example 58
| Project: omf-master File: JcrPersistenceAdapter.java View source code |
public CollectionResult getCollection(CollectionMapping collectionMapping) {
try {
final List<String> paths = new LinkedList<String>();
final String location = collectionMapping.getLocation();
if (node.hasNode(location)) {
final Node collectionContainer = node.getNode(location);
LOGGER.debug("Retrieving from node {}", collectionContainer.getPath());
for (NodeIterator ni = collectionContainer.getNodes(); ni.hasNext(); ) {
final Node child = ni.nextNode();
// this should be configurable in some way.
if (child.getName().equals("jcr:content"))
continue;
LOGGER.trace("Adding {} to collection.", child.getPath());
paths.add(child.getPath());
}
} else if (node.hasProperty(location) && node.getProperty(location).isMultiple()) {
final Property property = node.getProperty(location);
LOGGER.debug("Retrieving from property {}", property.getPath());
for (Value v : property.getValues()) {
paths.add(v.getString());
}
} else {
return new MissingCollectionPersistenceResult();
}
return new ImmutableCollectionPersistenceResult(paths);
} catch (RepositoryException e) {
throw new ObjectMapperException("Could not retrieve collection from " + collectionMapping.getLocation());
}
}Example 59
| Project: pentaho-platform-master File: JcrRepositoryFileUtils.java View source code |
public static RepositoryFile nodeToFileOld(final Session session, final PentahoJcrConstants pentahoJcrConstants, final IPathConversionHelper pathConversionHelper, final ILockHelper lockHelper, final Node node, final boolean loadMaps, IPentahoLocale pentahoLocale) throws RepositoryException {
if (session.getRootNode().isSame(node)) {
return getRootFolder(session);
}
Serializable id = null;
String name = null;
String path = null;
long fileSize = 0;
Date created = null;
String creatorId = null;
Boolean hidden = RepositoryFile.HIDDEN_BY_DEFAULT;
Boolean schedulable = RepositoryFile.SCHEDULABLE_BY_DEFAULT;
Date lastModified = null;
boolean folder = false;
boolean versioned = false;
Serializable versionId = null;
boolean locked = false;
String lockOwner = null;
Date lockDate = null;
String lockMessage = null;
String title = null;
String description = null;
Boolean aclNode = false;
Map<String, Properties> localePropertiesMap = null;
id = getNodeId(session, pentahoJcrConstants, node);
if (logger.isDebugEnabled()) {
logger.debug(String.format("reading file with id '%s' and path '%s'", id, node.getPath()));
}
path = pathConversionHelper.absToRel((getAbsolutePath(session, pentahoJcrConstants, node)));
name = RepositoryFile.SEPARATOR.equals(path) ? "" : getNodeName(session, pentahoJcrConstants, node);
if (isPentahoFolder(pentahoJcrConstants, node)) {
folder = true;
}
if (node.hasProperty(pentahoJcrConstants.getJCR_CREATED())) {
Calendar tmpCal = node.getProperty(pentahoJcrConstants.getJCR_CREATED()).getDate();
if (tmpCal != null) {
created = tmpCal.getTime();
}
}
Map<String, Serializable> metadata = getFileMetadata(session, id);
if (metadata != null) {
creatorId = (String) metadata.get(PentahoJcrConstants.PHO_CONTENTCREATOR);
Serializable schedulableValue = metadata.get(RepositoryFile.SCHEDULABLE_KEY);
if (schedulableValue instanceof String) {
schedulable = BooleanUtils.toBoolean((String) schedulableValue);
}
}
if (node.hasProperty(pentahoJcrConstants.getPHO_HIDDEN())) {
hidden = node.getProperty(pentahoJcrConstants.getPHO_HIDDEN()).getBoolean();
}
if (node.hasProperty(pentahoJcrConstants.getPHO_FILESIZE())) {
fileSize = node.getProperty(pentahoJcrConstants.getPHO_FILESIZE()).getLong();
}
if (node.hasProperty(pentahoJcrConstants.getPHO_ACLNODE())) {
aclNode = node.getProperty(pentahoJcrConstants.getPHO_ACLNODE()).getBoolean();
}
if (isPentahoFile(pentahoJcrConstants, node)) {
if (!node.isNodeType(pentahoJcrConstants.getNT_FROZENNODE())) {
Calendar tmpCal = node.getProperty(pentahoJcrConstants.getPHO_LASTMODIFIED()).getDate();
if (tmpCal != null) {
lastModified = tmpCal.getTime();
}
}
}
// Get default locale if null
if (pentahoLocale == null) {
Locale currentLocale = LocaleHelper.getLocale();
if (currentLocale != null) {
pentahoLocale = new PentahoLocale(currentLocale);
} else {
pentahoLocale = new PentahoLocale();
}
}
// Not needed for content generators and the like
if (isPentahoHierarchyNode(session, pentahoJcrConstants, node)) {
if (node.hasNode(pentahoJcrConstants.getPHO_LOCALES())) {
// Expensive
localePropertiesMap = getLocalePropertiesMap(session, pentahoJcrConstants, node.getNode(pentahoJcrConstants.getPHO_LOCALES()));
// [BISERVER-8337] localize title and description
LocalePropertyResolver lpr = new LocalePropertyResolver(name);
LocalizationUtil localizationUtil = new LocalizationUtil(localePropertiesMap, pentahoLocale.getLocale());
title = localizationUtil.resolveLocalizedString(lpr.resolveDefaultTitleKey(), null);
if (org.apache.commons.lang.StringUtils.isBlank(title)) {
title = localizationUtil.resolveLocalizedString(lpr.resolveTitleKey(), null);
if (org.apache.commons.lang.StringUtils.isBlank(title)) {
title = localizationUtil.resolveLocalizedString(lpr.resolveNameKey(), title);
}
}
description = localizationUtil.resolveLocalizedString(lpr.resolveDefaultDescriptionKey(), null);
if (org.apache.commons.lang.StringUtils.isBlank(description)) {
description = localizationUtil.resolveLocalizedString(lpr.resolveDescriptionKey(), description);
}
}
// found
if (title == null && node.hasNode(pentahoJcrConstants.getPHO_TITLE())) {
title = getLocalizedString(session, pentahoJcrConstants, node.getNode(pentahoJcrConstants.getPHO_TITLE()), pentahoLocale);
}
if (description == null && node.hasNode(pentahoJcrConstants.getPHO_DESCRIPTION())) {
description = getLocalizedString(session, pentahoJcrConstants, node.getNode(pentahoJcrConstants.getPHO_DESCRIPTION()), pentahoLocale);
}
}
if (!loadMaps) {
// remove reference, allow garbage collection
localePropertiesMap = null;
}
versioned = isVersioned(session, pentahoJcrConstants, node);
if (versioned) {
versionId = getVersionId(session, pentahoJcrConstants, node);
}
locked = isLocked(pentahoJcrConstants, node);
if (locked) {
Lock lock = session.getWorkspace().getLockManager().getLock(node.getPath());
lockOwner = lockHelper.getLockOwner(session, pentahoJcrConstants, lock);
lockDate = lockHelper.getLockDate(session, pentahoJcrConstants, lock);
lockMessage = lockHelper.getLockMessage(session, pentahoJcrConstants, lock);
}
RepositoryFile file = new RepositoryFile.Builder(id, name).createdDate(created).creatorId(creatorId).lastModificationDate(lastModified).folder(folder).versioned(versioned).path(path).versionId(versionId).fileSize(fileSize).locked(locked).lockDate(lockDate).hidden(hidden).schedulable(schedulable).lockMessage(lockMessage).lockOwner(lockOwner).title(title).description(description).locale(pentahoLocale.toString()).localePropertiesMap(localePropertiesMap).aclNode(aclNode).build();
return file;
}Example 60
| Project: spring-insight-plugins-master File: SimpleTests.java View source code |
public void test() throws LoginException, RepositoryException {
Session session = repository.login(new SimpleCredentials("admin", "admin".toCharArray()));
Assert.assertNotNull("Cannot login", session);
try {
Node root = session.getRootNode();
Assert.assertNotNull("Cannot retrieve root node", root);
// Store content
Node hello = root.addNode("hello");
Assert.assertNotNull("Cannot create node", hello);
hello.setProperty("message", "Hello, World!");
session.save();
// Retrieve content
Node node = root.getNode("hello");
Assert.assertNotNull("Cannot retrieve node by path", node);
Assert.assertEquals("Invalid node property", node.getProperty("message").getString(), "Hello, World!");
} finally {
session.logout();
}
}Example 61
| Project: yarep-master File: JCRNode.java View source code |
/**
* Indicates whether this node is of type "resource".
* @return true if type is resource
* @throws RepositoryException repository error
* @see org.wyona.yarep.core.Node#isResource()
*/
public boolean isResource() throws RepositoryException {
try {
if (jcrNode.hasNode("jcr:content") && jcrNode.getNode("jcr:content").hasProperty("jcr:data")) {
//if (jcrNode.hasProperty(BINARY_CONTENT_PROP_NAME)) {
return true;
} else {
log.warn("Node '" + jcrNode.getPath() + "' does not seem to be of type RESOURCE");
return false;
}
} catch (Exception e) {
throw new RepositoryException(e.getMessage(), e);
}
}Example 62
| Project: acs-aem-tools-master File: CsvAssetImporterServlet.java View source code |
/**
* Updates the Metadata Properties of the Asset.
*
* @param columns the Columns of the CSV
* @param row the row data
* @param ignoreProperties Properties which to ignore when persisting property values to the Asset
* @param asset the Asset to persist the data to
*/
private void updateProperties(final Map<String, Column> columns, final String[] row, final String[] ignoreProperties, final Asset asset) throws RepositoryException, CsvAssetImportException {
// Copy properties
for (final Map.Entry<String, Column> entry : columns.entrySet()) {
if (ArrayUtils.contains(ignoreProperties, entry.getKey())) {
continue;
}
if (StringUtils.isBlank(entry.getKey())) {
log.warn("Found a blank property name for: {}", Arrays.asList(entry.getValue()));
continue;
}
final Column column = entry.getValue();
final String valueStr = row[column.getIndex()];
final Node metaProps = this.getMetadataProperties(asset, column.getRelPropertyPath());
final String propName = column.getPropertyName();
if (StringUtils.isNotBlank(valueStr)) {
if (metaProps.hasProperty(propName)) {
Property prop = metaProps.getProperty(propName);
if ((prop.getType() != column.getJcrPropertyType()) || (column.isMulti() && !prop.isMultiple()) || (!column.isMulti() && prop.isMultiple())) {
prop.remove();
}
}
if (column.isMulti()) {
Object val = column.getMultiData(valueStr);
JcrUtil.setProperty(metaProps, propName, val);
log.debug("Setting multi property [ {} ~> {} ]", column.getRelPropertyPath(), Arrays.asList(column.getMultiData(valueStr)));
} else {
Object val = column.getData(valueStr);
JcrUtil.setProperty(metaProps, propName, val);
log.debug("Setting property [ {} ~> {} ]", column.getRelPropertyPath(), column.getData(valueStr));
}
} else {
if (metaProps.hasProperty(propName)) {
metaProps.getProperty(propName).remove();
log.debug("Removing property [ {} ]", column.getRelPropertyPath());
}
}
}
}Example 63
| Project: gatein-wsrp-master File: JCRConsumerRegistryTestCase.java View source code |
@Override
protected void tearDown() throws Exception {
// remove node containing consumer informations so that we can start with a clean state
final ChromatticPersister persister = ((JCRConsumerRegistry) registry).getPersister();
final Session session = persister.getSession().getJCRSession();
final Node rootNode = session.getRootNode();
final NodeIterator nodes = rootNode.getNodes();
while (nodes.hasNext()) {
nodes.nextNode().remove();
}
// then save
persister.closeSession(true);
}Example 64
| Project: HippoCocoonToolkit-master File: HippoItemXMLDumper.java View source code |
public void dumpHippoItem(final HCTConnManager connManager, final HippoItem item, final String itemPath, final HCTQuery hctQuery, final Locale locale) throws SAXException, RepositoryException, IOException, ObjectBeanManagerException {
final XMLReader xmlReader = new StartEndDocumentFilter(XMLUtils.createXMLReader(saxConsumer));
xmlReader.setContentHandler(saxConsumer);
startHippoItem(item, itemPath);
for (final String fieldName : hctQuery.getReturnFields()) {
Object fieldValue = null;
if (fieldName.contains("/")) {
final String[] splitted = fieldName.split("/");
final List<HippoCompoundDocument> compounds = item.getChildBeansByName(splitted[0], HippoCompoundDocument.class);
if (!compounds.isEmpty()) {
fieldValue = compounds.iterator().next().getProperty(splitted[1]);
}
} else {
fieldValue = item.getProperty(fieldName);
}
if (fieldValue == null) {
final List<HippoHtml> rtfs = item.getChildBeansByName(fieldName, HippoHtml.class);
final List<HippoDate> dates = item.getChildBeansByName(fieldName, HippoDate.class);
if (rtfs != null && !rtfs.isEmpty()) {
for (HippoHtml rtf : rtfs) {
dumpHtml(connManager, rtf, xmlReader, hctQuery.getDateFormat(), locale);
}
}
if (dates != null && !dates.isEmpty()) {
for (HippoDate date : dates) {
dumpDate(fieldName, date.getCalendar(), hctQuery.getDateFormat(), locale);
}
}
} else {
dumpField(new SimpleEntry<String, Object>(fieldName, fieldValue), hctQuery.getDateFormat(), locale);
}
}
if (hctQuery.isReturnTags()) {
dumpTags((String[]) item.getProperty(TaggingNodeType.PROP_TAGS));
}
if (hctQuery.isReturnTaxonomies()) {
dumpTaxonomies(TaxonomyUtils.getTaxonomies(connManager, (String[]) item.getProperty(TaxonomyNodeTypes.HIPPOTAXONOMY_KEYS)), locale);
}
if (hctQuery.isReturnImages()) {
final List<HippoGalleryImageSet> images = new ArrayList<HippoGalleryImageSet>();
for (ImageLinkBean imgLink : item.getChildBeans(ImageLinkBean.class)) {
Node imgLinkNode = null;
try {
imgLinkNode = connManager.getSession().getNodeByIdentifier(imgLink.getImageSetUuid());
} catch (RepositoryException e) {
}
if (imgLinkNode != null) {
final HippoItem imgLinkItem = ObjectUtils.getHippoItem(connManager, imgLinkNode);
if (imgLinkItem instanceof HippoGalleryImageSet) {
images.add((HippoGalleryImageSet) imgLinkItem);
}
}
}
dumpImages(images, Element.IMAGE.getName(), true);
}
if (hctQuery.isReturnRelatedDocs()) {
final List<HippoDocument> relDocs = new ArrayList<HippoDocument>();
for (RelatedDocs docs : item.getChildBeans(RelatedDocs.class)) {
for (String relDocUuid : docs.getRelatedDocsUuids()) {
final HippoDocument doc = ObjectUtils.getHippoItemByUuid(connManager, relDocUuid, HippoDocument.class);
if (doc != null) {
relDocs.add(doc);
}
}
}
dumpRelatedDocs(relDocs, Element.DOCUMENT.getName(), true);
}
endHippoItem(item);
}Example 65
| Project: MadStore-master File: JcrEntryRepository.java View source code |
public Object doInJcr(final Session session) throws IOException, RepositoryException {
String entryKey = entryElement.getAttribute(AtomConstants.ATOM_KEY);
if (!contains(collectionKey, entryKey)) {
Node collection = getCollectionNode(collectionKey, session);
if (collection != null) {
importNodeFromDomEntry(collectionKey, entryKey, entryElement, session);
indexManager.index(collectionKey, entryKey, entryElement);
session.save();
return entryKey;
}
}
return null;
}Example 66
| Project: NabaztagServer-master File: JcrRosterManager.java View source code |
@Override
protected Roster retrieveRosterInternal(Entity bareJid) {
final Node rosterNode = retrieveRosterNode(jcrStorage, bareJid);
MutableRoster roster = new MutableRoster();
NodeIterator nodes = null;
try {
nodes = rosterNode.getNodes();
} catch (RepositoryException e) {
return roster;
}
while (nodes != null && nodes.hasNext()) {
Node node = nodes.nextNode();
String contactJidString = null;
try {
contactJidString = node.getName();
} catch (RepositoryException e) {
logger.warn("when loading roster for user {} cannot read node name for node id = " + node.toString());
}
logger.warn("try now loading contact " + contactJidString + " from node " + node.toString());
EntityImpl contactJid = null;
if (contactJidString != null) {
try {
contactJid = EntityImpl.parse(contactJidString);
} catch (EntityFormatException e) {
logger.warn("when loading roster for user {} parsing contact jid {}", bareJid, contactJidString);
}
}
if (contactJid == null) {
logger.warn("when loading roster for user {}, skipping a contact due to missing or unparsable jid", bareJid);
continue;
}
String name = readAttribute(node, "name");
String typeString = readAttribute(node, "type");
SubscriptionType subscriptionType = null;
try {
subscriptionType = SubscriptionType.valueOf(typeString == null ? "NONE" : typeString.toUpperCase());
} catch (IllegalArgumentException e) {
logger.warn("when loading roster for user " + bareJid + ", contact " + contactJid + " misses a subscription type", bareJid, contactJid);
}
String askTypeString = readAttribute(node, "askType");
AskSubscriptionType askSubscriptionType = AskSubscriptionType.NOT_SET;
try {
if (askTypeString != null)
askSubscriptionType = AskSubscriptionType.valueOf(askTypeString);
} catch (IllegalArgumentException e) {
logger.warn("when loading roster for user " + bareJid.getFullQualifiedName() + ", contact " + contactJid.getFullQualifiedName() + ", the ask subscription type is unparsable. skipping!");
continue;
}
List<RosterGroup> groups = new ArrayList<RosterGroup>();
// TODO read groups
RosterItem item = new RosterItem(contactJid, name, subscriptionType, askSubscriptionType, groups);
logger.info("item loaded for " + bareJid.getFullQualifiedName() + ": " + item.toString());
roster.addItem(item);
}
return roster;
}Example 67
| Project: aorra-master File: FileStoreHelper.java View source code |
private void listAdminTree(Authorizable authorizable, int depth) throws RepositoryException {
boolean isGroup = authorizable instanceof Group;
String id = authorizable.getID();
String email = "";
try {
// Get user email if user
Node node = session.getNodeByIdentifier(id);
email = node.getProperty("email").getValue().getString();
} catch (Exception e) {
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < depth - 1; i++) {
sb.append("| ");
}
if (isGroup) {
sb.append("|-+ ");
sb.append(id);
} else {
sb.append("|-- ");
if (StringUtils.isNotBlank(email)) {
sb.append(email);
} else {
sb.append(id);
}
}
out.println(sb);
if (isGroup) {
Iterator<Authorizable> aIter = ((Group) authorizable).getDeclaredMembers();
while (aIter.hasNext()) {
Authorizable a = aIter.next();
listAdminTree(a, depth + 1);
}
}
}Example 68
| Project: archiva-master File: JcrMetadataRepository.java View source code |
@Override
public void updateArtifact(String repositoryId, String namespace, String projectId, String projectVersion, ArtifactMetadata artifactMeta) throws MetadataRepositoryException {
updateNamespace(repositoryId, namespace);
try {
Node node = getOrAddArtifactNode(repositoryId, namespace, projectId, projectVersion, artifactMeta.getId());
Calendar cal = Calendar.getInstance();
cal.setTime(artifactMeta.getFileLastModified());
node.setProperty(JCR_LAST_MODIFIED, cal);
cal = Calendar.getInstance();
cal.setTime(artifactMeta.getWhenGathered());
node.setProperty("whenGathered", cal);
node.setProperty("size", artifactMeta.getSize());
node.setProperty("md5", artifactMeta.getMd5());
node.setProperty("sha1", artifactMeta.getSha1());
node.setProperty("version", artifactMeta.getVersion());
// iterate over available facets to update/add/remove from the artifactMetadata
for (String facetId : metadataFacetFactories.keySet()) {
MetadataFacet metadataFacet = artifactMeta.getFacet(facetId);
if (metadataFacet == null) {
continue;
}
if (node.hasNode(facetId)) {
node.getNode(facetId).remove();
}
if (metadataFacet != null) {
// recreate, to ensure properties are removed
Node n = node.addNode(facetId);
n.addMixin(FACET_NODE_TYPE);
for (Map.Entry<String, String> entry : metadataFacet.toProperties().entrySet()) {
n.setProperty(entry.getKey(), entry.getValue());
}
}
}
} catch (RepositoryException e) {
throw new MetadataRepositoryException(e.getMessage(), e);
}
}Example 69
| Project: chrysalix-master File: ModelspaceImpl.java View source code |
/**
* {@inheritDoc}
*
* @see org.modelspace.internal.task.WriteTaskWithResult#run(javax.jcr.Session)
*/
@Override
public Boolean run(final Session session) throws Exception {
final String absPath = absolutePath(path);
if (session.nodeExists(absPath)) {
final Node node = session.getNode(absPath);
if (!node.isNodeType(ModelspaceLexicon.Model.MODEL_MIXIN)) {
throw new IllegalArgumentException(ModelspaceI18n.localize(NOT_MODEL_PATH, absPath));
}
return true;
}
return false;
}Example 70
| Project: com.activecq.samples-master File: ReverseReplicatorImpl.java View source code |
private void setLastModified(final Resource resource) {
try {
Calendar now = Calendar.getInstance();
Node node = resource.adaptTo(Node.class);
node.setProperty(JcrConstants.JCR_LASTMODIFIED, now);
node.setProperty(JcrConstants.JCR_LAST_MODIFIED_BY, resource.getResourceResolver().getUserID());
node.getSession().save();
} catch (ValueFormatException ex) {
java.util.logging.Logger.getLogger(ReverseReplicatorImpl.class.getName()).log(Level.SEVERE, null, ex);
} catch (VersionException ex) {
java.util.logging.Logger.getLogger(ReverseReplicatorImpl.class.getName()).log(Level.SEVERE, null, ex);
} catch (LockException ex) {
java.util.logging.Logger.getLogger(ReverseReplicatorImpl.class.getName()).log(Level.SEVERE, null, ex);
} catch (ConstraintViolationException ex) {
java.util.logging.Logger.getLogger(ReverseReplicatorImpl.class.getName()).log(Level.SEVERE, null, ex);
} catch (RepositoryException ex) {
java.util.logging.Logger.getLogger(ReverseReplicatorImpl.class.getName()).log(Level.SEVERE, null, ex);
}
}Example 71
| Project: com.idega.block.article-master File: ArticleLocalizedItemBean.java View source code |
protected void storeToJCR(InputStream stream, String filePath, String article) throws RepositoryException, IOException {
//IWContext iwc = CoreUtil.getIWContext();
Session session = getSession();
//WebdavRootResource rootResource = session.getWebdavRootResource();
RepositoryHelper helper = getRepositoryHelper();
Node fileNode = null;
//boolean success = false;
try {
stream = StringHandler.getStreamFromString(article);
//Conflict fix: uri for creating but path for updating
//Note! This is a patch to what seems to be a bug in WebDav
//Apparently in verion below works in some cases and the other in other cases.
//Seems to be connected to creating files in folders created in same tomcat session or similar
//not quite clear...
fileNode = helper.updateFileContents(session, filePath, stream);
fileNode.setProperty(ArticleItemBean.CONTENT_TYPE_WITH_PREFIX, CoreConstants.ARTICLE_FILENAME_SCOPE);
//rootResource.close();
if (fileNode != null) {
fileNode.save();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
closeInputStream(stream);
}
/*if (success) {
rootResource.proppatchMethod(filePath, ArticleItemBean.PROPERTY_CONTENT_TYPE,CoreConstants.ARTICLE_FILENAME_SCOPE,true);
}
else {
try {
stream = StringHandler.getStreamFromString(article);
String fixedURL = session.getURI(filePath);
rootResource.putMethod(fixedURL, stream);
rootResource.proppatchMethod(fixedURL, ArticleItemBean.PROPERTY_CONTENT_TYPE,CoreConstants.ARTICLE_FILENAME_SCOPE,true);
} catch(Exception e) {
e.printStackTrace();
} finally {
closeInputStream(stream);
}
}*/
}Example 72
| Project: com.idega.content-master File: ContentItemBean.java View source code |
protected boolean loadFromJCR(String path) throws IOException, RemoteException, HttpException {
//IWContext iwc = IWContext.getInstance();
boolean returner = true;
try {
//IWSlideSession session = getIWSlideSession(iwuc);
Session session = getSession();
Node folderNode = session.getRootNode().getNode(path);
//WebdavExtendedResource webdavResource = session.getWebdavResource(path);
//webdavResource.setProperties();
//here I don't use the varible 'path' since it can actually be the URI
setResourcePath(folderNode.getPath());
Property displayNameProp = folderNode.getProperty(DISPLAYNAME);
if (displayNameProp != null) {
setName(displayNameProp.getValue().getString());
}
//String versionName = webdavResource.getVersionName();
/*List versions = VersionHelper.getAllVersions(webdavResource);
if(versions!=null){
setVersions(versions);
String latestVersion = VersionHelper.getLatestVersionName(versions);
setVersionName(latestVersion);
}*/
Property createDateProp = folderNode.getProperty(CREATIONDATE);
if (createDateProp != null) {
try {
Calendar creationDate = createDateProp.getDate();
//String sCreateDate = createDateProp.getValue().getString();
setCreationDate(new IWTimestamp((GregorianCalendar) creationDate).getTimestamp());
} catch (Exception e) {
e.printStackTrace();
}
}
Property lastmodifiedProp = folderNode.getProperty(GETLASTMODIFIED);
if (lastmodifiedProp != null) {
//long lLastmodified = Long.parseLong(lastmodifiedProp.getValue().getString());
try {
//long lLastmodified = lastmodifiedProp.getValue().getLong();
//IWTimestamp lastModified = new IWTimestamp(lLastmodified);
//setLastModifiedDate(lastModified.getTimestamp());
Calendar creationDate = lastmodifiedProp.getDate();
//String sCreateDate = createDateProp.getValue().getString();
setLastModifiedDate(new IWTimestamp((GregorianCalendar) creationDate).getTimestamp());
} catch (ValueFormatException vfe) {
vfe.printStackTrace();
}
}
try {
Property categoriesProp = folderNode.getProperty(IWSlideConstants.PROPERTYNAME_CATEGORY);
if (categoriesProp != null) {
String categories = categoriesProp.getValue().getString();
setCategories(categories);
}
} catch (PathNotFoundException pnfe) {
}
returner = load(folderNode);
setExists(true);
// System.out.print("["+this.toString()+"]:");
// System.out.println("Load "+((returner)?"":"not")+" successful of path "+path);
} catch (PathNotFoundException e) {
setRendered(false);
return false;
} catch (RepositoryException e) {
e.printStackTrace();
setRendered(false);
return false;
}
return returner;
}Example 73
| Project: com.idega.core-master File: RepositoryHelper.java View source code |
public Node updateFileContents(Session session, String absolutePath, InputStream fileContents, boolean createFile) throws RepositoryException { Node fileNode = null; try { fileNode = getFile(session, absolutePath); } catch (PathNotFoundException pfe) { if (createFile) { fileNode = createFile(session, absolutePath); } else { throw pfe; } } Node contentNode = fileNode.getNode(NODE_CONTENT); contentNode.getProperty(PROPERTY_BINARY_DATA).setValue(fileContents); return fileNode; }
Example 74
| Project: docx4j-master File: SaveToJCR.java View source code |
/* Save a Package to baseNode in JCR. * baseNode must exist an be a suitable node type. * eg Node exampledoc1 = docs.addNode("exampledoc1.docx", "nt:file"); Node baseNode = exampledoc1.addNode("jcr:content", "nt:unstructured"); Consider passing instead the folder node and desired filename. * */ public boolean save(Node baseNode) throws Docx4JException { try { log.info("Saving to" + baseNode.getPath()); // // Create the ZIP file // ZipOutputStream out = new ZipOutputStream(new FileOutputStream(filepath)); // 3. Get [Content_Types].xml ContentTypeManager ctm = p.getContentTypeManager(); org.w3c.dom.Document w3cDoc = XmlUtils.getNewDocumentBuilder().newDocument(); ctm.marshal(w3cDoc); saveRawXmlPart(jcrSession, baseNode, "[Content_Types].xml", w3cDoc); // 4. Start with _rels/.rels // <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"> // <Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/> // <Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/> // <Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="word/document.xml"/> // </Relationships> String partName = "_rels/.rels"; RelationshipsPart rp = p.getRelationshipsPart(); // TODO - replace with saveRawXmlPart(baseNode, rp) // once we know that partName resolves correctly // saveRawXmlPart(baseNode, partName, rp.getW3cDocument() ); saveRawXmlPart(baseNode, rp); // 5. Now recursively // addPartsFromRelationships(baseNode, "", rp ); addPartsFromRelationships(baseNode, rp); jcrSession.save(); } catch (Exception e) { e.printStackTrace(); if (e instanceof Docx4JException) { throw (Docx4JException) e; } else { throw new Docx4JException("Failed to save package", e); } } log.info("...Done!"); return true; }
Example 75
| Project: jbpm3-seam-master File: JcrNodeInstance.java View source code |
protected void setObject(Object value) {
Node node = (Node) value;
if (value == null) {
repository = null;
workspace = null;
path = null;
} else {
try {
// repository and workspace have to correspond with a service name,
// as described in findService, unless there is a global "jcr" service
Session session = node.getSession();
repository = session.getRepository().getDescriptor(Repository.REP_NAME_DESC);
workspace = session.getWorkspace().getName();
path = node.getPath();
if (log.isDebugEnabled()) {
log.debug("stored jcr node, repository '" + repository + "', workspace '" + workspace + "' and path'" + path + '\'');
}
} catch (RepositoryException e) {
throw new JbpmException("problem storing JCR node '" + node + "' in the process variable '" + name + "'", e);
}
}
}Example 76
| Project: Leabharlann-master File: FileContentMessageConverter.java View source code |
@Override public Object doInSessionWithNode(Session session, Node node) throws Exception { final Node resourceNode = node.getNode(Node.JCR_CONTENT); final String mimeType = jcrAccessor.getStringProperty(resourceNode, Property.JCR_MIMETYPE); final Calendar lastModified = jcrAccessor.getCalendarProperty(resourceNode, Property.JCR_LAST_MODIFIED); final Binary data = jcrAccessor.getBinaryProperty(resourceNode, Property.JCR_DATA); if (jcrAccessor.hasProperty(resourceNode, Property.JCR_ENCODING)) { final String encoding = jcrAccessor.getStringProperty(resourceNode, Property.JCR_ENCODING); outputMessage.getHeaders().setContentType(new MediaType(MediaType.valueOf(mimeType), Collections.singletonMap("charset", encoding))); } else { outputMessage.getHeaders().setContentType(MediaType.valueOf(mimeType)); } outputMessage.getHeaders().setContentLength(data.getSize()); if (lastModified != null) { outputMessage.getHeaders().setLastModified(lastModified.getTimeInMillis()); } outputMessage.getHeaders().set("Content-Disposition", "attachment;filename=" + node.getName()); IOUtils.copy(data.getStream(), outputMessage.getBody()); return null; }
Example 77
| Project: puglieseweb.com-master File: AbstractSingleFlowController.java View source code |
/**
* Allows for rewriting url prior to redirection.
*
* Implements support for redirecting to the currently rendered page using a placeholder. I.e:
* <code>
* view="externalRedirect:magnolia-redirect:main-content"
* </code>
*
* @param url the url Spring WebFlow intends to redirect to
* @return the rewritten url or if no change was made returns the passed in url unchanged
*/
protected String rewriteRedirectUrl(String url) throws IOException {
try {
if (url.equals("/" + UuidRedirectViewResolver.REDIRECT_MAIN_CONTENT_PLACEHOLDER)) {
Node node = MgnlContext.getAggregationState().getMainContentNode();
String workspaceName = node.getSession().getWorkspace().getName();
String identifier = node.getIdentifier();
url = LinkUtil.convertUUIDtoURI(identifier, workspaceName);
}
return url;
} catch (RepositoryException e) {
throw new IOException("Could not convert placeholder to link", e);
} catch (LinkException e) {
throw new IOException("Could not convert placeholder to link", e);
}
}Example 78
| Project: tesb-rt-se-master File: PersistencyJCRManager.java View source code |
@Override
public void storeObject(String context, String key) throws PersistencyException {
Session session = null;
Node rootNode;
Node node;
synchronized (this) {
try {
session = getSession();
rootNode = session.getRootNode();
if (rootNode.hasNode(key)) {
throw new ObjectAlreadyExistsException("Dublicated object with key {" + key + "}");
}
node = rootNode.addNode(key);
node.setProperty(CONTEXT_DATA_PROPERTY_NAME, context);
session.save();
} catch (RepositoryException e) {
LOG.log(Level.SEVERE, "Failed to sotre object. RepositoryException. Error message: " + e.getMessage());
throw new PersistencyException("Saving object failed due to error " + e.getMessage());
} finally {
releaseSession(session);
}
}
}Example 79
| Project: wcm-io-wcm-master File: TemplateFilterPageTreeProviderTest.java View source code |
private void mockQueryResult(String... paths) {
List<String> resultPaths = ImmutableList.copyOf(paths);
List<Node> resultNodes = Lists.transform(resultPaths, new Function<String, Node>() {
@Override
public Node apply(String path) {
return context.resourceResolver().getResource(path).adaptTo(Node.class);
}
});
MockJcr.setQueryResult(context.resourceResolver().adaptTo(Session.class), resultNodes);
}Example 80
| Project: org.liveSense.misc.i18n-master File: I18nLoader.java View source code |
/**
* Creates or gets the {@link javax.jcr.Node Node} at the given Path.
*
* @param session The session to use for node creation
* @param absolutePath absolute node path
* @param nodeType to use for creation of the final node
* @return the Node at path
* @throws RepositoryException in case of exception accessing the Repository
*/
private Node createPath(final Session session, final String absolutePath, final String nodeType) throws RepositoryException {
final Node parentNode = session.getRootNode();
String relativePath = absolutePath.substring(1);
if (!parentNode.hasNode(relativePath)) {
Node node = parentNode;
int pos = relativePath.lastIndexOf('/');
if (pos != -1) {
final StringTokenizer st = new StringTokenizer(relativePath.substring(0, pos), "/");
while (st.hasMoreTokens()) {
final String token = st.nextToken();
if (!node.hasNode(token)) {
try {
node.addNode(token, FOLDER_NODE_TYPE);
} catch (RepositoryException re) {
node.refresh(false);
}
}
node = node.getNode(token);
}
relativePath = relativePath.substring(pos + 1);
}
if (!node.hasNode(relativePath)) {
node.addNode(relativePath, nodeType);
}
return node.getNode(relativePath);
}
return parentNode.getNode(relativePath);
}Example 81
| Project: Adobe-CQ5-Brightcove-Connector-master File: BrcApi.java View source code |
public void api(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws ServletException, IOException {
response.setContentType("application/json;charset=UTF-8");
PrintWriter outWriter = response.getWriter();
int requestedAPI = 0;
String requestedAccount = "";
if (request.getParameter("a") != null && request.getParameter("account_id") != null && !request.getParameter("account_id").trim().isEmpty()) {
response.setContentType("application/json");
requestedAccount = request.getParameter("account_id");
ConfigurationGrabber cg = ServiceUtil.getConfigurationGrabber();
ConfigurationService cs = cg.getConfigurationService(requestedAccount);
ServiceUtil serviceUtil = new ServiceUtil(requestedAccount);
boolean is_authorized = false;
Session session = request.getResourceResolver().adaptTo(Session.class);
UserManager userManager = request.getResourceResolver().adaptTo(UserManager.class);
/* to get the current user */
try {
Authorizable auth = userManager.getAuthorizable(session.getUserID());
if (auth != null) {
List<String> allowedGroups = cs.getAllowedGroupsList();
Iterator<Group> groups = auth.memberOf();
while (groups.hasNext() && !is_authorized) {
Group group = groups.next();
if (allowedGroups.contains(group.getID()))
is_authorized = true;
}
}
} catch (RepositoryException re) {
}
if (is_authorized) {
requestedAPI = Integer.parseInt(request.getParameter("a"));
switch(requestedAPI) {
case //no commands
0:
outWriter.write("Test");
break;
case 1:
JSONObject players = null;
String type = request.getParameter("players_type");
if ("legacy".equals(type)) {
players = new JSONObject();
try {
JSONArray playesArray = new JSONArray();
String playersPath = cs.getPlayersLoc();
Resource res = request.getResourceResolver().resolve(playersPath);
Iterator<Resource> playersItr = res.listChildren();
while (playersItr.hasNext()) {
Resource playerRes = playersItr.next().getChild("jcr:content");
if (playerRes != null) {
Node playerNode = playerRes.adaptTo(Node.class);
if (playerRes != null && "brightcove/components/page/brightcoveplayer".equals(playerRes.getResourceType())) {
try {
org.apache.sling.commons.json.JSONObject item = new JSONObject();
String path = playerRes.getPath();
String title = playerNode.hasProperty("jcr:title") ? playerNode.getProperty("jcr:title").getString() : playerNode.getName();
String account = playerNode.hasProperty("account") ? playerNode.getProperty("account").getString() : playerNode.getName();
if (!account.trim().isEmpty() && account.equals(requestedAccount)) {
item.put("id", path);
item.put("name", title);
playesArray.put(item);
}
} catch (Exception e) {
}
}
}
}
players.put("items", playesArray);
players.put("item_count", playesArray.length());
} catch (JSONException e) {
}
} else {
players = serviceUtil.getPlayers();
}
outWriter.write(players.toString());
break;
case 2:
LOGGER.debug("query: " + request.getParameter("query"));
if (request.getParameter("query") != null && !request.getParameter("query").trim().isEmpty()) {
int start = 0;
try {
start = Integer.parseInt(request.getParameter("start"));
} catch (NumberFormatException e) {
LOGGER.error("NumberFormatException", e);
}
int limit = serviceUtil.DEFAULT_LIMIT;
try {
limit = Integer.parseInt(request.getParameter("limit"));
} catch (NumberFormatException e) {
LOGGER.error("NumberFormatException", e);
}
outWriter.write(serviceUtil.getList(false, start, limit, false, request.getParameter("query")));
} else {
LOGGER.debug("getListSideMenu");
outWriter.write(serviceUtil.getListSideMenu(request.getParameter("limit")));
}
break;
case 3:
response.setHeader("Content-type", "application/xls");
response.setHeader("Content-disposition", "inline; filename=Brightcove_Library_Export.csv");
outWriter.write(serviceUtil.getList(true, Integer.parseInt(request.getParameter("start")), Integer.parseInt(request.getParameter("limit")), true, request.getParameter("query")));
break;
case 4:
if (request.getParameter("query") != null && !request.getParameter("query").trim().isEmpty()) {
outWriter.write(serviceUtil.getPlaylistByID(request.getParameter("query")).toString());
} else {
outWriter.write(serviceUtil.getListPlaylistsSideMenu(request.getParameter("limit")));
}
break;
case 5:
LOGGER.debug("query: " + request.getParameter("query"));
if ("true".equals(request.getParameter("isID"))) {
LOGGER.debug("isID");
JSONObject items = new JSONObject();
JSONArray videos = new JSONArray();
try {
JSONObject video = serviceUtil.getSelectedVideo(request.getParameter("query"));
long totalItems = 0;
if (video.has("id")) {
totalItems = 1;
videos.put(video);
}
items.put("items", (JSONArray) videos);
items.put("totals", totalItems);
outWriter.write(items.toString(1));
} catch (JSONException je) {
outWriter.write("{\"items\":[],\"totals\":0}");
}
} else {
LOGGER.debug("NOT isID");
outWriter.write(serviceUtil.searchVideo(request.getParameter("query"), Integer.parseInt(request.getParameter("start")), Integer.parseInt(request.getParameter("limit"))));
}
break;
case 6:
if ("true".equals(request.getParameter("isID"))) {
JSONObject items = new JSONObject();
JSONArray playlists = new JSONArray();
try {
JSONObject playlist = serviceUtil.getPlaylistByID(request.getParameter("query"));
long totalItems = 0;
if (playlist.has("id")) {
totalItems = 1;
playlists.put(playlist);
}
items.put("items", (JSONArray) playlists);
items.put("totals", totalItems);
outWriter.write(items.toString(1));
} catch (JSONException je) {
outWriter.write("{\"items\":[],\"totals\":0}");
}
} else {
outWriter.write(serviceUtil.getPlaylists(Integer.parseInt(request.getParameter("start")), Integer.parseInt(request.getParameter("limit")), false, false));
}
break;
default:
break;
}
} else {
outWriter.write("{\"items\":[],\"totals\":0}");
}
} else {
outWriter.write("{\"items\":[],\"totals\":0}");
}
}Example 82
| Project: bi-platform-v2-master File: JcrCmsOutputHandler.java View source code |
@Override
public IContentItem getFileOutputContentItem() {
String contentName = getContentRef();
try {
Repository repository = getRepository();
if (repository == null) {
Logger.error(JcrCmsOutputHandler.class.getName(), Messages.getInstance().getString(//$NON-NLS-1$
"JcrCmsOutputHandler.ERROR_0001_GETTING_CMSREPO"));
return null;
}
Session jcrSession = getJcrSession(repository);
if (jcrSession == null) {
Logger.error(JcrCmsOutputHandler.class.getName(), Messages.getInstance().getString(//$NON-NLS-1$
"JcrCmsOutputHandler.ERROR_0002_GETTING_SESSION"));
return null;
}
// Use the root node as a starting point
Node root = jcrSession.getRootNode();
if (root == null) {
Logger.error(JcrCmsOutputHandler.class.getName(), Messages.getInstance().getString(//$NON-NLS-1$
"JcrCmsOutputHandler.ERROR_0003_GETTING_ROOT"));
return null;
}
Node node = root;
// parse the path
//$NON-NLS-1$
StringTokenizer tokenizer = new StringTokenizer(contentName, "/");
int levels = tokenizer.countTokens();
for (int idx = 0; idx < levels - 1; idx++) {
String folder = tokenizer.nextToken();
if (!node.hasNode(folder)) {
// Create an unstructured node under which to import the XML
//$NON-NLS-1$
node = node.addNode(folder, "nt:folder");
} else {
node = node.getNodes(folder).nextNode();
}
}
// we should be at the right level now
String fileName = tokenizer.nextToken();
Node fileNode = null;
Node contentNode = null;
Version version = null;
if (node.hasNode(fileName)) {
fileNode = node.getNode(fileName);
//$NON-NLS-1$
contentNode = fileNode.getNode("jcr:content");
if (contentNode.isLocked()) {
JcrCmsOutputHandler.logger.warn(//$NON-NLS-1$
Messages.getInstance().getString("JcrCmsOutputHandler.ERROR_0004_NODE_LOCKED", contentName));
return null;
}
if (contentNode.isCheckedOut()) {
JcrCmsOutputHandler.logger.warn(Messages.getInstance().getString("JcrCmsOutputHandler.ERROR_0005_NODE_CHECKED_OUT", //$NON-NLS-1$
contentName));
return null;
}
contentNode.checkout();
VersionHistory history = contentNode.getVersionHistory();
VersionIterator iterator = history.getAllVersions();
while (iterator.hasNext()) {
version = iterator.nextVersion();
JcrCmsOutputHandler.logger.trace(version.getPath() + "," + version.getName() + "," + version.getIndex() + "," + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
version.getCreated().toString());
}
} else {
//$NON-NLS-1$
fileNode = node.addNode(fileName, "nt:file");
//$NON-NLS-1$
fileNode.addMixin("mix:versionable");
// create the mandatory child node - jcr:content
//$NON-NLS-1$ //$NON-NLS-2$
contentNode = fileNode.addNode("jcr:content", "nt:resource");
//$NON-NLS-1$
contentNode.addMixin("mix:versionable");
//$NON-NLS-1$
contentNode.addMixin("mix:filename");
//$NON-NLS-1$
contentNode.setProperty("jcr:mimeType", getMimeType());
//$NON-NLS-1$
contentNode.setProperty("jcr:name", fileName);
//$NON-NLS-1$
contentNode.setProperty("jcr:encoding", LocaleHelper.getSystemEncoding());
}
CmsContentListener listener = new CmsContentListener(contentNode, jcrSession);
BufferedContentItem contentItem = new BufferedContentItem(listener);
listener.setContentItem(contentItem);
if (false) {
// Disable faked search for now
//$NON-NLS-1$
search("test", jcrSession);
}
return contentItem;
} catch (LockException le) {
Logger.error(JcrCmsOutputHandler.class.getName(), Messages.getInstance().getString("JcrCmsOutputHandler.ERROR_0006_GETTING_OUTPUTHANDLER") + contentName, le);
} catch (NestableRuntimeException nre) {
Logger.error(JcrCmsOutputHandler.class.getName(), Messages.getInstance().getString("JcrCmsOutputHandler.ERROR_0006_GETTING_OUTPUTHANDLER") + contentName, nre);
} catch (RepositoryException re) {
Logger.error(JcrCmsOutputHandler.class.getName(), Messages.getInstance().getString("JcrCmsOutputHandler.ERROR_0006_GETTING_OUTPUTHANDLER") + contentName, re);
}
return null;
}Example 83
| Project: com.idega.slide-master File: SlideNode.java View source code |
private void create(String nodePath, String type) throws ItemExistsException {
try {
//try {
// objectNode = structure.retrieve(token, nodePath);
// revisions = content.retrieve(token, nodePath);
// lastRevision = revisions.getLatestRevision();
//} catch (ObjectNotFoundException e) {
SubjectNode subject = new SubjectNode();
// Create object
try {
structure.create(token, subject, nodePath);
objectNode = structure.retrieve(token, nodePath);
} catch (ObjectAlreadyExistsException e1) {
throw new ItemExistsException(e1);
}
if (lastRevision == null) {
lastRevision = new NodeRevisionNumber();
} else {
lastRevision = new NodeRevisionNumber(lastRevision, false);
}
// Node revision descriptor
IWTimestamp now = IWTimestamp.RightNow();
revisionDescriptor = new NodeRevisionDescriptor(lastRevision, NodeRevisionDescriptors.MAIN_BRANCH, new Vector(), new Hashtable());
if (type.equals(PRIMARY_NODETYPE_FILE)) {
revisionDescriptor.setResourceType(CoreConstants.EMPTY);
}
/*
* revisionDescriptor.setResourceType(CoreConstants.EMPTY);
*/
revisionDescriptor.setSource(CoreConstants.EMPTY);
revisionDescriptor.setContentLanguage(Locale.ENGLISH.getLanguage());
revisionDescriptor.setLastModified(now.getDate());
revisionDescriptor.setETag(computeEtag(path, revisionDescriptor));
revisionDescriptor.setCreationDate(now.getDate());
if (this.type.equals(PRIMARY_NODETYPE_FOLDER)) {
//this.setProperty(Property, "<collection/>");
this.revisionDescriptor.setResourceType("<collection/>");
}
isNew = true;
// Create content
//revisionContent = new NodeRevisionContent();
// revisionContent.setContent(stream);
// Important to create NodeRevisionDescriptors separately to be
// able to tell it to use versioning
//if (lastRevision.toString().equals("1.0")) {
// content.create(token, nodePath, true);
//}
//content.create(token, nodePath, revisionDescriptor,
// revisionContent);
} catch (ObjectNotFoundException e) {
e.printStackTrace();
} catch (org.apache.slide.security.AccessDeniedException e) {
e.printStackTrace();
} catch (LinkedObjectNotFoundException e) {
e.printStackTrace();
} catch (ObjectLockedException e) {
e.printStackTrace();
} catch (ServiceAccessException e) {
e.printStackTrace();
} catch (VetoException e) {
e.printStackTrace();
}
}Example 84
| Project: cq5-healthcheck-master File: JcrObservationDelayProvider.java View source code |
@Activate
protected void activate(ComponentContext ctx) {
Session readWriteSession = null;
Dictionary<?, ?> props = ctx.getProperties();
delayWarn = PropertiesUtil.toLong(props.get(DELAY_WARN), DEFAULT_DELAY_WARN);
delayCritical = PropertiesUtil.toLong(props.get(DELAY_CRITICAL), DEFAULT_DELAY_CRITICAL);
schedulingInterval = PropertiesUtil.toLong(props.get(SCHEDULING_INTERVAL), DEFAULT_SCHEDULING_INTERVAL);
category = PropertiesUtil.toString(props.get(CATEGORY), null);
try {
readWriteSession = repo.loginAdministrative(null);
if (!readWriteSession.getRootNode().hasNode(tempDir.replaceFirst("/", ""))) {
log.info("Created temp directory");
JcrUtil.createPath(tempDir, "nt:unstructured", readWriteSession);
readWriteSession.save();
}
// Node tmpNode = readWriteSession.getNode(tempDir);
// Long now = System.currentTimeMillis();
// NodeIterator childs = tmpNode.getNodes();
} catch (RepositoryException e) {
log.error("Cannot create Session for setting up temp directory:", e);
} finally {
if (readWriteSession != null && readWriteSession.isLive()) {
readWriteSession.logout();
}
}
try {
listenSession = repo.loginAdministrative(null);
startListen();
} catch (RepositoryException e) {
log.error("Cannot create listenSession", e);
}
try {
scheduler.fireJob(new ObservationTrigger(tempDir), null);
scheduler.addPeriodicJob(JOBNAME, new ObservationTrigger(tempDir), null, schedulingInterval, false);
} catch (Exception e) {
log.error("Cannot start scheduler", e);
}
log.info("JcrObservationDelay checker started");
}Example 85
| Project: hippo-gmaps-master File: GmapsPlugin.java View source code |
private String[] getLocation() {
String[] location = new String[2];
Node locationNode = (Node) getDefaultModelObject();
try {
if (locationNode != null) {
location[0] = String.valueOf(locationNode.getProperty("gmaps:latitude").getDouble());
location[1] = String.valueOf(locationNode.getProperty("gmaps:longitude").getDouble());
} else {
location[0] = "0.0";
location[1] = "0.0";
}
} catch (RepositoryException e) {
LOGGER.error(e.getMessage(), e);
}
return location;
}Example 86
| Project: intelij-hippo-groovy-master File: RepositoryConnector.java View source code |
public boolean saveGroovyFile(final String path, final Location location, final FileDialogData data) {
Session session = null;
try {
session = getSession();
if (session.nodeExists(path)) {
session.removeItem(path);
}
final Node root = session.getNode(location.getPath());
final Node scriptNode = root.addNode(data.getScriptName(), "hipposys:updaterinfo");
scriptNode.setProperty("hipposys:batchsize", data.getBatchSize());
scriptNode.setProperty("hipposys:throttle", data.getThrottle());
scriptNode.setProperty("hipposys:dryrun", data.isDryRun());
final String queryScript = data.getQueryScript();
if (!Strings.isNullOrEmpty(queryScript)) {
scriptNode.setProperty("hipposys:query", queryScript);
}
String content = data.getContent();
if (Strings.isNullOrEmpty(content)) {
content = "//no script defined";
}
scriptNode.setProperty("hipposys:script", content);
final String pathScript = data.getPathScript();
if (!Strings.isNullOrEmpty(pathScript)) {
scriptNode.setProperty("hipposys:path", pathScript);
}
session.save();
return true;
} catch (RepositoryException e) {
GroovyEditor.error("Error saving template to hippo repository" + e.getMessage(), project);
} finally {
if (session != null) {
session.logout();
}
}
return false;
}Example 87
| Project: juzu-master File: SecretServiceJCRImpl.java View source code |
@Override
public List<Secret> getSecrets() {
List<Secret> secrets = new LinkedList<Secret>();
try {
Node secretHome = getSecretHome();
NodeIterator iterChild = secretHome.getNodes();
while (iterChild.hasNext()) {
secrets.add(buildSecret(iterChild.nextNode()));
}
return secrets;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}Example 88
| Project: Poll-Legacy-master File: VoteAction.java View source code |
// Vote action
public ActionResult doExecute(HttpServletRequest req, RenderContext renderContext, Resource resource, JCRSessionWrapper session, Map<String, List<String>> parameters, URLResolver urlResolver) throws Exception {
String answerUUID = req.getParameter("answerUUID");
// Poll Node management
// Get the pollNode
JCRNodeWrapper pollNode = session.getNodeByUUID(renderContext.getMainResource().getNode().getIdentifier());
// Get a version manager
VersionManager versionManager = pollNode.getSession().getWorkspace().getVersionManager();
// Check out poll node
if (!versionManager.isCheckedOut(pollNode.getPath()))
versionManager.checkout(pollNode.getPath());
// Update total of votes (poll node)
long totalOfVotes = pollNode.getProperty("totalOfVotes").getLong();
pollNode.setProperty("totalOfVotes", totalOfVotes + 1);
// Answer node management
// Get the answer node
JCRNodeWrapper answerNode = pollNode.getSession().getNodeByUUID(answerUUID);
// Check out answerNode
if (!versionManager.isCheckedOut(answerNode.getPath()))
versionManager.checkout(answerNode.getPath());
// Increment nb votes
long nbOfVotes = answerNode.getProperty("nbOfVotes").getLong();
answerNode.setProperty("nbOfVotes", nbOfVotes + 1);
// Save
pollNode.getSession().save();
// Check in
versionManager.checkin(pollNode.getPath());
// Check in poll node
versionManager.checkin(answerNode.getPath());
return new ActionResult(HttpServletResponse.SC_OK, null, generateJSONObject(pollNode));
}Example 89
| Project: com.idega.jackrabbit-master File: JackrabbitRepository.java View source code |
private Node uploadFile(String parentPath, String fileName, InputStream content, String mimeType, User user, AdvancedProperty... properties) throws RepositoryException { if (parentPath == null) { getLogger().warning("Parent path is not defined!"); return null; } if (StringUtil.isEmpty(fileName)) { getLogger().warning("File name is not defined!"); return null; } if (content == null) { getLogger().warning("Input stream is invalid!"); return null; } if (!parentPath.endsWith(CoreConstants.SLASH)) { parentPath = parentPath.concat(CoreConstants.SLASH); } Binary binary = null; Session session = null; try { session = getSession(user); VersionManager versionManager = session.getWorkspace().getVersionManager(); Node root = session.getRootNode(); Node folder = getFolderNode(root, parentPath); Node file = getFileNode(folder, fileName, versionManager); Node resource = getResourceNode(file); if (resource == null) { resource = file.addNode(JcrConstants.JCR_CONTENT, JcrConstants.NT_RESOURCE); } mimeType = StringUtil.isEmpty(mimeType) ? MimeTypeUtil.resolveMimeTypeFromFileName(fileName) : mimeType; mimeType = StringUtil.isEmpty(mimeType) ? MimeTypeUtil.MIME_TYPE_APPLICATION : mimeType; resource.setProperty(JcrConstants.JCR_MIMETYPE, mimeType); resource.setProperty(JcrConstants.JCR_ENCODING, CoreConstants.ENCODING_UTF8); binary = ValueFactoryImpl.getInstance().createBinary(content); resource.setProperty(JcrConstants.JCR_DATA, binary); Calendar lastModified = Calendar.getInstance(); lastModified.setTimeInMillis(System.currentTimeMillis()); resource.setProperty(JcrConstants.JCR_LASTMODIFIED, lastModified); session.save(); versionManager.checkin(file.getPath()); return file; } finally { if (binary != null) { binary.dispose(); } IOUtil.close(content); logout(session); } }
Example 90
| Project: linshare-core-master File: JackRabbitFileSystem.java View source code |
public Object doInJcr(Session session) throws RepositoryException {
Node root = session.getRootNode();
Node fileNode = null;
Logger.debug(completePath);
if (root.hasNode(completePath)) {
fileNode = root.getNode(completePath);
if (fileNode.isNodeType(JcrConstants.NT_FILE)) {
return fileNode.getNode("jcr:content").getProperty("jcr:data").getStream();
} else {
Logger.error("the path node doesn't contain a file: " + completePath);
}
} else {
Logger.error("the path node is invalid: " + completePath);
}
return null;
}Example 91
| Project: cocoon-master File: JCRSourceFactory.java View source code |
/**
* Get the type info for a node.
*
* @param node the node
* @return the type info
* @throws RepositoryException if node type couldn't be accessed or if no type info is found
*/
public NodeTypeInfo getTypeInfo(Node node) throws RepositoryException {
String typeName = node.getPrimaryNodeType().getName();
NodeTypeInfo result = (NodeTypeInfo) this.typeInfos.get(typeName);
if (result == null) {
// TODO: build a NodeTypeInfo using introspection
throw new RepositoryException("No type info found for node type '" + typeName + "' at " + node.getPath());
}
return result;
}Example 92
| Project: etk-model-master File: TestNavigationServiceSave.java View source code |
public void testDestroyNavigation() throws Exception {
NavigationContext nav = service.loadNavigation(SiteKey.portal("destroy_navigation"));
assertNull(nav);
//
mgr.getPOMService().getModel().getWorkspace().addSite(ObjectType.PORTAL_SITE, "destroy_navigation").getRootNavigation().addChild("default").addChild("a");
//
sync(true);
service.clearCache();
//
nav = service.loadNavigation(SiteKey.portal("destroy_navigation"));
assertNotNull(nav);
//
Node root = service.loadNode(Node.MODEL, nav, Scope.ALL, null).getNode();
//
assertTrue(service.destroyNavigation(nav));
assertNull(nav.state);
assertNull(nav.data);
//
try {
service.destroyNavigation(nav);
} catch (IllegalArgumentException e) {
}
//
nav = service.loadNavigation(SiteKey.portal("destroy_navigation"));
assertNull(nav);
//
sync(true);
//
nav = service.loadNavigation(SiteKey.portal("destroy_navigation"));
assertNull(nav);
}Example 93
| Project: gatein-portal-master File: TestNavigationServiceSave.java View source code |
public void testDestroyNavigation() throws Exception {
NavigationContext nav = service.loadNavigation(SiteKey.portal("destroy_navigation"));
assertNull(nav);
//
mgr.getPOMService().getModel().getWorkspace().addSite(ObjectType.PORTAL_SITE, "destroy_navigation").getRootNavigation().addChild("default").addChild("a");
//
sync(true);
service.clearCache();
//
nav = service.loadNavigation(SiteKey.portal("destroy_navigation"));
assertNotNull(nav);
//
Node root = service.loadNode(Node.MODEL, nav, Scope.ALL, null).getNode();
//
assertTrue(service.destroyNavigation(nav));
assertNull(nav.state);
assertNull(nav.data);
//
try {
service.destroyNavigation(nav);
} catch (IllegalArgumentException e) {
}
//
nav = service.loadNavigation(SiteKey.portal("destroy_navigation"));
assertNull(nav);
//
sync(true);
//
nav = service.loadNavigation(SiteKey.portal("destroy_navigation"));
assertNull(nav);
}Example 94
| Project: liferay-portal-master File: JCRStore.java View source code |
@Override
public void addDirectory(long companyId, long repositoryId, String dirName) {
Session session = null;
try {
session = _jcrFactoryWrapper.createSession();
Node rootNode = getRootNode(session, companyId);
Node repositoryNode = getFolderNode(rootNode, repositoryId);
if (repositoryNode.hasNode(dirName)) {
return;
}
String[] dirNameArray = StringUtil.split(dirName, '/');
Node dirNode = repositoryNode;
for (String nodeName : dirNameArray) {
if (Validator.isNotNull(nodeName)) {
if (dirNode.hasNode(nodeName)) {
dirNode = dirNode.getNode(nodeName);
} else {
dirNode = dirNode.addNode(nodeName, JCRConstants.NT_FOLDER);
}
}
}
session.save();
} catch (RepositoryException re) {
throw new SystemException(re);
} finally {
_jcrFactoryWrapper.closeSession(session);
}
}Example 95
| Project: org.liveSense.service.securityManager-master File: SecurityManagerServiceImpl.java View source code |
@Override
public void createUserHome(Session session, String userName, String parentPath) throws PrincipalIsNotUserException, InternalException, PrincipalNotExistsException {
try {
UserManager userManager = AccessControlUtil.getUserManager(session);
Authorizable authorizable = userManager.getAuthorizable(userName);
if (authorizable.isGroup()) {
throw new PrincipalIsNotUserException("Principal is not user: " + userName);
}
Node rootNode = session.getRootNode();
if (StringUtils.isNotBlank(parentPath)) {
rootNode = rootNode.getNode(parentPath);
}
Node home = null;
// If home does not exists, we create it and setting access rights
if (!rootNode.hasNode("home")) {
// Create home
home = rootNode.addNode("home");
// Access rights (Read/Write disabled)
AccessRights rights = new AccessRightsImpl();
rights.getDenied().add(new SerializablePrivilege(SerializablePrivilege.JCR_ALL));
setAclByName(session, "everyone", home.getPath(), rights);
} else {
home = rootNode.getNode("home");
}
// If home/user does not exists, we create it and setting access rights
Node userNode = null;
if (!home.hasNode(userName)) {
userNode = home.addNode(userName);
// Access rights (Read/Write enabled)
AccessRights rights = new AccessRightsImpl();
rights.getGranted().add(new SerializablePrivilege(SerializablePrivilege.JCR_ALL));
setAclByName(session, userName, userNode.getPath(), rights);
} else {
userNode = home.getNode(userName);
}
if (session.hasPendingChanges()) {
session.save();
}
} catch (RepositoryException ex) {
throw new InternalException("Repository exception", ex);
} catch (IllegalArgumentException ex) {
throw new InternalException(ex);
} finally {
}
}Example 96
| Project: docs-samples-master File: MyUIFilter.java View source code |
/*
* This method checks if the current node is a file.
*/
public boolean accept(Map<String, Object> context) throws Exception {
//Retrieve the current node from the context
Node currentNode = (Node) context.get(Node.class.getName());
return currentNode.isNodeType("nt:file");
}Example 97
| Project: carbon-registry-master File: RegistryItemVisitor.java View source code |
public void visit(Node node) throws RepositoryException {
}Example 98
| Project: insight-plugin-hst-master File: DummyQuery.java View source code |
public void addScopes(final Node[] scopes) {
}Example 99
| Project: magnolia-examproject-master File: ContentLinkItem.java View source code |
///////////////////////////////////////////////////////////////////////////
// public methods
@RequestMapping("/contentLinkItem")
public String render(ModelMap model, Node content) throws RepositoryException {
LOG.trace("called.");
return "components/content/item/contentLinkItem.jsp";
}Example 100
| Project: resin-master File: BaseNodeIterator.java View source code |
/**
* Returns the next node.
*/
public Node nextNode() {
if (_index < _nodes.length)
return _nodes[_index++];
else
return null;
}