# 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/



ExtentReport/
automationDownloadDir*/

/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
