List of usage examples for org.dom4j.dom DOMDocument appendChild
public org.w3c.dom.Node appendChild(org.w3c.dom.Node newChild) throws DOMException
From source file:org.onesocialweb.openfire.handler.activity.ActivityQueryHandler.java
License:Apache License
@SuppressWarnings({ "deprecation" }) @Override// w ww. java 2 s . c o m public IQ handleIQ(IQ packet) throws UnauthorizedException { JID sender = packet.getFrom(); JID target = packet.getTo(); // Process the request inside a try/catch so that unhandled exceptions // (oufofbounds etc...) can trigger a server error and we can send a // error result packet try { // If no recipient, then the target is the sender if (target == null || target.getNode() == null) { target = packet.getFrom(); } // A valid request is an IQ of type get, for a valid and local recipient if (!(packet.getType().equals(IQ.Type.get) && target != null && target.getNode() != null && userManager.isRegisteredUser(target.getNode()))) { IQ result = IQ.createResultIQ(packet); result.setChildElement(packet.getChildElement().createCopy()); result.setError(PacketError.Condition.bad_request); return result; } // We fetch the activities of the target user List<ActivityEntry> activities = ActivityManager.getInstance().getActivities(sender.toBareJID(), target.toBareJID()); // Prepare the result packet ActivityDomWriter writer = new DefaultActivityDomWriter(); DOMDocument domDocument = new DOMDocument(); IQ result = IQ.createResultIQ(packet); org.dom4j.Element pubsubElement = result.setChildElement("pubsub", "http://jabber.org/protocol/pubsub"); org.dom4j.Element itemsElement = pubsubElement.addElement("items"); itemsElement.addAttribute("node", PEPActivityHandler.NODE); for (ActivityEntry entry : activities) { Element entryElement = (Element) domDocument .appendChild(domDocument.createElementNS(Atom.NAMESPACE, Atom.ENTRY_ELEMENT)); writer.write(entry, entryElement); domDocument.removeChild(entryElement); org.dom4j.Element itemElement = itemsElement.addElement("item"); itemElement.addAttribute("id", entry.getId()); itemElement.add((org.dom4j.Element) entryElement); } // Return and send the result packet return result; } catch (Exception e) { Log.error(LocaleUtils.getLocalizedString("admin.error"), e); IQ result = IQ.createResultIQ(packet); result.setChildElement(packet.getChildElement().createCopy()); result.setError(PacketError.Condition.internal_server_error); return result; } }
From source file:org.onesocialweb.openfire.handler.inbox.InboxQueryHandler.java
License:Apache License
@SuppressWarnings({ "deprecation" }) @Override/* w w w . j a v a2 s . c om*/ public IQ handleIQ(IQ packet) throws UnauthorizedException { final JID sender = packet.getFrom(); final JID recipient = packet.getTo(); // Process the request inside a try/catch so that unhandled exceptions // (oufofbounds etc...) can trigger a server error and we can send a // error result packet try { // A valid request is an IQ of type get if (!(packet.getType().equals(IQ.Type.get))) { IQ result = IQ.createResultIQ(packet); result.setChildElement(packet.getChildElement().createCopy()); result.setError(PacketError.Condition.bad_request); return result; } // If a recipient is specified, it must be equal to the sender // bareJID if (recipient != null && !recipient.toString().equals(sender.toBareJID())) { IQ result = IQ.createResultIQ(packet); result.setChildElement(packet.getChildElement().createCopy()); result.setError(PacketError.Condition.not_authorized); return result; } // Only a local user has an inbox if (!userManager.isRegisteredUser(sender.getNode())) { IQ result = IQ.createResultIQ(packet); result.setChildElement(packet.getChildElement().createCopy()); result.setError(PacketError.Condition.not_authorized); return result; } // We fetch the notifications fot the requesting user List<ActivityMessage> messages = inboxManager.getMessages(sender.toBareJID()); // Prepare the result packet ActivityDomWriter writer = new DefaultActivityDomWriter(); DOMDocument domDocument = new DOMDocument(); IQ result = IQ.createResultIQ(packet); org.dom4j.Element pubsubElement = result.setChildElement("pubsub", "http://jabber.org/protocol/pubsub"); org.dom4j.Element itemsElement = pubsubElement.addElement("items"); itemsElement.addAttribute("node", PEPActivityHandler.NODE); for (ActivityMessage message : messages) { Element entryElement = (Element) domDocument .appendChild(domDocument.createElementNS(Atom.NAMESPACE, Atom.ENTRY_ELEMENT)); writer.write(message.getActivity(), entryElement); domDocument.removeChild(entryElement); org.dom4j.Element itemElement = itemsElement.addElement("item"); itemElement.addAttribute("id", message.getActivity().getId()); itemElement.add((org.dom4j.Element) entryElement); } // Return and send the result packet return result; } catch (Exception e) { Log.error(LocaleUtils.getLocalizedString("admin.error"), e); IQ result = IQ.createResultIQ(packet); result.setChildElement(packet.getChildElement().createCopy()); result.setError(PacketError.Condition.internal_server_error); return result; } }
From source file:org.onesocialweb.openfire.handler.profile.IQProfileQueryHandler.java
License:Apache License
@SuppressWarnings({ "deprecation" }) @Override//from w w w . jav a 2 s .co m public IQ handleIQ(IQ packet) throws UnauthorizedException { JID sender = packet.getFrom(); JID target = packet.getTo(); // Process the request inside a try/catch so that unhandled exceptions // (oufofbounds etc...) can trigger a server error and we can send a // error result packet try { // If no recipient, then the target is the sender if (target == null || target.getNode() == null) { target = packet.getFrom(); } // A valid request is an IQ of type get, for a valid and local recipient if (!(packet.getType().equals(IQ.Type.get) && target != null && target.getNode() != null && userManager.isRegisteredUser(target.getNode()))) { IQ result = IQ.createResultIQ(packet); result.setChildElement(packet.getChildElement().createCopy()); result.setError(PacketError.Condition.bad_request); return result; } // We fetch the profile of the target user Profile profile = ProfileManager.getInstance().getProfile(sender.toBareJID(), target.toBareJID()); // Prepare the result packet VCard4DomWriter writer = new DefaultVCard4DomWriter(); DOMDocument domDocument = new DOMDocument(); IQ result = IQ.createResultIQ(packet); Element query = (Element) domDocument.appendChild(domDocument.createElementNS(NAMESPACE, NAME)); if (profile != null) { writer.toElement(profile, query); } else { query.appendChild(domDocument.createElementNS(VCard4.NAMESPACE, VCard4.VCARD_ELEMENT)); } result.setChildElement((org.dom4j.Element) query); // Return and send the result packet return result; } catch (Exception e) { Log.error(LocaleUtils.getLocalizedString("admin.error"), e); IQ result = IQ.createResultIQ(packet); result.setChildElement(packet.getChildElement().createCopy()); result.setError(PacketError.Condition.internal_server_error); return result; } }
From source file:org.onesocialweb.openfire.handler.relation.IQRelationQueryHandler.java
License:Apache License
@SuppressWarnings({ "deprecation" }) @Override/*from w w w . j a v a2 s . c o m*/ public IQ handleIQ(IQ packet) throws UnauthorizedException { JID sender = packet.getFrom(); JID target = packet.getTo(); // Process the request inside a try/catch so that unhandled exceptions // (oufofbounds etc...) can trigger a server error and we can send a // error result packet try { // If no recipient, then the target is the sender if (target == null || target.getNode() == null) { target = packet.getFrom(); } // A valid request is an IQ of type get, for a valid and local recipient if (!(packet.getType().equals(IQ.Type.get) && target != null && target.getNode() != null && userManager.isRegisteredUser(target.getNode()))) { IQ result = IQ.createResultIQ(packet); result.setChildElement(packet.getChildElement().createCopy()); result.setError(PacketError.Condition.bad_request); return result; } // We fetch the relations of the target user List<Relation> relations = RelationManager.getInstance().getRelations(sender.toBareJID(), target.toBareJID()); // Prepare the result packet RelationDomWriter writer = new DefaultRelationDomWriter(); DOMDocument domDocument = new DOMDocument(); IQ result = IQ.createResultIQ(packet); Element query = (Element) domDocument.appendChild(domDocument.createElementNS(NAMESPACE, NAME)); for (Relation relation : relations) { writer.toElement(relation, query); } result.setChildElement((org.dom4j.Element) query); // Return and send the result packet return result; } catch (Exception e) { Log.error(LocaleUtils.getLocalizedString("admin.error"), e); IQ result = IQ.createResultIQ(packet); result.setChildElement(packet.getChildElement().createCopy()); result.setError(PacketError.Condition.internal_server_error); return result; } }
From source file:org.onesocialweb.openfire.manager.ActivityManager.java
License:Apache License
private void notify(String fromJID, ActivityEntry entry) throws UserNotFoundException { // TODO We may want to do some cleaning of activities before // forwarding them (e.g. remove the acl, it is no one business) final ActivityDomWriter writer = new DefaultActivityDomWriter(); final XMPPServer server = XMPPServer.getInstance(); final List<Subscription> subscriptions = getSubscribers(fromJID); // final Roster roster = XMPPServer.getInstance().getRosterManager().getRoster(new JID(fromJID).getNode()); final DOMDocument domDocument = new DOMDocument(); // Prepare the message final Element entryElement = (Element) domDocument .appendChild(domDocument.createElementNS(Atom.NAMESPACE, Atom.ENTRY_ELEMENT)); writer.write(entry, entryElement);/* www . j a va 2 s. com*/ domDocument.removeChild(entryElement); final Message message = new Message(); message.setFrom(fromJID); message.setBody("New activity: " + entry.getTitle()); message.setType(Message.Type.headline); org.dom4j.Element eventElement = message.addChildElement("event", "http://jabber.org/protocol/pubsub#event"); org.dom4j.Element itemsElement = eventElement.addElement("items"); itemsElement.addAttribute("node", PEPActivityHandler.NODE); org.dom4j.Element itemElement = itemsElement.addElement("item"); itemElement.addAttribute("id", entry.getId()); itemElement.add((org.dom4j.Element) entryElement); // Keep a list of people we sent it to avoid duplicates List<String> alreadySent = new ArrayList<String>(); // Send to this user alreadySent.add(fromJID); message.setTo(fromJID); server.getMessageRouter().route(message); // Send to all subscribers for (Subscription activitySubscription : subscriptions) { String recipientJID = activitySubscription.getSubscriber(); if (!canSee(fromJID, entry, recipientJID)) { continue; } alreadySent.add(recipientJID); message.setTo(recipientJID); server.getMessageRouter().route(message); } // Send to recipients, if they can see it and have not already received it if (entry.hasRecipients()) { for (AtomReplyTo recipient : entry.getRecipients()) { //TODO This is dirty, the recipient should be an IRI etc... String recipientJID = recipient.getHref(); if (!alreadySent.contains(recipientJID) && canSee(fromJID, entry, recipientJID)) { alreadySent.add(fromJID); message.setTo(recipientJID); server.getMessageRouter().route(message); } } } }
From source file:org.onesocialweb.openfire.manager.RelationManager.java
License:Apache License
private void notify(String localJID, Relation relation) { final DOMDocument domDocument = new DOMDocument(); final Element entryElement = (Element) domDocument .appendChild(domDocument.createElementNS(Onesocialweb.NAMESPACE, Onesocialweb.RELATION_ELEMENT)); final RelationDomWriter writer = new DefaultRelationDomWriter(); writer.write(relation, entryElement); domDocument.removeChild(entryElement); final Message message = new Message(); message.setFrom(localJID);/* w ww . ja va2 s. c o m*/ message.setType(Message.Type.headline); org.dom4j.Element eventElement = message.addChildElement("event", "http://jabber.org/protocol/pubsub#event"); org.dom4j.Element itemsElement = eventElement.addElement("items"); itemsElement.addAttribute("node", NODE); org.dom4j.Element itemElement = itemsElement.addElement("item"); itemElement.addAttribute("id", relation.getId()); itemElement.add((org.dom4j.Element) entryElement); // Send to this user message.setTo(getOtherEnd(relation, localJID)); server.getMessageRouter().route(message); }