# Eclipse IDE
#------------------------------------------------------------
**/.classpath
**/.project
**/.tern-project
**/.settings/**
**/bin/


# IntelliJ IDE
#------------------------------------------------------------
**/.idea/
/out/
*.iml
*.ipr
*.iws

# Logs
#------------------------------------------------------------
*.log
*/logs/*
*/*/logs/*
/utils/DmaapPublisher/logs/*


#Excluded Script Folder
xFolder


# Maven
#------------------------------------------------------------
**/target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
version.properties
*dependency-reduced-pom.xml

## sdc-os-chef
*.class


# Package Files
#------------------------------------------------------------
*.ear
*.jar
*.war


#Gradle
.gradle/*
*/*.gradle
*/settings.gradle
*/gradlew.bat
*/gradlew
gradlew.bat
gradlew
settings.gradle

/log
*.kpf
*.orig


# catalog-ui
#------------------------------------------------------------
#------------------------------------------------------------
#------------------------------------------------------------
catalog-ui/app/dist/*
catalog-ui/dist
catalog-ui/*.tmp.txt
catalog-ui/tests/Coverage/*
catalog-ui/Chrome*
catalog-ui/PhantomJS_1.9.8_(Windows_7_0.0.0)/*
.metadata/
.metadata/*
.project
.settings/
Vagrantfile
a4c/
asdc-chef/cookbooks/Deploy-SDandC/attributes/version.rb
asdc-tests/ExtentReport/ASDC_CI_Extent_Report.html
asdc-tests/test-output/**
asdctool/tosca/*
bin/
catalog-be/.pydevproject
catalog-be/.checkstyle
catalog-be/data/*
catalog-be/src/main/java/META-INF/MANIFEST.MF
catalog-be/test-output/*
catalog-builders/bin/
catalog-dao/bin/
catalog-fe/bin
catalog-fe/src/main/webapp/*
catalog-ui/.editorconfig
catalog-ui/.jshintrc
catalog-ui/.yo-rc.json
catalog-ui/app/**/*.css
catalog-ui/app/robots.txt
catalog-ui/app/scripts/**/*.js
catalog-ui/app/scripts/**/*.js.map
catalog-ui/app/scripts/references.ts
catalog-ui/app/scripts/tsconfig.json
catalog-ui/app/tsconfig.json
catalog-ui/package-lock.json
catalog-ui/node/*
catalog-ui/node_modules/
catalog-ui/npm-debug.log
common-app-api/bin/
data/compute.png
data/loadbalancer.png
data/mysql.png
data/network.png
data/normative-types-DBMS.yml
data/normative-types-blockStorage.yml
data/normative-types-compute.yml
data/normative-types-database.yml
data/normative-types-network.yml
data/normative-types-objectStorage.yml
data/normative-types-root.yml
data/normative-types-softwareComponent.yml
data/normative-types-webApplication.yml
data/normative-types-webServer.yml
data/objectstore.png
data/relational_db.png
data/root.png
data/router.png
data/software.png
data/volume.png

distribution-ci/logs/wordnik.log
distribution-ci/logs/wordnik.log.1
distribution-ci/logs/wordnik.log.10
distribution-ci/logs/wordnik.log.2
distribution-ci/logs/wordnik.log.3
distribution-ci/logs/wordnik.log.4
distribution-ci/logs/wordnik.log.5
distribution-ci/logs/wordnik.log.6
distribution-ci/logs/wordnik.log.7
distribution-ci/logs/wordnik.log.8
distribution-ci/logs/wordnik.log.9
dox-sequence-diagram-ui/node/*





log.home_IS_UNDEFINED/ASDC/ASDC-BE/Error.log
log.home_IS_UNDEFINED/ASDC/ASDC-BE/audit.log
log.home_IS_UNDEFINED/ASDC/ASDC-BE/debug.log
log.home_IS_UNDEFINED/ASDC/ASDC-BE/debug_by_package.log
log.home_IS_UNDEFINED/ASDC/ASDC-BE/transaction.log

node/*
openecomp-be/tools/swagger-ui/api-docs/api.html
openecomp-be/tools/swagger-ui/api-docs/api.json
openecomp-ui/node/*
sdc-os-chef/.idea/*

catalog-be/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/files/default/ecomp-error-configuration.yaml
catalog-be/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/files/default/error-configuration.yaml
catalog-be/sdc-backend/chef-repo/cookbooks/sdc-catalog-be/files/default/logback.xml
catalog-be/sdc-backend/context.xml

test-apis-ci/sdc-api-tests/chef-repo/cookbooks/sdc-api-tests/files/default/testSuites/*
 
sdnc-tests-new-frame-work/test-output/*
sdnc-tests-new-frame-work/test-output/**
sdnc-tests/logs/wordnik.log
sdnc-tests/test-output/*
target/
test-apis-ci/ExtentReport/*
test-apis-ci/ExtentReport/ASDC_CI_Extent_Report.html
test-apis-ci/extent.html
test-apis-ci/logfile.log*
test-apis-ci/test-output/*
ui-ci/.tern-project
ui-ci/ExtentReport/*
ui-ci/logfile.log*
ui-ci/src/main/resources/Files/output/*
ui-ci/src/main/resources/Files/outputMainServiceTemplate/*
ui-ci/test-output/*
ui-ci/test-output/Default suite/Default test.html
ui-ci/test-output/Default suite/Default test.xml
ui-ci/test-output/Default suite/testng-failed.xml
ui-ci/test-output/emailable-report.html
ui-ci/test-output/index.html
ui-ci/test-output/old/Default suite/classes.html
ui-ci/test-output/old/Default suite/methods-alphabetical.html
ui-ci/test-output/old/Default suite/methods.html
ui-ci/test-output/old/Default suite/testng.xml.html
ui-ci/test-output/old/Default suite/toc.html
ui-ci/test-output/old/index.html
ui-ci/test-output/testng-failed.xml
ui-ci/test-output/testng-results.xml
utils/webseal-simulator/sdc-simulator/chef-repo/cookbooks/sdc-simulator/files/default/logback.xml
vagrant-asdc-all-in-one/


/asdctool/*.xls

/sdc-cassandra/chef-repo/cookbooks/cassandra-actions/files/default/tools/build/scripts/*

*.xls

/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/files/default/*
/asdctool/sdc-cassandra-init/chef-repo/cookbooks/cassandra-actions/attributes/default.rb
/openecomp-be/backend/openecomp-sdc-vendor-software-product-manager/vsp_*




utils/DmaapPublisher/logs/*




*normatives.tar.gz


/openecomp-ui/yarn.lock

/openecomp-be/dist/sdc-onboard-db-init-docker/artifacts/init_keyspaces.cql
/openecomp-be/dist/sdc-onboard-db-init-docker/artifacts/init_schemas.cql
/openecomp-be/dist/sdc-onboard-db-init-docker/artifacts/alter_tables.cql

asdctool/*.csv
asdctool/test-output/*

asdctool/report_delete_1538046694389.json
asdctool/report_test_1538046722484.json

ajcore*.txt
**/.factorypath

**/.checkstyle
