mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-15 17:56:17 +01:00
remove unused files
This commit is contained in:
@@ -1,101 +0,0 @@
|
|||||||
package sonia.scm.repository.xml;
|
|
||||||
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import sonia.scm.ModelObject;
|
|
||||||
import sonia.scm.repository.Repository;
|
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlAccessType;
|
|
||||||
import javax.xml.bind.annotation.XmlAccessorType;
|
|
||||||
import javax.xml.bind.annotation.XmlRootElement;
|
|
||||||
import javax.xml.bind.annotation.XmlTransient;
|
|
||||||
|
|
||||||
@XmlRootElement(name = "repository-link")
|
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
|
||||||
public class RepositoryPath implements ModelObject {
|
|
||||||
|
|
||||||
private String path;
|
|
||||||
private String id;
|
|
||||||
private Long lastModified;
|
|
||||||
private Long creationDate;
|
|
||||||
|
|
||||||
@XmlTransient
|
|
||||||
private Repository repository;
|
|
||||||
|
|
||||||
@XmlTransient
|
|
||||||
private boolean toBeSynchronized;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Needed from JAXB
|
|
||||||
*/
|
|
||||||
public RepositoryPath() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public RepositoryPath(String path, String id, Repository repository) {
|
|
||||||
this.path = path;
|
|
||||||
this.id = id;
|
|
||||||
this.repository = repository;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Repository getRepository() {
|
|
||||||
return repository;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setRepository(Repository repository) {
|
|
||||||
this.repository = repository;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPath() {
|
|
||||||
return path;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPath(String path) {
|
|
||||||
this.path = path;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getId() {
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setLastModified(Long lastModified) {
|
|
||||||
this.lastModified = lastModified;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Long getCreationDate() {
|
|
||||||
return creationDate;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setCreationDate(Long creationDate) {
|
|
||||||
this.creationDate = creationDate;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setId(String id) {
|
|
||||||
this.id = id;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Long getLastModified() {
|
|
||||||
return lastModified;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getType() {
|
|
||||||
return getRepository()!= null? getRepository().getType():"";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isValid() {
|
|
||||||
return StringUtils.isNotEmpty(path);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean toBeSynchronized() {
|
|
||||||
return toBeSynchronized;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setToBeSynchronized(boolean toBeSynchronized) {
|
|
||||||
this.toBeSynchronized = toBeSynchronized;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,188 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) 2010, Sebastian Sdorra
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
*
|
|
||||||
* 1. Redistributions of source code must retain the above copyright notice,
|
|
||||||
* this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
* this list of conditions and the following disclaimer in the documentation
|
|
||||||
* and/or other materials provided with the distribution.
|
|
||||||
* 3. Neither the name of SCM-Manager; nor the names of its
|
|
||||||
* contributors may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
|
|
||||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*
|
|
||||||
* http://bitbucket.org/sdorra/scm-manager
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
package sonia.scm.repository.xml;
|
|
||||||
|
|
||||||
//~--- non-JDK imports --------------------------------------------------------
|
|
||||||
|
|
||||||
import sonia.scm.repository.NamespaceAndName;
|
|
||||||
import sonia.scm.repository.Repository;
|
|
||||||
import sonia.scm.xml.XmlDatabase;
|
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlAccessType;
|
|
||||||
import javax.xml.bind.annotation.XmlAccessorType;
|
|
||||||
import javax.xml.bind.annotation.XmlElement;
|
|
||||||
import javax.xml.bind.annotation.XmlRootElement;
|
|
||||||
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
//~--- JDK imports ------------------------------------------------------------
|
|
||||||
|
|
||||||
@XmlRootElement(name = "repository-db")
|
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
|
||||||
public class XmlRepositoryDatabase implements XmlDatabase<RepositoryPath> {
|
|
||||||
|
|
||||||
private Long creationTime;
|
|
||||||
|
|
||||||
private Long lastModified;
|
|
||||||
|
|
||||||
@XmlJavaTypeAdapter(XmlRepositoryMapAdapter.class)
|
|
||||||
@XmlElement(name = "repositories")
|
|
||||||
private Map<String, RepositoryPath> repositoryPathMap = new LinkedHashMap<>();
|
|
||||||
|
|
||||||
|
|
||||||
public XmlRepositoryDatabase() {
|
|
||||||
long c = System.currentTimeMillis();
|
|
||||||
creationTime = c;
|
|
||||||
lastModified = c;
|
|
||||||
}
|
|
||||||
|
|
||||||
static String createKey(NamespaceAndName namespaceAndName)
|
|
||||||
{
|
|
||||||
return namespaceAndName.getNamespace() + ":" + namespaceAndName.getName();
|
|
||||||
}
|
|
||||||
|
|
||||||
static String createKey(Repository repository)
|
|
||||||
{
|
|
||||||
return createKey(repository.getNamespaceAndName());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void add(RepositoryPath repositoryPath)
|
|
||||||
{
|
|
||||||
repositoryPathMap.put(createKey(repositoryPath.getRepository()), repositoryPath);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean contains(NamespaceAndName namespaceAndName)
|
|
||||||
{
|
|
||||||
return repositoryPathMap.containsKey(createKey(namespaceAndName));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean contains(String id)
|
|
||||||
{
|
|
||||||
return get(id) != null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RepositoryPath remove(String id)
|
|
||||||
{
|
|
||||||
return repositoryPathMap.remove(createKey(get(id).getRepository()));
|
|
||||||
}
|
|
||||||
|
|
||||||
public Collection<Repository> getRepositories() {
|
|
||||||
List<Repository> repositories = new ArrayList<>();
|
|
||||||
for (RepositoryPath repositoryPath : repositoryPathMap.values()) {
|
|
||||||
Repository repository = repositoryPath.getRepository();
|
|
||||||
repositories.add(repository);
|
|
||||||
}
|
|
||||||
return repositories;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Collection<RepositoryPath> values()
|
|
||||||
{
|
|
||||||
return repositoryPathMap.values();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Repository get(NamespaceAndName namespaceAndName) {
|
|
||||||
RepositoryPath repositoryPath = repositoryPathMap.get(createKey(namespaceAndName));
|
|
||||||
if (repositoryPath != null) {
|
|
||||||
return repositoryPath.getRepository();
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RepositoryPath get(String id) {
|
|
||||||
return values().stream()
|
|
||||||
.filter(repoPath -> repoPath.getId().equals(id))
|
|
||||||
.findFirst()
|
|
||||||
.orElse(null);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method description
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public long getCreationTime()
|
|
||||||
{
|
|
||||||
return creationTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method description
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public long getLastModified()
|
|
||||||
{
|
|
||||||
return lastModified;
|
|
||||||
}
|
|
||||||
|
|
||||||
//~--- set methods ----------------------------------------------------------
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method description
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @param creationTime
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void setCreationTime(long creationTime)
|
|
||||||
{
|
|
||||||
this.creationTime = creationTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method description
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @param lastModified
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void setLastModified(long lastModified)
|
|
||||||
{
|
|
||||||
this.lastModified = lastModified;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,123 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) 2010, Sebastian Sdorra
|
|
||||||
* All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
*
|
|
||||||
* 1. Redistributions of source code must retain the above copyright notice,
|
|
||||||
* this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
* this list of conditions and the following disclaimer in the documentation
|
|
||||||
* and/or other materials provided with the distribution.
|
|
||||||
* 3. Neither the name of SCM-Manager; nor the names of its
|
|
||||||
* contributors may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
|
|
||||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*
|
|
||||||
* http://bitbucket.org/sdorra/scm-manager
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
package sonia.scm.repository.xml;
|
|
||||||
|
|
||||||
//~--- non-JDK imports --------------------------------------------------------
|
|
||||||
|
|
||||||
import sonia.scm.repository.Repository;
|
|
||||||
|
|
||||||
//~--- JDK imports ------------------------------------------------------------
|
|
||||||
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.LinkedList;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlAccessType;
|
|
||||||
import javax.xml.bind.annotation.XmlAccessorType;
|
|
||||||
import javax.xml.bind.annotation.XmlElement;
|
|
||||||
import javax.xml.bind.annotation.XmlRootElement;
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @author Sebastian Sdorra
|
|
||||||
*/
|
|
||||||
@XmlRootElement(name = "repositories")
|
|
||||||
@XmlAccessorType(XmlAccessType.FIELD)
|
|
||||||
public class XmlRepositoryList implements Iterable<RepositoryPath>
|
|
||||||
{
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructs ...
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
public XmlRepositoryList() {}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructs ...
|
|
||||||
*
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @param repositoryMap
|
|
||||||
*/
|
|
||||||
public XmlRepositoryList(Map<String, RepositoryPath> repositoryMap)
|
|
||||||
{
|
|
||||||
this.repositories = new LinkedList<>(repositoryMap.values());
|
|
||||||
}
|
|
||||||
|
|
||||||
//~--- methods --------------------------------------------------------------
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method description
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public Iterator<RepositoryPath> iterator()
|
|
||||||
{
|
|
||||||
return repositories.iterator();
|
|
||||||
}
|
|
||||||
|
|
||||||
//~--- get methods ----------------------------------------------------------
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method description
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public LinkedList<RepositoryPath> getRepositoryPaths()
|
|
||||||
{
|
|
||||||
return repositories;
|
|
||||||
}
|
|
||||||
|
|
||||||
//~--- set methods ----------------------------------------------------------
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Method description
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* @param repositories
|
|
||||||
*/
|
|
||||||
public void setRepositories(LinkedList<RepositoryPath> repositories)
|
|
||||||
{
|
|
||||||
this.repositories = repositories;
|
|
||||||
}
|
|
||||||
|
|
||||||
//~--- fields ---------------------------------------------------------------
|
|
||||||
|
|
||||||
/** Field description */
|
|
||||||
@XmlElement(name = "repository-path")
|
|
||||||
private LinkedList<RepositoryPath> repositories;
|
|
||||||
}
|
|
||||||
@@ -1,112 +0,0 @@
|
|||||||
/**
|
|
||||||
* Copyright (c) 2010, Sebastian Sdorra
|
|
||||||
* All rights reserved.
|
|
||||||
* <p>
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
* <p>
|
|
||||||
* 1. Redistributions of source code must retain the above copyright notice,
|
|
||||||
* this list of conditions and the following disclaimer.
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
* this list of conditions and the following disclaimer in the documentation
|
|
||||||
* and/or other materials provided with the distribution.
|
|
||||||
* 3. Neither the name of SCM-Manager; nor the names of its
|
|
||||||
* contributors may be used to endorse or promote products derived from this
|
|
||||||
* software without specific prior written permission.
|
|
||||||
* <p>
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
|
|
||||||
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
* <p>
|
|
||||||
* http://bitbucket.org/sdorra/scm-manager
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
package sonia.scm.repository.xml;
|
|
||||||
|
|
||||||
import sonia.scm.SCMContext;
|
|
||||||
import sonia.scm.SCMContextProvider;
|
|
||||||
import sonia.scm.repository.InternalRepositoryException;
|
|
||||||
import sonia.scm.repository.Repository;
|
|
||||||
import sonia.scm.store.StoreConstants;
|
|
||||||
import sonia.scm.store.StoreException;
|
|
||||||
|
|
||||||
import javax.xml.bind.JAXBContext;
|
|
||||||
import javax.xml.bind.JAXBException;
|
|
||||||
import javax.xml.bind.Marshaller;
|
|
||||||
import javax.xml.bind.Unmarshaller;
|
|
||||||
import javax.xml.bind.annotation.adapters.XmlAdapter;
|
|
||||||
import java.io.File;
|
|
||||||
import java.nio.file.Files;
|
|
||||||
import java.nio.file.Path;
|
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Sebastian Sdorra
|
|
||||||
*/
|
|
||||||
public class XmlRepositoryMapAdapter extends XmlAdapter<XmlRepositoryList, Map<String, RepositoryPath>> {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public XmlRepositoryList marshal(Map<String, RepositoryPath> repositoryMap) {
|
|
||||||
XmlRepositoryList repositoryPaths = new XmlRepositoryList(repositoryMap);
|
|
||||||
try {
|
|
||||||
JAXBContext context = JAXBContext.newInstance(Repository.class);
|
|
||||||
Marshaller marshaller = context.createMarshaller();
|
|
||||||
|
|
||||||
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
|
|
||||||
|
|
||||||
// marshall the repo_path/metadata.xml files
|
|
||||||
for (RepositoryPath repositoryPath : repositoryPaths.getRepositoryPaths()) {
|
|
||||||
if (repositoryPath.toBeSynchronized()) {
|
|
||||||
|
|
||||||
File baseDirectory = SCMContext.getContext().getBaseDirectory();
|
|
||||||
Path dir = baseDirectory.toPath().resolve(repositoryPath.getPath());
|
|
||||||
|
|
||||||
if (!Files.isDirectory(dir)) {
|
|
||||||
throw new InternalRepositoryException(repositoryPath.getRepository(), "repository path not found");
|
|
||||||
}
|
|
||||||
marshaller.marshal(repositoryPath.getRepository(), getRepositoryMetadataFile(dir.toFile()));
|
|
||||||
repositoryPath.setToBeSynchronized(false);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (JAXBException ex) {
|
|
||||||
throw new StoreException("failed to marshal repository database", ex);
|
|
||||||
}
|
|
||||||
|
|
||||||
return repositoryPaths;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private File getRepositoryMetadataFile(File dir) {
|
|
||||||
return new File(dir, StoreConstants.REPOSITORY_METADATA.concat(StoreConstants.FILE_EXTENSION));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Map<String, RepositoryPath> unmarshal(XmlRepositoryList repositoryPaths) {
|
|
||||||
Map<String, RepositoryPath> repositoryPathMap = new LinkedHashMap<>();
|
|
||||||
try {
|
|
||||||
JAXBContext context = JAXBContext.newInstance(Repository.class);
|
|
||||||
Unmarshaller unmarshaller = context.createUnmarshaller();
|
|
||||||
for (RepositoryPath repositoryPath : repositoryPaths) {
|
|
||||||
SCMContextProvider contextProvider = SCMContext.getContext();
|
|
||||||
File baseDirectory = contextProvider.getBaseDirectory();
|
|
||||||
Repository repository = (Repository) unmarshaller.unmarshal(getRepositoryMetadataFile(baseDirectory.toPath().resolve(repositoryPath.getPath()).toFile()));
|
|
||||||
|
|
||||||
repositoryPath.setRepository(repository);
|
|
||||||
repositoryPathMap.put(XmlRepositoryDatabase.createKey(repository), repositoryPath);
|
|
||||||
}
|
|
||||||
} catch (JAXBException ex) {
|
|
||||||
throw new StoreException("failed to unmarshal object", ex);
|
|
||||||
}
|
|
||||||
return repositoryPathMap;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user