@@ -0,0 +1,1689 @@
+/*%0A * Copyright 2020 B2i Healthcare Pte Ltd, http://b2i.sg%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A *      http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A */%0Apackage com.b2international.snowowl.core.request;%0A%0Aimport com.b2international.commons.exceptions.ApiException;%0Aimport com.b2international.snowowl.core.api.SnowowlRuntimeException;%0Aimport com.b2international.snowowl.core.domain.RepositoryContext;%0Aimport com.b2international.snowowl.core.events.Request;%0Aimport com.b2international.snowowl.core.internal.locks.DatastoreLockContextDescriptions;%0Aimport com.b2international.snowowl.core.locks.Locks;%0A%0A/**%0A * @since 7.6%0A */%0Apublic abstract class ImportRequest%3CC extends RepositoryContext, R%3E implements Request%3CC, R%3E %7B%0A%0A%09private static final long serialVersionUID = 1L;%0A%09public static final String PARENT_CONTEXT = DatastoreLockContextDescriptions.ROOT;%0A%09%09%0A%09protected abstract R doImport(C context);%0A%09%0A%09@Override%0A%09public R execute(C context) %7B%0A%09%09try (Locks locks = Locks.on(context).lock(DatastoreLockContextDescriptions.IMPORT, PARENT_CONTEXT)) %7B%0A%09%09%09return doImport(context);%0A%09%09%7D catch (Exception e) %7B%0A%09%09%09if (e instanceof ApiException) %7B%0A%09%09%09%09throw (ApiException) e;%0A%09%09%09%7D%0A%09%09%09throw SnowowlRuntimeException.wrap(e);%0A%09%09%7D%0A%09%7D%0A%0A%7D%0A

Add lock context to non-SNOMEDCT import requests