Merged DEV/SWIFT to HEAD

27168: Added generics for cannedQueryRegistry
   27169: Fixed formatting
   27170: SOLR queries
          - ALF-7072 RSOLR 013: Remote API to get ACLs and readers
            - Queries for ACL ChangeSets and ACLs
            - WebScripts for AclChangeSetsGet
          - ALF-7071 and ALF-7072: Fix naming conventions
   27171: Fixed MySQL create script (ALF-8336: RSOLR 013: DB upgrade scripts for ACL changes)
   27337: Initial draft of the publishing API
   27516: Get the basic WCM ML tests working, covering the simpler use cases
   27517: More on the WCM-QS multi lingual support, further on the aspect and the unit tests for it
   27518: Begin the WCM-QS webscript to return the translation details on a node
   27519: Push some WCM-QS ML search logic into SiteHelper, and add a unit test for it
   27542: - Initial skeleton of the channel API.
          - Initial draft of the publishing content model.
   27546: ALF-7481: RSOLR 018: Execute query against SOLR
          - pass authority filter in json body to avoid possible issue over-running the max URL length
   27559: Created a Web Site Generator tool which randomly generates WCM QS websites.
   27561: Created ChannelServiceImpl and implemented the ChannelType registry.
   27577: Start to pull across the WCM-QS ML custom action
   27579: More pulling across the WCM-QS ML custom action
   27580: More WCM-QS ML ui porting
   27588: ALF-8421: RSOLR 037: Encapsulate the CMIS Query Parser
   27589: Created a PublishingModel to hold Web Publishing constants.
   27610: ALF-7874 Add iWorks mimetype entries
   27624: Restructure index tracking
   27630: ALF-8182: SVC 03: Object Picker needs to use new NodeLocatorService to resolve startLocation parameter
          The picker now uses the NodeLocatorService to look up some start locations and most importantly allows
		  custom 'locators' to be used. All the current start location tokens are still supported
		  i.e. {companyhome}, {userhome}, {siteshome}, {doclib}, {self} and {parent}. A new one has been added called {ancestor},
		  this will allow an ancestor node to be located, the node can be selected by type or aspect, see example below.
          Some node locators can take parameters, a "startLocationParams" has therefore been added to allow these to be specified.

		  The example below shows how to configure a picker to start in the root folder of the site the node being edited is located within.

		  <field id="fdk:contentMultiple">
             <control>
                <control-param name="startLocation">{ancestor}</control-param>
                <control-param name="startLocationParams">type=st:site</control-param>
             </control>
          </field>
   27631: ALF-8182: SVC 03: Object Picker needs to use new NodeLocatorService to resolve startLocation parameter
          Centralised node locator classes to repo.nodelocator package
		  (moved out of repo.node package as that area is reserved for low level node processing)
		  and made all naming consistent i.e. nodelocator rather than nodelocation.
   27633: Fixed cmis:objectTypeId property definition (required = true, see CMIS 1.0 errata 1)
   27635: CMIS compliance fixes
   27638: - Initial operational publishing context with model bootstrapped.
          - First implementation of ChannelService.getChannels and ChannelService.createChannel. Test cases to follow imminently...

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@28301 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2011-06-09 12:08:12 +00:00
parent efbd951a10
commit ae765f91d9
91 changed files with 2720 additions and 28122 deletions

View File

@@ -0,0 +1,51 @@
/*
* Copyright (C) 2005-2010 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.service.cmr.publishing;
import org.alfresco.service.cmr.repository.NodeRef;
/**
* @author Brian
*
*/
public abstract class BaseNodePublishStatus implements NodePublishStatus
{
private NodeRef nodeRef;
/* (non-Javadoc)
* @see org.alfresco.service.cmr.publishing.NodePublishStatus#getNodeRef()
*/
@Override
public NodeRef getNodeRef()
{
return nodeRef;
}
/* (non-Javadoc)
* @see org.alfresco.service.cmr.publishing.NodePublishStatus#getEnvironment()
*/
@Override
public Environment getEnvironment()
{
// TODO Auto-generated method stub
return null;
}
}

View File

