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


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

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

!catalog-fe/src/main/webapp/META-INF/
!catalog-fe/src/main/webapp/WEB-INF/
# Eclipse
# Maven
#------------------------------------------------------------
**/target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
version.properties
dependency-reduced-pom.xml

## sdc-os-chef
*.class
# Package Files

# Package Files
#------------------------------------------------------------
*.ear
*.iml
*.jar
#Gradle
build.gradle
.gradle/*

/log
#Gradle
build.gradle
.gradle/*

/log
*.kpf
*.orig
*.war
.classpath
.delivery
.idea/*


# catalog-ui
#------------------------------------------------------------


catalog-ui/app/dist/*
.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/.pydevproject
catalog-be/bin/
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/*.tmp.txt
catalog-ui/.*
catalog-ui/app/dist/*
catalog-ui/.editorconfig
catalog-ui/.jshintrc
catalog-ui/.yo-rc.json
catalog-ui/Chrome*
catalog-ui/PhantomJS_1.9.8_(Windows_7_0.0.0)/*
catalog-ui/app/**/*.css
catalog-ui/app/dist/*
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/bower_components/
catalog-ui/package-lock.json
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)/*
catalog-ui/*.tmp.txt
catalog-ui/tests/Coverage/*
catalog-ui/Chrome*
catalog-ui/PhantomJS_1.9.8_(Windows_7_0.0.0)/*
catalog-ui/node/*
catalog-ui/node_modules/
catalog-ui/npm-debug.log
catalog-ui/tests/Coverage/*
common-app-api/bin/
common/openecomp-common-configuration-management/openecomp-configuration-management-cli/dependency-reduced-pom.xml
common/openecomp-sdc-artifact-generator-lib/openecomp-sdc-artifact-generator-core/logs/*
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
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/Artifact-Generator.properties
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-init/chef-repo/cookbooks/sdc-catalog-be-setup/files/default/normatives.tar.gz

sdc-os-chef/sdc-cassandra/chef-repo/cookbooks/cassandra-actions/attributes/default.rb
sdc-os-chef/sdc-cassandra/chef-repo/cookbooks/cassandra-actions/files/default/SDC-*.zip
sdc-os-chef/sdc-cassandra/chef-repo/cookbooks/cassandra-actions/files/default/sdctool.tar
sdc-os-chef/sdc-cassandra/chef-repo/cookbooks/cassandra-actions/files/default/tools/*
sdc-os-chef/sdc-normatives/chef-repo/cookbooks/sdc-normatives/files/default/normatives.tar.gz
sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/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/


sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/testSuites/*
/asdctool/*.xls

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

sdc-os-chef/sdc-sanity/chef-repo/cookbooks/sdc-sanity/files/default/testSuites/*

/sdc-os-chef/sdc-cassandra/chef-repo/cookbooks/cassandra-actions/attributes/default.rb

/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_*


