{
  "factory": {
    "id": "wsdl-based-soap-service-protected",
    "displayName": "SERVICE :: SOAP :: WSDL :: PROTECTED",
    "type": "entaxy.runtime.service",
    "description": "Protected WSDL-based SOAP service",
    "isAbstract": false,
    "parent": "wsdl-based-soap-service-public",
    "label": "service,soap",
    "category": ""
  },
  "entaxy.runtime.service": {},
  "fields": {
    "operationRouter": {
      "defaultValue": {
        "@RESOURCE": {
          "location": {
            "@CALCULATED": {
              "lazy": false,
              "expression": "${#OWNER#.properties._serviceMetadata.serviceResourcesRoot}/${#OWNER#.properties.port}/operationRouterProtected.xml"
            }
          }        }
      },
      "@TYPEINFO": {
        "location": "${serviceResourcesRoot}/${port}/operationRouterProtected.xml"
      }
    },
    "enableAuthorization": {
      "isHidden": true,
      "defaultValue": true
    },    
	"connectorInFactory": {
		"type": "factory",
		"required": true,
		"isHidden": true,
		"_isRef": true,
		"_isRefByValueOnly": true,			
		"@RESOURCE": {
			"endType": "String",
			"provider": "service-resources",
			"location": {
				"@CALCULATED": {
					"expression": "${#OWNER#.properties._serviceMetadata.serviceResourcesRoot}/${#OWNER#.objectId}/${#OWNER#.objectId}-connector-in.factory",
					"lazy": false
				}
			},
			"service": {
						"@CALCULATED": {
							"expression": "${#OWNER#.properties._serviceMetadata}",
							"resultType": "map",
							"blacklistContent": ["@RESOURCE_META"],
							"lazy": false					
						}
			}
						
		},
		
		"defaultValue": {
			"type": "entaxy.runtime.service",
			"factoryId": "#OWNER#",
			"outputType": "connectorInFactory",
			"scope": "public",
			"properties": {
				"service": {
					"@CALCULATED": {
						"expression": "${#OWNER_OF_TYPE:entaxy.runtime.service#.properties._serviceMetadata}",
						"resultType": "map",
						"blacklistContent": ["@RESOURCE_META"],
						"lazy": false					
					}
				},
				"serviceId": {
					"@CALCULATED": {
						"expression": "${#OWNER_OF_TYPE:entaxy.runtime.service#.objectId}",
						"resultType": "String",
						"lazy": false					
					}
				},
				"location": {
		            "@CALCULATED": {
		              "lazy": false,
		              "expression": "${#OWNER_OF_TYPE:entaxy.runtime.service#.properties._serviceMetadata.serviceResourcesRoot}/${#OWNER_OF_TYPE:entaxy.runtime.service#.properties.port}/operationRouterConnector.xml"
		            }
            	}
			},
			"refConfig": {
				"isRefByValueOnly": true
			}
		}
		
	},
	"##headers": {
		"type": "List",
		"required": true,
		"isHidden": true,
		"defaultValue": [
			{
				"name": "Entaxy-Dynamic-Factory-Provider",
				"type": "boolean",
				"value": true
			}, 
			{
				"name": "Entaxy-Dynamic-Factory-Url",
				"type": "List",
				"value": [
					{"@CALCULATED": {
						"expression": "entaxy-resource://service-resources/${properties._serviceMetadata.serviceResourcesRoot}/${objectId}/${objectId}-connector-in.factory",
						"lazy": false,
						"resultType": "String"
					}}				
				]
			}	
		]
	}
  },
  "outputs": {
    "init": {
      "isDefault": true,
      "generator": "",
      "config": {},
      "fields": {
		"@IMPORT": [
	      {
	        "sourceFactoryId": "service-components",
	        "location": "outputs.specificProtectedServiceComponents.fields",
	        "prefix": ""
	      }
	    ],
        "connectorInFactory": {},
        "##headers": {}
      }
    },
    "connectorInFactory": {
    	"fields": {
    		"service": {},
    		"serviceId": {}
    	}
    }
  }
}