2012-05-20 5 views

답변

5

Deployer는 Java를 사용하여 확장 가능합니다. 가장 좋은 방법은 .NET을 사용하여 완전히 사용자 지정 작업을 수행하려는 경우 FTP (또는 프로세스 Deployer가없는 HTTP)를 사용하여 파일을 게시하고 파일을 처리 할 수있는 파일 시스템 감시가있는 .NET 응용 프로그램을 만드는 것입니다.

달성하려는 항목과 SDL Tridion 버전에 대해 더 많은 정보를 공유하여 더 많은 제안을 제공 할 수 있습니다.

+0

안녕하세요 크리스 덕분에, 나는 우리가 .NET 덕분에를 사용하여 사용자 정의 할 수 없습니다 꽤 확신했다 확인, 실제로 Google Markup HTML을 구현하려고합니다.이 질문을 참조하십시오 (http://stackoverflow.com/questions/10674431/server-performance-going-down-while-we-trying-to-get-some-data). -from-tridion-2009) .. 좀 봐주세요! –

5

확실한 대답은 NO입니다. Deployer는 Content Delivery의 다소 낮은 수준이며 확장 점은 Java에서만 사용할 수 있습니다.

그러나이 고양이를 껍질을 벗기는 데는 여러 가지 방법이 있습니다. 모두 당신이 성취하고자하는 것에 달려 있습니다.

예를 들어 확장 프로그램의 모든 작업을 수행하는 .NET으로 웹 서비스를 만들고이 웹 서비스를 호출하는 간단한 Deployer 모듈 (Java 사용)을 작성하여 필요한 모든 매개 변수를 전달할 수 있습니다.

배포자가 수신하는 실제 위치로 패키지를 전달하기 전에 .NET 메서드가 호출 될 위치로 게시하여 전송 패키지를 사전 처리 할 수 ​​있습니다.

후 처리를 선호하는 경우 성공적인 거래를 유지하고 배포자가 저장 위치 ("수신 폴더"+ "\ 성공")를 모니터링하도록 배포자를 구성 할 수 있습니다.

정말 모든 것은 당신이 달성하기를 원하는 것에 달려 있습니다. 권장되는 방법은 Java를 사용하는 것이지만, 해당 언어에 익숙하지 않은 경우 최소한의 Java 코딩만으로 창의적으로 동일한 결과를 얻을 수 있습니다. 여기에 게시되는 항목을 통해 루프 및 개체에 대한 정보를 기록에 "빈"모듈의 예는 다음과 같습니다

귀하의 의견
import java.util.Iterator; 

import com.tridion.configuration.Configuration; 
import com.tridion.configuration.ConfigurationException; 
import com.tridion.deployer.Module; 
import com.tridion.deployer.ProcessingException; 
import com.tridion.deployer.Processor; 

import com.tridion.transport.transportpackage.Binary; 
import com.tridion.transport.transportpackage.BinaryKey; 
import com.tridion.transport.transportpackage.Component; 
import com.tridion.transport.transportpackage.ComponentKey; 
import com.tridion.transport.transportpackage.MetaData; 
import com.tridion.transport.transportpackage.MetaDataFile; 
import com.tridion.transport.transportpackage.Page; 
import com.tridion.transport.transportpackage.PageKey; 
import com.tridion.transport.transportpackage.ProcessorInstructions; 
import com.tridion.transport.transportpackage.Section; 
import com.tridion.transport.transportpackage.TransportPackage; 

import org.slf4j.LoggerFactory; 
import org.slf4j.Logger; 


public class CustomCacheNotificationDeploy extends Module { 

    String action = null; 
    Logger log = null; 
    MetaDataFile pageMeta = null; 
    MetaDataFile componentMeta = null; 
    MetaDataFile binaryMeta = null; 
    public CustomCacheNotificationDeploy(Configuration config, Processor processor) 
      throws ConfigurationException { 
     super(config, processor); 
     log = LoggerFactory.getLogger(getClass()); 
     // TODO Auto-generated constructor stub 
    } 

    @SuppressWarnings("deprecation") 
    public void process(TransportPackage data) throws ProcessingException{ 
     ProcessorInstructions instructions = data.getProcessorInstructions(); 
     action = instructions.getAction(); 
     MetaData pageMetaInfo = instructions.getMetaData("Pages"); 
     MetaData componentMetaInfo = instructions.getMetaData("Components"); 
     MetaData binaryMetaInfo = instructions.getMetaData("Binaries"); 
     pageMeta = data.getMetaData("Pages", pageMetaInfo.getName()); 
     componentMeta = data.getMetaData("Components", componentMetaInfo.getName()); 
     binaryMeta = data.getMetaData("Binaries", binaryMetaInfo.getName()); 

     log.debug("Action " + action + " started for publication " + instructions.getPublicationId()); 

     Section section = null; 
     Iterator<Section> Sections = instructions.getSections(); 
     for(; Sections.hasNext(); processSection(section)) 
     { 
      section = Sections.next(); 
     } 

    } 

    protected void processSection(Section section) 
    { 
     log.debug("Processing Section " + section.getName()); 
     Iterator iterator = section.getFileItems(); 
     Object item; 
     for(; iterator.hasNext(); processItem(item, section)) 
     { 
      item = iterator.next(); 
     } 
     Section subSection; 
     for(Iterator i$ = section.getSubSections().iterator(); i$.hasNext(); processSection(subSection)) 
      subSection = (Section)i$.next(); 
    } 

    protected void processItem(Object obj, Section section) 
    { 
     if(obj instanceof PageKey) 
     { 
      log.debug("Object is Page"); 
      PageKey key = (PageKey) obj; 
      Page page = (Page)pageMeta.getMetaData(key); 
      log.debug("Page being deployed is " + page.getId() + " with URL " + page.getURLPath()); 
     } 
     if(obj instanceof ComponentKey) 
     { 
      log.debug("Object is Component"); 
      ComponentKey key = (ComponentKey) obj; 
      Component component = (Component)componentMeta.getMetaData(key); 
      log.debug("Component being deployed is " + component.getId()); 
     } 
     if(obj instanceof BinaryKey) 
     { 
      log.debug("Object is Binary"); 
      BinaryKey key = (BinaryKey) obj; 
      Binary binary = (Binary)binaryMeta.getMetaData(key); 
      log.debug("Binary being deployed is " + binary.getId() + " with URL " + binary.getURLPath()); 
     } 
    } 
} 
+0

안녕하세요 누노, 귀하의 회신을 보내 주셔서 감사합니다 구현이 구현을 위해 나를 도울 것입니다 (http://stackoverflow.com/questions/10674431/server-performance-going-down-while-we-trying-to-get- 일부 데이터 -에서 tridion - 2009) –