# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you 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.

### Resource bundle for package org.netbeans.modules.updatecenters.resources

# manifest
OpenIDE-Module-Name=Update Centers
OpenIDE-Module-Display-Category=Infrastructure
OpenIDE-Module-Long-Description=It's module which contains the declaration of NetBeans update centers for Autoupdate module.
OpenIDE-Module-Short-Description=Declares NetBeans autoupdate centers.

Services/AutoupdateType/distribution-update-provider.instance=NetBeans Distribution
Services/AutoupdateType/pluginportal-update-provider.instance=NetBeans Plugin Portal
Services/AutoupdateType/82pluginportal-update-provider.instance=NetBeans 8.2 Plugin Portal

#NOI18N
URL_Distribution=https://netbeans.apache.org/nb/updates/11.1/updates.xml.gz?{$netbeans.hash.code}
#NOI18N
URL_PluginPortal=https://netbeans.apache.org/nb/plugins/11.1/catalog.xml.gz
#NOI18N
URL_82PluginPortal=http://updates.netbeans.org/netbeans/updates/8.2/uc/final/distribution/catalog.xml.gz

3rdparty=Third Party Libraries
#NOI18N
URL_3rdparty=nbresloc:/org/netbeans/modules/updatecenters/resources/3rdparty-catalog.xml