@@ -0,0 +1,36 @@
/*
* Copyright (C) 2005-2010 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.service.cmr.publishing;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import org.alfresco.service.cmr.repository.NodeRef;
public interface Environment
{
String getId();
PublishingQueue getPublishingQueue();
Map<NodeRef,NodePublishStatus> checkPublishStatus(Collection<NodeRef> nodes);
List<PublishingEvent> getPublishingEvents(PublishingEventFilter filter);
}

View File

@@ -0,0 +1,32 @@
/*
* Copyright (C) 2005-2010 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.service.cmr.publishing;
import java.util.Calendar;
/**
* @author Brian
*
*/
public interface MutablePublishingEvent extends PublishingEvent
{
void setScheduledTime(Calendar time);
void setComment(String comment);
}

View File

@@ -0,0 +1,34 @@
/*
* Copyright (C) 2005-2010 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.service.cmr.publishing;
import java.util.Collection;
import org.alfresco.service.cmr.repository.NodeRef;
public interface MutablePublishingPackage extends PublishingPackage
{
void addNodesToUnpublish(NodeRef... nodesToRemove);
void addNodesToUnpublish(Collection<NodeRef> nodesToRemove);
void addNodesToPublish(NodeRef... nodesToPublish);
void addNodesToPublish(Collection<NodeRef> nodesToPublish);
}

View File

@@ -0,0 +1,43 @@
/*
* Copyright (C) 2005-2010 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.service.cmr.publishing;
import org.alfresco.service.cmr.repository.NodeRef;
/**
* @author Brian
*
*/
public interface NodePublishStatus
{
enum Status {NOT_PUBLISHED, ON_QUEUE, PUBLISHED, PUBLISHED_AND_ON_QUEUE};
<T> T visit(NodePublishStatusVisitor<T> visitor);
NodeRef getNodeRef();
Status getStatus();
/**
* Obtain the environment related to this status
* @return
*/
Environment getEnvironment();
}

View File

@@ -0,0 +1,47 @@
/*
* Copyright (C) 2005-2010 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.service.cmr.publishing;
/**
* @author Brian
*
*/
public class NodePublishStatusNotPublished extends BaseNodePublishStatus
{
/* (non-Javadoc)
* @see org.alfresco.service.cmr.publishing.NodePublishStatus#visit(org.alfresco.service.cmr.publishing.NodePublishStatusVisitor)
*/
@Override
public <T> T visit(NodePublishStatusVisitor<T> visitor)
{
return visitor.accept(this);
}
/* (non-Javadoc)
* @see org.alfresco.service.cmr.publishing.NodePublishStatus#getStatus()
*/
@Override
public Status getStatus()
{
return Status.NOT_PUBLISHED;
}
}

View File

@@ -0,0 +1,51 @@
/*
* Copyright (C) 2005-2010 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.service.cmr.publishing;
/**
* @author Brian
*
*/
public class NodePublishStatusOnQueue extends BaseNodePublishStatus
{
/* (non-Javadoc)
* @see org.alfresco.service.cmr.publishing.NodePublishStatus#visit(org.alfresco.service.cmr.publishing.NodePublishStatusVisitor)
*/
@Override
public <T> T visit(NodePublishStatusVisitor<T> visitor)
{
return visitor.accept(this);
}
public PublishingEvent getQueuedPublishingEvent()
{
return null;
}
/* (non-Javadoc)
* @see org.alfresco.service.cmr.publishing.NodePublishStatus#getStatus()
*/
@Override
public Status getStatus()
{
return Status.ON_QUEUE;
}
}

View File

@@ -0,0 +1,56 @@
/*
* Copyright (C) 2005-2010 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.service.cmr.publishing;
/**
* @author Brian
*
*/
public class NodePublishStatusPublished extends BaseNodePublishStatus
{
/* (non-Javadoc)
* @see org.alfresco.service.cmr.publishing.NodePublishStatus#visit(org.alfresco.service.cmr.publishing.NodePublishStatusVisitor)
*/
@Override
public <T> T visit(NodePublishStatusVisitor<T> visitor)
{
return visitor.accept(this);
}
/**
* Retrieve the most recent publishing event that affected (created or updated) the node relevant to this status.
* @return
*/
public PublishingEvent getLatestPublishingEvent()
{
return null;
}
/* (non-Javadoc)
* @see org.alfresco.service.cmr.publishing.NodePublishStatus#getStatus()
*/
@Override
public Status getStatus()
{
return Status.PUBLISHED;
}
}

