diff --git a/bundles/ru.arsysop.svn.connector.svnkit1_10/src/ru/arsysop/svn/connector/internal/adapt/jhlsv/RevPropertyConverter.java b/bundles/ru.arsysop.svn.connector.svnkit1_10/src/ru/arsysop/svn/connector/internal/adapt/jhlsv/RevMapPropertyAdapter.java similarity index 93% rename from bundles/ru.arsysop.svn.connector.svnkit1_10/src/ru/arsysop/svn/connector/internal/adapt/jhlsv/RevPropertyConverter.java rename to bundles/ru.arsysop.svn.connector.svnkit1_10/src/ru/arsysop/svn/connector/internal/adapt/jhlsv/RevMapPropertyAdapter.java index d034fd3..5630f73 100644 --- a/bundles/ru.arsysop.svn.connector.svnkit1_10/src/ru/arsysop/svn/connector/internal/adapt/jhlsv/RevPropertyConverter.java +++ b/bundles/ru.arsysop.svn.connector.svnkit1_10/src/ru/arsysop/svn/connector/internal/adapt/jhlsv/RevMapPropertyAdapter.java @@ -37,11 +37,11 @@ import ru.arsysop.svn.connector.internal.adapt.RepositoryDateFormat; import ru.arsysop.svn.connector.internal.adapt.SvnNullableConstructor; -public final class RevPropertyConverter extends SvnNullableConstructor, Map> { +public final class RevMapPropertyAdapter extends SvnNullableConstructor, Map> { private final DateFormat formatter = new RepositoryDateFormat().get(); - public RevPropertyConverter(Map source) { + public RevMapPropertyAdapter(Map source) { super(source); } diff --git a/bundles/ru.arsysop.svn.connector.svnkit1_10/src/ru/arsysop/svn/connector/internal/adapt/jhlsv/RevSvnPropertyAdapter.java b/bundles/ru.arsysop.svn.connector.svnkit1_10/src/ru/arsysop/svn/connector/internal/adapt/jhlsv/RevSvnPropertyAdapter.java new file mode 100644 index 0000000..995bd61 --- /dev/null +++ b/bundles/ru.arsysop.svn.connector.svnkit1_10/src/ru/arsysop/svn/connector/internal/adapt/jhlsv/RevSvnPropertyAdapter.java @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2023, 2025 ArSysOp + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * + * Contributors: + * ArSysOp - initial API and implementation + */ + +package ru.arsysop.svn.connector.internal.adapt.jhlsv; + +import java.util.Map; + +import org.eclipse.team.svn.core.connector.SVNProperty; + +import ru.arsysop.svn.connector.internal.adapt.SvnNullableConstructor; + +public final class RevSvnPropertyAdapter extends SvnNullableConstructor, SVNProperty[]> { + + public RevSvnPropertyAdapter(Map source) { + super(source); + } + + @Override + protected SVNProperty[] adapt(Map source) { + return source.entrySet() + .stream() + .map(e -> new SVNProperty(e.getKey(), e.getValue())) + .toArray(SVNProperty[]::new); + } + +} diff --git a/bundles/ru.arsysop.svn.connector.svnkit1_10/src/ru/arsysop/svn/connector/internal/adapt/svjhl/AnnotationCallbackAdapter.java b/bundles/ru.arsysop.svn.connector.svnkit1_10/src/ru/arsysop/svn/connector/internal/adapt/svjhl/AnnotationCallbackAdapter.java index de7d954..7cf2f26 100644 --- a/bundles/ru.arsysop.svn.connector.svnkit1_10/src/ru/arsysop/svn/connector/internal/adapt/svjhl/AnnotationCallbackAdapter.java +++ b/bundles/ru.arsysop.svn.connector.svnkit1_10/src/ru/arsysop/svn/connector/internal/adapt/svjhl/AnnotationCallbackAdapter.java @@ -32,7 +32,7 @@ import org.eclipse.team.svn.core.connector.SVNProperty; import ru.arsysop.svn.connector.internal.adapt.SvnNullableConstructor; -import ru.arsysop.svn.connector.internal.adapt.jhlsv.RevPropertyConverter; +import ru.arsysop.svn.connector.internal.adapt.jhlsv.RevMapPropertyAdapter; public final class AnnotationCallbackAdapter extends SvnNullableConstructor { @@ -46,8 +46,8 @@ protected BlameCallback adapt(ISVNAnnotationCallback source) { public void singleLine(long number, long revision, Map irp, long mrevision, Map imp, String mpath, String line, boolean localChange) throws ClientException { - Map orp = new RevPropertyConverter(irp).adapt(); - Map omp = new RevPropertyConverter(imp).adapt(); + Map orp = new RevMapPropertyAdapter(irp).adapt(); + Map omp = new RevMapPropertyAdapter(imp).adapt(); source.annotate(line, new SVNAnnotationData(// number, // localChange, // diff --git a/bundles/ru.arsysop.svn.connector.svnkit1_10/src/ru/arsysop/svn/connector/internal/adapt/svjhl/LogMessageCallbackAdapter.java b/bundles/ru.arsysop.svn.connector.svnkit1_10/src/ru/arsysop/svn/connector/internal/adapt/svjhl/LogMessageCallbackAdapter.java index f6ac76f..ed8298e 100644 --- a/bundles/ru.arsysop.svn.connector.svnkit1_10/src/ru/arsysop/svn/connector/internal/adapt/svjhl/LogMessageCallbackAdapter.java +++ b/bundles/ru.arsysop.svn.connector.svnkit1_10/src/ru/arsysop/svn/connector/internal/adapt/svjhl/LogMessageCallbackAdapter.java @@ -35,7 +35,7 @@ import ru.arsysop.svn.connector.internal.adapt.SvnNullableArray; import ru.arsysop.svn.connector.internal.adapt.SvnNullableConstructor; import ru.arsysop.svn.connector.internal.adapt.jhlsv.ChangePathAdapter; -import ru.arsysop.svn.connector.internal.adapt.jhlsv.RevPropertyConverter; +import ru.arsysop.svn.connector.internal.adapt.jhlsv.RevMapPropertyAdapter; public final class LogMessageCallbackAdapter extends SvnNullableConstructor { @@ -74,7 +74,7 @@ private SVNLogEntry convert(ChangePath[] paths, long revision, p -> new ChangePathAdapter(p).adapt()).adapt(), // hasChildren); } - Map converted = new RevPropertyConverter(revprops).adapt(); + Map converted = new RevMapPropertyAdapter(revprops).adapt(); Date date = converted == null ? null : (Date) converted.get(SVNProperty.BuiltIn.REV_DATE); return new SVNLogEntry(// revision, // diff --git a/bundles/ru.arsysop.svn.connector.svnkit1_10/src/ru/arsysop/svn/connector/internal/svnkit1_10/SvnKit1_10Connector.java b/bundles/ru.arsysop.svn.connector.svnkit1_10/src/ru/arsysop/svn/connector/internal/svnkit1_10/SvnKit1_10Connector.java index 14ae82f..b49f019 100644 --- a/bundles/ru.arsysop.svn.connector.svnkit1_10/src/ru/arsysop/svn/connector/internal/svnkit1_10/SvnKit1_10Connector.java +++ b/bundles/ru.arsysop.svn.connector.svnkit1_10/src/ru/arsysop/svn/connector/internal/svnkit1_10/SvnKit1_10Connector.java @@ -74,6 +74,7 @@ import ru.arsysop.svn.connector.internal.adapt.jhlsv.LockNullableAdapter; import ru.arsysop.svn.connector.internal.adapt.jhlsv.MergeInfoAdapter; import ru.arsysop.svn.connector.internal.adapt.jhlsv.NodeKindAdapter; +import ru.arsysop.svn.connector.internal.adapt.jhlsv.RevSvnPropertyAdapter; import ru.arsysop.svn.connector.internal.adapt.svjhl.AdaptClientNotifyCallback; import ru.arsysop.svn.connector.internal.adapt.svjhl.AnnotationCallbackAdapter; import ru.arsysop.svn.connector.internal.adapt.svjhl.ChoiceAdapter; @@ -1235,9 +1236,15 @@ public void setPropertyRemote(SVNEntryReference reference, SVNProperty property, @Override public SVNProperty[] listRevisionProperties(SVNEntryReference reference, ISVNProgressMonitor monitor) throws SVNConnectorException { - System.out.println("SvnKit1_10Connector.listRevisionProperties()"); - //TODO - return null; + Map parameters = new HashMap<>(); + parameters.put("reference", reference); + parameters.put("monitor", monitor); + return watch.queryAdapt(ISVNCallListener.LIST_REVISION_PROPERTIES, // + parameters, // + callback(monitor), p -> client.revProperties(// + reference.path, // + new RevisionAdapter(reference.pegRevision).adapt()), + v -> new RevSvnPropertyAdapter(v).adapt()); } @Override