View File

@@ -0,0 +1,60 @@
/*
* Copyright (C) 2005-2010 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.service.cmr.publishing;
/**
* @author Brian
*
*/
public class NodePublishStatusPublishedAndOnQueue extends BaseNodePublishStatus
{
/* (non-Javadoc)
* @see org.alfresco.service.cmr.publishing.NodePublishStatus#visit(org.alfresco.service.cmr.publishing.NodePublishStatusVisitor)
*/
@Override
public <T> T visit(NodePublishStatusVisitor<T> visitor)
{
return visitor.accept(this);
}
public PublishingEvent getQueuedPublishingEvent()
{
return null;
}
/**
* Retrieve the most recent publishing event that affected (created or updated) the node relevant to this status.
* @return
*/
public PublishingEvent getLatestPublishingEvent()
{
return null;
}
/* (non-Javadoc)
* @see org.alfresco.service.cmr.publishing.NodePublishStatus#getStatus()
*/
@Override
public Status getStatus()
{
return Status.PUBLISHED_AND_ON_QUEUE;
}
}

View File

@@ -0,0 +1,32 @@
/*
* Copyright (C) 2005-2010 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.service.cmr.publishing;
/**
* @author Brian
*
*/
public interface NodePublishStatusVisitor<T>
{
T accept(NodePublishStatusNotPublished status);
T accept(NodePublishStatusOnQueue status);
T accept(NodePublishStatusPublished status);
T accept(NodePublishStatusPublishedAndOnQueue status);
}

View File

@@ -0,0 +1,69 @@
/*
* Copyright (C) 2005-2010 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.service.cmr.publishing;
import java.util.Calendar;
import java.util.Date;
import java.util.Set;
import org.alfresco.service.cmr.repository.NodeRef;
/**
* @author Brian
*
*/
public interface PublishingEvent
{
enum Status {SCHEDULED, IN_PROGRESS, COMPLETE, FAILED}
String getId();
Status getStatus();
Calendar getScheduledTime();
PublishingPackage getPackage();
Date getCreatedTime();
String getCreator();
Date getModifiedTime();
String getModifier();
String getComment();
/**
* Retrieve those publishing events that depend on this one
* @return
*/
Set<PublishingEvent> getDependingEvents();
/**
* Retrieve those publishing events on which this one depends
* @return
*/
Set<PublishingEvent> getEventsDependedOn();
Set<NodeRef> getNodesDependedOn();
MutablePublishingEvent edit();
}

View File

@@ -0,0 +1,29 @@
/*
* Copyright (C) 2005-2010 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.service.cmr.publishing;
/**
* @author Brian
*
*/
public interface PublishingEventFilter
{
}

View File

@@ -0,0 +1,26 @@
/*
* Copyright (C) 2005-2010 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.service.cmr.publishing;
import java.util.Set;
public interface PublishingPackage
{
Set<PublishingPackageEntry> getEntries();
}

View File

@@ -0,0 +1,33 @@
/*
* Copyright (C) 2005-2010 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.service.cmr.publishing;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.version.Version;
/**
* @author Brian
*
*/
public interface PublishingPackageEntry
{
NodeRef getNodeRef();
Version getVersion();
}

View File

@@ -0,0 +1,38 @@
/*
* Copyright (C) 2005-2010 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.service.cmr.publishing;
import java.util.Calendar;
public interface PublishingQueue
{
MutablePublishingPackage createPublishingPackage();
/**
* Adds the supplied publishing package onto the queue.
* @param publishingPackage The publishing package that is to be enqueued
* @param schedule The time at which the new publishing event should be scheduled (optional - <code>null</code> indicates "as soon as possible")
* @param comment A comment to be stored with this new event (optional - may be <code>null</code>)
* @return A PublishingEvent object representing the newly scheduled event
*/
PublishingEvent scheduleNewEvent(PublishingPackage publishingPackage, Calendar schedule, String comment);
void cancelEvent(String eventId);
}

View File

@@ -0,0 +1,36 @@
/*
* Copyright (C) 2005-2010 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.service.cmr.publishing;
import java.util.Set;
import org.alfresco.service.cmr.repository.NodeRef;
public interface PublishingService
{
Set<Environment> getEnvironments(String siteId);
Environment getEnvironment(String siteId, String environmentName);
Environment getEditorialEnvironment(String siteId);
Set<NodeRef> getPublishingDependencies(NodeRef node);
PublishingEvent getPublishingEvent(String id);
}

View File

@@ -0,0 +1,43 @@
/*
* Copyright (C) 2005-2010 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.service.cmr.publishing.channels;
import org.alfresco.service.cmr.repository.NodeRef;
/**
* @author Brian
*
*/
public interface Channel
{
ChannelType getChannelType();
/**
* Retrieve the node ref of the node that represents this channel in the editorial environment
* @return
*/
NodeRef getNodeRef();
/**
* Retrieve the name of this channel
* @return
*/
String getName();
}

View File

@@ -0,0 +1,39 @@
/*
* Copyright (C) 2005-2010 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.service.cmr.publishing.channels;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import org.alfresco.service.namespace.QName;
/**
* @author Brian
*
*/
public interface ChannelService
{
void register(ChannelType channelType);
List<ChannelType> getChannelTypes();
Channel createChannel(String siteId, String channelTypeId, String name, Map<QName, Serializable> properties);
void deleteChannel(String siteId, String channelName);
List<Channel> getChannels(String siteId);
}

View File

@@ -0,0 +1,36 @@
/*
* Copyright (C) 2005-2010 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.service.cmr.publishing.channels;
import java.util.Map;
import org.alfresco.service.namespace.QName;
/**
* @author Brian
*
*/
public interface ChannelType
{
String getId();
Map<String,String> getCapabilities();
QName getChannelNodeType();
QName getContentRootNodeType();
}

View File

@@ -1,54 +0,0 @@
/*
* Copyright (C) 2005-2011 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.service.cmr.repository;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
import org.alfresco.service.cmr.action.ParameterDefinition;
/**
* A strategy for locating a {@link NodeRef} in the repository, given a source node and an arbitrary set of parameters.
*
* @author Nick Smith
* @since 4.0
*
*/
public interface NodeLocator
{
/**
* Finds a {@link NodeRef} given a starting {@link NodeRef} and a
* {@link Map} of parameters.
* Returns <code>null</code> if the specified node could not be found.
*
* @param sourceNode the starting point for locating a new node. The source node. Can be <code>null</code>.
* @param params an arbitrary {@link Map} of parameters.Can be <code>null</code>.
* @return the node to be found or <code>null</code>.
*/
NodeRef getNode(NodeRef source, Map<String, Serializable> params);
/**
* A list containing the parmameter defintions for this {@link NodeLocator}.
*
* @return a list of parameter definitions
*/
public List<ParameterDefinition> getParameterDefinitions();
}

View File

@@ -1,45 +0,0 @@
/*
* Copyright (C) 2005-2011 Alfresco Software Limited.
*
* This file is part of Alfresco
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
package org.alfresco.service.cmr.repository;
import java.io.Serializable;
import java.util.Map;
/**
* This service is responsible for locating {@link NodeRef}s in the repository using {@link NodeLocator} strategies.
*
* @author Nick Smith
* @since 4.0
*
*/
public interface NodeLocatorService
{
/**
* Locates and returns a {@link NodeRef} using the specified {@link NodeLocator}.
*
* @param locatorName the name of the {@link NodeLocator} to use.
* @param source the source node. Can be <code>null</code>.
* @param params An arbitrary set of parameters. Can be <code>null</code>.
* @return the node to be found or <code>null</code>.
*/
NodeRef getNode(String locatorName, NodeRef source, Map<String, Serializable> params);
void register(String locatorName, NodeLocator locator);
}